DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

IoTDB


IoTDB (Internet of Things Database) is a specialized database management system for time series data generated by network of IoT devices with low computational power. It targets at workload that has high-frequency of data write, large-volume data storage, and complex analytical queries.

Source Code
https://github.com/apache/iotdb[02]
Country of Origin
CN
Start Year
2017 [11]
Project Types
Academic, Open Source
Written in
Java
Supported Languages
Python
Compatible With
Hive
Operating System
macOS
License
Apache v2

Database Entry

IoTDB


IoTDB (Internet of Things Database) is a specialized database management system for time series data generated by network of IoT devices with low computational power. It targets at workload that has high-frequency of data write, large-volume data storage, and complex analytical queries.

History[04]


IotDB is a project started in 2017 by Prof. Jianmin Wang’s group in School of Software of Tsinghua University and China’s National Engineering laboratory for Big Data Software. The project entered incubation by Apache Incubator on Nov. 18th, 2018. The project evolves from a prior project of the same group called TsFile. TsFile is a columnar storage format optimized for storing time series data. IoTDB uses TsFile as its underlying storage format.

Compression[05][06]


(elaborate) IoTDB uses different encoding method for different data types.

Concurrency Control


No transaction supported.

Data Model


Foreign Keys


Indexes


KV-Match Index for subsequence matching PISA for aggregation

Isolation Levels


Joins


Logging[07]


Physical query plans are serialized and stored as logs. Write-Ahead-Logging with only REDO records.

Query Compilation


Apache Thrift

Query Execution


Query Interface[08]


SQL-like customized query language.

Storage Architecture


Storage Model


Storage Organization[09][10]


Stored Procedures


SQL-like PREPARE statement is supported.

System Architecture


The overall IoTDB follows a client-server architecture. IoTDB client resides in the sensors(IoT devices) of the system, handling data collection and sending data to IoTDB server. Client can sync its data collected every user-configured interval with the server using Sync Tool; this allows data collected by the sensor to constantly being persisted in server, where the data can then be used for native query or shipped to other open-source platform for data analysis. Currently support single node server deployment. The group is working in progress to support shared-nothing cluster. IoTDB currently supports writing to HDFS.

Views


Citations

11 sources
  1. IoTDB Website apache.org
  2. GitHub - apache/iotdb: Apache IoTDB · GitHub github.com
  3. IoTDB Website apache.org
  4. IoTDBProposal - INCUBATOR - Apache Software Foundation apache.org
  5. IoTDB Website apache.org
  6. IoTDB Website apache.org
  7. https://github.com/apache/iotdb/blob/master/server/src/main/java/org/apache/iotdb/db/writelog/node/WriteLogNode.java#L37 github.com Dead — Check Archive
  8. IoTDB Website apache.org
  9. https://github.com/apache/iotdb/blob/master/server/src/main/java/org/apache/iotdb/db/engine/modification/Modification.java github.com Dead — Check Archive
  10. https://github.com/apache/iotdb/blob/master/server/src/main/java/org/apache/iotdb/db/engine/modification/io/ModificationWriter.java github.com Dead — Check Archive
  11. #ACEU19: Apache IoTDB: Time Series Database for Industrial IoT - YouTube youtube.com
Revision #3 Last Updated: