프로젝트 소개

GreptimeDB는 메트릭, 로그, 트레이스를 오브젝트 스토리지 위의 단일 컬럼형 엔진에 저장하는 오픈소스 관측성 데이터베이스입니다. 세 가지 신호 유형 모두 태그, 타임스탬프, 필드라는 하나의 테이블 모델을 공유하므로, 신호들이 서비스, 호스트, 트레이스 ID와 같은 공통 식별자를 가질 때 별도 시스템 간에 데이터를 이동하는 대신 SQL 조인으로 상관 분석할 수 있습니다. 수집 경로로는 OpenTelemetry(OTLP), Prometheus Remote Write, Loki Push, Elasticsearch Bulk, InfluxDB line protocol, gRPC가 있습니다. 쿼리 옵션으로는 SQL, PromQL, Jaeger 호환 트레이스 쿼리와 MySQL 및 PostgreSQL wire protocol이 있습니다. S3, GCS, Azure Blob, S3 호환 엔드포인트와 같은 오브젝트 스토리지 백엔드가 주 스토리지로 사용되며, 메모리와 로컬 디스크 캐시가 최근 또는 자주 쿼리되는 데이터를 컴퓨트 가까이에 유지합니다. 내장 기능으로는 보존 정책, 다운샘플링, 연속 집계(Flow 엔진), 명시적 테이블 파티셔닝, inverted, skipping, fulltext 인덱스가 있습니다. 배포는 두 가지 모드로 제공됩니다. Standalone은 개발 및 소규모 배포를 위한 단일 바이너리입니다. Distributed는 독립적으로 확장 가능한 컴포넌트로 나뉩니다. Frontend(프로토콜 진입점 및 분산 쿼리 엔진, 무상태), Datanode(WAL, memtable, SST, 캐시, compaction, 인덱스를 갖춘 region 엔진으로 오브젝트 스토리지에 영속화), Metasrv(메타데이터, 라우팅, 재파티셔닝, 보안으로 etcd 또는 RDS 기반), 그리고 연속 flow 연산을 위한 선택적 Flownode가 있습니다. README는 프로토콜별 호환성을 문서화합니다. Prometheus Remote Write 수집과 PromQL 쿼리는 일부 PromQL 공백과 함께 지원됩니다. Loki Push 수집은 작동하지만 LogQL과 나머지 Loki 쿼리 API는 호환되지 않습니다. Elasticsearch `_bulk` 수집은 오픈소스 코어에 있으며, QueryDSL은 Enterprise 에디션에서 부분적으로 사용 가능합니다. 프로젝트는 스스로를 open-core라고 설명합니다. 클러스터 배포, 오브젝트 스토리지, Flow 엔진, 나열된 모든 수집 프로토콜은 Apache-2.0 빌드에 포함되며, read replica, 워크로드 격리, 자동 재파티셔닝, 엔터프라이즈 보안/거버넌스는 Enterprise 기능입니다. 재파티셔닝, region 마이그레이션, 인덱스 생성은 오픈소스 빌드에서 수동입니다. Docker를 통한 빠른 시작이 제공되며, HTTP(4000), gRPC(4001), MySQL(4002), PostgreSQL(4003) 포트를 노출하고 HTTP 포트에서 웹 대시보드를 제공합니다. 소스에서 빌드하려면 고정된 nightly Rust 툴체인, Protobuf 컴파일러, C/C++ 빌드 필수 요소가 필요하며, 일반적인 명령으로는 make, make fmt, make clippy, make test, make sqlness-test가 있습니다. 동반 도구로는 Kubernetes operator, Helm 차트, 대시보드, Go, Java, C++, Erlang, Rust, .NET, TypeScript용 gRPC ingester, Grafana 데이터 소스 플러그인이 있습니다. README는 또한 벤치마크 보고서(Agent RCA Bench, JSONBench, TSBS)와 프로덕션 사례 연구를 나열하며, 프로젝트가 안정적인 API와 정기 릴리스로 일반 제공됨을 명시합니다. 코어는 Apache-2.0 라이선스이며, 소수의 엔터프라이즈 전용 기능은 별도 라이선스 하에 있습니다.