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. 现实世界数据形式
数据库最终存储的是数据,所以首先要知道现实世界中时序数据都包括哪些,形式是怎样的。
时序数据最基本的信息就是指标。如下所示:
27.5
27.6
27.3
......
但是只有指标还不行,因为指标只是一堆数值,这些数值又是什么含义呢?这就引出了另外一个维度,指标名。指标名即指标的含义,如:温度、转速、湿度等等。
所以,重建模后的时序数据如下所示:
温度:27.5℃
温度:27.6℃
温度:27.3℃
......
有了指标名和指标值后,又带来了新问题,即该指标是什么时间的值。因为时序数据就是基于时间序列的数据,没有时间的话是没有意义的。每个指标值都是某个时间点的采集结果,所以还要带有时间戳信息。
所以,更新后时序数据如下所示:
时间:2021-11-16 13:57:13,温度:27.5℃
时间:2021-11-16 13:57:14,温度:27.6℃
时间:2021-11-16 13:57:15,温度:27.3℃
......
有了时间,还剩最后一个问题,即该指标是谁发来的。指标数据由采集设备产生,而采集设备本身又会带有许多标识与标签,所以时序数据完整的形式如下:
气象传感器,型号1,编号0001,北京市,怀柔区,时间:2021-11-16 13:57:13,温度:27.5℃
气象传感器,型号1,编号0001,北京市,怀柔区,时间:2021-11-16 13:57:14,温度:27.6℃
气象传感器,型号1,编号0001,北京市,怀柔区,时间:2021-11-16 13:57:15,温度:27.3℃
......
2. 数据存储模型
知道了时序数据的形式后,下面需要考虑时序数据如何存储。目前,时序数据存储方案概况起来又两种:
- 关系模型
- 非关系模型
2.1 关系模型
关系模型基于传统的关系型数据库。在关系模型中,需要先定义模式,即数据表。表的模式确定下来后,修改成本较高。以刚才的时序数据为例,在关系模型中,可以建如下模式的数据表:
设备标识 | 温度 | 风力 | 湿度 | 时间戳 |
---|---|---|---|---|
气象传感器,型号1,编号0001,北京市,怀柔区 | 29.2 | 3.2 | 55 | 2021-11-16 13:57:13 |
气象传感器,型号2,编号0010,上海市,崇明区 | 21.5 | 8.5 | 35 | 2021-11-16 13:57:13 |
MatrixDB采用的是关系模型。
2.2 非关系模型
非关系模型通常使用Key-Value模式,将指标值作为Value,其他的作为Key。以刚才的时序数据为例,在非关系模型中,可以按如下方式存储:
Key | Value |
---|---|
气象传感器,型号1,编号0001,北京市,怀柔区,时间2021-11-16 13:57:13,温度 | 29.2 |
气象传感器,型号1,编号0001,北京市,怀柔区,时间2021-11-16 13:57:13,风力 | 3.2 |
气象传感器,型号1,编号0001,北京市,怀柔区,时间2021-11-16 13:57:13,湿度 | 55 |
气象传感器,型号2,编号0010,上海市,崇明区,时间2021-11-16 13:57:13,温度 | 21.5 |
气象传感器,型号2,编号0010,上海市,崇明区,时间2021-11-16 13:57:13,风力 | 8.5 |
气象传感器,型号2,编号0010,上海市,崇明区,时间2021-11-16 13:57:13,湿度 | 35 |
...... |
非关系模型的时序数据库代表产品有:OpenTSDB、InfluxDB等。
2.3 存储模型对比
关系模型与非关系模型对比起来有如下差别:
- 关系模型中不同采集指标存储在一起,便于一起分析;非关系模型则分散存储
- 非关系模型Key中存在大量冗余信息,相同时间相同设备的回传数据中,除了指标名不同外,其他都是相同的,浪费存储空间
- 关系模型模式固定,设备增加新采集指标时需要改表,成本较高;非关系模型则无此问题