• 【DDM 分布式数据库中间件 快速入门】之 申请DDM实例
    申请DDM实例操作场景使用分布式数据库中间件之前需要申请DDM实例。注意:DDM本身不涉及用户敏感信息。使用DDM处理数据的目的、范围、处理方式、时限等请遵从当地适用的法律法规。为了降低敏感信息的泄露风险,建议你先对敏感信息进行加密,然后再保存到数据库中前提条件分布式数据库中间件运行于虚拟私有云。申请DDM实例前,需保证有可用的虚拟私有云,并且已配置好子网与安全组。创建虚拟私有云、子网以及安全组的方法,请参见《虚拟私有云用户指南》。操作步骤 [*]登录管理控制台。 [*]单击,选择“数据库 > 分布式数据库中间件”,进入总览页面。 [*]单击左侧菜单栏的“DDM实例管理”,进入“实例管理”页面。 [*]单击“申请数据库中间件实例”,进入“服务选型”页面。 [*]填写名称、可用分区、实例规格、虚拟私有云、安全组、子网等参数。参数说明如表1所示。 [*]单击“立即申请”,进入“规格确认”页面。页面显示申请的分布式数据库中间件的实例名称和实例规格等信息。 [*]单击“提交申请”,开始创建DDM实例。 [*]DDM实例创建成功后,用户可以在“DDM实例管理”页面,查看并管理自己的DDM实例。 [*]创建DDM实例大约需要5到15分钟。 [*]DDM实例创建成功后,默认“状态”为“运行中”。说明:提交创建申请后,如果DDM实例创建完成后状态不是“运行中”,请参考“删除逻辑库”删除该实例,然后重新申请。如果重新申请仍然失败,请联系客服。DDM实例申请完成后,还需要按照本章剩余章节继续操作,完成相关DDM服务配置,才能正常使用DDM服务。
  • 【DDM 分布式数据库中间件 快速入门】之 导入RDS实例
    导入RDS实例操作场景用户将RDS实例信息,包括实例连接地址,实例管理员账号和密码等,配置到DDM中。RDS实例被导入后,DDM才能监控到实例状态,并用来创建逻辑库。 说明:[/backcolor]RDS实例由用户自己创建,可以在华为云上订购RDS实例。[/backcolor][*]仅支持数据库类型为MySQL的RDS实例,MySQL版本兼容5.6以上。[*]仅支持导入“运行中”状态的RDS实例。前提条件用户已通过华为云订购RDS实例。操作步骤[*]登录管理控制台。[*]单击,选择“数据库 > 分布式数据库中间件”,进入总览页面。[*]单击左侧菜单栏的“RDS导入管理”,进入“RDS实例管理”页面。[*]单击“导入RDS主实例”,进入RDS实例信息导入页面。页面上方显示用户当前可以导入的RDS实例列表信息,包括实例名称、实例状态、连接地址、数据库类型、数据库版本。[*]勾选需要导入的RDS实例,在页面下方填写RDS实例的管理员账号与密码。支持同时导入多个RDS实例。RDS实例的管理员账号与密码,在申请RDS实例时设置。[*]单击“确定”,完成RDS实例导入。导入过程中,RDS实例将会重启,更新数据库配置信息。 [/backcolor]说[/backcolor]明:RDS实例导入后,您可以通过创建逻辑库[/backcolor],将RDS实例作为物理存储节点,关联到DDM实例中。
  • 【DDM 分布式数据库中间件 快速入门】之 创建逻辑库
    创建逻辑库操作场景用户成功订购DDM实例,并导入RDS实例后,可以创建逻辑库。一个DDM实例下最多能新增99个逻辑库,每个逻辑库在一个RDS实例上能创建1个(非拆分模式)或者8个(拆分模式)分片。前提条件存在已导入的RDS实例,RDS实例状态正常,且没有被其他DDM实例关联使用。已获取RDS管理员账号和密码。操作步骤[*]登录管理控制台。[*]单击,选择“数据库 > 分布式数据库中间件”,进入总览页面。[*]单击左侧菜单栏的“DDM实例管理”,进入“实例管理”页面。[*]选择需要增加逻辑库的DDM实例,单击实例右侧的“创建逻辑库”,进入到逻辑库创建页面。[*]填写逻辑库信息,参考说明见表1[/backcolor]。表1 填写逻辑库信息[*]单击“选择RDS”按钮,弹出“选择RDS实例”页面。页面显示可关联到逻辑库的RDS实例,包括未关联或已被本实例其他逻辑库关联的RDS实例。 说明:RDS实例与DDM实例需要在相同VPC和子网中,且RDS实例正常可用[/backcolor][*]单击实例左侧的复选框,选择需要关联的实例,单击“确定”按钮。返回到逻辑库创建页面,页面显示已选择的RDS实例列表。[*]只有运行中状态的RDS实例才能被关联。[*]非拆分模式下,逻辑库只能关联1个RDS实例。[*]单击“预览”,可以查看RDS实例的分库详情。如选择多个RDS实例,可以通过列表右侧的“上移”、“下移”链接,对关联到逻辑库的RDS实例顺序进行排列。在拆分模式下关联多个RDS实例,顺序排列在以下两方面的表现有所不同:[*]分片命名按照RDS实例顺序命名,具体见下述说明事项。[*]单表将创建在第一个分片上。 说明:创建逻辑库时,系统根据拆分模式,对RDS实例进行默认分库:[*]拆分模式下,逻辑库会在每个关联的RDS实例上新建8个分片。[*]系统分库需要按如下规则命名:逻辑库名称+"_"+编号。例如,假设逻辑库的名称是mydb,则RDS实例的分片命名为mydb_0000,mydb_0001等,以此类推。[*]当添加多个RDS实例时,添加的第一个RDS实例的分库命名从编号0000开始,第二个RDS实例的分库命名从0008开始,以此类推。[*]非拆分模式下,逻辑库只能关联一个RDS实例,在该RDS实例上创建一个分片。[/backcolor][*]单击“确定”,系统开始执行逻辑库创建任务。逻辑库创建耗时约3~5分钟。后续操作可以在DDM实例管理页单击“任务进度”,查看创建逻辑库任务的执行结果。
  • 【DDM 分布式数据库中间件 快速入门】之 创建逻辑表操作场景
    创建逻辑表操作场景用户创建DDM实例逻辑库后,需要在DDM实例逻辑库下创建逻辑表。一个逻辑库下最多只能建100张逻辑表。前提条件存在DDM实例逻辑库。操作步骤[*]登录管理控制台。[*]单击,选择“数据库 > 分布式数据库中间件”,进入分总览页面。[*]单击左侧菜单栏的“DDM实例管理”,进入“实例管理”页面。[*]选择需要操作的实例,单击右边操作栏“管理”链接;或者直接单击DDM实例名称,进入实例基本信息页面。[*]在实例基本信息页面,选择“逻辑库管理”选项卡,查看DDM实例逻辑库。[*]选择需要新增逻辑表的逻辑库,单击逻辑库名链接,进入逻辑库基本信息,选择“逻辑表管理”选项卡,进入逻辑表页面。[*]单击“创建”按钮,创建逻辑表。[*]新增逻辑表说明请参见表1[/backcolor]。表1 逻辑表信息填写说明 [/backcolor]说明:可以在DDM实例管理页单击“任务进度”,查询创建逻辑表的进度。
  • 【DDM 分布式数据库中间件 快速入门】之 连接DDM操作场景
    连接DDM操作场景用户成功配置DDM实例后,即可连接访问DDM实例以及实例下的逻辑库。DDM服务目前管理的关系型数据库,是基于MySQL数据库作为存储引擎,因此DDM服务兼容MySQL大部分语法以及客户端。关于DDM的使用受限说明,见SQL使用约束说明[/backcolor]。前提条件已成功申请DDM实例,并已导入RDS实例和新建了逻辑库。弹性云服务器上已安装MySQL客户端或程序已配置好JDBC环境。 说明:[/backcolor]出于安全考虑,您使用的弹性云服务器必须与DDM实例处于相同的虚拟私有云(VPC)。[/backcolor][/backcolor]操作步骤[*]登录管理控制台。[*]单击,选择“数据库 > 分布式数据库中间件”,进入总览页面。[*]单击左侧菜单栏的“DDM实例管理”,进入“实例管理”页面。[*]选择需要连接的实例,单击右边操作栏“管理”链接;或者直接单击DDM实例名称,进入实例基本信息页面。[*]在实例基本信息页面,获取到DDM实例的连接地址,实例对外服务端口,DDM账号信息。[*]使用以上获取到的DDM实例连接信息,通过客户端或者程序驱动进行连接。1.客户端连接(以命令行工具为例)。登录弹性云服务器,打开命令行工具,输入连接命令:mysql -h ${DDM_SERVER_ADDRESS} -P${DDM_SERVER_PORT} -u${USER} -p [-D${DBNAME}]表1 mysql客户端登录参数说明下图为Windows服务器命令行窗口中使用mysql命令连接服务器回显情况。通过程序驱动连接(以JDBC Driver为例)7.成功连接DDM实例后,即可通过SQL命令操作数据库。
  • 云下开发环境怎样连接DDM实例进行调试
    云下开发环境怎样连接DDM实例进行调试问题重现1. 小明开发了一款应用,准备部署到华为云。这款应用希望享受到华为云DDM提供的高效服务。2. 小明在华为云申请了一个DDM实例,搭建好了分布式数据库环境。3. 小明的开发环境搭建在自己的办公电脑上,办公电脑可以访问互联网。4. 小明迫切需要这套开发环境能完成与DDM的联调,调通后再把应用服务部署上云。5. 小明发现DDM实例只有一个VPC子网地址和端口,开发环境没法直接连接DDM实例。简言之:小明想让本地电脑中的开发环境对接华为云DDM实例,进行联调开发。原因分析公有云采用虚拟私有云(VPC)管理各服务的网络安全,比如DDM服务,用户创建的DDM实例,只允许被实例处于相同虚拟私有云的弹性云服务器访问。解决方案华为云的弹性云服务器,如果绑定了弹性IP地址,用户可以从本地电脑远程访问。因此,我们可以采用ssh工具的隧道代理机制,通过一台既能连接DDM实例,又能被本地电脑访问的中转服务器,实现“代理转发”。准备工作假设已申请DDM实例一个,本地电脑可以连接互联网,且安装有Xshell、Mysql客户端等工具。那么仅需要:申请一台弹性云服务器(ECS),满足以下要求: 1. 绑定弹性IP,公网可以访问ECS. 2. ECS的虚拟私有云以及子网配置成与DDM实例相同。 3. ECS的安全组建议也相同,如果不同,可以参考DDM帮助手册配置安全组访问规则。 4. 为了方便,ECS使用linux操作系统。这样保证ECS与DDM网络互通,同时开发者可以从本地电脑远程SSH连接ECS。配置攻略1. 本地电脑打开xshell,新建一个到ECS的SSH连接,使用22号端口。 2. 为SSH连接添加一个隧道。 添加隧道说明: 源主机: 选择“localhost”,表示从本地连接。 侦听端口:可以随便使用一个未被占用的大于1024的端口号。 目标主机:DDM的子网IP地址。 目标端口:DDM的侦听端口号。3. SSH连接配置好后,输入登录用户和密码,连接上ECS。登录后输入TMOUT=0,避免连接超时自动关闭。4. 本地电脑打开mysql客户端 用mysql命令连接DDM,命令如下: mysql -h127.0.0.1 -P3306 -Dbase -umagicdoom –pXXXX 参数说明: -h 主机名。localhost或者127.0.0.1,和隧道建立时的源主机名称相同。 -P 端口号。3306,和隧道建立时的本地侦听端口相同。 -u 用户名。DDM实例用户名 -p 密码。DDM实例连接密码 -D数据库名,对应DDM中建立的逻辑库名称5. 连接成功,显示如下 其他说明1. 如果不是使用使用mysql等命令行客户端,方法类似,只不过最后一步连接方式URL格式有所不同。2. 如果要连接多个DDM数据库,那么只需添加多个隧道。侦听端口选择不一样的即可。
  • 战狼来了 | 华为云分布式数据库中间件DDM开放公测
    时下《战狼2》正在火热上映,电影里由吴京扮演的特种部队队员冷锋,在海量恐怖分子和反叛军火力追击中,一次次在不断升级的火力夹击中从容的将危机化解,孤身一人将被困的中非难民们从枪林弹雨中安全护送到了撤离区。而它,同样具备以一敌百,甚至以一敌万的超强能力,可在微秒级的时间里做出冷静且正确的判断,它虽然没有团灭强拆队的身手,也不具备铁丝网擒榴弹的功夫,但它有独当一面,处理海量繁杂大数据的能力,面对指数级增长的读写需求它仍轻松应对、读写自如,它就是华为云PaaS最新发布的分布式数据库中间件DDM。华为DDM华为云PaaS专注于为企业上云提供端到端解决方案,让应用上云更简单,近期华为云PaaS推出一款中间件产品DDM,现已在官网开放公测,DDM是一种分布式数据库中间件(Distributed Database Middleware,简称DDM),专注于解决数据库分布式扩展问题,它突破了传统数据库的容量和性能瓶颈,实现海量数据高并发访问。DDM提供了对应用透明的数据库读写分离、自动的数据分片、灵活的弹性伸缩等分布式数据库能力。单机数据库的现状与痛点在当今信息技术快速升级发展中,不仅仅是互联网企业,越来越多的企业正在把业务向线上迁移,而数据的管理和运营成为企业下一阶段成败的关键。随着业务的信息化发展,海量并发,海量存储等现象使得传统的数据库方案面临新的困境:1.单机数据库易产生容量与性能瓶颈当前主流的开源数据库最多支持单表千万级的数据量,并且难以支撑密集的并发读写,容量和性能都存在瓶颈,严重制约客户业务发展。2.传统分区分表或分库方案限制太多采用分区表方案,数据不能跨库,扩展性存在问题。采用分库方案,客户端需要自行管理到各个库的连接,管理和升级复杂,扩容迁移困难。3.单机数据库服务器成本高昂普通服务器性能有限,高端服务器价格高昂,通过增加硬件规格来提升并发性能的成本太高DDM核心优势自动数据分片 ║DDM会将数据自动按规则拆分数据到指定的分片中,并提供路由分发和自动聚合能力,帮助应用专注于业务实现,而无需考虑数据分片的具体位置和映射规则。透明读写分离 ║面对高并发读的压力场景,应用无需改动,DDM自动完成透明读写分离,提高读操作的并发性能,支持一键添加只读实例轻松提升读性能。卓越并发性能 ║DDM基于集群的高可用架构提供了可线性扩展的并发能力,提供PB级数据量访问,十倍于单机数据库连接数,支持百万级高并发。平滑弹性伸缩 ║随着业务量的增加,一键添加RDS实例,DDM自动完成数据的重新分布,轻松解决容量和性能瓶颈,扩容过程中保持业务不中断。DDM产品架构DDM通过后端对接多个RDS,实现数据库的透明分布式访问服务,客户可以通过Console控制台便捷地对DDM实例进行管理和维护操作。同时,DDM提供多种安全策略,如:VPC、子网、安全组等。DDM产品架构图DDM应用场景大型应用 ║电商、金融、O2O、零售、社交应用等行业,普遍存在用户基数大、营销活动频繁、核心数据库响应日益变慢的问题。DDM 提供线性水平扩展能力,轻松应对高并发的实时交易场景。物联网数据 ║在工业监控、智慧城市、车联网等物联网场景下,通常传感监控设备多,采样频率高,数据规模大,超过了单机数据库容量瓶颈。DDM 提供的容量水平扩展能力,帮助用户低成本的存储海量数据文件索引 ║互联网、社交应用等常存在大量的图片、文档、视频等数据,数据量超过亿级。通常系统将这些文件的索引存入数据库,并在索引层面提供实时的增、改、读、删操作,对性能要求极高。DDM提供超高性能和分布式扩展能力,有效提高索引的检索效率。高性价比数据库解决方案 ║政务机构、大型企业、银行等行业为了支持大规模数据存储和高并发数据库访问,传统方案需要强依赖小型机和高端存储等高硬件成本的商业解决方案。DDM利用普通服务器进行集群部署,提供与传统商业解决方案相同甚至更高的处理能力。目前DDM已开放公测,欢迎进入华为云官网免费试用体验。HUAWEI CONNECT 2017作为华为自办的面向ICT产业的全球性年度旗舰大会,将于2017年9月5日-7日在上海新国际博览中心隆重举行。本届大会以“Grow with the Cloud”为主题,旨在搭建开放合作的全球共享平台,与客户伙伴一起共同探讨如何通过数字化实现新增长。
  • 分布式数据库中间件产品功能
    水平拆分DDM 支持数据库水平拆分。在创建分布式数据库后,只需选择拆分键,DDM 就可以按照拆分键生成拆分规则,实现数据水平拆分。平滑扩容在数据库出现存储容量瓶颈时,DDM 支持对存储容量进行扩展,添加新的RDS实例。扩容无需应用改造,扩容进度支持可视化跟踪。分布式事务DDM当前支持弱XA事务模型。透明读写分离DDM 的读写分离功能是对应用透明的。不需要应用任何代码修改,将RDS只读实例添加到 DDM中即可。全局唯一数字序列DDM 支持分布式全局唯一且有序递增的数字序列。满足业务在使用分布式数据库下对主键或者唯一键以及特定场景的需求。在线监控DDM 支持对读写比例以及慢SQL进行监控。帮助用户快速发现资源和性能瓶颈。Console运维管理界面DDM 提供Console界面,可在线对DDM实例、逻辑库、逻辑表、拆分规则等进行管理和维护。表1 DDM主要功能
  • 分布式数据库中间件产品优势
    单机数据库与DDM对比单机数据库的现状与困境随着互联网飞速发展,企业数据越来越庞大,应用对性能要求也越来越高。单机数据库对大批量数据的处理存在一定的局限性:单机数据库容易产生容量与性能瓶颈当前的硬件条件下,主流数据库可以支持单表千万级数据量的存储,但是难以支撑密集的并发读写,存在性能瓶颈。传统的分区分表或分库方案限制太多采用分区表方案,数据不能跨实例存储,扩展性和维护性较差。采用分库方案,客户端需要自行管理各库连接,数据库连接管理和升级复杂,扩容迁移困难。单机数据库服务器成本高昂普通X86服务器支撑能力有限,品牌厂商的服务器价格高昂,通过增加硬件规格来提升并发性能的成本太高,且能到达的性能高度有限。DDM轻松应对海量数据与高并发 DDM解决了单机关系型数据库对硬件依赖性强、扩展能力有限、数据量增大后扩容困难、数据库响应变慢等难题,通过分布式集群架构方案实现了“平滑扩容“扩容过程中保持业务不中断。数据分布存储DDM采用水平拆分方式,将数据记录数庞大的单表,按指定的拆分规则,分布式存储到各个分片中。同时DDM提供路由分发功能,应用服务无需考虑数据该写入哪个分片,该从哪个分片读取。读写分离用户可以根据数据读取压力负载情况,为每个RDS实例配置一个或者多个只读副本,提高查询并发性能。高性能在实际业务访问中,SQL主要的性能瓶颈集中在物理数据库节点上。DDM实例关联多个RDS节点,减少单个RDS存储的数据量,同时实现并行计算,支持PB级数据量访问,以及百万级高并发。在线平滑扩容DDM在不中断业务的情况下,支持新增RDS实例,水平扩容存储空间。一键式扩容,轻松解决单机数据库的容量瓶颈。DDM的优势无限扩容自动水平拆分。支持字符串、数字、日期等多种拆纬度。业务不中断平滑扩容。性能卓越性能通过水平扩展可线性提升。简单易用兼容MYSQL 协议、语法、客户端。轻松数据导入,数据库上云。一键实现数据库扩容。业务零代码改动,实现读写分离。快速部署可在线快速部署实例,节省采购、部署、配置等自建数据库工作,缩短项目周期,帮助业务快速上线。低成本稳定的产品,完善的运维和技术支持,相比开源产品总体性价比更高;多种实例规格配置覆盖不同业务规模场景,按需购买。
  • DDM的应用场景
    DDM是一个面向OLTP业务的分布式关系型数据访问服务,适用于各行业数据库应用,特别是大规模的数据存储与高并发访问的行业应用。主要应用场景包括如下:大型应用电商、金融、O2O、零售、社交应用等行业,普遍存在用户基数大、营销活动频繁、核心交易系统数据库响应日益变慢的问题,制约业务发展。 DDM 提供线性水平扩展能力,能够实时提升数据库处理能力,提高访问效率,轻松应对高并发的实时交易场景。物联网数据在工业监控和远程控制、智慧城市的延展、智能家居、车联网等物联网场景下。传感监控设备多,采样频率高,数据规模大,会产生超过单机数据库存储能力极限的数据,造成数据库容量瓶颈。DDM 提供的容量水平扩展能力,可以有效的帮助用户低成本的存储海量数据。文件索引互联网、社交应用等常存在大量的图片、文档、视频数据,数据量都在亿级~万亿级。通常要将这些文件的索引存入数据库,并在索引层面提供实时的新增、修改、读取、删除操作,对性能要求极高。传统数据库无法支撑如此规模的访问和使用,DDM提供超高性能和分布式扩展能力,有效提高索引的检索效率。高性价比数据库解决方案政务机构、大型企业、银行等行业为了支持大规模数据存储和高并发数据库访问,传统方案需要强依赖小型机和高端存储等高成本的商业解决方案。DDM利用普通服务器进行集群部署,提供与传统商业解决方案相同甚至更高的处理能力。
  • DDM产品的规格
    DDM支持的实例规格见下表:表1 DDM实例规格租户配额租户有可以创建的DDM资源数量限制。表2列出了租户在每个项目(project)下的资源配额及其默认数量。表2 DDM租户配额说明
  • 数据库中间件常用概念解释
    DDM 实例DDM给用户提供的最小资源单位,实例运行在弹性云服务器上,目前支持4C|4G、8C|8G、16C|16G、32C|32G共4种不同资源规格,用户根据业务需要申请相应规格的服务。RDSRDS(Relational Database Service)是基于华为公有云的在线关系型数据库服务,有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点,支持单机、主备或集群模式部署。有关RDS服务的详细介绍请参考关系型数据库RDS。RDS实例RDS实例也叫RDS节点,是RDS的最小管理单元,一个实例代表了一个独立运行的关系型数据库。实例可分为:主实例、备实例和只读副本。DDM主要提供分布式计算服务与管理,需要关联RDS实例进行数据分片存储及读写。平滑扩容在不中断应用服务的情况下,通过新增RDS实例,扩展数据库存储空间。扩容除了解决数据存储容量瓶颈,还能通过增加并发计算能力间接提升数据库性能。通过DDM管理控制台操作即可完成扩容,应用无需改造,扩容进度支持可视化跟踪。透明读写分离DDM将应用服务的读和写请求分别指向不同的RDS实例处理。当系统读压力较大时,通过给RDS实例增加只读副本,把数据读取操作转移到只读副本上,提升数据库并发性能。DDM的读写分离功能是对应用透明的,不需要应用做代码修改。分片与分片表DDM实例在RDS实例上创建多个物理库,每一个物理库称为分片,在分片上建立的表,叫分片表(不包括单表和全局表)。数据按照分片规则被分配到不同的分片上,分片上的数据支持分布式并行计算。单表当表数据量不大,且不需要与分片表进行连接查询时,可以只在DDM的默认分片上建表与存储数据,这类表称为单表。单表只能通过MySQL客户端或者应用程序连接逻辑库创建。全局表将一些数据量小且更新操作不频繁的数据表,如字典表、配置表等,在所有分片上都存储全量数据,提升JOIN效率,这类表叫全局表。全局序列号在分布式数据库中,数据被存储在各个分片表中,关系型数据库中的主键约束,将无法使用。因此在DDM中引入了全局序列号,保证有唯一约束要求的数据,从各分片表聚合后仍然具有数据唯一性。水平拆分将数据表按照拆分规则,拆分为多个分片上的分片表。表拆分后,数据将被按照拆分规则存储到分片表中。水平拆分主要解决单机数据库的单张表容量限制问题,同时提高访问性能。全表扫描对于分片表,如果SQL语句中没有指定拆分键,DDM将在所有分表上执行,然后归并结果返回,这个过程称为全表扫描。用户应尽量优化SQL语句,通过指定拆分键,避免全表扫描。
  • 分布式数据库中间件如何创建一个分布式数据库 ?
    DM(Distributed Database Middleware)专注于解决数据库分布式扩展问题,突破了传统数据库的容量和性能瓶颈,实现海量数据高并发访问。华为云控制台提供一键式申请DDM实例,以及建库建表等操作,帮助用户省去运维烦恼。 本指南以创建并连接一个分布式数据库为例,指导您快速上手分布式数据库中间件服务。包括申请DDM实例、导入RDS实例、创建逻辑库/表、访问分布式数据库等操作。准备环境步骤① 登录华为云控制台。选择“网络 > 虚拟私有云”,申请VPC(虚拟私有云),用于对DDM实例进行安全网络隔离。② 选择“计算 > 弹性云服务器”,创建一台弹性云服务器(ECS),用于访问DDM实例(分布式数据库)。说明① ECS需要绑定一个弹性IP,具备外网访问权限,用于下载mysql客户端。② 创建ECS时,镜像建议选取Centos6.3或以上,自带mysql,无需单独安装。③ 如果用户已有VPC和ECS,可重复使用,无需多次创建。申请DDM实例 步骤① 控制台选择“数据库 > 分布式数据库中间件”,在总览页面,单击“申请数据库中间件实例” 。② 选择实例配置,创建实例。说明① 实例需和ECS选取相同的虚拟私有云。 ② 建议配置相同的安全组,不用再添加端口访问规则。导入RDS实例步骤① 控制台选择“数据库 > 关系型数据库”。购买一个RDS实例,数据库类型选“MySQL”。② 控制台切换到“数据库 > 分布式数据库中间件”。在“RDS导入管理”页面,单击“导入RDS实例”,将购买的RDS实例导入DDM。 说明① 分布式数据库使用RDS实例作为存储引擎,通过DDM进行数据读写以及数据库分布式管理。② RDS实例与DDM实例须选择相同虚拟私有云,建议选择相同安全组,不用另行添加访问规则。创建逻辑库 步骤 ① 选择“数据库 >分布式数据库中间件”。在实例管理页面找到DDM实例,单击右侧“创建逻辑库”链接。 ② 填写和选择逻辑库配置信息,选择RDS实例,创建逻辑库。 说明① 拆分模式下,会对逻辑库进行分片,实现数据库分布式管理。默认每个RDS实例上创建8个分片。② 非拆分模式下,逻辑库只能关联一个RDS实例,且RDS实例上只创建一个分片。③ 可以使用已有的DDM账号管理逻辑库。创建逻辑表步骤① 选择“数据库 >分布式数据库中间件”。在实例管理页面找到DDM实例,单击实例名称进入管理页。找到“创建逻辑表”。② 配置逻辑表创建参数,将建表SQL复制到文本框中。单击“确定”,创建逻辑表。说明 ① 一次只能创建一张逻辑表。不支持同时执行多条建表SQL。② 建表SQL兼容MySQL注释规范,但不建议添加注释。访问分布式数据库 步骤 ① 获取DDM实例连接地址。 ② 登录ECS,下载和安装MySQL客户端。 ③ 连接DDM实例。 ④ 查询数据。 说明① DDM兼容MySQL登录协议和SQL语法,支持多种客户端。
  • 什么是DDM?
    DDM即分布式数据库中间件(Distributed Database Middleware,简称DDM),专注于解决数据库分布式扩展问题,突破了传统数据库的容量和性能瓶颈,实现海量数据高并发访问。DDM使用华为关系型数据库(RDS)作为存储引擎,具备自动部署、分库分表、弹性伸缩、高可用等全生命周期运维管控能力。图1 DDM服务简图 说明:出于安全考虑,DDM只支持从华为云内部ECS(弹性云服务器)访问,二者必须在同一VPC(Virtual Private Cloud,虚拟私有云)中。
  • DDM作为数据库中间件的实现原理
    DDM作为数据库中间件,将底层数据库存储引擎以集群方式管理起来,用户使用非常方便。类似操作单机数据库,用户通过DDM管理控制台进行数据库运维,使用JDBC等驱动服务或SQL客户端连接数据库,进行数据读写,不需要关心具体有多少分片。DDM服务的业务架构如下图所示。说明:[*]开发者通过DDM管理控制台申请DDM实例、创建逻辑库、逻辑表和DDM账号,完成数据库中间件的部署。[*]开发者将开发的应用服务部署在与DDM相同VPC下的弹性云服务器上。[*]应用服务与DDM建立连接,在用户访问过程中,应用服务通过DDM进行数据读写操作。[*]数据库管理员通过DDM管理控制台进行数据库运维。[*]RDS实例需要由用户在华为云RDS服务上购买,购买后导入到DDM服务中。[*]DDM在创建逻辑库时,将RDS实例关联到逻辑库,每个RDS实例创建8个分片。以下对DDM几处重要的功能进行详细介绍。数据分片分片是解决数据库存储容量限制的直接途径。分片包括垂直分片与水平分片两种方式。垂直分片垂直分片又叫纵向分割,即以逻辑表为单位,把原有数据库切分成多个数据库。切分后不同的表存储在不同的数据库上。垂直分片与业务架构设计有密切的联系。比如从业务领域对系统进行架构优化,分成多个子业务系统,各个子业务系统耦合度较低。子业务系统间以接口方式进行数据通信和数据交换。 垂直分片示意图垂直拆分后业务清晰,拆分规则明确,系统之间容易整合与扩展。一般用于数据库上层架构设计。水平分片水平分片又叫横向分割,即以逻辑表中的数据行记录为单位,把原有逻辑数据库切分成多个物理数据库分片,表数据记录分布存储在各个分片上。 水平分片主要用业务架构无法继续细分,而数据库中单张表数据量太大,查询性能下降的场景。通过水平分片,即解决单库容量问题,同时提高并发查询性能。水平分片示意图DDM实现了自动水平分片,应用无需关心某个数据该存储在哪一块分片上。对逻辑表水平分片需要依据一定的分片规则,例如一个订单跟踪系统,我们选取订单号(OrderId)作为拆分键,分别对“订单流水表”、“订单详情表”以及“物流跟踪表”进行水平拆分,拆分规则为对键值Hash后求模,则分片计算规则如:H(Key(OrderId)) = Hash(Key(OrderId))%N其中,N表示一共有N个数据分片,H(Key(OrderId))表示该订单经过订单号Hash并求模后存储的分片编号。分片后数据存储示意图路由分发路由分发与水平分片同为DDM的基础功能。 在分布式数据库中,路由的作用即将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源。 例如:订单支付系统包含了shard0、shard1、shard2三个分片,订单号2017010112345678的订单数据存储在shard0分片上,则应该将 select Customer, OrderStatus, CreateDate from Order where OrderId = ´2017010112345678´; 这条语句路由分发到shard0分片上执行。如果同时路由到shard0、shard1、shard2三个分片,会造成多余的查询,浪费资源;如果路由到shard1、shard2分片,则得不到正确的返回结果。 DDM对单张表的路由解析流程如下: 单张表的路由解析流程 读写分离 数据库中对计算和缓存资源消耗较多的往往是密集或复杂的SQL查询。当系统资源被查询语句消耗,反过来会影响数据写入操作,进而导致数据库整体性能下降,响应缓慢。因此,当数据库CPU和内存资源占用居高不下,且读写比例较高时,可以为数据库添加只读副本。添加只读副本的作用有以下:[*]将查询非事务性查询SQL路由到只读副本中执行,主实例上执行事务性SQL,在很大程度上缓解主实例上的S锁与X锁的竞争。[*]对只读副本上的表可配置不提供事务支持的数据库引擎,进而提升查询效率。[*]增加只读副本,也相当于数据库横向扩展,直接增加负载能力,同时增加数据冗余,确保数据库高可用。 DDM服务实现了自动读写分离,用户购买了RDS只读副本后,将只读副本信息同步到DDM中即可,无需再做其他配置。 同时,DDM支持用户在SQL中自定义读写分离策略,具体用法请参考常见问题的“如何实现读写分离”。 读写分离示意图说明: DDM会在一个RDS实例上创建多个分片。 为了方便描述,上图假设一个DDM实例在RDS实例上只创建一个分片。
总条数:90 到第
上滑加载中