文档中心MogDBMogDB StackUqbar

文档:v2.0

支持的版本:

MTK Parameter

Parameter

noSupportPartTabToNormalTab

类型: bool

描述: 把目标端不支持的分区表转换普通表,把目标端不支持的子分区表属性自动移除. 支持的检查分区表方法

  1. 分区类型是否支持
  2. 子分区类型是否支持
  3. interval分区类型. 针对MogDB/openGauss
  4. 分区键包含虚拟列. 针对MogDB/openGauss

ignoreDB2PartInclusive

类型: bool

描述: 是否忽略DB2分区键值ENDING的包含属性

如下面DB2建表语句分区语法中ENDING包含属性INCLUSIVE定义则此分区包含20180101数据

但是在openGauss数据库中范围分区不支持包含属性只能less than

这种情况下会遇到报错 the part DATAMIN is included high value for db2 inclusive option 可以配置此参数忽略上面错误

CREATE TABLE MTK1.TABLE_TEST_HAOTD
(
    DATADATE VARCHAR(8) NOT NULL,
    DATA1    VARCHAR(10),
    DATA2    VARCHAR(10)
) PARTITION BY RANGE(DATADATE) (
  PART "DATAMIN" STARTING(MINVALUE) ENDING('20180101') INCLUSIVE ,
  PART "P20180101" STARTING('20180101') ENDING('20180102') INCLUSIVE
)

默认值: false

igNotSupportIntervalPart

类型: bool

描述: 支持忽略部分不支持的interval分区属性。

默认值: false

ignoreTabPartition

类型: bool

描述: 支持迁移到目标端数据库忽略分区语法.

如Oracle分区表迁移到MySQL变成非分区表

Oracle

CREATE TABLE "MTK"."TAB_PART_LIST" (
  "DEPTNO" NUMBER(10,0) NOT NULL,
  "DEPTNAME" VARCHAR2(20 BYTE),
  "QUARTERLY_SALES" NUMBER(10,2),
  "STATE" VARCHAR2(2 BYTE)
) PARTITION BY LIST ("STATE")
(
  PARTITION "Q1_NORTHWEST" VALUES ('OR', 'WA') TABLESPACE "USERS",
  PARTITION "Q1_SOUTHWEST" VALUES ('AZ', 'CA', 'NM') TABLESPACE "USERS",
  PARTITION "Q1_NORTHEAST" VALUES ('NY', 'VT', 'NJ') TABLESPACE "USERS",
  PARTITION "Q1_SOUTHEAST" VALUES ('FL', 'GA') TABLESPACE "USERS",
  PARTITION "Q1_NORTHCENT" VALUES ('MN', 'WI') TABLESPACE "USERS",
  PARTITION "Q1_SOUTHCENT" VALUES ('OK', 'TX') TABLESPACE "USERS"
)

MySQL

CREATE TABLE mtk.tab_part_list (
  deptno BIGINT NOT NULL,
  deptname VARCHAR(20),
  quarterly_sales DECIMAL(10,2),
  state VARCHAR(2)
)

默认值: false

ignoreTabPartitionTabList

类型: []string

描述: ignoreTabPartition白名单

参数区分大小写

  • "Schema1.TABLE_1" 迁移对象中Schema1下的TABLE_1的表
  • "Schema1.TABLE*" 迁移对象中Schema1下的TABLE*的表

默认值: null

示例:

ignore Table Partition Table List Example

{
  "ignoreTabPartitionTabList": [
    "SCHEMA1.TABLE_1",
    "SCHEMA1.TABLE_DUTY_LOG*",
    "SCHEMA1.^TABLE_DUTY_LOG.*$"
  ]
}

新增于: v2.8.0

autoAddMaxvaluePart

类型: bool

描述: 参数autoAddMaxvaluePart允许不存在maxvalue分区的分区表自动添加maxvalue分区.

如 DB2分区表迁移到openGauss

DB2允许定义minvalue分区,openGauss不支持.

DB2在定义minvalue分区未定义maxvalue分区时null值可以插入到minvalue分区,openGauss会报错.

但是openGauss分区允许null插入到maxvalue分区. 可通过此参数开启自动添加maxvalue分区

DB2未定义maxvalue分区

CREATE TABLE MTK1.PART_TAB_TEST02 (
 ID INTEGER NOT NULL,
 SALES_PERSON VARCHAR(50),
 REGION VARCHAR(50),
 SALES_DATE DATE
)
PARTITION BY RANGE(SALES_DATE)
(
 PART PJAN STARTING('2017-01-01') ENDING('2017-03-31') INCLUSIVE IN USERSPACE1,
 PART PFEB STARTING('2017-04-01') ENDING('2017-07-31') INCLUSIVE IN USERSPACE1,
 PART PMAR STARTING('2017-08-01') ENDING('2017-12-31') INCLUSIVE IN USERSPACE1,
 PART PAPR STARTING('2018-01-01') ENDING('2018-12-31') INCLUSIVE IN USERSPACE1
) ORGANIZE BY ROW

openGauss

CREATE TABLE DB2_MTK.PART_TAB_TEST02 (
 ID INTEGER NOT NULL,
 SALES_PERSON VARCHAR(50),
 REGION VARCHAR(50),
 SALES_DATE DATE
) PARTITION BY RANGE (SALES_DATE)
(
    PARTITION PJAN VALUES LESS THAN('2017-03-31'),
    PARTITION PFEB VALUES LESS THAN('2017-07-31'),
    PARTITION PMAR VALUES LESS THAN('2017-12-31'),
    PARTITION PAPR VALUES LESS THAN('2018-12-31'),
    PARTITION PART_MAXVALUE VALUES LESS THAN(MAXVALUE)
)

新增于: v0.0.36

Copyright © 2011-2024 www.enmotech.com All rights reserved.