检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
RDS for MySQL准备 此操作默认新的RDS for MySQL实例已创建成功。如需创建实例,请参考购买RDS for MySQL实例。 父主题: 通过DDM对RDS for MySQL实例进行分库分表
创建DRS迁移任务 创建DRS迁移任务 确认迁移执行结果 父主题: 通过DDM对RDS for MySQL实例进行分库分表
创建DDM账号 操作步骤 登录华为云控制台。 单击管理控制台左上角的,选择区域“华北-北京四”。 单击左侧的服务列表图标,选择“数据库 > 分布式数据库中间件 DDM”,进入DDM管理控制台。 在实例管理页面,单击实例实例名称,进入实例基本信息页面。 单击左侧导航栏的“账号管理”页签
创建DDM实例 操作步骤 登录华为云控制台。 单击管理控制台左上角的,选择区域“华北-北京四”。 单击左侧的服务列表图标,选择“数据库 > 分布式数据库中间件 DDM”,进入DDM管理控制台。 在实例管理页面,单击页面右上方的“购买数据库中间件实例”。 按需设置实例相关信息和规格。
创建DRS迁移任务 本章节介绍如何创建DRS迁移任务,将源RDS for MySQL实例数据迁移到新DDM实例。 操作步骤 登录华为云控制台。 单击管理控制台左上角的,选择区域“华北-北京四”。 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。 单击“创建迁移服务
确认迁移执行结果 操作步骤 待迁移任务结束后,可登录DDM实例查看数据迁移结果。确保DDM实例数据与源数据库数据一致。 图1 查看user_test表数据 图2 查看address_test表数据 执行以下命令查看表数据分布情况。广播表各分片数据一致,拆分表数据会按照拆分算法分布在选取的分片中
创建逻辑库并关联RDS for MySQL实例 操作步骤 登录华为云控制台。 单击管理控制台左上角的,选择区域“华北-北京四”。 单击左侧的服务列表图标,选择“数据库 > 分布式数据库中间件 DDM”,进入DDM管理控制台。 在实例管理页面,单击实例对应操作栏的“创建逻辑库”。 逻辑库模式选择拆分库
mysql_table_data.sql 生成的表数据文件名。 每次导出不同表时文件名不同。 建议以“逻辑库名”+“_”+“逻辑表名”+“_”+“data”格式命名,以免数据被覆盖。如mysql_table_data.sql。
表1 分布式数据库中间件 DDM流水账单 产品类型 分布式数据库中间件 DDM 产品 分布式数据库中间件集群 计费模式 按需 消费时间 2023-04-08 10:09:06 ~ 2023-04-08 12:09:06时段计费系统将生成3笔流水账单,对应每一个计费周期,分别如下:
DELETE DELETE指令为用于删除表中符合条件的行。 常用语法 DELETE [IGNORE] FROM tbl_name [WHERE where_condition] 语法限制 WHERE条件中不支持子查询(相关子查询和非相关子查询)。 不支持在多表删除中删除广播表中的数据
补充说明 HINT对于所有的单表以及全局表失效,只对各种分表起作用。 父主题: TRUNCATE TABLE
DD按日期哈希 适用场景 DD适用于按日期的天数进行分表,分表的表数就是日期的天数。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值的日期的天数进行取余运算并得到分表下标
DDM实例管理 表1 DDM实例管理 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Rroject) 购买DDM 实例(按需) 购买DDM 实例(包周期) POST /v1/{project_id}/instances ddm:instance
WEEK按星期哈希 适用场景 WEEK适用于按周数的日期目进行分表,分表的表名的下标分别对应一周中的各个日期(星期一到星期天)。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值所对应的一周之中的日期进行取余运算并得到分表下标
SHOW RULE 命令格式: 查看数据库下每一个逻辑表的拆分情况。 show rule 查看数据库下指定逻辑表的拆分情况。 show rule from <table_name> 输出详解: TABLE_NAME :表名。 BROADCAST:是否为广播表(0:否,1:是)。 DB_PARTITION_KEY
HINT-TABLE 命令格式: /*+table=<physical_table_name>*/ TRUNCATE TABLE <table_name> 描述: 删除当前库下表名<physical_table_name>的所有物理表的数据,其余分表不受影响。 删除前示例: 删除后示例
状态码 正常状态 正常状态返回码如表1所示。 表1 正常状态返回码 状态码 编码 错误码说明 200 OK 处理正常。 202 OK 异步请求成功提交。 异常状态 异常状态返回码如表2所示。 表2 异常状态返回码 状态码 编码 错误码说明 400 Bad Request 服务器未能处理请求
DDM是否支持分布式JOIN DDM支持分布式JOIN。 表设计时,增加字段冗余 支持跨分片的JOIN,主要实现的方式有三种:广播表,ER分片和ShareJoin。 DDM目前禁止多个表的跨库update和delete。 父主题: SQL语法类
HINT-DB/TABLE 命令格式: /*+db=<physical_db_name>,table=<physical_table_name>*/ TRUNCATE TABLE <table_name> 描述: 删除库名为<physical_db_name>下表名为<physical_table_name
MMDD按月日哈希 适用场景 MMDD适用于按一年的天数(即一年中日期)进行分表,分表的表名的下标就是一年中的第几天,一年最多366天。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值所对应的日期在一年中对应的天数