时序数据库
时序数据库
1. 常用数据库排名
db-engines网站
2. 系统属性比较
Name | ClickHouse X | TDengine X | Prometheus X | InfluxDB X | TimescaleDB X |
描述 | Column-oriented Relational DBMS powering Yandex | Time Series DBMS and big data platform | Open-source TimeSeries DBMS and monitoring system | DBMS for storing time series, events and metrics | A time series DBMS optimized for fast ingest and complex queries, based on PostgreSQL |
主数据库模型 | Relational DBMS | Time Series DBMS | Time Series DBMS | Time Series DBMS | Time Series DBMS |
辅助数据库模型 | Time Series DBMS | Relational DBMS | Spatial DBMS | Relational DBMS | |
DB-Engines Ranking Trend Chart | Score13.99Rank#44 Overall#28 Relational DBMS | Score2.40Rank#130 Overall#10 Time Series DBMS | Score7.06Rank#59 Overall#3 Time Series DBMS | Score29.44Rank#29 Overall#1 Time Series DBMS | Score4.51Rank#88 Overall#5 Time Series DBMS |
网站 | clickhouse.tech | github.com/taosdata/TDengine tdengine.com | prometheus.io | www.influxdata.com/products/influxdb-overview | www.timescale.com |
技术文档 | clickhouse.tech/docs | docs.tdengine.com | prometheus.io/docs | docs.influxdata.com/influxdb | docs.timescale.com |
开发人员 | Clickhouse Inc. | TDEngine, previously Taos Data | Timescale | ||
初始版本 | 2016 | 2019 | 2015 | 2013 | 2017 |
当前版本 | v22.8.5.29-lts, September 2022 | 3.0, August 2022 | 2.5.1, November 2022 | 2.6.0, February 2022 | |
许可证信息 | 开源 | 开源 | 开源 | 开源 | 开源 |
仅基于云服务 | no | no | no | no | no |
实现语言 | C++ | C | Go | Go | C |
运行系统平台 | FreeBSD Linux macOS | Linux Windows | Linux Windows | Linux OS X | Linux OS X Windows |
Data scheme | yes | yes | yes | schema-free | yes |
数据类型 | yes | yes | Numeric data only | Numeric data and Strings | numerics, strings, booleans, arrays, JSON blobs, geospatial dimensions, currencies, binary data, other complex data types |
XML支持 | no | no | no | no | yes |
二级索引 | yes(当使用合并树引擎时) | no | no | no | yes |
SQL | 接近ANSI SQL | 为时间序列应用程序提供扩展的标准SQL | no | 类似sql的查询语言 | yes |
API 和其他访问方法 | HTTP REST JDBC ODBC Proprietary protocol | JDBC RESTful HTTP API | RESTful HTTP/JSON API | HTTP API JSON over UDP | ADO.NET JDBC native C library ODBC streaming API for large objects |
支持的编程语言 | C# C++ Elixir Go Java JavaScript (Node.js) Kotlin Nim Perl PHP Python R Ruby Scala | C C# C++ Go Java JavaScript (Node.js) PHP Python Rust | .Net C++ Go Haskell Java JavaScript (Node.js) Python Ruby | .Net Clojure Erlang Go Haskell Java JavaScript JavaScript (Node.js) Lisp Perl PHP Python R Ruby Rust Scala | .Net C C++ Delphi Java JavaScript Perl PHP Python R Ruby Scheme Tcl |
服务器端脚本开发 | no | no | no | no | user defined functions, PL/pgSQL, PL/Tcl, PL/Perl, PL/Python, PL/Java, PL/PHP, PL/R, PL/Ruby, PL/Scheme, PL/Unix shell |
运行监控 | no | yes, via alarm monitoring | no | no | yes |
分区方式 | Sharding | Sharding | Sharding | yes, across time and space (hash partitioning) attributes | |
副本复制方法 | yes | yes | selectable replication factor | Source-replica replication with hot standby and reads on replicas | |
一致性原则 | Immediate Consistency | none | Immediate Consistency | ||
外键 | no | no | no | no | yes |
事务原则 | no | no | no | ACID | |
并发支持 | yes | yes | yes | yes | yes |
稳定性 | yes | yes | yes | yes | yes |
有使用闪存存储数据 | yes | no | yes | no | |
用户概念支持 | 用户和角色的访问权限 | yes | no | 通过用户帐户进行简单的权限管理 | 根据sql标准的细粒度访问权限 |
3. 测试报告
从图中我们可以看出,除了 ClickHouse 之外的所有数据库在写入过程中性能都比较平稳,
速度和延迟几乎保持不变。除了 Cassandra,其余数据库在读取过程中性能也比较稳定。但
是 TDengine 在写入速度和读取上表现尤其出色。且 TDengine 的写入和查询延迟均时最小
的。从写入和读取过程中的平稳性来看,TDengine 和 MySQL 在写入和读取过程中性能波
动很小,InfluxDB 的波动稍微较大,ClickHouse 写入时性能波动较大,而 Open TSDB 的性
能波动是最大的。
4. 总结
Kdb 只有商业版本,直接排除
Graphite 客户端仅支持 JavaScript (Node.js) 和Python,不太适合大多项目,直接排除
OpenTSDB 基于HBase,对于目前简单的需求来说太重了
TimescaleDB 在PostgreSQL数据库之上建立的适配器,优化了时间序列数据模型,强烈依赖PostgreSQL,不够纯粹,排除.
ClickHouse 并不是特别适合于时序数据,写入表现不够稳定。
TDengine 在时序数据上表现不错,不过接口JNi需要客户端适配,部署增加了难度,并且更容易出问题。restful性能没有那么的优秀