MTK迁移MySQL复合分区问题

2023年 9月 29日 64.3k 0

原作者:彭冲

  • 适用范围
  • 问题概述
  • 问题原因
  • 解决方案

适用范围

MTK 2.9.2及以下版本

问题概述

使用MTK迁移MySQL分区表到MogDB时,遇到如下报错:

MySQL-2008: MySQL Not Support SubPart Type KEY.

MySQL分区表结构如下:

CREATE TABLE t1 (
a varchar(30) NOT NULL,
b varchar(11) NOT NULL,
c datetime NOT NULL,
d varchar(100) DEFAULT NULL,
UNIQUE KEY t_uq_idx (a,d,c,b),
INDEX t_b_idx (b)
)
PARTITION BY RANGE (to_days(c))
SUBPARTITION BY KEY (b)
SUBPARTITIONS 9
(
PARTITION p20230624 VALUES LESS THAN (739060),
PARTITION p20230625 VALUES LESS THAN (739061),
PARTITION pmax VALUES LESS THAN MAXVALUE
);

问题原因

分析报错信息以及测试定位发现MySQL建表语句复合分区语法SUBPARTITION BY KEY暂不支持迁移,而简单的PARTITION BY KEY是可以迁移的。

下面的t2表MTK是可以正常迁移key分区的

CREATE TABLE t2 (
s1 char(32) PRIMARY KEY
)
PARTITION BY KEY(s1)
PARTITIONS 10;

但上面的t1表,key分区如果与其他分区(例如range分区)组合使用进行复合分区时就会出现上面的报错。

解决方案

期待MTK下一个版本解决该问题,另外如果源端key分区可以转换为hash分区,MTK是支持复合分区使用hash分区,不过必须有一列或多列包含整数值。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论