IoTDB supports two time-series data models (SQL dialects), both managing devices and measurement points:
Each dialect comes with its own SQL syntax and query patterns tailored to its data model.
Schema refers to the metadata structure of the database, which can follow either a tree or table format. It includes definitions such as measurement point names, data types, and storage configurations.
A device corresponds to a physical device in a real-world scenario, typically associated with multiple measurement points.
Also referred to as: physical quantity, time series, timeline, point, signal, metric, measurement value, etc. A measurement point is a time series consisting of multiple data points arranged in ascending timestamp order. It typically represents a collection point that periodically gathers physical quantities from its environment.
Encoding is a compression technique that represents data in binary form, improving storage efficiency. IoTDB supports multiple encoding methods for different types of data. For details, refer to: Compression and Encoding 。
After encoding, IoTDB applies additional compression techniques to further reduce data size and improve storage efficiency. Various compression algorithms are supported. For details, refer to: Compression and Encoding。
IoTDB supports distributed deployments, typically in a 3C3D cluster model (3 ConfigNodes, 3 DataNodes), as illustrated below:
Below is an introduction to these concepts.
An IoTDB cluster consists of three types of nodes, each with distinct responsibilities:
IoTDB divides schema and data into Regions, which are managed by DataNodes.
For more details, see Cluster Data Partitioning
Replica groups ensure high availability by maintaining multiple copies of schema and data. The recommended replication configurations are:
| Category | Configuration Item | Standalone Recommended | Cluster Recommended |
|---|---|---|---|
| Metadata | schema_replication_factor | 1 | 3 |
| Data | data_replication_factor | 1 | 2 |
IoTDB has two operation modes: standalone mode and cluster mode.
An IoTDB standalone instance includes 1 ConfigNode and 1 DataNode, referred to as 1C1D.
An IoTDB cluster instance consists of 3 ConfigNodes and no fewer than 3 DataNodes, typically 3 DataNodes, referred to as 3C3D. In the event of partial node failures, the remaining nodes can still provide services, ensuring high availability of the database service, and the database performance can be improved with the addition of nodes.
| Dimension | Stand-Alone Mode | Cluster Mode |
|---|---|---|
| Applicable Scenario | Edge deployment, low requirement for high availability | High-availability business, disaster recovery scenarios, etc. |
| Number of Machines Required | 1 | ≥3 |
| Security and Reliability | Cannot tolerate single-point failure | High, can tolerate single-point failure |
| Scalability | Scalable by adding DataNodes to improve performance | Scalable by adding DataNodes to improve performance |
| Performance | Scalable with the number of DataNodes | Scalable with the number of DataNodes |