YMatrix 文档
快速上手
SQL参考
- ABORT
- ALTER_DATABASE
- ALTER_EXTENSION
- ALTER_EXTERNAL_TABLE
- ALTER_FOREIGN_DATA_WRAPPER
- ALTER_FOREIGN_TABLE
- ALTER_FUNCTION
- ALTER_INDEX
- ALTER_RESOURCE_GROUP
- ALTER_RESOURCE_QUEUE
- ALTER_ROLE
- ALTER_RULE
- ALTER_SCHEMA
- ALTER_SEQUENCE
- ALTER_SERVER
- ALTER_TABLE
- ALTER_TABLESPACE
- ALTER_TYPE
- ALTER_USER_MAPPING
- ALTER_VIEW
- ANALYZE
- BEGIN
- CHECKPOINT
- COMMIT
- COPY
- CREATE_DATABASE
- CREATE_EXTENSION
- CREATE_EXTERNAL_TABLE
- CREATE_FOREIGN_DATA_WRAPPER
- CREATE_FOREIGN_TABLE
- CREATE_FUNCTION
- CREATE_INDEX
- CREATE_RESOURCE_GROUP
- CREATE_RESOURCE_QUEUE
- CREATE_ROLE
- CREATE_RULE
- CREATE_SCHEMA
- CREATE_SEQUENCE
- CREATE_SERVER
- CREATE_TABLE
- CREATE_TABLE_AS
- CREATE_TABLESPACE
- CREATE_TYPE
- CREATE_USER_MAPPING
- CREATE_VIEW
- DELETE
- DROP_DATABASE
- DROP_EXTENSION
- DROP_EXTERNAL_TABLE
- DROP_FOREIGN_DATA_WRAPPER
- DROP_FOREIGN_TABLE
- DROP_FUNCTION
- DROP_INDEX
- DROP_RESOURCE_GROUP
- DROP_RESOURCE_QUEUE
- DROP_ROLE
- DROP_RULE
- DROP_SCHEMA
- DROP_SEQUENCE
- DROP_SERVER
- DROP_TABLE
- DROP_TABLESPACE
- DROP_TYPE
- DROP_USER_MAPPING
- DROP_VIEW
- END
- EXPLAIN
- GRANT
- INSERT
- LOAD
- LOCK
- REINDEX
- RELEASE_SAVEPOINT
- RESET
- REVOKE
- ROLLBACK_TO_SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT INTO
- SET ROLE
- SET TRANSACTION
- SET
- SHOW
- START TRANSACTION
- TRUNCATE
- UPDATE
- VACUUM
工具指南
时序场景写入概述
数据库是存储数据的地方,完成数据表建模和存储选型,下面就要向表写入数据。 数据写入面临如下挑战:
- 数据量大,对吞吐量要求高
- 写入场景复杂,如:乱序、异频等场景
1. 数据量大
时序数据最大的特点就是数据量大,反应到实际场景中包括3个方面:
- 设备数量大:设备总量达到几十万到百万量级,并且会增长
- 采集频率高:指标需要秒级别的频率采集,部分指标可能需要10ms采集一次
- 采集指标多:以车辆网为例,每辆车包含的指标数可能有几千个
综上,在庞大的设备数量、采集指标又高频的采集密度下,产生的数据量巨大,对数据库的吞吐量是个极大的挑战。 MatrixDB开发了MatrixGate高速写入工具,通过segment节点并行接入数据的实现方式,可以达到5000万数据点/秒的写入速度。
实现方式,请参考MatrixDB - MatrixDB如何实现单机5000万数据点/秒写入速度
评测报告,请参考MatrixDB - 时序数据库插入性能评测:MatrixDB是InfluxDB的78倍
2. 写入场景复杂
在实际场景中,数据写入面临的问题不仅仅是数据量大、来源形式多样化,还包括一些复杂的异常情况,如:
- 分批上报自动合并
- 乱序、延迟上报
- 异频上报
2.1 分批上报自动合并
在某些场景中,设备在某个时刻的采集指标不会一次性的全部发送回来,而是分批次回传。多次回传的数据需要合并到一起,而不是分多条记录存放。
对于这种场景,MatrixDB提供了UPSERT语义,基于唯一约束做数据的合并。具体使用方法请参考:MatrixDB - MatrixDB 4.2新特性解读之UPSERT
2.2 乱序、延迟上报
乱序、延迟上报同样是通过upsert支持。
2.3 异频上报
所谓的异频上报,是指设备的不同指标分别按照不同的频率来采集,比如,有的是1s采集一次,有的是2s采集一次。如下图所示:
异频上报会导致在存储数据的时候,对于低频采集的指标值中会存在大量NULL。只要存在NULL列,则在MatrixDB存储中也会占用存储空间,对于Heap表,存储开销为[列数/8]字节;对于Mars表,存储开销为[RowGroup行数/8]字节。所以要根据NULL的情况综合考虑解决方案。