TDengine is a highly efficient platform to store, query, and analyze time-series data. It works like a relational database, but you are strongly suggested to read through the following documentation before you experience it.

Getting Started

Data Model and Architecture

  • Data Model: relational database model, but one table for one device with static tags
  • Architecture: Management Module, Data Module, Client Module
  • Writing Process: records recieved are written to WAL, cache, then ack is sent back to client
  • Data Storage: records are sharded in the time range, and stored column by column


  • Data Types: support timestamp, int, float, double, binary, nchar, bool, and other types
  • Database Management: add, drop, check databases
  • Table Management: add, drop, check, alter tables
  • Inserting Records: insert one or more records into tables, historical records can be imported
  • Data Query: query data with time range and filter conditions, support limit/offset
  • SQL Functions: support aggregation, selector, transformation functions
  • Downsampling: aggregate data in successive time windows, support interpolation

Super Table

Advanced Features

  • Continuous Query: query executed by TDengine periodically with a sliding window
  • Publisher/Subscriber: subscribe to the newly arrived data like a typical messaging system
  • Caching: the newly arrived data of each device/table will always be cached


  • C/C++ Connector: primary method to connect to the server through libtaos client library
  • Java Connector: driver for connecting to the server from Java applications using the JDBC API
  • Python Connector: driver for connecting to the server from Python applications
  • RESTful Connector: a simple way to interact with TDengine via HTTP
  • Go Connector: driver for connecting to the server from Go applications
  • Node.js Connector: driver for connecting to the server from node applications

Connections with Other Tools

  • Telegraf: pass the collected DevOps metrics to TDengine
  • Grafana: query the data saved in TDengine and visualize them
  • Matlab: access TDengine server from Matlab via JDBC
  • R: access TDengine server from R via JDBC


More on System Architecture

Performance: TDengine vs others

More on IoT Big Data

Tutorials & FAQ

  • FAQ: a list of frequently asked questions and answers
  • Use cases: a few typical cases to explain how to use TDengine in IoT platform