HTAP 功能在使用上存在一些约束,具体的影响和解决方法如下:
约束 | 说明 |
---|
大事务 | 原因:在导数据或者增量数据同步阶段,TP 侧在一个事务中产生的 binlog 超过 2GB
影响:阻塞行存数据转换为列存数据,可能导致行列数据不一致
处理方法:需要重建所有的 AP 表 |
并发 DDL | 原因:短时间的并发 DDL,导致 shipping 节点的 MDL 死锁
影响:阻塞行存数据转换为列存数据,可能导致行列数据不一致
处理方法:需要重建所有的 AP 表 |
单行超过 64MB | 原因:RPC 有 64MB 限制,如果单行超过 64MB 无法 shipping
影响:阻塞行存数据转换为列存数据,可能导致行列数据不一致
处理方法:需要重建所有的 AP 表,并且修改单行可能超过 64MB 的 table 定义 |
Collation 隐式转换 | 原因:不支持 convert 函数
影响:无法在 AP 执行
处理方法:保持多个 'collation_%' variables 参数一致 |
主键限制 | 原因:列存本地数据布局依赖主键进行排序
影响:HTAP 的 table 如果没有主键,load 会失败
处理方法:HTAP 的 table 必须具备主键 |
建议连接只读终端查询 HTAP | 原因:避免在主节点上执行 AP 查询影响写入
影响:连接读写终端强制执行 AP 查询会报错
处理方法:请使用 HTAP 集群终端或自定义只读终端来执行 AP 查询 |