TDengine是一个高效的存储、查询、分析时序大数据的平台,专为物联网、车联网、工业互联网、运维监测等优化而设计。您可以像使用关系型数据库MySQL一样来使用它,但建议您在使用前仔细阅读一遍下面的文档,特别是 数据模型 与 数据建模。除本文档之外,欢迎 [下载产品白皮书](https://www.taosdata.com/downloads/TDengine White Paper.pdf)。
TDengine是涛思数据专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码,包括集群功能全部开源(开源协议,AGPL v3.0)。
TDengine 的主要功能如下:
由于 TDengine 充分利用了时序数据特点,比如结构化、无需事务、很少删除或更新、写多读少等等,因此与其他时序数据库相比,TDengine 有以下特点:
采用 TDengine,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本大幅降低。表现在几个方面:
在整个时序大数据平台中,TDengine 扮演的角色如下:
图 1. TDengine 技术生态图
上图中,左侧是各种数据采集或消息队列,包括 OPC-UA、MQTT、Telegraf、也包括 Kafka,他们的数据将被源源不断的写入到 TDengine。右侧则是可视化、BI 工具、组态软件、应用程序。下侧则是 TDengine 自身提供的命令行程序(CLI)以及可视化管理工具。
作为一个高性能、分布式、支持 SQL 的时序数据库(Database),TDengine 的典型适用场景包括但不限于 IoT、工业互联网、车联网、IT 运维、能源、金融证券等领域。需要指出的是,TDengine 是针对时序数据场景设计的专用数据库和专用大数据处理工具,因其充分利用了时序大数据的特点,它无法用来处理网络爬虫、微博、微信、电商、ERP、CRM 等通用型数据。下面本文将对适用场景做更多详细的分析。
从数据源角度,设计人员可以从下面几个角度分析 TDengine 在目标应用系统里面的适用性。
数据源特点和需求 | 不适用 | 可能适用 | 非常适用 | 简单说明 |
---|---|---|---|---|
总体数据量巨大 | √ | TDengine 在容量方面提供出色的水平扩展功能,并且具备匹配高压缩的存储结构,达到业界最优的存储效率。 | ||
数据输入速度偶尔或者持续巨大 | √ | TDengine 的性能大大超过同类产品,可以在同样的硬件环境下持续处理大量的输入数据,并且提供很容易在用户环境里面运行的性能评估工具。 | ||
数据源数目巨大 | √ | TDengine 设计中包含专门针对大量数据源的优化,包括数据的写入和查询,尤其适合高效处理海量(千万或者更多量级)的数据源。 |
系统架构要求 | 不适用 | 可能适用 | 非常适用 | 简单说明 |
---|---|---|---|---|
要求简单可靠的系统架构 | √ | TDengine 的系统架构非常简单可靠,自带消息队列,缓存,流式计算,监控等功能,无需集成额外的第三方产品。 | ||
要求容错和高可靠 | √ | TDengine 的集群功能,自动提供容错灾备等高可靠功能。 | ||
标准化规范 | √ | TDengine 使用标准的 SQL 语言提供主要功能,遵守标准化规范。 |
系统功能需求 | 不适用 | 可能适用 | 非常适用 | 简单说明 |
---|---|---|---|---|
要求完整的内置数据处理算法 | √ | TDengine 实现了通用的数据处理算法,但是还没有做到妥善处理各行各业的所有需求,因此特殊类型的处理需求还需要在应用层面解决。 | ||
需要大量的交叉查询处理 | √ | 这种类型的处理更多应该用关系型数据库处理,或者应该考虑 TDengine 和关系型数据库配合实现系统功能。 |
系统性能需求 | 不适用 | 可能适用 | 非常适用 | 简单说明 |
---|---|---|---|---|
要求较大的总体处理能力 | √ | TDengine 的集群功能可以轻松地让多服务器配合达成处理能力的提升。 | ||
要求高速处理数据 | √ | TDengine 专门为 IoT 优化的存储和数据处理设计,一般可以让系统得到超出同类产品多倍数的处理速度提升。 | ||
要求快速处理小粒度数据 | √ | 这方面 TDengine 性能可以完全对标关系型和 NoSQL 型数据处理系统。 |
系统维护需求 | 不适用 | 可能适用 | 非常适用 | 简单说明 |
---|---|---|---|---|
要求系统可靠运行 | √ | TDengine 的系统架构非常稳定可靠,日常维护也简单便捷,对维护人员的要求简洁明了,最大程度上杜绝人为错误和事故。 | ||
要求运维学习成本可控 | √ | 同上。 | ||
要求市场有大量人才储备 | √ | TDengine 作为新一代产品,目前人才市场里面有经验的人员还有限。但是学习成本低,我们作为厂家也提供运维的培训和辅助服务。 |
TDengine目前2.0版服务器仅能在Linux系统上安装和运行,后续会支持Windows、macOS等系统。客户端可以在Windows或Linux上安装和运行。任何OS的应用也可以选择RESTful接口连接服务器taosd。CPU支持X64/ARM64/MIPS64/Alpha64,后续会支持ARM32、RISC-V等CPU架构。用户可根据需求选择通过源码或者安装包来安装。本快速指南仅适用于通过源码安装。
sudo apt-get install -y gcc cmake build-essential git
sudo apt-get install -y gcc cmake3 build-essential git binutils-2.26
export PATH=/usr/lib/binutils-2.26/bin:$PATH
编译或打包 JDBC 驱动源码,需安装 Java JDK 8 或以上版本和 Apache Maven 2.7 或以上版本。
安装 OpenJDK 8:
sudo apt-get install -y openjdk-8-jdk
安装 Apache Maven:
sudo apt-get install -y maven
sudo yum install -y gcc gcc-c++ make cmake git
安装 OpenJDK 8:
sudo yum install -y java-1.8.0-openjdk
安装 Apache Maven:
sudo yum install -y maven
sudo dnf install -y gcc gcc-c++ make cmake epel-release git
安装 OpenJDK 8:
sudo dnf install -y java-1.8.0-openjdk
安装 Apache Maven:
sudo dnf install -y maven
首先,你需要从 GitHub 克隆源码:
git clone https://github.com/taosdata/TDengine.git
cd TDengine
Go 连接器和 Grafana 插件在其他独立仓库,如果安装它们的话,需要在 TDengine 目录下通过此命令安装:
git submodule update --init --recursive
如果使用 https 协议下载比较慢,可以通过修改 ~/.gitconfig 文件添加以下两行设置使用 ssh 协议下载。需要首先上传 ssh 密钥到 GitHub,详细方法请参考 GitHub 官方文档。
[url "git@github.com:"]
insteadOf = https://github.com/
mkdir debug && cd debug
cmake .. && cmake --build .
您可以选择使用 Jemalloc 作为内存分配器,替代默认的 glibc:
apt install autoconf
cmake .. -DJEMALLOC_ENABLED=true
在X86-64、X86、arm64、arm32 和 mips64 平台上,TDengine 生成脚本可以自动检测机器架构。也可以手动配置 CPUTYPE 参数来指定 CPU 类型,如 aarch64 或 aarch32 等。
aarch64:
cmake .. -DCPUTYPE=aarch64 && cmake --build .
aarch32:
cmake .. -DCPUTYPE=aarch32 && cmake --build .
mips64:
cmake .. -DCPUTYPE=mips64 && cmake --build .
如果你使用的是 Visual Studio 2013 版本:
打开 cmd.exe,执行 vcvarsall.bat 时,为 64 位操作系统指定“x86_amd64”,为 32 位操作系统指定“x86”。
mkdir debug && cd debug
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" < x86_amd64 | x86 >
cmake .. -G "NMake Makefiles"
nmake
如果你使用的是 Visual Studio 2019 或 2017 版本:
打开cmd.exe,执行 vcvarsall.bat 时,为 64 位操作系统指定“x64”,为 32 位操作系统指定“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
你也可以从开始菜单中找到"Visual Studio < 2019 | 2017 >"菜单项,根据你的系统选择"x64 Native Tools Command Prompt for VS < 2019 | 2017 >“或"x86 Native Tools Command Prompt for VS < 2019 | 2017 >”,打开命令行窗口,执行:
mkdir debug && cd debug
cmake .. -G "NMake Makefiles"
nmake
安装 Xcode 命令行工具和 cmake. 在 Catalina 和 Big Sur 操作系统上,需要安装 XCode 11.4+ 版本。
mkdir debug && cd debug
cmake .. && cmake --build .
生成完成后,安装 TDengine(下文给出的指令以 Linux 为例,如果是在 Windows 下,那么对应的指令会是 nmake install
):
sudo make install
用户可以在文件目录结构中了解更多在操作系统中生成的目录或文件。
安装成功后,在终端中启动 TDengine 服务:
sudo systemctl start taosd
用户可以使用 TDengine Shell 来连接 TDengine 服务,在终端中,输入:
taos
如果 TDengine Shell 连接服务成功,将会打印出欢迎消息和版本信息。如果失败,则会打印出错误消息。
如果不希望以服务方式运行 TDengine,也可以在终端中直接运行它。也即在生成完成后,执行以下命令(在 Windows 下,生成的可执行文件会带有 .exe 后缀,例如会名为 taosd.exe ):
./build/bin/taosd -c test/cfg
在另一个终端,使用 TDengine shell 连接服务器:
./build/bin/taos -c test/cfg
"-c test/cfg"指定系统配置文件所在目录。
在TDengine终端中,用户可以通过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)
参考:https://gitcode.net/taosdata/tdengine/-/blob/develop/README-CN.md
https://docs.taosdata.com/intro/