DBMS > Apache IoTDB vs. CrateDB vs. InfinityDB vs. Microsoft Azure Data Explorer vs. TimescaleDB
System Properties Comparison Apache IoTDB vs. CrateDB vs. InfinityDB vs. Microsoft Azure Data Explorer vs. TimescaleDB
Editorial information provided by DB-Engines | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name | Apache IoTDB Xexclude from comparison | CrateDB Xexclude from comparison | InfinityDB Xexclude from comparison | Microsoft Azure Data Explorer Xexclude from comparison | TimescaleDB Xexclude from comparison | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Description | An IoT native database with high performance for data management and analysis, deployable on the edge and the cloud and integrated with Hadoop, Spark and Flink | Distributed Database based on Lucene | A Java embedded Key-Value Store which extends the Java Map interface | Fully managed big data interactive analytics platform | A time series DBMS optimized for fast ingest and complex queries, based on PostgreSQL | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Primary database model | Time Series DBMS | Document store Spatial DBMS Search engine Time Series DBMS Vector DBMS | Key-value store | Relational DBMS column oriented | Time Series DBMS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Secondary database models | Relational DBMS | Document store If a column is of type dynamic docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types/dynamic then it's possible to add arbitrary JSON documents in this cell Event Store this is the general usage pattern at Microsoft. Billing, Logs, Telemetry events are stored in ADX and the state of an individual entity is defined by the arg_max(timestamps) Spatial DBMS Search engine support for complex search expressions docs.microsoft.com/en-us/azure/kusto/query/parseoperator FTS, Geospatial docs.microsoft.com/en-us/azure/kusto/query/geo-point-to-geohash-function distributed search -> ADX acts as a distributed search engine Time Series DBMS see docs.microsoft.com/en-us/azure/data-explorer/time-series-analysis | Relational DBMS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Website | iotdb.apache.org | cratedb.com | boilerbay.com | azure.microsoft.com/services/data-explorer | www.timescale.com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical documentation | iotdb.apache.org/UserGuide/Master/QuickStart/QuickStart.html | cratedb.com/docs | boilerbay.com/infinitydb/manual | docs.microsoft.com/en-us/azure/data-explorer | docs.timescale.com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Developer | Apache Software Foundation | Crate | Boiler Bay Inc. | Microsoft | Timescale | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Initial release | 2018 | 2013 | 2002 | 2019 | 2017 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Current release | 1.1.0, April 2023 | 5.8.1, August 2024 | 4.0 | cloud service with continuous releases | 2.15.0, May 2024 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
License Commercial or Open Source | Open Source Apache Version 2.0 | Open Source | commercial | commercial | Open Source Apache 2.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cloud-based only Only available as a cloud service | no | no | no | yes | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DBaaS offerings (sponsored links) Database as a Service Providers of DBaaS offerings, please contact us to be listed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Implementation language | Java | Java | Java | C | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Server operating systems | All OS with a Java VM (>= 1.8) | All Operating Systems, including Kubernetes with CrateDB Kubernetes Operator support | All OS with a Java VM | hosted | Linux OS X Windows | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Data scheme | yes | Flexible Schema (defined schema, partial schema, schema free) | yes nested virtual Java Maps, multi-value, logical ‘tuple space’ runtime Schema upgrade | Fixed schema with schema-less datatypes (dynamic) | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Typing predefined data types such as float or date | yes | yes | yes all Java primitives, Date, CLOB, BLOB, huge sparse arrays | yes bool, datetime, dynamic, guid, int, long, real, string, timespan, double: docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types | numerics, strings, booleans, arrays, JSON blobs, geospatial dimensions, currencies, binary data, other complex data types | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XML support Some form of processing data in XML format, e.g. support for XML data structures, and/or support for XPath, XQuery or XSLT. | no | no | no | yes | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Secondary indexes | yes | yes | no manual creation possible, using inversions based on multi-value capability | all fields are automatically indexed | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL Support of SQL | SQL-like query language | yes, but no triggers and constraints, and PostgreSQL compatibility | no | Kusto Query Language (KQL), SQL subset | yes full PostgreSQL SQL syntax | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
APIs and other access methods | JDBC Native API | ADO.NET JDBC ODBC PostgreSQL wire protocol Prometheus Remote Read/Write RESTful HTTP API | Access via java.util.concurrent.ConcurrentNavigableMap Interface Proprietary API to InfinityDB ItemSpace (boilerbay.com/docs/ItemSpaceDataStructures.htm) | Microsoft SQL Server communication protocol (MS-TDS) RESTful HTTP API | ADO.NET JDBC native C library ODBC streaming API for large objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Supported programming languages | C C# C++ Go Java Python Scala | .NET Erlang Go community maintained client Java JavaScript (Node.js) community maintained client Perl community maintained client PHP Python R Ruby community maintained client Scala community maintained client | Java | .Net Go Java JavaScript (Node.js) PowerShell Python R | .Net C C++ Delphi Java JDBC JavaScript Perl PHP Python R Ruby Scheme Tcl | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Server-side scripts Stored procedures | yes | user defined functions (Javascript) | no | Yes, possible languages: KQL, Python, R | user defined functions, PL/pgSQL, PL/Tcl, PL/Perl, PL/Python, PL/Java, PL/PHP, PL/R, PL/Ruby, PL/Scheme, PL/Unix shell | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Triggers | yes | no | no | yes see docs.microsoft.com/en-us/azure/kusto/management/updatepolicy | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Partitioning methods Methods for storing different data on different nodes | horizontal partitioning (by time range) + vertical partitioning (by deviceId) | Sharding | none | Sharding Implicit feature of the cloud service | yes, across time and space (hash partitioning) attributes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Replication methods Methods for redundantly storing data on multiple nodes | selectable replication methods; using Raft/IoTConsensus algorithm to ensure strong/eventual data consistency among multiple replicas | Configurable replication on table/partition-level | none | yes Implicit feature of the cloud service. Replication either local, cross-facility or geo-redundant. | Source-replica replication with hot standby and reads on replicas | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MapReduce Offers an API for user-defined Map/Reduce methods | Integration with Hadoop and Spark | no | no | Spark connector (open source): github.com/Azure/azure-kusto-spark | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Consistency concepts Methods to ensure consistency in a distributed system | Eventual Consistency Strong Consistency with Raft | Eventual Consistency Read-after-write consistency on record level | Immediate Consistency READ-COMMITTED or SERIALIZED | Eventual Consistency Immediate Consistency | Immediate Consistency | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Foreign keys Referential integrity | no | no | no manual creation possible, using inversions based on multi-value capability | no | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Transaction concepts Support to ensure data integrity after non-atomic manipulations of data | no | no unique row identifiers can be used for implementing an optimistic concurrency control strategy | ACID Optimistic locking for transactions; no isolation for bulk loads | no | ACID | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Concurrency Support for concurrent manipulation of data | yes | yes | yes | yes | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Durability Support for making data persistent | yes | yes | yes | yes | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In-memory capabilities Is there an option to define some or all structures to be held in-memory only. | yes | no | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User concepts Access control | yes | rights management via user accounts | no | Azure Active Directory Authentication | fine grained access rights according to SQL-standard | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
More information provided by the system vendorWe invite representatives of system vendors to contact us for updating and extending the system information, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Related products and servicesWe invite representatives of vendors of related products to contact us for presenting information about their offerings here. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
More resources | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apache IoTDB | CrateDB | InfinityDB | Microsoft Azure Data Explorer | TimescaleDB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Recent citations in the news | AMD EPYC 4364P & 4564P @ DDR5-4800 / DDR5-5200 vs. Intel Xeon E-2488 Review TsFile: A Standard Format for IoT Time Series Data Apache Promotes IoT Database Project Benchmarking The Performance Impact To AMD Inception Mitigations IoTDB Provides Data Management for Industrial Edge IT provided by Google News | CrateDB Appoints Jeff Olson as New CRO CrateDB Announces Availability of CrateDB on Google Cloud Marketplace Taleo Consulting and CrateDB Announce Strategic Partnership to Transform Data Management and Analytics in Financial Services markets How We Designed CrateDB as a Realtime SQL DBMS for the Internet of Things CrateDB Appoints Sergey Gerasimenko as New CTO provided by Google News | We’re retiring Azure Time Series Insights on 7 July 2024 – transition to Azure Data Explorer Update records in a Kusto Database (public preview) Announcing General Availability to migrate Virtual Network injected Azure Data Explorer Cluster to Private Endpoints Announcing General Availability of Graph Semantics in Kusto General availability: Azure Data Explorer adds new geospatial capabilities provided by Google News | General availability: Latest version of the TimeScaleDB extension on Azure Database for PostgreSQL - Flexible Server Timescale Acquires PopSQL to Bring a Modern, Collaborative SQL GUI to PostgreSQL Developers TimescaleDB Is a Vector Database Now, Too PostgreSQL is Now Faster than Pinecone, 75% Cheaper, with New Open Source Extensions TimescaleDB goes distributed; implements ‘Chunking’ over ‘Sharding’ for scaling-out provided by Google News |
Share this page