检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
创建DDM实例 操作步骤 登录华为云控制台。 单击管理控制台左上角的,选择区域“华北-北京四”。 单击左侧的服务列表图标,选择“数据库 > 分布式数据库中间件 DDM”,进入DDM管理控制台。 在实例管理页面,单击页面右上方的“购买数据库中间件实例”。 按需设置实例相关信息和规格。参数说明请参考实例购买。
确认迁移执行结果 操作步骤 待迁移任务结束后,可登录DDM实例查看数据迁移结果。确保DDM实例数据与源数据库数据一致。 图1 查看user_test表数据 图2 查看address_test表数据 执行以下命令查看表数据分布情况。广播表各分片数据一致,拆分表数据会按照拆分算法分布在选取的分片中。
DD按日期哈希 适用场景 DD适用于按日期的天数进行分表,分表的表数就是日期的天数。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值的日期的天数进行取余运算并得到分表下标。
创建逻辑库并关联RDS for MySQL实例 操作步骤 登录华为云控制台。 单击管理控制台左上角的,选择区域“华北-北京四”。 单击左侧的服务列表图标,选择“数据库 > 分布式数据库中间件 DDM”,进入DDM管理控制台。 在实例管理页面,单击实例对应操作栏的“创建逻辑库”。
MMDD按月日哈希 适用场景 MMDD适用于按一年的天数(即一年中日期)进行分表,分表的表名的下标就是一年中的第几天,一年最多366天。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根
WEEK按星期哈希 适用场景 WEEK适用于按周数的日期目进行分表,分表的表名的下标分别对应一周中的各个日期(星期一到星期天)。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键
内核版本说明 本章节介绍内核版本更新说明。 表1 内核版本更新说明 版本 说明 3.1.2.0 新功能 连接池增强异常处理,增加DN节点的fail-fast特性(默认关闭)。 强化分片变更数据校验性能。 优化内存设置。 支持ANALYZE TABLE语句。 全局二级索引重建(白名单特性)。
数据库管理语法 支持的数据库管理语法 SHOW COLUMNS SHOW CREATE TABLE SHOW TABLE STATUS SHOW TABLES SHOW DATABASES 如果未搜索到对应的库,请先检查账号的细粒度权限。 SHOW INDEX FROM SHOW
预检查 为了避免分片变更失败,请您最晚在变更前一天完成以下内容的检查。 预检查内容 表1 预检查内容 检查内容 检查目的 检查未通过解决方案 表名长度检查 分片变更需要数据重分布时(例如:增加分片),会创建临时表,临时表的表名长度会略长于原表名,需确保临时表的表名长度不超过MySQL限制。
DELETE DELETE指令为用于删除表中符合条件的行。 常用语法 DELETE [IGNORE] FROM tbl_name [WHERE where_condition] 语法限制 WHERE条件中不支持子查询(相关子查询和非相关子查询)。 不支持在多表删除中删除广播表中的数据(目标表列表中不可包含广播表)。
补充说明 HINT对于所有的单表以及全局表失效,只对各种分表起作用。 父主题: TRUNCATE TABLE
合理制定分片策略 当数据表之间存在E-R关系时,可以制定相同的分片规则,各数据表分别选择有关联关系的字段作为拆分键,这样各表中有关联关系的数据将会存储在一个分片上,避免数据跨分片JOIN操作。如客户表、订单表与订单明细表,在创建拆分表时,建议都选取客户ID作为拆分键。 表1 拆分键与拆分算法使用简介
DDM实例管理 表1 DDM实例管理 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Rroject) 购买DDM 实例(按需) 购买DDM 实例(包周期) POST /v1/{project_id}/instances ddm:instance:create
INSERT INSERT是将数据插入到数据库对象中的指令。 常用语法 INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr },...),(...),... [ ON DUPLICATE KEY UPDATE
SHOW RULE 命令格式: 查看数据库下每一个逻辑表的拆分情况。 show rule 查看数据库下指定逻辑表的拆分情况。 show rule from <table_name> 输出详解: TABLE_NAME :表名。 BROADCAST:是否为广播表(0:否,1:是)。
状态码 正常状态 正常状态返回码如表1所示。 表1 正常状态返回码 状态码 编码 错误码说明 200 OK 处理正常。 202 OK 异步请求成功提交。 异常状态 异常状态返回码如表2所示。 表2 异常状态返回码 状态码 编码 错误码说明 400 Bad Request 服务器未能处理请求,可能原因如下:
DDM是否支持分布式JOIN DDM支持分布式JOIN。 表设计时,增加字段冗余 支持跨分片的JOIN,主要实现的方式有三种:广播表,ER分片和ShareJoin。 DDM目前禁止多个表的跨库update和delete。 父主题: SQL语法类
HINT-TABLE 命令格式: /*+table=<physical_table_name>*/ TRUNCATE TABLE <table_name> 描述: 删除当前库下表名<physical_table_name>的所有物理表的数据,其余分表不受影响。 删除前示例: 删除后示例:
UPDATE 常用语法 UPDATE table_reference SET col_name1={expr1} [, col_name2={expr2}] ... [WHERE where_condition] 语法限制 不支持使用子查询(相关子查询和非相关子查询)。 UPDA
HINT-DB/TABLE 命令格式: /*+db=<physical_db_name>,table=<physical_table_name>*/ TRUNCATE TABLE <table_name> 描述: 删除库名为<physical_db_name>下表名为<physi