时序数据库CirroData-TimeS是北京东方国信科技股份有限公司面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品。它不依赖于任何第三方软件,CirroData-TimeS是吸取众多传统关系型数据库、NoSQL数据库等软件的优点之后自主研发的产品,在时序空间大数据处理上,有着独到的优势。历时一年多的核心研发,CirroData-TimeS 0.12.1版本重磅发布!本文对CirroData-TimeS 0.12.1的最新功能、架构、分布式存储和性能对比进行了详细介绍。
一、完备的分布式时序数据库
CirroData-TimeS是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。CirroData-TimeS覆盖了对时序数据的采集、存储、查询、分析以及可视化等全生命周期的数据管理功能。
最新版的CirroData-TimeS 0.12.1具有以下特性:
1、丰富的功能特性:
- 类SQL查询语句,CirroData-TimeS支持类SQL查询语句,对于熟悉SQL使用的用户来说,学习成本较低,使用友好;
- 支持基于时间范围的批量数据查询、分组查询、值过滤等查询;
- 提供常用的周期聚合函数,如avg,min,max,sum。使用预处理能有效的降低采样聚合函数查询对系统的瞬时查询压力,实现数据计算一次多次查询,同时也能有效的降低查询延迟,提高用户体验;
- 提供多种语言的SDK,支持Java,C++,C#,Python,Go,JDBC等主流的SDK,方便用户使用;
- 支持自定义数据存储周期,过期数据自动删除等功能;
- 多种数据编码压缩方式,支持PLAIN编码、二阶差分编码(TS_2DIFF)、游程编码(RLE)、GORILLA编码;支持SNAPPY压缩、LZ4压缩、GZIP压缩、SDT压缩等多种压缩方式;
- 支持用户自定义函数,方便用户二次开发;
- 支持对数据库、表、用户等权限管理,从而为用户提供对于数据的权限管理功能,保障数据的安全。
- 支持高可用、数据多副本分布存储。
2、极致的性能体验:
- 单节点每秒千万点数据写入能力,可支持海量数据的持续写入;
- 毫秒级查询性能;
- 高压缩比,压缩比可达40倍,节省磁盘带宽。
3、完备的系统周边:
- 云端协同同步工具,同步工具是定期将本地磁盘中和新增的已持久化的TsFile文件上传至云端并加载到CirroData-TimeS的套件工具,支持云端协同;
- 强大的系统生态,CirroData-TimeS目前集成了Grafana、Hadoop、Spark、Hive、Fink、Zeppelin等组件,极大了丰富了CirroData-TimeS的场景和生态系统;
- 完善的系统工具,支持CSV数据导入导出、JMX工具、查询性能追踪工具、数字水印等;
- 支持MQTT物联网协议;
- 支持多种操作终端:SQL命令行终端,SQL Developer可视化终端等。
二、高可用分布式架构
CirroData-TimeS采用Share-Nothing的分布式架构,各个节点都是同质的,每个节点主要模块如下图所示:
单机有如下几大模块:分别为Physical Plan Generator、SQL Parser、Single Read/Write Engine以及存储文件TsFile。分布式较单机多了如下几大模块:Data Partition、Distributed Query、Distributed Write以及各个节点之间同步协议Raft Synchronization模块。
CirroData-TimeS集群搭建之后,会根据节点的ip和port和当前启动时间生成一个hash值,所有节点按照此hash值排序形成一个环形,hash值最大的节点的后面的节点就是hash值最小的节点,集群会按照配置的副本数N,从hash值最小的节点开始,依次选择N-1个节点组成一个raft组,形成一个data raft group。所有的meta节点组成一个meta raft group。
以4节点3副本为例,其会形成如下raft复制组,每个节点上面都会有N+1个复制组,N是副本数,即N个data raft group,1指的是所有节点形成一个meta raft group。