TDengine Documentation

TDengine is a highly efficient platform to store, query, and analyze time-series data. It is specially designed and optimized for IoT, Internet of Vehicles, Industrial IoT, IT Infrastructure and Application Monitoring, etc. It works like a relational database, such as MySQL, but you are strongly encouraged to read through the following documentation before you experience it, especially the Data Model and Data Modeling sections. In addition to this document, you should also download and read our technology white paper. For the older TDengine version 1.6 documentation, please click here.

TDengine Introduction

Getting Started

Overall Architecture

Data Modeling


  • Data Types: support timestamp, int, float, nchar, bool, and other types
  • Database Management: add, drop, check databases
  • Table Management: add, drop, check, alter tables
  • STable Management: add, drop, check, alter STables
  • Tag Management: add, drop, alter tags
  • Inserting Records: support to write single/multiple items per table, multiple items across tables, and support to write historical data
  • Data Query: support time segment, value filtering, sorting, manual paging of query results, etc
  • SQL Function: support various aggregation functions, selection functions, and calculation functions, such as avg, min, diff, etc
  • Time Dimensions Aggregation: aggregate and reduce the dimension after cutting table data by time segment
  • Boundary Restrictions: restrictions for the library, table, SQL, and others
  • Error Code: TDengine 2.0 error codes and corresponding decimal codes

Efficient Data Ingestion

  • SQL Ingestion: write one or multiple records into one or multiple tables via SQL insert command
  • Prometheus Ingestion: Configure Prometheus to write data directly without any code
  • Telegraf Ingestion: Configure Telegraf to write collected data directly without any code
  • EMQ X Broker: Configure EMQ X to write MQTT data directly without any code
  • HiveMQ Broker: Configure HiveMQ to write MQTT data directly without any code

Efficient Data Querying

Advanced Features

  • Continuous Query: Based on sliding windows, the data stream is automatically queried and calculated at regular intervals
  • Data Publisher/Subscriber: subscribe to the newly arrived data like a typical messaging system
  • Cache: the newly arrived data of each device/table will always be cached
  • Alarm Monitoring: automatically monitor out-of-threshold data, and actively push it based-on configuration rules


  • C/C++ Connector: primary method to connect to TDengine server through libtaos client library
  • [Java Connector(JDBC)]: driver for connecting to the server from Java applications using the JDBC API
  • Python Connector: driver for connecting to TDengine server from Python applications
  • RESTful Connector: a simple way to interact with TDengine via HTTP
  • Go Connector: driver for connecting to TDengine server from Go applications
  • Node.js Connector: driver for connecting to TDengine server from Node.js applications
  • C# Connector: driver for connecting to TDengine server from C# applications
  • Windows Client: compile your own Windows client, which is required by various connectors on the Windows environment

Connections with Other Tools

  • Grafana: query the data saved in TDengine and provide visualization
  • MATLAB: access data stored in TDengine server via JDBC configured within MATLAB
  • R: access data stored in TDengine server via JDBC configured within R
  • IDEA Database: use TDengine visually through IDEA Database Management Tool

Installation and Management of TDengine Cluster

TDengine Operation and Maintenance

TDengine Technical Design

  • [System Module]: taosd functions and modules partitioning
  • [Data Replication]: support real-time synchronous/asynchronous replication, to ensure high-availability of the system
  • Technical Blog: More technical analysis and architecture design articles

Common Tools

Performance: TDengine vs Others

More on IoT Big Data