Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯云分布式数据库(DCDB)

腾讯云分布式数据库(DCDB)

原创
作者头像
苏强
修改于 2017-06-19 10:58:37
修改于 2017-06-19 10:58:37
3.7K0
举报
文章被收录于专栏:苏强的专栏苏强的专栏

导语

DCDB 是部署在腾讯云公有云上的一种兼容MySQL协议和语法,支持自动水平拆分的share nothing架构的分布式数据库

分布式数据库即业务获取是完整的逻辑库表,后端却将库表均匀的拆分到多个物理分片节点。目前,DCDB 默认部署主备架构且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,适用于TB或PB级的海量数据库场景。 内部感谢计费平台部TDSQL、数据平台部PGXZ团队支持。

1.简介

DCDB 是部署在腾讯云公有云上的一种兼容MySQL/PostgreSQL协议和语法,支持自动水平拆分的share nothing架构的分布式数据库。分布式数据库即业务获取是完整的逻辑库表,后端却将库表均匀的拆分到多个物理分片节点。目前,DCDB 默认部署主备架构且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,适用于TB或PB级的海量数据库场景。

2.产品背景

2.1 OLTP与OLAP的区别

OLTP

OLAP

主要场景

日常交易处理

统计,报表,分析

面向业务

面向实时交易类,如电商交易、订单

面向统计分析的,如ERP、BI等

性能消耗

磁盘IO

CPU

实时性

实时读写要求高

实时读写要求低

DCDB 是一个面向OLTP业务的分布式数据库。

2.2 垂直拆分与水平拆分

垂直切分也就是按功能切分,这种切分方法跟业务紧密相关,实施思路也比较直接,比如“京东JD”等电商平台,将数据按功能切分为会员数据库、商品数据库、交易数据库、物流数据库等。

有时候,垂直拆分并不能彻底解决压力问题,因为单台数据库服务器的负载和容量也是有限的,随着业务发展势必也会成为瓶颈,解决这些问题的常见方案就是水平切分了。水平切分是按照某种规则,将一个表的数据分散到多个物理独立的数据库服务器中,这些“独立”的数据库“分片”;多个分片组成一个逻辑完整的数据库实例。

DCDB 是一个支持水平拆分的分布式数据库。

2.3 Shard Nothing架构

share nothing架构能够做到通过简单堆叠机器,对数据和访问容量进行扩展;share anything架构虽然也能够满足大部分用户的数据库容量需求,但是本质上是小型机+共享存储,且仍然会碰到容量和性能天花板,并且相当昂贵。如下图;

DCDB 是Share Nothing架构,并通过自动拆分技术,屏蔽用户对分布式细节的感知。

2.4 数据分裂方式(分片规则)

关系型数据库是一个二维模型,数据的切分通常就需要找到一个分片字段(shardkey)以确定拆分维度,再通过定义规则来实现数据库的拆分。

业内的几种常见的分片键选择方案

  • 基于日期顺序。如按年拆分,2015年一个分片,16年一个分片。优势:简单明了;易于查找 劣势:当期(16年)的热数据的服务器性能可能不足,而存储冷数据性能却闲置。
  • 基于用户ID求模,将求模后字段的特定范围分散到不同库中。

优势:性能相对均衡;相同用户数据在一个库中。

劣势:可能导致数据倾斜(如设计的是商户系统,京东一个商户数据能比几千个小商户的数据还多得多)

  • 将主键(primary key)求模,将求模后字段的特定范围分散到不同库中。优势:性能相对均衡;不容易出现数据倾斜的问题;相同主键的数据在一个库中; 劣势:数据随机分散,某些业务逻辑可能需要跨分片join却不能直接支持。**在多张表分片方案前,也有几种方案:
  • Noshard:即不分片;

  • tableshard:即每张表分表时,仅根据自身情况,不考虑表间关系,随意选择分表键分表;
  • groupshard:即几张有关联的表,按相同的分表键进行设计,这样可以将相关的数据聚合在一台物理节点。

在分片的数据源管理方面,目前也有两种思路:

  • 客户端模式:由业务程序模块中的配置来管理多个分片的数据源,分片的读写与数据整合在业务程序内进行。
  • 中间件代理模式:在分片数据库前端搭建一个中间件代理,后端多个分片数据库对前端应用程序透明。

DCDB 自动水平拆分是将shardkey求模,并通过代理网关(TProxy)按求模后值的特定范围分散到不同库中的分片方案。

3.DCDB解决能够帮您解决什么问题

3.1 单机数据库到达瓶颈

面对互联网类业务动辄百万级以上的用户量,单机数据库由于硬件和软件的限制,数据库在数据存储容量、访问容量、容灾等方面都会随着业务的增长而到达瓶颈。

即使我们将物理硬件升级到几十颗CPU,容量做到几十TB,然而DDL、DML的性能都会出现大幅下滑;更何况,随着业务快速增长,可能您刚买的一台高端设备,还没用上几个月性能就不足需要更换了。

3.2 应用层分片开发工作量大

应用层分片将业务逻辑和数据库逻辑高度耦合,给当前业务快速迭代小步快跑带来极大的开发工作量。而基于DCDB透明自动拆分的方案,开发者只需要在第一次接入时修改代码,后续迭代无需过多关注数据库逻辑。可以极大减少开发工作量。

3.3 解决开源方案或NoSQL的难题

选择开源或NOSQL产品,确实也能够解决数据库瓶颈,而且这些产品免费或者费用更低,然而,可能您需要看到开源方案或NoSQL的以下问题:

1.产品bug修复取决于社区进度,若碰巧遭遇严重bug您是否可以等待。

2.您的团队是否有熟悉并能持续维护该产品的人,且不会因为人事变动而影响项目。

3.关联系统是否做好准备。

4.您的业务重心是什么,投入资源来保障开源产品的资源管控和生命周期管理、分布式逻辑、高可用部署和切换、容灾备份、自助运维、疑难排查等是否是您们的KPI。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深度解析:腾讯云分布式数据库 DCDB
文章介绍了分布式数据库在项目中的使用场景,以及基于腾讯云DCDB的具体实现方案,包括分表、分库、负载均衡、高可用等方面的内容。
腾讯云数据库团队
2017/06/27
7.2K1
深度解析:腾讯云分布式数据库 DCDB
腾讯云分布式数据库 DCDB 架构解密
文章主要介绍了分布式数据库在金融互联网场景下的设计和实现,包括DCDB的架构、基础环境、实例配置、功能、性能、以及扩展性。同时,还探讨了分布式数据库在云原生架构下的应用和挑战,以及TDSQL在金融云上的解决方案和案例。
胡彬
2017/06/23
3.9K0
腾讯云分布式数据库 DCDB 架构解密
腾讯分布式数据库TDSQL金融级能力的架构原理解读
为帮助开发者更好地了解和学习分布式数据库技术,2020年3月,腾讯云数据库、云加社区联合腾讯TEG数据库工作组特推出为期3个月的国产数据库专题线上技术沙龙《你想了解的国产数据库秘密,都在这!》,邀请数十位鹅厂资深数据库专家每周二和周四晚上在线深入解读TDSQL、CynosDB/CDB、TBase三款鹅厂自研数据库的核心架构、技术实现原理和最佳实践等。三月为TDSQL专题月,本文将带来直播回顾第一篇《腾讯自研分布式数据库TDSQL核心架构及特性拆解》。
分布式数据库TDSQL
2020/03/18
6.7K0
腾讯分布式数据库TDSQL金融级能力的架构原理解读
一文教你迅速解决分布式事务 XA 一致性问题
文章主要介绍了腾讯云分布式数据库DCDB的一些特性、架构、以及业务价值。DCDB可支持大容量、高并发的业务需求,同时具备高可用性、高性能、以及更优的TCO。在架构上,DCDB采用了全冗余、全解耦的设计,保证了高可用性。此外,DCDB还具备弹性扩展的能力,能够根据业务的需求自动调整计算资源。通过这些特性,DCDB能够满足金融行业对数据库的各种需求,包括高并发、高可用、高稳定性、以及低成本。
腾讯云数据库团队
2017/09/01
4.2K0
一文教你迅速解决分布式事务 XA 一致性问题
腾讯云数据库产品介绍
腾讯云上有许多种数据库产品,本文简单介绍每种产品的介绍,特性,应用场景等,帮助各位根据业务需要选择最适合的数据库。
scarlett学习手册
2019/12/12
12.1K0
腾讯云数据库产品介绍
用分布式技术轻松化解数据库容量和性能瓶颈
腾讯云数据库团队
2017/06/27
4.3K1
用分布式技术轻松化解数据库容量和性能瓶颈
使用分布式数据库,还需要考虑做分库分表吗?
随着数据存储需求的不断增加,分布式数据库成为了处理大规模数据的一种重要方式。分布式数据库可以将数据分散到多个计算节点上,并利用分布式计算的能力来提高数据处理的效率和可用性。然而,在使用分布式数据库的过程中,是否需要进行分库分表呢?
coderidea
2023/08/10
1.2K0
使用分布式数据库,还需要考虑做分库分表吗?
分布式数据库选型—数据水平拆分方案
水平拆分的概念随着分布式数据库的推广已为大部分人熟知,分库分表、异构索引、小表广播、这些功能几乎是产品功能需求标配。然而有些客户使用分布式数据库后的体验不尽如意。本文尝试从数据的角度总结分布式数据的复制(replication)和分区(partition)技术原理和方案,其中分区也有称为分片(sharding),希望能引起读者一些思考,在分布式数据库选型中能注意这些细节的区别,选择适合业务的数据水平拆分方案。
用户1278550
2019/06/20
1.3K0
分布式数据库选型—数据水平拆分方案
“热搜”中的分布式数据库 | Q推荐
“一个数据库包打天下的时代已经结束了”四川省农村信用社联合社信息科技中心高级工程师桂俊鸿在采访中表示。事务型、联机型、NoSQL、文档型、列式存储、时序数据库、图数据库……在近年来这些数据库热词背后,是数据库技术及产品在面向不同业务场景逐渐细化分类,发挥长处,最终助力企业实现数字化目标。由于传统数据库在扩展性、容量等方面不能满足日益增长的数字化需求,架构层面从集中式向分布式转型的分布式数据库及相关产品备受关注。
深度学习与Python
2022/03/23
6210
“热搜”中的分布式数据库 | Q推荐
干货 | 分布式数据库TiDB在携程的实践
携程自2014年左右开始全面使用MySQL数据库,随着业务增长、数据量激增,单机实例逐渐出现瓶颈,如单表行数过大导致历史数据查询耗时升高,单库容量过大导致磁盘空间不足等。为应对这些问题,我们采取了诸多措施如分库分表的水平拆分、一主多从读写分离、硬件SSD升级、增加前端Redis缓存等,但同时也使得整个业务层架构更加复杂,且无法做到透明的弹性,因此开始将目光转移到分布式数据库以解决这些痛点。
携程技术
2021/12/13
9060
干货 | 分布式数据库TiDB在携程的实践
聊聊分布式数据库TDSQL的技术架构
咱们很多读者都是在互联网公司工作,大部分同学会有一种认知偏差,总以为互联网的业务对技术的要求是最高的。但其实不然。
开发内功修炼
2023/12/11
1.7K0
聊聊分布式数据库TDSQL的技术架构
PostgreSQL:分布式数据库简史
聊分布式数据库之前,先看看数据库的由来。我对数据库的最初认知来自于大学所学的一本书籍《数据库系统概论》(王珊 萨师煊版本),下面开始聊聊数据管理。
PostgreSQL考试认证中心
2022/02/04
1.4K0
搞懂Mysql数据库分库分表
随着我们的系统运行,存储在关系型数据库的数据量会越来越大,系统的访问的压力也会随之增大,如果一个库中的表数据超过了一定的数量,比如说mysql中的表数据达到千万级别,就需要考虑进行分库分表;
用户4283147
2022/10/27
2.9K0
搞懂Mysql数据库分库分表
腾讯TDSQL:带你认识真正的金融级自主可控分布式数据库
在数字化时代,作为基础软件,数据库的自主可控对于企业的数据安全、业务稳定具有重要意义。只有实现“自主可控”才能从根本上保证信息安全,尤其是涉及重大安全的政府和金融领域,对数据安全的要求进一步加强。因此,在互联网安全上升至国家战略层面的背景下,如何在底层基础数据库层面实现自主可控成为云计算厂商不断追求的目标。
腾讯云数据库 TencentDB
2019/03/26
4.4K1
腾讯TDSQL:带你认识真正的金融级自主可控分布式数据库
简单明了!OLTP场景下的数据分布式设计原则
温卫斌,就职于中国民生银行信息科技部,目前负责分布式技术平台设计与研发,主要关注分布式数据相关领域。
Spark学习技巧
2021/03/05
7810
简单明了!OLTP场景下的数据分布式设计原则
浅谈分布式数据库
文章集中整理总结mysql分库分表开源产品,分布式数据库的设计,以及实际应用案例等相关内容,部分附上本文作者实际应用过程中的理解。
庞小明
2018/09/19
3.6K0
浅谈分布式数据库
分布式数据库是不同的
今天的话题有两层含义,第一层是说相对于我们所熟知的集中式数据库来说,分布式数据库是与之不同的。在做数据库选型的时候,我们要充分的了解其间的不同,才能做出较为科学的决策。我想很多数据库从业人员都了解其中的不同,不幸的是,他们不是数据库选型的决策者,大多数决策者并不了解这一点。
jeanron100
2023/09/04
3420
分布式数据库是不同的
干货分享 | 2分钟看懂MySQL分库分表原理
点击上方蓝字关注我们吧 作者简介:董泽锋,腾讯云数据库研发工程师,主要负责腾讯云TDSQL研发工作。 ---- 【导语】随着业务的增长,mysql中保存的数据会越来越多。此时,数据库很容易成为系统性能的一个瓶颈,单机存储容量、IO、CPU处理能力都有限,当单表的数据量达到1000W或100G以后,库表的增删改查操作面临着性能大幅下降的问题。分库分表是一种解决办法。 分库分表实际上就是对数据进行切分。我们一般可以将数据切分分为两种方式:垂直(纵向)切分和水平(横向)切分。  垂直切分  垂直切分常见有垂直分
腾讯云数据库 TencentDB
2019/05/23
5.6K0
干货分享 | 2分钟看懂MySQL分库分表原理
分布式数据库,你真的了解吗?
分布式数据库进入人们的视野已经很久了。相对于传统的集中式数据库,分布式数据库在高性能、高可用、平滑拓展、高可靠、低成本等许多方面具有优势。 但时至今日,关于分布式数据库,似乎一直缺少足够权威和客观的解读。 现在,国家白皮书来了! 为了明确分布式数据库的概念,梳理分布式数据库的技术体系和应用现状,对未来的技术和应用趋势进行研判,中国软件评测中心牵头组织了腾讯云等厂商参与,调研了国内主要分布式数据库产品厂商,并对部分产品进行了测评,参考了国内外主要研究机构的学术成果,历时半年共同编制了《分布式数据库发展路径研
腾讯云数据库 TencentDB
2021/03/24
1.2K0
大型分布式业务平台数据库优化方法(下)
文章摘要:当单表数据达到千万以上时,通过加索引或者表分区优化提升的效果就比较有限了,应该如何应对呢???
用户2991389
2018/09/05
1.1K0
大型分布式业务平台数据库优化方法(下)
推荐阅读
相关推荐
深度解析:腾讯云分布式数据库 DCDB
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档