检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
根据字符集,字符类型如果为gbk,每个字符占用2个字节;字符类型如果为utf8,每个字符最多占用3个字节。根据转换规则,同样的字段长度,会导致GaussDB(DWS)出现字段超长的问题。 处理方法 假设MySQL字段为varchar(n),则将GaussDB(DWS)对应的字段长度设置为varchar(n*3)即可。
MySQL配置 设置MySQL配置参数可在迁移MySQL数据库脚本时自定义迁移工具的行为。 打开config文件夹中的features-mysql.properties文件,并根据实际需要设置features-mysql.properties文件中的配置参数中的参数。 表1 features-mysql
("user"); 系统表隐藏字段名作字段名 定义字段名和GaussDB(DWS)中系统表隐藏字段重名,需重新命名:包括xc_node_id,tableoid, cmax, xmax, cmin, xmin, ctid, tid;重新命名方式,字段后加_new,例如xc_node
MySQL SQL迁移 工具支持从MySQL到GaussDB(DWS)的迁移,包括模式、DML、查询、系统函数、PL/SQL等。 在LINUX中执行MySQL迁移 在Linux中执行以下命令开始迁移。用户需指定源数据库、输入和输出文件夹路径和日志路径;应用程序语言类型是SQL。
MySQL语法迁移 支持的关键词和特性 数据类型 函数和表达式 模式对象与数据定义(DDL) 数据操作语句(DML) 事务管理和数据库管理 父主题: SQL语法迁移参考
SQL语句中字段名大小写敏感问题 问题现象 某表table01中存在以大小写字母组合的名称为“ColumnA”的字段,使用SELECT语句查询该字段时,提示字段不存在,报错:column "columna" does not exist。 1 2 3 4 5 select ColumnA
字符串类型 概述 MySQL以字符单位解释字符列定义中的长度规范。这适用于 CHAR、VARCHAR和TEXT类型。DSC工具支持以下列出类型转换。 类型对照 表1 字符串类型对照表 MySQL字符串类型 MySQL INPUT GaussDB(DWS) OUTPUT CHAR CHAR[(0)]
GaussDB(DWS)字段设计规则 选择数据类型 在字段设计时,基于查询效率的考虑,一般遵循以下原则: 【建议】尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般遵循以下原则: 【建议】尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
GROUP BY转换 MySQL/ADB分组查询的时候允许查询非分组字段,不报错;DWS分组查询时只能查询分组字段和聚集函数,报错。因此补齐没有group by的查询分组字段。 输入示例 1 SELECT e.department_id, department_name, ROUND(AVG(salary)
Oracle、Teradata和MySQL语法兼容性差异 GaussDB(DWS)支持Oracle、Teradata和MySQL三种兼容模式,分别兼容Oracle、Teradata和MySQL语法,不同兼容模式下的语法行为有一些差异。 数据库兼容模型可以在创建数据库时指定(由DBCOMPA
amp(0),只有在MySQL兼容模式下才支持date类型。 为解决以上问题,需要将兼容模式修改为MySQL。GaussDB(DWS)不支持修改现有数据库的兼容模式,只能在创建数据库时指定兼容模式。GaussDB(DWS)从8.1.1集群版本开始支持MySQL兼容模式类型,可参考如下示例进行操作:
主要包括云上和云下的MySQL数据迁移,支持整库迁移或者单表迁移,本文以云下MySQL的整库迁移为例。 云下MySQL数据迁移: CDM通过公网IP访问MySQL数据库,CDM与GaussDB(DWS)在同一个VPC下,CDM分别与MySQL和DWS建立JDBC连接。 云上RDS-MySQL数据迁移:
数据库 在MySQL中,DATABASE 是一种模式对象,等同于Oracle、GaussDB(DWS)数据库的SCHEMA概念。DSC工具迁移时考虑了以下两个场景。 创建数据库 输入示例 create database IF NOT EXISTS dbname1 CHARACTER
GaussDB(DWS)字段设计规则 选择数据类型 在字段设计时,基于查询效率的考虑,一般遵循以下原则: 【建议】尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
MODIFY修改列 MySQL使用MODIFY关键字修改列数据类型、设置非空约束。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 CREATE
VARCHAR 对于ENUM的类型转换,将转换为VARCHAR类型,精度大小为枚举值中最长字段长度的4倍,并使用CHECK()函数确保输入枚举值的正确性 对于SET的类型转换,将转换为VARCHAR类型,精度大小为各枚举值字段长度与分隔符数量和的4倍。 输入示例ENUM 1 2 3 4 CREATE
源数据为MySQL线下版本,请确保网络连通。 步骤一:准备MySQL源表数据 已购买云数据库RDS的MySQL引擎(本实践以MySQL 8.0.x为例),参见购买RDS实例。 已创建源数据库rds_demo,字符集utf8mb4,且库中已存在表rds_t1和数据。 步骤二:创建DWS集群
DEFAULT alter table增加列包含not null约束时,如果无default值,在MySQL中会插入默认值,而在GaussDB(DWS)中插入到非空表时会报错,因此针对常见数据类型,alter table add column包含not null约束补充默认default值(详情见表1)。
概述 由于MySQL中的函数与表达式,在GaussDB(DWS)中不存在或者存在一定的差异,DSC工具会根据GaussDB(DWS)的支持情况做相应迁移。(兼容ADB for MySQL的语法支持) 类型对照 表1 类型对照表 MySQL/ADB函数类型 描述 MySQL INPUT