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)
基础能力说明
能力概述
能力项 | 支持状态 | 说明 |
---|---|---|
上游表存储引擎 | HEAP / MARS3 | |
上游表分布类型 | Hash 分布/随机分布/segment set 模式 | 不支持 master-only 表和 replicated 表 作为上游表 |
上游表分区 | 支持 | |
流表存储引擎 | HEAP / MARS3 / AO | |
流表的分布键 | 支持自由选择分布键,可以和上游表不同 | 最优解决方案是保持一致。尤其是对于聚集流,相同的分布键可以讲流计算本地化 |
流表的存储特征 | 流表可以进行独立的引擎、分区、分布键选择 | |
上游表多字段支持 | 支持 | 可支持上游表字段 ≥ 300 |
一表多流 | 支持 | 同级多个数据流的上游表可以是同一个。“一表”指的是同一上游表 |
扩维计算 | 支持 | 支持关联 ≥ 10 的维度表 |
聚集计算 | 支持 | 支持分组字段 ≥32;内部会合并自动多个字段的类型为一个类型,然后产生一个组合类型的字段,进行后续的聚集计算 |
上游表 DDL 支持 | 不支持 | 上游表创建索引,不会对下游流表的发挥作用。上游表删除索引,可能导致下游流无法执行 |
流表 DDL 支持 | 不支持 | 流表上暂不支持字段类的 DDL 变更,如需变更,需要重建流。后续会支持部分DDL功能。 注:如果流表的上游表也发生DDL,同样建议进行流的重建 |
流表索引 | 支持 | 流表可以独立进行索引创建和维护 |
维度过滤 | 支持 | 扩维关联计算时,支持进行维表的过滤条件添加 |
故障转移 | 支持 | segment节点发生主备切换后,流可以继续稳定工作;但有一定概率丢失切换时间点的少量事务 |
性能损耗 | 上游表的写入几乎无影响,流表的计算结果秒级以内延迟 | |
大事务能力 | 支持 | 内部优化了分批处理机制和以及事务日志解码的内存使用,对于大事务的处理更加稳定。但是相对来说,存在大事务变更的表还是慎用流处理 |
上游表历史数据处理 | 支持 | 创建流的时候,可以通过WITH DATA选项指定处理上游表的历史数据。若上游表的数据量巨大,会产生一个非常大事务,在事务结束前,会阻塞其他流的创建 |
双流 JOIN | 支持 | 支持非等值连接,上游表之间不同分布键,上游表与流可以是不同分布键 |
其他限制说明
- 流表对象不能被 JDBC 元数据获取,需要通过独立的语句进行查询
- 流对象的创建,只能是管理员用户
- 定义流的 SELETE 部分需保证不存在重名字段。尤其是聚集流定义使用聚集函数后,最好是给字段起个不同的别名,如
select avg(col1) as avg_col1
,avg(col2) as avg_col2
。也可通过CREATE STREAM 部分进行字段投影 - 尽量限制直接对流表上的数据进行 DML 操作(GUC mx_stream_internal_modify)
- 不能在流定义中使用 WITH 子句
- 聚集流使用限制:
- 流定义中,FROM STREAMING 只能出现一个。
- GROUP BY 分组键必须包含对应流表的所有分布键
- 不允许不带 GROUP BY 的全局聚集计算
- 不允许试用 HAVING 子句。或者以嵌套子查询,外层 WHERE 过滤的类 HAVING 功能
- 聚集表达式,不能再次参与其他表达式计算。如
avg(col1)+1
,但支持avg(col+1)
这种写法。
- 双流 JOIN 使用限制
- 不能在双流 JOIN 的计算中试用 GROUP BY
- 目前只能实现两个上游表的等值 INNER JOIN 计算,不能使用双流做 UNION 计算和 LEFT JOIN 计算,以及和其他非流式订阅的表关联计算
- 不能在双流 JOIN 的计算中使用 DISINTCT、SUM、MAX 等聚集函数
- 不能再双流 JOIN 的计算中使用窗口函数
- 不支持 ORDER BY 子句
- 多级流中,中间环节的流不能是聚集流。
单流计算
- 单流:指在流的定义语句中,FROM STREAMING 只声明了一个对象。如下场景也视作只声明了一个对象
CREATE TABLE t3 (id int, c1 text, ts timestamp);
CREATE STREAM s3(id, c1, ts, arrive_s3)
AS (
SELECT *, clock_timestamp()
FROM STREAMING t3 WHERE id > 7
UNION ALL
SELECT *, clock_timestamp()
FROM STREAMING t3 WHERE id < 3
WITH NO DATA
)
DISTRIBUTED BY (arrive_s3);
多流关联计算
- 多流:流定义中,FROM STREAMING 可以声明多个。用于动态跟踪两个关联表的数据,并产生新的的JOIN结果