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 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
新架构 FAQ
集群部署 FAQ
SQL 查询 FAQ
MatrixGate FAQ
运维 FAQ
监控告警 FAQ
PXF FAQ
PLPython FAQ
性能 FAQ
YMatrix 基于 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;
YMatrix 提供了如下基本聚集函数:
查询 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;