DRDS 概述

更新时间:2017-08-04 13:53:50

   

分布式关系型数据库服务(Distributed Relational Database Service , 简称 DRDS )专注于解决单机关系型数据库扩展性问题,具备轻量(无状态)、灵活、稳定、高效等特性,是阿里巴巴集团自主研发的中间件产品。DRDS 兼容 MySQL 协议和语法,支持分库分表、平滑扩容、服务升降配、透明读写分离和分布式事务等特性,具备分布式数据库全生命周期的运维管控能力。

DRDS主要应用场景在大规模在线数据操作上,通过贴合业务的拆分方式,将操作效率提升到极致,有效满足用户在线业务对关系性数据库要求。

DRDS 主要解决了以下问题:

  • 单机数据库容量瓶颈: 随着数据量和访问量的增长,单机数据库会遇到很大的挑战,依赖硬件升级并不能完全解决问题。

  • 单机数据库扩展困难:传统数据库容量扩展往往意味着服务中断,很难做到业务无感知或者少感知。

  • 传统数据库使用成本高: 当业务数据和访问量增加到一定量时,传统数据库需要依赖特定的高端存储和小型机设备,成本曲线快速上升。

功能特性

更新时间:2017-09-18 11:05:15

   

DRDS 的功能概要如下。

分库分表

支持 RDS/MySQL 的分库分表,在创建分布式数据库后,只需选择拆分键,DRDS 就可以按照拆分键生成拆分规则,实现数据水平拆分。

透明读写分离

通过使用 RDS 只读实例或者 MySQL 备机实现读写分离,帮助应用解决事务、只读实例或者备机挂掉、指定主备访问等细节问题,对应用无侵入,在 DRDS 控制台即可完成读写分离相关操作。

数据存储平滑扩容

当出现数据存储容量和访问量瓶颈时,DRDS 支持在线存储容量扩展,扩容无需应用改造,扩容进度支持可视化跟踪。

服务升降配

DRDS 实例可以通过改变资源数量实现服务能力的弹性扩展。

分布式运维指令集

DRDS 提供独有分布式数据库运维指令集,如 SHOW SLOW、TRACE、SHOW NODE 等指令,帮助您快速发现和定位问题。

全局唯一数字序列

DRDS 支持分布式全局唯一且有序递增的数字序列。满足业务在使用分布式数据库下对主键或者唯一键以及特定场景的需求。

数据库账号权限体系

DRDS 支持类单机 MySQL 账号和权限体系,确保不同角色使用的账号操作安全。

分布式事务

DRDS 结合分布式事务套件 GTS,可以支持分布式事务,保证分布式数据库数据一致性。

监控报警

DRDS 支持对核心资源指标和数据库实例指标的实时监控和报警,如实例 CPU、网络 IO、活跃线程等,帮助您实时发现资源和性能瓶颈。

产品优势

更新时间:2017-06-19 15:53:16

   

DRDS 优势概要如下。

分布式

数据读写存储集群化,不受单机限制,业务使用无连接数限制。

弹性

数据服务可升降配,数据存储白屏化 scale-up 和 scale-out,读写分离线性提升读能力。

高性能

分库分表经典方案让操作聚焦少量数据,多种拆分方式适应数据特点,并具备特定 SQL 并行执行能力,进一步提升执行效率。

安全

完整的类单机 MySQL 账号体系,提供具备授权鉴权的 Open API 方便集成能力到业务管控中,产品服务支持体系化。

简单易用

兼容 MySQL 协议和大部分 MySQL SQL 语法,无业务侵入式使用读写分离,全面的运维和监控能力。

成熟度高

参与阿里巴巴全部双十一活动,是阿里巴巴集团接入关系型数据库的标准。

应用场景

更新时间:2017-08-08 10:57:33

   

本文重点介绍 DRDS 的典型应用场景。

高并发实时交易场景

面向客户端的电商、金融、O2O、零售等行业普遍存在用户基数大、营销活动频繁、核心交易系统数据库响应日益变慢的问题,制约业务发展。 DRDS 提供线性水平扩展能力,能够实时提升数据库处理能力,提高访问效率,峰值 TPS 达150万+,轻松应对高并发的实时交易场景。

海量数据存储访问场景

企业客户随着业务的快速发展,业务数据增长迅猛,会产生超过单机数据库存储能力极限的数据,造成数据库容量瓶颈,限制业务发展。DRDS 可以线性扩展存储空间,目前可以支持 200+ MySQL 实例的单数据库集群,提供 PB 级存储能力。可广泛应用于工业制造、智能家居、车联网等超大规模数据存储访问场景。

高性价比数据库解决方案

政务机构、大型企业、银行等行业为了支持大规模数据存储和高并发数据库访问,传统方案需要强依赖小型机和高端存储等高成本的商业解决方案,以达到服务能力扩展的目的。DRDS 能够利用普通服务器提供阿里巴巴双十一同等处理能力的高性价比国产化数据库解决方案。

低运维成本数据库

初创型企业初期发展阶段技术积累相对比较薄弱,资金投入有限,业务发展快,数据库的稳定性风险高。DRDS 继承了阿里巴巴多年的分布式数据库技术积累,能够提供简单易用的数据库运维系统,降低企业的技术运维成本,赋予企业强大的数据库支撑能力,为企业发展保驾护航。

数据备份

企业可以利用 DRDS 将自建数据库数据备份到云上,实现云上的数据备份容灾。

名词解释

更新时间:2017-06-07 13:26:11

   

本文主要对 DRDS 涉及的专有名词及术语进行定义和解析,方便您更好地理解相关概念并使用 DRDS。

DRDS

DRDS(Distributed Relational Database Service)是阿里巴巴自主研发,高度兼容 MySQL 协议和语法的分布式关系型数据库服务中间件。

DRDS 服务节点(DRDS Server)

DRDS Server 是 DRDS 核心组件,提供 SQL 的解析、优化、路由和结果归并。

DRDS 实例

DRDS 实例是由一组 DRDS Server 节点组成的分布式数据库服务集群。各服务节点无状态,同时处理 SQL 请求。

DRDS 实例规格

DRDS 实例规格是 DRDS 实例处理能力体现,按照 CPU 和 内存提供不同的规格的实例,规格越高处理能力越强。如 4Core8G 和 8Core16G,在标准的 DRDS 测试场景下,后者的处理能力是前者的两倍。

实例升降配

DRDS 可以通过改变实例规格来改变处理能力,提升实例规格称为升配,降低实例规格称为降配。

水平拆分

水平拆分是将一个单机数据库拆分为多个物理分库,将数据库中的表数据按照拆分规则,拆分为多个物理分表,存储到不同的数据库分库上的过程。

拆分规则

水平拆分过程中将逻辑数据库表拆分为多个物理分表规则称为拆分规则。

拆分键

水平拆分过程中,生成拆分规则的数据库字段称为拆分键。

分库

DRDS 水平拆分后,逻辑数据库数据存储在多个物理存储实例上,每个存储实例上的物理库称为分库。

分表

DRDS 水平拆分后,每一个分库上的物理数据表称为分表。

逻辑 SQL

由应用端发送到 DRDS 的 SQL 称为逻辑 SQL。

物理 SQL

由 DRDS 对逻辑 SQL 进行解析之后发送到 RDS 上执行的 SQL 称为物理 SQL。

透明读写分离

DRDS 的单个存储实例节点遇到访问瓶颈时,可通过增加只读实例来分担主实例的压力。DRDS 的读写分离功能不需要修改任何应用代码,称为透明读写分离。

非拆分模式

DRDS 支持不进行数据库水平拆分而仅通过 DRDS 提供的透明读写分离来扩展数据库的服务能力。这种模式称为非拆分模式。

平滑扩容

DRDS 可通过增加存储实例节点完成数据库的扩容。扩容不影响原有数据的正常访问,称为平滑扩容。

小表广播

DRDS 将一些数据量小且更新频度不高的数据表存储为单表模式,这些数据表称为小表。通过数据同步将小表复制到与之 JOIN 的分库上进而提升 JOIN 效率的解决方案称为“小表广播”或者“小表复制”。

全表扫描

数据库拆分模式下,如果 SQL 语句中没有指定拆分键,DRDS 将在所有分表上执行 SQL 并归并结果返回,这个过程称为全表扫描。为避免影响性能,用户应尽量避免全表扫描。

全局唯一数字序列(DRDS Sequence)

DRDS 全局唯一数字序列(64位数字,对应 MySQL 中 BIGINT 类型)的主要目标是为了保证所定义唯一字段中的数据的全局唯一(比如 PRIMARY KEY,UNIQUE KEY 等)和有序递增。

DRDS 自定义注释(DRDS Hint)

DRDS 提供的自定义注释,用于指定一些特殊行为,通过相关的语法影响 SQL 的执行方式,从而对 SQL 进行特殊的优化。

   

DRDS 概述的更多相关文章

  1. 【AR实验室】ARToolKit之概述篇

    0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...

  2. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  3. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  4. .Net 大型分布式基础服务架构横向演变概述

    一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...

  5. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  6. 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  7. Java消息队列--JMS概述

    1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...

  8. [AlwaysOn Availability Groups]健康模型 Part 1——概述

    健康模型概述 在成功部署AG之后,跟踪和维护健康状况是很重要的. 1.AG健康模型概述 AG的健康模型是基于策略管理(Policy Based Management PBM)的.如果不熟悉这个特性,可 ...

  9. μCos-ii学习笔记1_概述

    一.μCos-ii _概述 网上关于μCosii的文章多不胜数,本人学习的过程中也参考了很多人的理解和想法,看的是卢有亮老师的<嵌入式实时操作系统-μC/OS原理与实践>(第2版),同时也 ...

随机推荐

  1. c++ maps使用

    #include <iostream> #include <stdio.h> #include <memory.h> #include <queue> ...

  2. iOS基础知识之归档和解档

    归档和解档:即将数据写入文件和从文件中读取数据. 此处以plist文件为例说明, 一.plist文件使用时的注意事项: 1.plist文件中仅支持写入Array,Dictionary,Boolean, ...

  3. 监控hdfs 块迁移数量脚本及 metasave 日志内容详解

    把以下脚本配置到 crontab 下 ,10分钟一次,进行打点,记录复制块的进度. 想让节点快速退役(下线)的方法可以参考我的 https://www.cnblogs.com/jiangxiaoxia ...

  4. JavaScript实现图片裁剪预览效果~(第一个小玩具)

    感觉开始学习的前一个月真的太不珍惜慕课网的资源了  上面蛮多小玩意真的蛮适合我这样刚入门JavaScript的同学加深使用理解 大概收藏了百来门或大或小的课程  有一个感觉就是学这个真的比光是看书看概 ...

  5. Spring-data-jpa 常用的时间注解

    @Entity //不写@Table默认为user @Table(name="t_user",schema="DB_name") //自定义表名 public ...

  6. uiautomator:Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!

    尝试用android sdk的uiautomatorviewer抓元素的时候报错:Error while obtaining UI hierarchy XML file: com.android.dd ...

  7. elasticsearch-java异常

    1. Unsupported major.minor version 52.0 java的jdk版本过低导致,需要更换为jdk1.8+ 2. elasticsearch 的version在pom中提示 ...

  8. VB-创建类模块DLL文件

    最近需要调用MSCOMM32.OCX控件,但是ABAP调用过程中发现无法同时发送多条记录,则需调整实现方式: a.创建DLL文件封装MSCOMM控件相关属性及方法 b.系统注册DLL文件 c.ABAP ...

  9. oracle数据库关闭了打开数据库

    一.找到sqlplus

  10. python字符串的基本用法

    var1 = "hello word"var2 = "runootab"print var2.capitalize()#首字母大写print (var2.cou ...