TDengine - 具有高性能、可扩展性和 SQL 支持的开源时间序列数据库。可广泛应用于物联网、车联网、DevOps、能源、金融等领域。

Created at: 2019-07-11 16:33:48
Language: C
License: AGPL-3.0

TD引擎

构建状态 构建状态 覆盖范围状态 关键信息基础设施最佳实践

英语|简体中文 |道明云|了解有关 TSDB 的更多信息

什么是TDengine?

TDengine 是一个开源、高性能、云原生时间序列数据库,针对物联网 (IoT)、联网汽车和工业物联网进行了优化。它支持每天高效、实时地摄取、处理和监控由数十亿个传感器和数据收集器生成的 TB 甚至 PB 级数据。TDengine与其他时间序列数据库的不同之处在于以下优点:

  • 高性能:TDengine 是唯一解决高基数问题的时间序列数据库,支持数十亿个数据收集点,同时优于其他时间序列数据库的数据摄取、查询和数据压缩。

  • 简化解决方案:通过内置缓存、流处理和数据订阅功能,TDengine为时序数据处理提供了简化的解决方案。它大大降低了系统设计的复杂性和运营成本。

  • 原生:通过原生分布式设计、分片分区、计算与存储分离、RAFT、支持 kubernetes 部署和完全可观测性,TDengine 是云原生时序数据库,可以部署在公有云、私有云或混合云上。

  • 易用性:对于管理员来说,TDengine 大大减少了部署和维护的工作量。对于开发人员来说,它提供了简单的界面、简化的解决方案和第三方工具的无缝集成。对于数据用户,它提供了轻松的数据访问。

  • 轻松的数据分析:通过超级表、存储和计算分离、时间间隔数据分区、预计算等方式,TDengine 可以轻松高效地探索、格式化和访问数据。

  • 开源:TDengine的核心模块,包括集群功能,都可以在开源许可下获得。它在GitHub上聚集了19.9k星。有一个活跃的开发人员社区,全球有超过 139k 个正在运行的实例。

有关TDengine竞争优势的完整列表,请查看此处。体验TDengine的最简单方法是通过TDengine云

文档

有关用户手册、系统设计和架构,请参阅TDengine文档(TDengine文档)

建筑

目前,TDengine服务器支持在Linux/Windows/macOS系统上运行。任何应用也可以选择 taosAdapter 提供的 RESTful 接口来连接 taosd 服务。TDengine支持X64/ARM64 CPU,未来将支持MIPS64、Alpha64、ARM32、RISC-V等CPU架构。

你可以选择通过源代码、容器安装包Kubernetes 进行安装。本快速指南仅适用于从源代码安装。

TDengine提供了一些有用的工具,如taosBenchmark(被命名为taosdemo)和taosdump。他们是TDengine的一部分。默认情况下,TDengine 编译不包括 taosTools。你可以使用 使它们与 TDengine 一起编译。

cmake .. -DBUILD_TOOLS=true

要构建 TDengine,请在项目目录中使用 CMake 3.0.2 或更高版本。

安装构建工具

Ubuntu 18.04 及更高版本或 Debian

sudo apt-get install -y gcc cmake build-essential git libssl-dev

为 taosTools 安装构建依赖项

要在 Ubuntu/Debian 上构建 taosTools,需要安装以下软件包。

sudo apt install build-essential libjansson-dev libsnappy-dev liblzma-dev libz-dev pkg-config

CentOS 7.9

sudo yum install epel-release
sudo yum update
sudo yum install -y gcc gcc-c++ make cmake3 git openssl-devel
sudo ln -sf /usr/bin/cmake3 /usr/bin/cmake

CentOS 8 & Fedora

sudo dnf install -y gcc gcc-c++ make cmake epel-release git openssl-devel

在 CentOS 上为 taosTools 安装构建依赖项

CentOS 7.9

sudo yum install -y zlib-devel xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libstdc++-static openssl-devel

CentOS 8/Rocky Linux

sudo yum install -y epel-release
sudo yum install -y dnf-plugins-core
sudo yum config-manager --set-enabled powertools
sudo yum install -y zlib-devel xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libstdc++-static openssl-devel

注意:由于 snappy 缺乏 pkg 配置支持(参考链接),它会导致 cmake 提示符 libsnappy 找不到。但活泼仍然很好用。

如果 PowerTools 安装失败,你可以尝试使用:

sudo yum config-manager --set-enabled powertools

苹果操作系统

brew install argp-standalone pkgconfig

设置戈朗环境

TDengine包括一些组件,如Go语言开发的taosAdapter。有关 golang 环境设置,请参阅 golang.org 官方文档。

请使用版本 1.14+。对于中国用户,我们建议使用代理来加速包下载。

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

默认不会构建 taosAdapter,但你可以使用以下命令将 taosAdapter 构建为 RESTful 接口的服务。

cmake .. -DBUILD_HTTP=false

设置生锈环境

TDengine 包含一些由 Rust 语言开发的组件。请参考 rust-lang.org 官方文档了解生锈环境设置。

获取源代码

首先,你可以从github克隆源代码:

git clone https://github.com/taosdata/TDengine.git
cd TDengine

你可以修改文件 ~/.gitconfig 以使用 ssh 协议而不是 https 以获得更好的下载速度。你需要先将 ssh 公钥上传到 GitHub。有关详细信息,请参阅 GitHub 官方文档。

[url "git@github.com:"]
    insteadOf = https://github.com/

特别说明

JDBC Connector、Go Connector、Python Connector、Node.js Connector、C# Connector、Rust ConnectorGrafana 插件已移至独立存储库。

构建 TD 引擎

在 Linux 平台上

你可以运行 bash 脚本来构建 TDengine 和 taosTools,包括 taosBenchmark 和 taosdump,如下所示:

build.sh

./build.sh

它等于执行以下命令:

mkdir debug
cd debug
cmake .. -DBUILD_TOOLS=true
make

你可以使用 Jemalloc 作为内存分配器而不是 glibc:

apt install autoconf
cmake .. -DJEMALLOC_ENABLED=true

TDengine 构建脚本可以检测主机在 X86-64、X86、arm64 平台上的架构。如果检测结果不正确,你也可以指定 CPUTYPE 选项,如 aarch64:

aaarch64:

cmake .. -DCPUTYPE=aarch64 && cmake --build .

在视窗平台上

如果你使用 Visual Studio 2013,请通过执行“cmd.exe”打开命令窗口。请在执行 vcvarsall.bat 时为 64 位 Windows 指定 “amd64” 或为 32 位 Windows 指定 “x86”。

mkdir debug && cd debug
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" < amd64 | x86 >
cmake .. -G "NMake Makefiles"
nmake

如果使用 Visual Studio 2019 或 2017:

请通过执行“cmd.exe”打开命令窗口。请在执行 vcvarsall.bat 时为 64 位 Windows 指定“x64”或为 32 位 Windows 指定“x86”。

mkdir debug && cd debug
"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" < x64 | x86 >
cmake .. -G "NMake Makefiles"
nmake

或者,你可以通过单击 Windows 开始 ->“Visual Studio < 2019 |2017 >“文件夹 -> ”x64本机工具命令提示符VS < 2019 |2017 >“或”VS < 2019 |的 x86 本机工具命令提示符2017 >“取决于你的Windows是什么体系结构,然后按如下方式执行命令:

mkdir debug && cd debug
cmake .. -G "NMake Makefiles"
nmake

在 macOS 平台上

请安装 XCode 命令行工具和 cmake。在Catalina和Big Sur上使用XCode 11.4+验证。

mkdir debug && cd debug
cmake .. && cmake --build .

安装

在 Linux 平台上

构建成功后,TDengine可以通过以下方式安装

sudo make install

用户可以在目录和文件部分找到有关系统上安装的目录的更多信息。

从源代码安装还将为 TDengine 配置服务管理。用户还可以选择从软件包中安装

要在安装后在终端中启动服务,请使用:

sudo systemctl start taosd

然后,用户可以使用TDengine CLI连接TDengine服务器。在终端中,使用:

taos

如果 TDengine CLI 成功连接服务器,则会打印欢迎消息和版本信息。否则,将显示一条错误消息。

在视窗平台上

成功构建后,可以通过以下方式安装TDengine:

nmake install

在 macOS 平台上

成功构建后,可以通过以下方式安装TDengine:

sudo make install

用户可以在目录和文件部分找到有关系统上安装的目录的更多信息。

从源代码安装还将为 TDengine 配置服务管理。用户还可以选择从软件包中安装

要在安装后启动服务,请双击 /applications/TDengine 以启动程序,或在终端中使用:

launchctl start com.tdengine.taosd

然后,用户可以使用TDengine CLI连接TDengine服务器。在终端中,使用:

taos

如果 TDengine CLI 成功连接服务器,则会打印欢迎消息和版本信息。否则,将显示一条错误消息。

快速运行

如果你不想将 TDengine 作为服务运行,则可以在当前的 shell 中运行它。例如,要在构建后快速启动 TDengine 服务器,请在终端中运行以下命令:(我们以 Linux 为例,Windows 上的命令将是

taosd.exe
)

./build/bin/taosd -c test/cfg

在另一个终端中,使用 TDengine CLI 连接服务器:

./build/bin/taos -c test/cfg

选项 “-c test/cfg” 指定系统配置文件目录。

试用TD引擎

从TDengine CLI运行SQL命令很容易,这与其他SQL数据库相同。

CREATE DATABASE demo;
USE demo;
CREATE TABLE t (ts TIMESTAMP, speed INT);
INSERT INTO t VALUES('2019-07-15 00:00:00', 10);
INSERT INTO t VALUES('2019-07-15 01:00:00', 20);
SELECT * FROM t;
          ts          |   speed   |
===================================
 19-07-15 00:00:00.000|         10|
 19-07-15 01:00:00.000|         20|
Query OK, 2 row(s) in set (0.001700s)

使用 TD 引擎进行开发

官方连接器

TDengine为用户提供了丰富的开发工具,以便在TDengine上进行开发。点击以下链接查找所需的连接器和相关文档。

为TD引擎做出贡献

请遵循贡献指南为项目做出贡献。

加入道明引擎社区

有关TDengine的更多信息,你可以在社交媒体上关注我们并加入我们的Discord服务器: