400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
快速上手
集群部署
SQL参考
工具指南
MatrixDB基于PostgreSQL开发,所以支持PostgreSQL提供的标准SELECT语句做查询,包括WHERE,GROUP BY,ORDER BY,JOIN等复杂语句。
下面以统计磁盘使用量为例,演示如何使用高级分析。
简化起见,我们要统计的磁盘信息量信息仅包括读写速度,即:read,write。
建指标表模式如下:
CREATE TABLE disk(
time timestamp with time zone,
tag_id int,
read float,
write float
)
Distributed by (tag_id);
另外创建一张disk_tags表记录磁盘相关的meta信息,包括操作系统,主机名,所属区域:
CREATE TABLE disk_tags(
tag_id serial,
os text,
hostname text,
region text
)
Distributed replicated;
使用WHERE子句对结果进行筛选:
查询读写速度均大于10的记录:
SELECT * FROM disk WHERE read > 10 AND write > 10;
使用ORDER BY子句选择列进行排序,LIMIT子句可以限制结果条数:
查询近100条数据:
SELECT * FROM disk ORDER BY time DESC LIMIT 100;
MatrixDB提供了如下基本聚集函数:
查询12小时内的数据总量:
SELECT COUNT(*) FROM disk WHERE time > NOW() - INTERVAL '12 hours';
查询tag_id为1的设备的最大读写量:
SELECT MAX(read), MAX(write) FROM disk WHERE tag_id = 1;
使用GROUP BY子句按列进行分组,对于非分组列需要使用聚集函数:
查询每个区域和主机上的设备总量:
SELECT region, hostname, COUNT(*) FROM disk_tags GROUP BY region, hostname;
使用JOIN子句并用USING指定连接键来做多表连接操作:
查询近100条数据及其主机名:
SELECT disk_tags.hostname, disk.* FROM disk JOIN disk_tags USING (tag_id) ORDER BY disk.time DESC LIMIT 100;