开发指南

开发一个应用,如果你准备采用TDengine作为时序数据处理的工具,那么有如下几个事情要做:

  1. 确定应用到TDengine的链接方式。无论你使用何种编程语言,你总可以使用REST接口, 但也可以使用每种编程语言独有的连接器方便的进行链接。
  2. 根据自己的应用场景,确定数据模型。根据数据特征,决定建立一个还是多个库;分清静态标签、采集量,建立正确的超级表,建立子表。
  3. 决定插入数据的方式。TDengine支持使用标准的SQL写入,但同时也支持schemaless模式写入,这样不用手工建表,可以将数据直接写入。
  4. 根据业务要求,看需要撰写哪些SQL查询语句。
  5. 如果你要基于时序数据做实时的统计分析,包括各种监测看板,那么建议你采用TDengine的连续查询功能,而不用上线Spark, Flink等复杂的流式计算系统。
  6. 如果你的应用有模块需要消费插入的数据,希望有新的数据插入时,就能获取通知,那么建议你采用TDengine提供的数据订阅功能,而无需专门部署Kafka或其他消息队列软件。
  7. 在很多场景下(如车辆管理),应用需要获取每个数据采集点的最新状态,那么建议你采用TDengine的cache功能,而不用单独部署Redis等缓存软件。
  8. 如果你发现TDengine的函数无法满足你的要求,那么你可以使用用户自定义函数来解决问题。

本部分内容就是按照上述的顺序组织的。为便于理解,TDengine为每个功能为每个支持的编程语言都提供了示例代码。如果你希望深入了解SQL的使用,需要查看SQL手册。如果想更深入地了解各连接器的使用,请阅读连接器参考指南。如果还希望想将TDengine与第三方系统集成起来,比如Grafana, 请参考第三方工具

如果在开发过程中遇到任何问题,请点击每个页面下方的“反馈问题”, 在GitHub上直接递交issue。

📄️ 建立连接本节介绍如何使用连接器建立与 TDengine 的连接,给出连接器安装、连接的简单说明。

📄️ 数据建模TDengine 采用类关系型数据模型,需要建库、建表。因此对于一个具体的应用场景,需要考虑库、超级表和普通表的设计。本节不讨论细致的语法规则,只介绍概念。

🗃️ 写入数据5 items

📄️ 查询数据主要查询功能,通过连接器执行同步查询和异步查询

📄️ 连续查询连续查询是一个按照预设频率自动执行的查询功能,提供按照时间窗口的聚合查询能力,是一种简化的时间驱动流式计算。

📄️ 数据订阅轻量级的数据订阅与推送服务。连续写入到 TDengine 中的时序数据能够被自动推送到订阅客户端。

📄️ 缓存提供写驱动的缓存管理机制,将每个表最近写入的一条记录持续保存在缓存中,可以提供高性能的最近状态查询。

📄️ 用户定义函数支持用户编码的聚合函数和标量函数,在查询中嵌入并使用用户定义函数,拓展查询的能力和功能。