检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
sid, asf); 如果数据中包含一些特殊字符,比如分隔符、转义符等,建议用引号扩起来,通过OPTIONALLY ENCLOSED BY '"'指定。 示例: 下面的一段数据中包含了分隔符(,)则需要用引号括起来。 "aab,,,bba,ddd" 如果数据中包含了引号字符,则上述方法
如何处理数据迁移过程中自增列报错:主键重复 重新设置自增主键的初始值为大于当前已有数据的最大值,执行如下语句: ALTER SEQUENCE 库名.SEQ名 START WITH 新初始值 父主题: DDM使用类
如何处理表中存在主键重复的数据 场景 DDM实例的逻辑表中已存在主键数据类型边界值的记录,如果插入的数据超过主键数据类型的范围,表中会出现主键重复的数据。 处理方法 登录云服务管理控制台。 在RDS for MySQL的“实例管理”页面,查找DDM实例对应的RDS for MySQL实例,单击目标RDS
JOIN或RIGHT JOIN,建议使用INNER。 在使用LEFT或RIGHT JOIN时,ON会优先执行,WHERE条件在最后执行,所以在使用过程中,条件尽可能在ON语句中判断,减少WHERE的执行。 尽量少用子查询,改用JOIN,避免大表全表扫描。 父主题: SQL语法类
正则匹配:禁止在对应逻辑库执行含有该正则表达式的SQL语句。 配置的黑名单SQL之间以英文分号隔开,前缀匹配、全量匹配、正则匹配中的SQL语句大小分别不超过1KB。 如果在配置SQL黑名单弹窗中清除之前编辑的前缀匹配与全量匹配中的SQL语句,并单击“确定”,则表示清空之前配置的SQL黑名单。 父主题: 逻辑库管理
使用限制 不支持触发器。 不支持临时表。 不支持DO语句。 不支持外键关联。 不支持RESET语句。 不支持FLUSH语句。 不支持BINLOG语句。 不支持HANDLER语句。 不支持show warnings。 不支持 ‘:=’ 赋值运算符。 暂不支持<=>运算符。 暂不支持'IS
确认迁移执行结果 操作步骤 待迁移任务结束后,可登录DDM实例查看数据迁移结果。确保DDM实例数据与源数据库数据一致。 图1 查看user_test表数据 图2 查看address_test表数据 执行以下命令查看表数据分布情况。广播表各分片数据一致,拆分表数据会按照拆分算法分布在选取的分片中。
单击左侧的服务列表图标,选择“数据库 > 分布式数据库中间件 DDM”,进入DDM管理控制台。 选择DDM实例,单击迁移的目标实例的操作列的“登录”。 在弹出的对话框中输入密码,单击“测试连接”检查。 连接成功后单击“登录”。 查看并确认目标库名和表名等,确认相关数据是否迁移完成。 父主题: 通过数据复制服务(DRS)将RDS
DDM如何进行分片 在分布式数据库中,可以通过分片存储方式,轻松解决大数据量单表容量达到单机数据库存储上限的瓶颈,因此创建逻辑库和逻辑表时,需要根据实际情况确定逻辑表是否进行分片以及逻辑表的分片规则。 分片存储后,需要尽量避免跨库JOIN操作带来的性能与资源消耗问题。 逻辑表是否分片
Range算法 适用场景 适用于范围类操作较多的场景。在SQL查询条件中,使用“>”、“<”、“BETWEEN ... AND ...”之类运算符相对较多。 使用说明 拆分键的类型只支持整型类型、日期类型和日期函数结合,如果使用日期函数,拆分键的数据类型必须是date、datetime、timestamp其一。
迁移介绍 数据迁移指将原有数据库中的数据迁移到DDM服务中,或因为业务使用需要,将DDM服务的数据导出到其他数据库系统中使用。您可以使用MySQL官方工具mysqldump进行数据全量导出,当您需要全量迁移+增量迁移时,建议您使用数据复制服务(Data Replication Service,简称DRS)服务。
登录分布式数据库中间件控制台。 在实例管理列表中单击“实例名称”,默认进入“基本信息页”。 在“节点信息”模块,单击“创建组”。 在创建组页面,设置组信息。 图1 创建组 表1 参数说明 参数名称 说明 组名 必须以字母开头,可以包含字母、数字、中划线,不能包含其他的特殊字符。 组角色
通过DDM对RDS for MySQL实例进行分库分表 方案概述 RDS for MySQL准备 DDM准备 创建DRS迁移任务
通过HINT指定分片直接执行SQL DDM提供HINT在一个或多个分片上执行SQL语句。 HINT支持以下两种格式: 一个分片上执行SQL:/*+db=<physical_db_name>*/ <your query>; 多个分片上执行SQL:/*+db={<physical_db_name1>
创建逻辑表。 创建逻辑表结构请与2中导出的表结构保持一致,把源表映射到目标DDM实例逻辑表,明确对应表结构和表数据的迁移策略,如表2所示。 创建前可先通过SQL语句:show create table {TABLE_NAME}查看自建MySQL中数据表结构。 表2 表迁移策略 逻辑库类型
自定义HINT跳过执行计划缓存 DDM提供HINT来控制SELECT语句是否跳过缓存的执行计划。 HINT的格式为: /*!GAUSS:skip_plancache=flag */ 其中flag可以是true或者false,true代表跳过执行计划缓存,false代表不跳过。 目前只支持SELECT语句。
指定参数where条件来限定每批的记录数。 导入DDM只支持导入的SQL文本文件含有标准的DML插入语句。 评估应用程序SQL语句在DDM中的兼容性。 迁移前需要收集相关信息,帮助您更好的完成迁移,详细信息如表2所示。 表2 迁移前信息收集 迁移源/目标 信息项 源RDS实例 RDS实例连接地址
方案概述 场景描述 本实践主要介绍如何通过数据复制服务(DRS)将不同Region的RDS for MySQL的数据迁移到DDM实例单库中,包含了如何在华为云创建RDS for MySQL、DDM实例,如何通过VPN网络进行数据迁移等内容。 前提条件 拥有华为账号。 账户余额大于等于0元。
HASH算法 适用场景 适用于需要将数据均匀分布的场景对数据进行拆分的场景,在SQL查询条件中,使用“=”、“IN”之类运算符相对较多。 使用说明 拆分键的数据类型必须是整数类型(INT, INTEGER, BIGINT, MEDIUMINT, SMALLINT, TINYINT
DDM事务模型 因为DDM中的表一般都做了分库分表,使得这些表中的数据可能分布在很多个RDS实例上的不同数据库分片内。在DDM中一个事务中对各个逻辑表的增删改查很有可能实际发生在多个RDS实例上的不同数据库分片上,每个RDS实例上同一数据库分片内所发生的对分片内数据表的一系列操作