HybridDB · 最佳实践 · 阿里云数据库PetaData

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 前言随着互联网DT时代的高速发展,业界需要简单高效的数据处理方式在海量数据中挖掘价值,企业厂商和开源界目前较流行的的做法,是提供支持类SQL接口的数据库服务,或者是提供SDK接口的数据处理平台服务。在SQL接口的数据库服务中,传统的关系数据库,如MySQL、PG等,处理海量数据显得越来越力不从心,既无法突破单机硬件资源限制,又无法并行利用多机硬件资源;大数据NewSQL数据库,必须依赖外部数

前言

随着互联网DT时代的高速发展,业界需要简单高效的数据处理方式在海量数据中挖掘价值,企业厂商和开源界目前较流行的的做法,是提供支持类SQL接口的数据库服务,或者是提供SDK接口的数据处理平台服务。

在SQL接口的数据库服务中,传统的关系数据库,如MySQL、PG等,处理海量数据显得越来越力不从心,既无法突破单机硬件资源限制,又无法并行利用多机硬件资源;大数据NewSQL数据库,必须依赖外部数据库保证数据的事务特性,并通过数据导入工具将完整提交的数据导入进来计算,系统复杂度和成本较高。

在SDK接口的数据处理平台服务中,用户需要进行再次开发,扩展性和自由度较好,但是上线周期较长,易用性较差,且需要长期维护代码,保证稳定性和性能。

那么问题来了,是否有一类产品,能够兼顾易用性、大容量、低成本,既支持高并发低延迟OLTP业务,又支持海量数据的OLAP业务,一站解决这些问题呢?本文将介绍阿里云HTAP数据库HybridDB for MySQL,为用户解决海量数据处理的问题。

阿里云HTAP数据库HybridDB for MySQL

HTAP数据库是数据库专业评级机构Gartner提出的新数据库象限,指能够同时支持OLTP和OLAP业务的分布式数据库,典型的产品如,国外的SAP Hana和Oracle RAC,阿里云自研的HybridDB for MySQL等。

1.建设初衷和设计思路

HTAP数据库是数据库专业评级机构Gartner提出的新数据库象限,指能够同时支持OLTP和OLAP业务的分布式数据库,典型的产品如,国外的SAP Hana和Oracle RAC,阿里云自研的HybridDB for MySQL等。

在过去的几年,阿里云出现了大量的全链路监控分析类需求,包括监测物理机的资源消耗、网络的流量延迟、业务实例的内部统计,多维聚合分析各类监控数据并找出全链路异常,找出具体问题进行自动化运维等。在选型数据库时考虑到了这些问题:

  1. 数据总量大,日新增数据量大:单个业务每日新增各类统计数据,从2T-20T不等,数据保存至少30天,总量百T甚至上P;
  2. 访问并发大:数据库总连接在数百到数万不等,并发活跃连接在数百到数千不等;
  3. 响应延迟低,支持update批量数据:写入延迟不得超过秒级,部分业务需要update批量数据,以支持多轮迭代分析;
  4. 支持多维度检索和复杂分析:支持从不同维度查询数据,且各维度查询均不得超过秒级,同时要支持各类复杂的分析类需求,分析类sql支持范围覆盖tpc-h、tpc-ds等,分析类查询时间范围在秒级到小时级;
  5. 数据自动过期:用户设定一个数据保留的时间范围,数据库可以自动帮助用户清理;
  6. 在线扩容:数据库可随数据总量规模扩大而扩容,以承载更大规模的业务;
  7. 使用简便:用户可以使用SQL接口,无需额外写计算代码;无需关心数据备份等运维问题,监控告警系统完善;数据操纵、数据导入等生态周边齐全,支持常用的网络链路类型;
  8. 成本:数据库有低成本方案,支持冷数据以更低成本存储;

在这些苛刻的需求下,使得我们无法选择kv类存储引擎,因为在非主键类查询场景下,必须扫描全库数据,这导致查询完全不可用;也无法选择mr类计算引擎,因为其单次查询延迟过高,无法用在高并发业务场景中。RDS团队决定自己动手,自研一个数据库,以解决同类问题。
pic
HTAP数据库的技术思路,是将链路、存储、计算完全分离,且各个组件均允许水平扩容,存储分区间无共享,一份存储数据,扩容时无需搬动全局数据,精细地对每一类业务场景的SQL设计执行链路,以保证低延迟和高吞吐,各个组件的硬件容器可以替换,从而保证高性能和低成本可以兼得。用户只需要利用MySQL的各类连接器和客户端,如jdbc、navicat等,就可以直接使用和访问数据库,兼容用户的各类使用习惯。

2.HTAP数据库云化服务

经历数年的成长,HybridDB for MySQL先后服务了集团内外的多个用户,包括RDS、SLB、CDN、菜鸟、安全等团队,日新增数据数百T,存量数据数P。

在公有云上,HybridDB for MySQL已经积累了大量的云服务接口,与RDS和传统解决方案对比起来:
pic

此外,HybridDB for MySQL也在努力补齐其他云服务功能,以对齐RDS for MySQL,支持常用的数据操纵平台,如DMS等,支持常用的数据迁移平台,如DTS、CDP等。

HTAP数据库在阿里云的最佳实践

随着互联网DT时代的高速发展,业界需要简单高效的数据处理方式在海量数据中挖掘价值,企业厂商和开源界目前较流行的的做法,是提供支持类SQL接口的数据库服务,或者是提供SDK接口的数据处理平台服务。

1.典型应用和架构

HybridDB for MySQL的一个典型应用,是在阿里云全链路大盘业务中,该业务涉及了阿里云多个核心产品的数据汇总分析、多维处理,引用该案例,可以介绍HTAP数据库的最佳实践。
pic

上图中体现了HybridDB for MySQL的几个典型应用:

  1. 作为分布式数据库,承接第一手数据写入和更新事务,保证数据的完整性,并为各类外部查询业务,提供不同层面的查询支持,包括高并发多维在线查询、数据报表、复杂分析等;
  2. 作为数据仓库,将HybridDB for MySQL内的数据进行二次加工,以支持ETL类业务;
  3. 作为更大规模数据处理系统(如odps)的数据缓存,利用数据交换工具工具,将外部数据源的数据汇总到HybridDB for MySQL中,以支持活跃数据的存储和计算;
  4. 作为各个子系统的数据总线,利用数据交换工具工具,将数据过滤导出到各个子系统中,以帮助这些专项子系统对数据进一步处理;
    接下来将逐步介绍HybridDB for MySQL在这些应用场景的最佳实践。

2.实时写入、实时多维查询、实时分析

支持实时、高并发、低延迟类大数据业务,是HybridDB for MySQL的杀手锏,整套系统,仅有一份数据,既可保证在线业务的数据,具备事务特性,又可支持超越传统数据库的分析函数、计算语法等。

在阿里云全链路大盘中,包括RDS、SLB、CDN等产品的原始性能数据(如主机cpu、iops,业务实例qps、副本延迟,全局网络延迟等),需要实时汇总到中心HybridDB for MySQL数据库中,而这些数据在storm、flink、galaxy等流计算平台进行聚合分析(如每个时间窗口的统计量加和、join、开窗分组等),产生的分析结果,也将汇入相同的HybridDB for MySQL数据库中,单个业务产生的性能数据,常常达到每秒数百万条,并发活跃连接常常达到数百条甚至上千条。而这些原始数据和流式分析结果,也需要支持实时、多维度的呈现在用户面前,有的分析结果用于人工排查问题;有的分析结果则可以直接触发报警;有的分析结果可以指导自动化运维,如数据迁移等;有的分析结果可以用于指导产品运营状况、用户画像等。
pic

RDS数据分析系统是这类业务的翘楚,并引领了一股实时写入、实时分析的风潮,帮助RDS大幅改善了运维体验,提升了整个RDS的稳定性,发现和解决问题的周期,由过去的月、周级,减少到了现在的天、小时级,且有进一步提升的趋势。

3.批处理ETL

有些计算场景下,单次流计算并不能解决所有问题,一些较复杂的业务场景,比如参照大量的历史数据、外部数据源数据,进行级联事件分析(如全链路大盘参考ECS、SLB等产品的性能数据,挖掘RDS在过去一个月内的链路延迟状况)、事件回放,这类计算业务,则依赖HybridDB for MySQL已经存储的历史数据和外部数据源的数据进行综合计算,此时需要批量数据的ETL,重新抽取各个数据源的历史数据,进行再次计算。

在HybridDB for MySQL中,ETL则简化为了一类SQL语句模式:Insert into … Select …,这类语句,从HybridDB for MySQL的各个数据表中抽取数据,进行复杂计算,并将计算结果持久化下来,以便用户的多次访问。ETL功能可以令HybridDB for MySQL形成数据闭环,进一步降低用户导数据的开销和复杂度。
pic

HybridDB for MySQL的ETL功能预计6月初上线,阿里云部分云产品的数据分析系统正在试用该功能。

4.实时数据总线

在HybridDB for MySQL不能解决所有大数据问题时,用户还可以将HybridDB for MySQL当做数据总线,利用数据交换工具(如DTS、CDP等),将数据导出到其它数据存储和计算系统上,从而发挥数据更大的价值。
pic

从HybridDB for MySQL导出数据,可以有不同的目的,包括:导入到大数据计算存储平台(如ODPS、OSS),用于存储更长期限的历史数据,在需要时,亦可导回HybridDB for MySQL计算;导入到队列(如loghub、kafka),以供用户自己的消息总线播散数据,并级联到其它系统上;导入到RDS,以供用户在RDS生态下,继续扩展数据业务。

用HybridDB for MySQL充当数据总线的业务,以公有云用户居多,这些用户同时使用了阿里云的多套产品,组合出复杂的业务网,为了降低系统间的耦合性和成本,通常选择HybridDB for MySQL,既充当一级数据存储和计算系统,又充当二级数据总线,串联起其他的服务端。

5.实时数据缓存

凭借强大的存储和计算带宽,HybridDB for MySQL还可作为外部数据源的实时分布式数据缓存,利用数据交换工具(如DTS、CDP等),从其它数据存储和计算系统上,将数据导入到HybridDB for MySQL,可以帮助这些系统具备海量数据的实时处理能力。
pic

用HybridDB for MySQL充当数据总线的业务,以搜索类、日志类用户居多,这类用户期望在大数据存储和计算平台上的数据(如ODPS)也能有实时查询的能力,或者期望暂存数据系统(如loghub、kafka)能够支持多维数据检索,又或者期望小型数据库(如RDS)能够存储更多的历史数据,HybridDB for MySQL便很好的弥补了这些系统的缺憾,从而与这些系统共同提升和改进。

后记

HybridDB for MySQL依靠实时、高并发、低延迟的特性,已经应用在集团内外数十个企业级业务中,随着生态和功能越来越完善,HybridDB for MySQL将能承载更多的业务类型,帮助用户在DT时代快速发展。

db匠
+关注
目录
打赏
0
0
0
0
9495
分享
相关文章
第二章:OceanBase数据库产品简介
第二章:OceanBase数据库产品简介
347 0
「开源人说」|数据库PolarDB开源之路该如何走?听听他们怎么说
10月25日,由阿里云开发者社区、阿里云PolarDB开源社区、InfoQ联合举办的「开源人说」数据库PolarDB专场线下沙龙在杭州召开,5位阿里云数据库超级大咖、10位阿里云数据库开源生态伙伴嘉宾 、数十位业内资深开发者现场进行了深度交流、共话开源。
「开源人说」|数据库PolarDB开源之路该如何走?听听他们怎么说
企业级数据库与应用实践技术沙龙等你来
继上海站活动之后,杭州站活动又来啦。你准备好了吗?本次杭州站活动由阿里云,PostgreSQL中文社区,上海开源信息技术协会, DSG联合主办。本次活动的主题是大型企业数据库与应用实践。我们邀请了业内知名技术专家分享,精彩不容错过!
11668 0
企业级数据库与应用实践技术沙龙等你来
数据库大讲堂·第五期 云数据库服务:共享还是专属,这是一个问题
“世界上只需要5台计算机”,老沃森的观点究竟是一个笑话还是对于未来大胆的预言?数据库技术是如何一步步发展到今天的?未来,我们选择数据库服务时应该选择共享还是专属?在本文中,阿里云智能数据库PD吴林为大家分享云时代需要的数据库服务形态,讨论行业案例分析,业界资源隔离方案,ECS资源分配原理、专属集群如何保证资源专属等内容。
4020 0
数据库大讲堂·第五期 云数据库服务:共享还是专属,这是一个问题
【阿里云新品发布·周刊】第11期:云数据库 MySQL 8.0 重磅发布,更适合企业使用场景的RDS数据库
云数据库MySQL 8.0 升级发布会2019年5月29日15时,阿里云云数据库 MySQL 8.0 重磅发布,2倍以上性能提升,SQL窗口函数、JSON扩展语法等企业级新功能震撼上市!主要从技术层面介绍MySQL 8.0的优势和与过去版本对比。
863 0
【阿里云新品发布·周刊】第11期:云数据库 MySQL 8.0 重磅发布,更适合企业使用场景的RDS数据库
【杭州云栖·企业级数据库最佳实践专场】DT时代下 数据库灾备的探索与实践
随着DT时代的到来,企业对数据的依赖程度与日俱增,数据保护早已成为企业的一门必修课。只有拥有先知先觉的防范意识和充分的技术准备,才能“覆巢之下,亦有完卵”
Uma
2649 0
HybridDB · 稳定性 · HybridDB如何优雅的处理Out Of Memery问题
前言 你是否遇到过数据库服务器的Out Of Memory(OOM)现象?就是数据库的进程把操作系统内存耗尽,触发操作系统对数据库进程执行Kill -9操作。操作系统对某个数据库进程的Kill,会导致整个数据库实例所有实例重启,所有连接会断开,造成一定时间的数据库不可用。OOM对数据库服务影响较大,应该尽量避免。 在我们的HybridDB for PG 云服务中,也可能遇到用户实例耗尽所有可用
2498 0
POLARDB · 最佳实践 · POLARDB不得不知道的秘密
前言 POLARDB作为阿里云下一代关系型云数据库,自去年9月份公测以来,收到了不少客户的重点关注,今年5月份商业化后,许多大客户开始陆续迁移业务到POLARDB上,但是由于POLARDB的很多默认行为与RDS MySQL兼容版不一样,导致很多用户有诸多使用上的困惑,本来总结了几点,给大家答疑解惑。
5461 0

相关产品

  • 云数据库 RDS
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等