复杂 SQL 查询跑不动?DRDS 只读实例来解决!

摘要: 在实际业务生产环境中,业务应用系统在使用 OLTP 数据库将数据进行存储后,均会存在如后台运营类系统进行统计报表分析等场景的复杂 SQL 查询诉求。

背景
在实际业务生产环境中,业务应用系统在使用 OLTP 数据库将数据进行存储后,均会存在如后台运营类系统进行统计报表分析等场景的复杂 SQL 查询诉求。

为满足此类复杂 SQL 查询快速响应的需求,DRDS 团队基于第三代分布式SQL引擎,进一步引入自研 MPP 多机并行计算引擎(Fireworks)及对应的优化策略,极大地补强了 DRDS 的复杂查询处理能力。

千万级数据下的分布式多表Join、聚合、排序、子查询操作秒级返回结果,可极大的提升响应速度。自身利用同一份数据(RDS只读)进行处理,无需数据同步至其他数据源,降低业务架构整体链路复杂度,节省业务运维及预算成本。
1

主要特性
自研 MPP 多机并行计算引擎 Fireworks

DRDS 只读实例搭载了一个具备完整多机并行处理能力的 SQL 执行引擎(Fireworks)。它与 DRDS 主实例上搭载的 SQL 执行引擎有显著差异。

DRDS 主实例的执行引擎采用单机架构,采取尽可能将计算下推至底层各物理分库执行的策略,依靠物理分库的计算能力实现了逻辑SQL的分布式计算。

而 DRDS 只读实例上搭载的 Fireworks 引擎是一个由多个计算节点组成的集群,将一个 SQL 查询转换为一个分布式计算任务,突破下挂
物理库计算能力的限制,大幅提升针对复杂逻辑SQL的计算速度,对 Join、Aggregate 和 Sort 计算有显著加速效果。

Fireworks 会将 Join、Aggregate 和 Sort 这类计算任务通过 Shuffle 的方式打散并分发到计算集群的多个计算节点上,通过多计算节点并行计算达到计算加速的目的。

针对多机并行执行模式定制打造的优化器

原 DRDS 主实例优化器主要侧重 OLTP 场景,核心理念是尽量将一切计算下推至下挂的物理库执行。其目的是充分利用物理库的计算资源,同时可以避免产生大量的数据流动,从而得到较快的响应速度。

而当面对涉及较大数据量级下的复查查询场景时,整体性能会受到下挂物理库的限制,同时也会对物理库产生较大的压力从而影响稳定性,总体来看其 OLAP 能力有很多局限性。

在引入了 MPP 多机并行计算引擎 Fireworks 之后,DRDS 本身在计算能力上得到了极大地提升,优化器的整体优化策略也有所调整:

  1. 尽量将复杂计算(如 Join 、Aggregation 、Sort )上提至自身执行引擎计算,通过 Fireworks 计算集群实现计算加速与可扩展性;
  2. 将轻量级的计算(如 Project 、Filter )继续下推至至物理库从而减少数据拉取的成本。

DRDS 分布式 SQL 优化器通过对执行计划最细粒度的优化可以产生出对多机并行执行引擎友好的执行计划,获得更好执行效率。

同时提供精细化算子下推策略,将对 RDS 较小压力的算子下推至物理库取得更高的计算性价比,同时保护 RDS 免受代价较大算子的影响,从而保证在线流量的稳定性。

基于在线数据直接分析

以新零售业务为代表的新兴互联网业务不断涌现,这类业务除了有实时的 OLTP 需求,还伴随着一些有一定复杂度的准实时 OLAP 的需求用以支持实时决策等需求。

而目前大多数的数据分析场景的解决方案均需要将 OLTP 数据库的生产数据导出至其他数据源进行再次离线分析,这种传统方案很难满足准实时的需求,同时在数据导出至离线系统时也存在数据丢失的风险。

DRDS 只读实例无需进行冗长繁琐的数据同步任务,基于 RDS 只读实例或 RDS 主实例直接进行复杂数据处理,降低业务架构整体链路复杂度,节省业务运维及预算成本。

DRDS 只读实例在避免数据同步的同时,可保证数据处理时效性,最高可做到 READ COMMITED 的实时性 (基于 RDS 主实例)。

边界清晰的 SQL 兼容性

DRDS 只读实例全面兼容 DRDS 主实例的 SQL 查询语法,与 DRDS 5.3 版本的 SQL 兼容性和 SQL 支持边界高度保持一致。

与同类产品相比具备兼容性高以及支持边界清晰的特点。可以提供与 DRDS 主实例几乎一致的体验。

DRDS 主实例上无法执行或执行较慢的复杂 SQL 可以直接迁移到只读实例来执行,免去SQL改写的额外开销。

产品体验灵活自主

DRDS 只读实例自动同步 DRDS 主实例的账号权限信息,原生VPC支持,内外网可同时开启,根据业务情况灵活变配,数据处理能力线性提升。

技术架构总览

DRDS 只读实例整体架构与 DRDS 主实例基本保持一致,仅在查询层有所变化,增加了 MPP 执行引擎和对应优化器,如下如所示:

2

DRDS协议层负责处理网络交互与 MySQL 协议的解析,收到查询请求后会将 SQL 转交至查询层处理。查询层负责解析 SQL 并由执行器产生经过优化的执行计划,然后交由执行引擎到存储层进行查询以及计算。
如果需要使用 Fireworks 引擎计算,在得到执行计划之后查询层还会将该执行计划进一步转换为分布式执行计划并将其作为分布式任务提交给 Fireworks Cluster。由远端的 Fireworks 集群完成到存储层进行数据查询以及后续计算的工作。

简单来说,DRDS 只读实例可以认为是在原 DRDS 基础上增加了一条具备多机并行处理能力的执行链路。

适用场景

总体来说 DRDS 只读实例适用于处理低并发高延迟的大数据量级下的复杂查询。如数据分析及报表类场景,该类场景的典型特征为含有大
量的关联、聚合及排序操作且参与计算的数据规模较大。

目前 DRDS 只读实例在阿里集团内部已经落地了多个业务,其中最具代表性的当属盒马、商业大脑等新零售场景。围绕人、货、场、仓多个维度进行关联分析,对分散在不同逻辑库的几张甚至十几张逻辑表进行关联然后再聚合、排序以满足库存对账、决策支持等业务上的需求。

DRDS 只读实例的出现使业务开发同学不再需要配置、维护数量繁多的数据同步链路,不用担心因数据不同步而造成的结果时效性差或不准确等问题,一定程度上减轻了开发同学的工作负担。

对于已经在使用 DRDS 的用户来说,DRDS 只读实例可以解决如下两类已知问题:

  1. 在使用 DRDS 过程中可能会发现某一些涉及Join、聚合、排序的复杂 SQL因为不能完全下推而需要在DRDS执行引擎中进行二次计算,而这种计算因为受到单机执行引擎在内存方面的限制而无法执行。
  2. SQL 的复杂计算部分可以下推但是涉及到的数据规模较大造成物理库压力增高影响 OLTP 业务或者响应时间过慢达不到要求。

小结

长期以来 DRDS 受到单机架构执行引擎的限制一直无法对基于大数据规模的复杂查询提供很好的支持,也无法通过扩展物理资源来实现对自身本地计算能力的线性扩展。

DRDS只读实例的推出彻底地弥补了 DRDS 在 OLAP 场景下的短板,使得 DRDS 在提供强大 OLTP 能力的同时提供可扩展的 OLAP 能力,为同时具有 OLTP 需求与中等规模数据分析需求的用户提供了一站式整体解决方案,为用户带来便利。

后续半年时间内 DRDS 只读实例将发布跨逻辑库的关联查询功能,并通过更多的技术手段,不断增强只读实例核心能力,在并发度、响应时间、数据量、交互式查询等方面将拥有更好的表现,满足企业级应用对数据库的严苛要求。

原文链接 

本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三年一跳槽、拒绝“唯学历”,火速 Get 这份程序员求生指南!

戳蓝字“CSDN云计算”关注我们哦!作者 | 郭芮责编 | 阿秃根据埃文斯数据公司(Evans Data Corporation)2019 最新统计的数据显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640 万。但在这…

Oracle的instantClient的安装配置(都是64位)

背景:本地没有安装oracle客户端和服务端(最简单) 文章目录一、远程连接方案二、软件下载2.1. 官网下载instantclient2.2. 解压2.3. 位置前移2.4. 创建目录和监听文件2.5. 添加监听信息2.6. 设置以下环境变量2.7. plsql配置2.8. 重启启动一、远…

如何利用阿里视频云开源组件,快速自定义你的H5播放器?

摘要: Aliplayer希望提供一种方便、简单、灵活的机制,让客户能够扩展播放器的功能,并且Aliplayer提供一些组件的基本实现,用户可以基于这些开源的组件实现个性化功能,比如自定义UI和自己App server的交互等等&#xff…

vmware 蓝屏_网络安全小百科--利用微软CVE 2019-0708漏洞让对方系统蓝屏死机

漏洞背景:Windows 系列服务器于 2019 年 5 月 15 号,被爆出高危漏洞,该服务器漏洞利用方式是通过远程桌面端口3389进行攻击的。这个漏洞是今年来说危害严重性最大的漏洞,跟之前的永恒之蓝病毒差不多。2019年9月7日晚上凌晨 1 点左右&#xff…

instantclient使用步骤

1、 解压缩instantclient后(假定目录为:G:\instantclient_11_2_64) 把oracle安装目录下的G:\oracle\product\11.2.0\dbhome_1\NETWORK 文件夹复制到instantclient安装目录, 修改instantclient目录下的NETWORK\ADMIN\tnsnames.ora文…

NLP中的迁移学习

摘要: 迁移学习正在各个领域大展拳脚,NLP领域正在受到冲击! 在我们之前的文章中,我们展示了如何使用CNN与迁移学习为我们自己创建图片构建分类器。今天,我们介绍NLP中迁移学习的最新趋势,并尝试进行分类任…

Linux Shell脚本专栏_服务器系统配置初始化脚本_01

文章目录一、服务器系统配置初始化1. 设置时区并同步时间① 脚本编写②脚本说明2. 禁用selinux① 脚本编写②脚本说明3. 关闭防火墙① 脚本编写②脚本说明4. 历史命令显示操作时间① 脚本编写②脚本说明5. 禁止root远程登录① 脚本编写②脚本说明6. 禁止定时任务发送邮件① 脚本…

公文字体字号标准2020_手把手教你写公文——红头文件的制作技巧

前言:不管你是在行政部门、事业单位,国企,还是在私企,只要是在办公室工作,一定会接触到公文处理的相关事务。大家都知道,红头公文作为一种有法律效力的文书,其规范性尤为重要,而国家…

计算机专业的学生也太太太太太惨了吧?

戳蓝字“CSDN云计算”关注我们哦!作者 | 景岁责编 | 阿秃最近又到了开学季,又一群懵懂的大学新生怀着憧憬走进了校园,如果让学长学姐们用一个词给学弟学妹们形容自己的专业的话,有的也许是“忙碌”,有的也许是“充实”…

19个AI热门应用领域,你确定不了解一下?

摘要: 19个AI热门应用领域,你知道多少? 1. 自然语言生成(Natural Language Generation) 自然语言生成是人工智能的分支,研究如何将数据转化为文本,用于客户服务、报告生成以及市场概述。 2.语…

koa2 mysql增删改查_koa2对mongodb的增删改查

构建项目npm install -g koa-generatorkoa2 -e projectnamenpm install mongoose说明:我们用mongoose来操作mongodb,需要安装mongoose。生成项目后,在项目里新建一个文件夹dbs,用来存放和数据库相关的配置文件,配置文件…

人工智能的时代来了,新的商业机会在哪里?

摘要: 新的时代到来意味着新的商业社会的到来,那么这些新的商业机会在哪里呢? 提起人工智能,大多数人脑子里首先跳出的可能是这些问题,人工智能会使人类都失业吗?人工智能真的可以有自我意识以及情感吗&am…

python解析excel公式_[python][openpyxl]读取excel中公式的结果值

要读取cell中的值,但是,如果cell中的值是一个公式,则读取出来的是公式。有时候我们希望读取到公式计算出来的结果,可以使用load_workbook()中的data_only属性。 load_workbook()中涉及到的全部属性,其中,re…

Linux Shell脚本专栏_Linux系统发送告警邮件脚本_02

文章目录一、Linux系统发送告警邮件脚本1. 安装mailx工具2. 编辑mailx配置文件3. 追加以下内容4. 发送邮件测试二、异常汇总2.1. 异常信息2.2. 开启授权码一、Linux系统发送告警邮件脚本 背景:外部服务器 需求:1. 安装mailx工具2. 编辑mailx配置文件3. …

任正非采访的数据分析解读

戳蓝字“CSDN云计算”关注我们哦!作者 | 林骥责编 | 阿秃2019 年 5 月 21 日,任正非接受国内媒体的采访,如果用文字转述的话,总共大约有 2.2 万个字。本文总结了任正非在采访中说的一些数据,并做了简单的分析解读&…

阿里推出 PolarFS 分布式文件系统:将存储与计算分开,提升云数据库性能(附论文)

摘要: 将存储与计算分开来大有意义,对于部署的云数据库而言更是如此。为此,阿里巴巴推出了一种新开发的名为PolarFS的分布式文件系统,旨在确保低延迟和高可用性。这个文件系统与阿里云上自己的PolarDB数据库服务搭配使用。 将存储…

ios开发 热搜词demo_手机app如何开发

泛娱科技​www.cpdzapp.com手机app开发流程为:1.首先,制作一款APP,必须要有相关的idea,也就是说,第一步是APP的idea形成。2.通过那些idea来进行APP的主要功能设计以及大概界面构思和设计。3.大功能模块代码编写以及大概…

Linux Shell脚本专栏_批量创建100用户并设置密码脚本_03

文章目录一、简单需求实现流程1. 添加用户2. 给用户设置密码二、企业需求实现流程2.1. 脚本准备工作2.2. 企业级脚本2.2. 需求说明2.3. 企业级脚本说明三、实战3.1. 运行脚本3.2. 查看创建的用户3.3. 查看文件中的用户和密码信息一、简单需求实现流程 背景:新入职1…

【大数据】Spark面试100问 | CSDN博文精选

戳蓝字“CSDN云计算”关注我们哦!作者 | 游骑小兵责编 | 阿秃Q:什么是Spark?A:简单理解,Spark是在Hadoop基础上的改进,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,…

为数据安全而生,阿里云容灾备份方案场景实践解析

摘要: 数字经济时代,数据正以超出想象的速度快速增长。短短几年,数据量已经从TB级别跃升到PB乃至ZB级别。 数字经济时代,数据正以超出想象的速度快速增长。短短几年,数据量已经从TB级别跃升到PB乃至ZB级别。 根据相关…