YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
- MPP 架构
- 镜像分布策略
- 持续聚集
- 滑动窗口
- 全文搜索
- Grafana 监控指标解读
- Prometheus 监控指标解读
- 术语表
-
工具指南
- mxaddmirrors
- mxbackup
- mxbench
- mxdeletesystem
- mxgate
- mxinitstandby
- mxmoveseg
- mxpacklogs
- mxrecover
- mxrestore
- mxshift
- mxstart
- mxstate
- mxstop
- gpconfig
- pgvector
-
数据类型
-
存储引擎
-
执行引擎
-
流计算引擎
-
灾难恢复
-
系统配置参数
- 使用说明(必读)
- 参数目录
- 文件位置参数
- 连接与认证参数
- 客户端连接默认值参数
- 错误报告和日志参数
- 资源消耗参数
- 查询调优参数
- 运行中的统计信息参数
- 自动清理参数
- 数据表参数
- 锁管理参数
- 资源管理参数
- YMatrix 数据库集群参数
- 预写式日志参数
- 复制参数
- PL/JAVA 参数
- 版本和平台兼容性参数
-
索引
-
扩展
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_SEGMENT_SET
- CREATE_SEQUENCE
- CREATE_SERVER
- CREATE_STREAM
- 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_SEGMENT_SET
- 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
常见问题(FAQ)
基本查询
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;
1. 过滤
使用WHERE子句对结果进行筛选:
-
查询读写速度均大于10的记录:
SELECT * FROM disk WHERE read > 10 AND write > 10;
2. 排序
使用ORDER BY子句选择列进行排序,LIMIT子句可以限制结果条数:
-
查询近100条数据:
SELECT * FROM disk ORDER BY time DESC LIMIT 100;
3. 聚集
MatrixDB提供了如下基本聚集函数:
- COUNT:有效值的个数
- SUM:累加和
- AVG:某个列的平均值
- MIN:某个列的最小值
- MAX:某个列的最大值
-
查询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;
4. 分组
使用GROUP BY子句按列进行分组,对于非分组列需要使用聚集函数:
-
查询每个区域和主机上的设备总量:
SELECT region, hostname, COUNT(*) FROM disk_tags GROUP BY region, hostname;
5. 连接
使用JOIN子句并用USING指定连接键来做多表连接操作:
-
查询近100条数据及其主机名:
SELECT disk_tags.hostname, disk.* FROM disk JOIN disk_tags USING (tag_id) ORDER BY disk.time DESC LIMIT 100;