프로젝트 소개

TDengine는 사물인터넷(IoT), 연결 차량, 산업용 IoT 워크로드를 목표로 하는 오픈소스 시계열 데이터베이스(TSDB)다. 동시다발적인 센서와 수집기에서 생성되는 대용량 데이터를 실시간으로 수집·처리·분석하는 것을 목표로 하며, 많은 수집 지점을 지원하는 고카드inality 배포를 지원한다고 설명하고 있다. 프로젝트가 명시한 설계 특징에는 샤딩과 파티셔닝, 컴퓨ート와 스토리지 분리, RAFT 기반 복제, Kubernetes 배포 지원, 관찰 가능성 통합을 갖춘 분산 클라우드 네이티브 아키텍처가 포함된다. 캐싱, 스트림 처리, 구독을 위해 별도의 구성요소를 추가로 요구하지 않고, TDengine은 이 기능들을 데이터베이스 내부에 통합했다. 시계열 예측, 이상 감지, 결측치 보간, 분류와 같은 작업을 위한 TDgpt라는 AI 구성요소가 포함되어 있으며, 시계열 파운데이션 모델, 대형 언어 모델, 머신러닝 모델, 전통 알고리즘과 연결할 수 있다. 사용자 문서, 시스템 설계 및 아키텍처 문서는 프로젝트의 문서 사이트에서 확인할 수 있으며, 컨테이너, 설치 패키지, Kubernetes 또는 호스팅 클라우드 서비스를 통한 배포 옵션을 제공한다. 저장소 README는 소스에서 TDengine을 빌드, 테스트, 릴리즈, 패키징하려는 개발자를 대상으로 한다. 빌드 전제조건: Linux(Ubuntu 18.04+, CentOS 7+), macOS 10.15+, 제한적 Windows 지원, x86_64 또는 ARM64 아키텍처. 권장 사양은 약 4GB RAM, 2GB 여유 디스크다. 필요한 도구로는 C/C++ 툴체인, CMake 3.21 이상, git가 필요하며, 테스트 프레임워크를 위해 선택적으로 Python 3, taosAdapter나 taosKeeper와 같은 구성요소에 Go 1.23+가 필요하다. 또한 taos-gen 구성요소에 선택적으로 ccache와 Conan 2.x가 필요하다. 빌드는 out-of-tree 방식으로 CMake를 사용한다. 첫 번째 빌드 시 -DBUILD_CONTRIB=ON 플래그를 활성화해야 xxhash, zstd, lz4와 같은 외부 종속성을 가져와 .externals/에 컴파일한다. 이후 빌드는 해당 결과물을 재사용한다. 일반적인 절차는 저장소 복제, debug 디렉터리 생성, cmake 실행, 그다음 make다. CLI 도구를 포함한 릴리즈 빌드는 -DCMAKE_BUILD_TYPE=Release와 -DBUILD_TOOLS=ON 플래그를 사용한다. README에는 여러 옵션 테이블이 문서화되어 있으며, 기본값을 포함한다. 주요 옵션으로는 BUILD_TEST, BUILD_TOOLS, BUILD_SANITIZER, BUILD_COVERAGE, BUILD_JEMALLOC, BUILD_WEBSOCKET, BUILD_WITH_UDF, BUILD_GEOS, RUST_BINDINGS, 스토리지 엔진 선택(LevelDB, RocksDB, SQLite, Berkeley DB), 압축 옵션(LZ4, LZMA2, TSZ), 클라우드 객체 옵션(S3, COS) 등이 있다. 빌드 결과는 debug/build/bin(예: taosd 서버 데몬, taos CLI 클라이언트, BUILD_TOOLS=ON일 경우 taosBenchmark 벤치마크 도구와 taosdump 가져오기/내보내기 도구)과 debug/build/lib(예: Linux의 libtaos.so)에 생성된다. 테스트는 두 층으로 구성된다. googletest로 빌드되고 ctest로 실행되는 유닛 테스트와, tests/ 아래의 Python 기반 통합 테스트 프레임워크다. 테스트 서버는 생성된 구성으로 시작되며 개별 시스템 테스트는 스크립트로 실행된다. 로컬에서 lcov 기반 스크립트를 사용해 커버리지 보고서를 생성할 수 있으며, 프로젝트는 공개 커버리지 대시보드에 링크한다. 패키징은 source/taos-community/packaging/pack_community_tar.sh가 담당하며, taosd, taos, taosBenchmark, taosdump, taosudf, libtaos.so, libtaosnative.so, 헤더 파일, C 예제, 설치 스크립트를 포함하는 커뮤니티 tar볼을 조립한다. 다른 저장소에서 관리하거나 별개의 빌드 흐름이 필요한 taoskeeper, taos-explorer, taosx, 커넥터, taosinspect 등의 구성요소는 포함되지 않는다. 이 스크립트는 빌드 디렉터리, 버전 번호, 호환 버전, 배포 안정성 플래그를 허용하며, 출력은 source/taos-community/release/에 서버와 클라이언트 아카이브로 분리해 작성한다. 설치는 공식 설치 tar볼을 추출해 install.sh를 실행하거나, 로컬 소스 빌드에서 직접 make install로 수행할 수 있다. 빌드 트리 내부에서 로컬로 실행하려면 구성 디렉터리와 함께 taosd를 시작하고 다른 셸에서 taos CLI로 연결한다. 패키지로 설치한 후에는 systemctl을 통해 서버를 시작하고 taos 클라이언트로 연결한다. 프로젝트는 GitHub Actions 워크플로우인 build-check를 게시하고 기여자를 위해 기여 지침을 안내한다. 또한 Discord, Stack Overflow, 소셜 플랫폼에 커뮤니티 채널을 제공하고 호스팅 클라우드 서비스에 대한 링크를 제공한다. TDengine은 GNU Affero General Public License 3.0 하에 라이선스되며, 클러스터 기능과 AI 에이전트를 포함한 핵심 모듈은 오픈소스 라이선스에 따라 제공된다.