基于 MaxCompute 的实时数据处理实践

简介: MaxCompute 通过流式数据高性能写入和秒级别查询能力(查询加速),提供EB级云原生数仓近实时分析能力;高效的实现对变化中的数据进行快速分析及决策辅助。当前Demo基于近实时交互式BI分析/决策辅助场景,实现指标卡近实时BI分析、近实时市场监测、近实时趋势分析、近实时销量拆分功能。

本文作者 隆志强 阿里云智能 高级产品专家

一、产品功能介绍

基于查询加速的数仓架构

当前比较盛行的实时数仓,基本都是基于Flink来做的。今天分享的内容不是把 MaxCompute 定义为一个实时数仓,我们讲的是基于当前数据的实时处理流程,在MaxCompute中是怎么去做支持的,怎么在 MaxCompute 中做实时数据的接入、查询、应用。开源的实时数仓是基于Flink来做的,Flink本质是实时计算,支持流批一体,所以比较实时的场景都是基于Flink+Kafka+存储来做的。本次分享主要不是讲计算环节,本次主要讲解基于BinLog、Flink、Spark Streaming的实时流数据是怎么写入到 MaxCompute 中的。

通过实时流通道,实时写入MaxCompute,写入即可见,这是 MaxCompute 的产品特点。目前市场的数仓产品写入查询绝大多数都有延时存在, MaxCompute 是做到了高QPS的实时写入,写入即可查。可以通过查询加速(MCQA)实时查询写入进 MaxCompute 的数据。对接到BI工具,即席查询可以实时访问到实时写入的数据。

Binlog写到到MaxCompute,是通过DataX,支持增删改查的合并,后续在产品功能迭代中,MaxCompute会支持upsert,支持业务数据库数据的新增、修改、删除。Flink数据计算完之后写入到 MaxCompute 时,直接使用Streaming Tunnel插件写入MaxCompute中,这个过程不需要做代码开发,Kafka也支持了插件。

实时写入目前没有做写入数据的计算处理环节,只是快速的把现在流式数据包括消息服务的数据,直接通过Streaming Tunnel服务写入到MaxCompute中。当前Streaming Tunnel支持了主流消息服务,如Kafka、Flink,做了插件支持。以及Streaming Tunnel SDK,当前只支持Java SDK。可以通过Streaming Tunnel SDK做一些应用读取之后的逻辑处理,再调取Streaming Tunnel SDK写入到MaxCompute中。写入MaxCompute之后,目前主要的处理环节是针对写入的数据,进行直读查询,也可以把写入的数据关联到MaxCompute中的离线数据,做联合查询分析。在查的过程中,如果是通过SDK或者JDBC接入时,可以打开查询加速(MCQA)功能。如果是通过web console或DataWorks,是默认开启查询加速(MCQA)功能。当前主要是BI分析工具和第三方应用层分析工具,通过SDK或JDBC链接MaxCompute时,是可以打开查询加速(MCQA)功能,这样可以做到接近秒级查询实时写入的数据。

整体来看,现在的场景主要是数据的实时流式写入,写入之后可以结合离线数据,做联合分析查询,通过查询加速(MCQA)功能。在数据进入MaxCompute后,是没有做计算的,只是做查询服务。这是目前基于MaxCompute实时数据处理场景。

1.png

流式数据写入功能介绍

当前流式数据写入功能已经在中国区商业化发布。当前此功能是免费使用。

功能特定

  • 支持高并发、高QPS(Queries-per-second)场景下流式数据写入,写入即可见。
  • 提供流式语义API:通过流式服务的API可以方便的开发出分布式数据同步服务。
  • 支持自动创建分区:解决数据同步服务并发创建分区导致的并发抢锁问题。
  • 支持增量数据异步聚合(Merge):提升数据存储效率。
  • 支持增量数据异步zorder by排序功能,zorder by详情请参见插入或覆写数据(INSERT INTO | INSERT OVERWRITE)。

性能优势

  • 更优化的数据存储结构,解决高QPS写入导致的碎片文件问题。
  • 数据链路与元数据访问完全隔离,解决高并发写入场景下元数据访问导致的抢锁延迟和报错问题。
  • 提供了增量数据异步处理机制,可以在使用过程中无感知情况下对新写入的增量数据做进一步处理,已经支持的功能包括:
  • 数据聚合(Merge): 提升存储效率。
  • zorder by排序:提升存储、查询效率。

流式数据写入-技术架构

Stream API无状态并发数据实时可见

技术架构分为三个部分:数据通道、流计算数据同步、自研应用。

当前数据通道支持的有Datahub、Kafka、TT、SLS

流计算数据同步支持的有Blink、Spark、DTS、DataX、kepler/DD

数据写入MaxCompute中,在计算集群前会有Tunnel集群存在,提供Stream Tnnel服务来完成从客户端到Tunnel服务端数据的写入。写入过程是一个文件最佳的过程,最后会有一个文件的合并。这个过程是消耗了数据通道过程中的计算资源服务,但这一消耗是免费的。

2.png

查询加速功能介绍

实现数据实时写入与基于查询加速的交互式分析

目前查询加速功能可以支持日常查询80%-90%的场景。查询加速功能的语法与MaxCompute内置语法完全一致。

MaxCompute查询加速 – 针对实时性要求高的查询作业,全链路加快 MaxCompute 查询执行速度

  • 使用MaxComputeSQL语法和引擎,针对近实时场景进行优化
  • 系统自动进行查询优化选择,同时支持用户选择延时优先还是吞吐优先的执行方式
  • 针对近实时场景使用不同的资源调度策略:latencybased
  • 针对低延时要求的场景进行全链路优化:独立执行资源池;多层次的数据和metaCaching;交互协议优化

收益

  • 简化架构,查询加速与海量分析自适应的一体化方案
  • 对比普通离线模式快几倍甚至数十倍
  • 结合MaxCompute流式上传能力,支持近实时分析
  • 支持多种接入方式,易集成
  • 支持自动识别离线任务中的短查询,后付费模式是默认开启。预付费当前支持为使用包年包月资源的实例下SQL扫描量在10 GB以内的查询作业提供免费查询加速服务。
  • 低成本,免运维,高弹性

查询加速-技术架构

自适应执行引擎、多层次缓存机制

当SQL提交到MaxCompute计算引擎时,会分为两个模式,离线作业(吞吐量优化)和短查询(延迟优化)。两个模式从技术底层来说,查询加速作业做了执行计划的缩减和优化,计算资源是预拉起资源,是向量化执行,会基于内存/网络shuffle以及多层次的缓存机制。相比于离线作业的代码生产到磁盘shuffle,再进行资源排队申请。查询加速会进行识别作业,如果符合条件,则直接进入预拉起资源。在数据缓存部分,基于Pangu分布式文件系统,对表跟字段会有一个缓存机制。

3.png

查询加速-性能比对

TPCDS测试集与某业界领先竞品的性能比较

  • 100GB超越30%以上
  • 1TB规模性能不相上下

二、应用场景 

流式数据写入-应用场景

 

查询加速-应用场景

固定报表快速查询

  • 数据ETL处理为面向消费的聚合数据
  • 满足固定报表/在线数据服务需求,秒级查询
  • 弹性并发/数据缓存/易集成

通过数据应用工具或者是BI分析工具通过JDBC/SDK接入到MaxCompute,可以直读到MaxCompute内的表数据。

4.png

Ad-hoc数据探索分析

  • 自动识别作业特征,根据数据规模、计算复杂度选择不同的执行模式,简单查询跑的快、复杂查询算得动
  • 配合存储层建模优化,如分区、HashClustering等进一步优化查询性能

5.png

近实时运营分析

  • 支持批量和流式数据接入
  • 历史数据和近实时数据融合分析
  • 产品级别集成消息服务:
  • Datahub-日志/消息
  • DTS-数据库日志
  • SLS-行为日志
  • Kafka-物联网/日志接入

6.png

三、工具及接入

流式数据写入-接入

消息&服务

  • 消息队列Kafka(插件支持)
  • Logstash的输出插件(插件支持)
  • Flink版内置插件
  • DataHub实时数据通道(内部插件)

SDK类新接口-Java

  • 简单上传示例
  • 多线程上传示例
  • 异步化IO多线程上传示例

参考上述示例可以自己封装相应的业务逻辑。

查询加速-接入

工具类

  • DataWorks(默认开启)
  • ODPS CMD(需要配置)
  • MaxCompute Studio(需要配置)

SDK类接口

  • ODPS JavaSDK
  • ODPS PythonSDK
  • JDBC

老接口兼容

  • 自动识别模式

7.png

四、Demo&总结

基于MaxCompute的实时数据处理实践

实现对变化中的数据进行快速高性能分析及决策辅助,10亿条数据查询秒级获取。

本次Demo实践是通过MaxCompute+QuickBI实现。QuickBI现在已支持直连的MaxCompute查询加速模式,QuickBI本身已有加速引擎,如DLA、CK等。当前最优的模式,直连MaxCompute走查询加速模式是最快的。

8.png

实践总结

优点

  • Streaming Tunnel:  实时写入可见,解决了高QPS写入导致的碎片文件问题;
  • 查询加速:低延迟-多级缓存&快速资源调度、易用-一套SQL语法、弹性-存储计算分离

提升

  • 目前下游应用消费/汇总时每次只能全量查询,无法做进一步实时流计算处理;实时入库不支持修改、删除;
  • 后续MC提供流式SQL引擎运行实时流作业,做到流批一体

原文链接
本文为阿里云原创内容,未经允许不得转载。 

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

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

相关文章

如何使用计算机来线性拟合,Excel2019使用教程:绘制线性回归图

Excel的功能很强大,可以做各种数据处理和分析。想要检测两组数据是否具有线性关系,就可以使用excel2019来做一元线性回归分析图表,进行数据分析,从而根据结果来测试两组数据的关系。在excel2019中制作一元线性回归分析图表的方法很…

技术干货| 阿里云基于Hudi构建Lakehouse实践探索「内附干货PPT下载渠道」

简介: 阿里云高级技术专家王烨(萌豆)在Apache Hudi 与 Apache Pulsar 联合 Meetup 杭州站上的演讲整理稿件,本议题介绍了阿里云如何使用 Hudi 和 OSS 对象存储构建 Lakehouse,为大家分享了什么是 Lakehouse,阿里云数据库 OLAP 团队…

将 k8s 制作成 3D 射击游戏,好玩到停不下来 | 文末福利

作者 | 小碗汤来源 | 我的小碗汤今天演示一个项目,利用Unity做场景、用C#做交互逻辑,将k8s制作成一个3D射击游戏。正好最近在学习Unity,所以利用这个项目开始上手挺合适的。源码、可执行文件可以自行下载,也可在文末获取&#xff…

Alibaba FFI -- 跨语言编程的探索

简介: 跨语言编程时现代程序语言中非常重要的一个方向,也被广泛应用于复杂的设计与实现中。 跨语言编程是现代程序语言中非常重要的一个方向,也被广泛应用于复杂系统的设计与实现中。本文是 GIAC 2021(全球互联网架构大会) 中关于 Alibaba …

世界通信简史

作者 | 小枣君来源 | 鲜枣课堂█ 萌芽期:现代通信的诞生公元前600年左右,古希腊哲学家泰勒斯闲着没事,拿家里的琥珀棒蹭一只小猫。 蹭着蹭着,他发现,琥珀棒把小猫的毛都吸起来了。 现在我们都知道,这是因为…

如何避免出现SQL注入漏洞

简介: 本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案。 作者 | 阿里云安全团队 来源 | 阿里技术公众号 ‍‍…

「CSDN 2021年度 IT 技术影响力之星评选」活动报名倒计时!

“CSDN 2021年度IT技术影响力之星评选”活动自2021年12月6日启动以来受到了行业各界的关注以及企业和个人的积极响应,截止目前,已收到上千份参评报名。本次评选活动的第一阶段——企业/个人参与提名将于2022年1月30日结束,以真实数据为基础&a…

技术人员的一点产品思维思考

简介: 作为一线的开发人员,大家是不是都经历过和产品吵得不可开焦,甚至最后谁也无法说服谁,最后只能由老板出面解决的经历。而大多数情况老板还真能以某种方法去解决,并且是一个双方都能接受的方案。然而这不全是因为老…

chrome插件上传csv_Chrome插件推荐

从 IE 到 Chrome ,期间使用了很多浏览器,搜狗、360、2345、傲游等等,最后选择了 Chrome ,一直到现在,在使用的过程中发现一些好用的插件(扩展程序),在此推荐给大家。PS:使…

极验创始人吴渊:恶意流量威胁新趋势,洞察网络黑产3大核心本质

天下没有免费的午餐,更没有免费的流量。以电商为例,最疯狂的时候,某电商平台单个获客成本接近400元。作为互联网的稀缺资源,流量的成本不断冲击着企业运营红线。 而就当企业盯着成本、守着转化时,网络黑产已完成对平台…

来啊,来魔改啊,人生重开模拟器一键托管上线

简介: 云开发平台将“人生重开模拟器”fork到了云开发的仓库了,用户只需要直接fork到自己的仓库以后就可以在云开发平台上进行快速魔改和一键部署,绑定自己的域名就能够让小伙伴们一起来感受你的魔改创意哦。 人生无法重来,游戏可…

从边缘到云,万物互联时代Aruba的技术经

作者 | 宋慧 出品 | CSDN 云计算 网络,是重要的 IT 基础设施之一。在 2021 年底,国际分析机构 Gartner 发布了本年度企业有线和无线局域网基础设施魔力象限,HPE 旗下公司 Aruba 连续第十六年被列入领导者象限。更早一些的 2021 年 Gartner 广…

Apache Hudi 在 B 站构建实时数据湖的实践

简介: B 站选择 Flink Hudi 的数据湖技术方案,以及针对其做出的优化。 本文作者喻兆靖,介绍了为什么 B 站选择 Flink Hudi 的数据湖技术方案,以及针对其做出的优化。主要内容为: 传统离线数仓痛点数据湖技术方案Hudi…

表格存储 SQL 查询多元索引

简介: 多元索引是表格存储产品中一个重要的功能,多元索引使用倒排索引技术为表格存储提供了非主键列上的快速检索功能,另外也提供了统计聚合功能。表格存储近期开放了SQL查询功能,SQL引擎默认从原始表格中读取数据,非主…

好难啊……一个 try-catch 问出这么多花样

作者 | 阿Q来源 | 阿Q说代码刚刚面试回来的B哥又在吐槽了:现在的面试官太难伺候了,放着好好的堆、栈、方法区不问,上来就让我从字节码角度给他分析一下try-catch-finally(以下简称TCF)的执行效率.....今天我们就来好好…

数据是如何被保护的?高质量存储告诉你

简介: 作为关键信息基础设施运营者,阿里云提供了全方位的数据安全保护方案。今天,我们就从数据存储的角度来聊一聊数据是如何被保护的。 原文链接 本文为阿里云原创内容,未经允许不得转载。

Nacos 开源、自研、商业化三位一体战略解读

简介: Nacos作为整个阿里云原生三位战略中的核心组成部分,我们在2018年以Configserver/VIPServer/Diamond为基础通过Nacos开源输出阿里十年沉淀的注册中心和配置中心能力,并且快速成为国内首选。并且通过云产品MSE以BaaS模式输出解决方案能力…

Haystack 太强了!存 2600 亿图片

作者 | 奇伢来源 | 奇伢云存储小文件存储小文件存储,老生常谈的问题。先聊聊小文件存储重点关注的是什么?以前我们提过,对于磁盘来说,小 io 吃 iops,大块 io 吃吞吐。划重点:小文件的重点是 io 次数。为什么…

全国计算机网络教学研讨会,历届全国高校计算机网络教学研讨会

1. 第六届全国高校计算机网络教学研讨会在内蒙古大学成功召开2. 第五届全国高校计算机网络教学研讨会在温州大学成功召开 2012年10月26日-27日,第五届全国高校计算机网络教学研讨会在温州大学召开。会议由中国计算机学会互联网专业委员会和中国计算机学会…

Dubbo 和 HSF 在阿里巴巴的实践:携手走向下一代云原生微服务

简介: HSF 和 Dubbo 的融合是大势所趋。为了能更好的服务内外用户,也为了两个框架更好发展,Dubbo 3.0 和以 Dubbo 3.0 为内核适配集团内基础架构生态的 HSF 3 应运而生。 作者 | 郭浩 Dubbo 和 HSF 都是阿里巴巴目前在使用的微服务 RPC 框架…