这个项目能做什么
TDengine 是一款面向物联网(IoT)、车联网和工业物联网工作负载的开源时序数据库(TSDB)。其明确目标是实现由大量传感器和数据采集器产生海量数据的实时摄入、处理和分析,项目仓库描述中称其支持涵盖大量采集点的高基数部署。
项目列出的设计特性包括:基于分片和分区实现的分布式云原生架构、计算与存储分离、基于 RAFT 的复制机制、Kubernetes 部署支持以及可观测性集成。TDengine 将缓存、流处理和订阅等能力内置于数据库本身,而无需依赖外部独立组件。此外还包含一个名为 TDgpt 的 AI 组件,用于时间序列预测、异常检测、数据插补和分类等任务,并可对接时间序列基础模型、大语言模型、机器学习模型及传统算法。
面向用户的文档、系统设计和架构说明均存放在项目文档网站上;部署方式涵盖容器化部署、安装软件包、Kubernetes 部署或托管云服务。仓库 README 主要面向希望从源码构建、测试、发布和打包 TDengine 的开发者。
构建前提条件:Linux(Ubuntu 18.04+、CentOS 7+)、macOS 10.15+,以及对 Windows 的有限支持;架构支持 x86_64 或 ARM64;建议配置约 4 GB 内存和 2 GB 可用磁盘空间。工具链需求包括 C/C++ 编译器、CMake 3.21 或更高版本、git,可选 Python 3(用于测试框架)和 Go 1.23+(用于 taosAdapter、taosKeeper 等组件),此外还有可选的 ccache 和 Conan 2.x(用于 taos-gen 组件)。
构建采用 CMake 的树外构建(out-of-tree)方式。首次构建需启用 -DBUILD_CONTRIB=ON,以便获取并编译 xxhash、zstd、lz4 等外部依赖至 .externals/ 目录,后续构建将复用这些产物。典型流程为:克隆仓库、创建 debug 目录、执行 cmake,然后运行 make。带有命令行工具的 Release 构建需使用 -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 完成,该脚本会组装社区 tarball,内含 taosd、taos、taosBenchmark、taosdump、taosudf、libtaos.so、libtaosnative.so、头文件、C 示例代码及安装脚本。明确指出不包含位于其他仓库中或需要独立构建流程的组件,例如 taoskeeper、taos-explorer、taosx、连接器及 taosinspect。该脚本接受构建目录、版本号、兼容版本号和发布稳定性等参数,输出结果写入 source/taos-community/release/,分别生成服务端和客户端归档文件。
安装方式可从官方安装包 tarball 解压后运行 install.sh,或直接通过 make install 从本地源码构建进行安装。在构建树中本地运行时,可使用指定配置目录启动 taosd,并在另一个终端中使用 taos CLI 连接;安装完成后,通过 systemctl 管理服务,并使用 taos 客户端连接。
项目发布了用于构建检查的 GitHub Actions Workflow,并向贡献者提供了贡献指南。同时在 Discord、Stack Overflow 及社交平台上设有社区渠道,并提供托管云服务入口。TDengine 采用 GNU Affero General Public License 3.0 许可,其中核心模块(包括集群功能和 AI 智能体)按说明以开源许可证提供。
评论
0 评分人数达到10人后显示
登录后参与讨论。