速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

专访阿里姜伟华:实时数仓,如何能做得更好?

  • 2019-11-10
  • 本文字数:2895 字

    阅读完需:约 9 分钟

专访阿里姜伟华:实时数仓,如何能做得更好?

流式数据一经采集,就可以立即参与计算,并将计算结果投入到业务应用。实时数据计算早已经进入到人们生活的方方面面,越来越多的实时计算场景被开发出来,大家对“一切都在变化之中”的感受越来越深刻。有越来越多的业务需要“实时计算”能力,建设更好的数据中台才能服务业务。


实时计算技术这几年也在急剧变化。实时计算架构,从最早的 Lambda,到 Kappa 架构,再到现在的流计算+交互式分析双擎架构;流计算框架,从 Storm 到 Spark Streaming 到 Flink;实时计算结果存储,有 Redis、HBase、MySQL 等等。阿里巴巴资深技术专家姜伟华表示:“实时数仓的实践往往是八国联军齐上阵,各种引擎各负责一小块,形成了大量的数据重复和孤岛。”


在实践中,阿里总结了一套通用的支撑实时数仓构建的方法,我们对此进行了采访。他将在 ArchSummit 北京做主题为“实时计算+交互式分析双擎解决数仓实时性的短板和痛点”的演讲。


姜伟华,阿里巴巴资深技术专家。曾长期在 Intel、唯品会等公司工作。在 Intel 期间,创建并负责 Intel 大数据研发团队,创立 Intel 大数据发行版,并连续多年保持国内市场占有率第一。领导 Intel 大数据开源,团队涌现出 10+ Apache Committer,创立两个 Apache 项目。曾获 Intel 最高奖(Intel Achievement Award)和 Intel 中国最高奖(Intel China Award)。在唯品会期间负责大数据平台与 AI 平台。现在阿里巴巴从事新一代大数据交互式分析引擎的研发工作。


InfoQ:你能定义“数据中台”是什么吗?


姜伟华:数据中台这个概念很热,每个人对它的理解也不一样。从我自己的理解来说(更偏底层一些),中台相比平台最大的区别是:平台的业务化能力和复用能力。平台建设更多的是用户或者业务来适应平台。平台提供了什么组件,那么用户只能用这些组件(不管好不好用)。而且这些组件可能是互相割裂开的。而中台更强调的是提供用户好用、易用的高质量平台,让用户自助,缩短 Time to Market (TTM),同时能快速响应变化。


InfoQ:你如何定义“实时数据中台“?能解决什么痛点?


姜伟华:数据中台的时效性是数据中台的价值倍增器。这里说的时效性是一个泛的概念,包含了实时数据、实时分析、如何让结果快速为生产系统获得、如何让业务自助快速进行分析、如何快速响应业务变化等等。数据本身的价值是随着时间推移而快速降低的。只有把这几个方面做好,才能充分数据的价值,让数据中台更好的为业务服务。

目前实时这边,主流的还是 Lambda 架构。但这个方案其实是有很多痛点的,仅仅解决了能用的问题,但离好用、易用、更好的服务业务还差的很远。

主要的痛点是:

  1. 多套系统、多份数据、链路长且不可靠。简单来说,就是实时链路和离线链路是完全分开的,互相没有关系。那么相同的数据、逻辑都需要在两边各做一遍。逻辑对齐很困难。同时,链条中环节比较多,涉及到很多的同步任务。某个环节出问题的监控和定位都相对困难。

  2. 数据业务化的能力很差,业务方必须要懂专门的实时计算知识才能开发相关的实时任务。这往往导致实时业务开发沦为实时平台团队的主要工作内容。

  3. 响应业务变化的能力很差。一个新需求离线可能 1 天就开发完了,实时这边可能要一周甚至更长的时间。

  4. 数据治理比较差。对于实时这边,数据治理一般都比较弱。因为存储、计算都是完全独立的,所以常规的数据治理手段在实时这边基本都不能用。这就导致实时链路的可靠性相对比较差。

我们认为数据中台的实时化,或者说实时数仓,更加理想的架构应该是流计算+交互式分析这样的双擎架构,以带实时存储的交互式分析为中心去构建整个实时链路。数据经过流式 ETL 之后,实时导入实时存储中。在这个实时存储之上,通过交互式分析实现即用即查。从而将大数据实时数仓的体验和传统的单机 OLAP 数据库体验对齐,最大程度简化链路和用户体验。


InfoQ:你有多年的实时计算经验,关于“实时”您认为业界哪些大的变化不得不提?


姜伟华:首先,实时不等于流计算。对实时的理解也是一个发展的过程。从最早的 Lambda 架构,到后来提出的 Kappa 架构,再到现在我们推的流计算+交互式分析双擎架构。

架构的演进本质上都是在往批流一体这个方向发展。让用户能够以最自然、成本最小的方式完成实时计算。其次,全链路的实时化和 SQL 化是一个非常明确的趋势。一方面,越来越多的业务需要实时(这个实时很多时候指的是分钟级的延迟和可接受的实现代价),另一方面,能用 SQL(最好是标准 SQL)表达所有环节的计算也是很明显的趋势。

再者,如何让业务方参与进来,而不是让平台方独自完成是实时数据赋能业务的关键。将业务开发从实时平台同学还给业务同学。只有业务同学才最深刻的理解业务需要什么。最后,如何让实时系统能快速响应变化,缩短 TTM 时间变得越来越重要。传统实时开发一个应用往往会比离线数仓开发慢一个数量级。如果将开发时效达到和离线数仓相同甚至更高的水平会是越来越强的需求。


InfoQ:“实时数据中台的实践往往是八国联军齐上阵,各种引擎各负责一小块“,这些数据引擎包括哪些?为什么现在它们都还存在于系统中?未来是否都能被 Flink 取代?


姜伟华:生产系统中,一般实时链路包含了 Kafka,Storm/Flink,Redis/HBase/MySQL 等组件。其中,每个组件实例一般只做一件事情,比方说 Redis 用来做实时 ETL 的查表,Storm/Flink/Spark Streaming 用来做实时计算,Redis/HBase/MySQL 用来做实时计算的结果存储等等。因为链路比较长,所以有大量专门的同步任务将数据在不同的系统之间同步。

实时系统因为历史原因,Storm 等还广泛应用于生产系统中。用 Flink 去替换这些系统是在缓慢但稳健的进行中的。一方面 Flink 的优势非常明显,在流处理领域基本已一统天下;另一方面,实时生产系统的替换要比离线数仓换一个 SQL 引擎麻烦的多。需要逐个替换,并需要验证在极端情况下的稳定性。

但在现有的 Lambda 架构下,整体流程和模块是基本稳定的,变的更多的是每个模块内用什么引擎(比方说 Storm 换成 Flink)。只有整个架构的更新,才会完全改变现有的链路和模块,比方说,我们推的流计算+交互式分析双擎架构就可以极大的简化这个实时链路。这里像 Flink 这样的流引擎,可以更关注在实时 ETL 和关键系统的实时计算上,而分析类的应用用交互式引擎更为合适。两者配合,实现 1+1>2 的效果。


InfoQ:“批流一体”,你能大概描述下怎么实现吗?


姜伟华:我们认为在实时数据上,流计算+交互式分析双擎架构是一种各方面都比较完美的架构。在这个架构中,流计算负责的是基础数据,而交互式分析引擎是中心。这个引擎一定是自带存储的,通过计算存储的协同优化,实现高的写入 RPS、高的查询 QPS 和低的查询 latency。这样就可以用批的方式实现实时分析和按需分析,并能快速的响应业务的变化。业务方使用他们熟悉的开发工具和开发语言(SQL),就像开发单机一样,去开发基于大数据的实时应用,实现体验的最优。


精彩会议推荐:在 12 月 6 日北京 ArchSummit 架构师峰会上,姜老师将分享一种通用的支撑实时数据中台构建的方法与实践,实时数据中台构建的挑战与技术难点,帮助您透彻了解数据中台的难点。感兴趣可以点击阅读原文。会议正在 9 折售票中,购票可联系票务经理灰灰:微信 15600537884


2019-11-10 08:004196

评论

发布
暂无评论
发现更多内容

Linux下Docker安装部署以及云原生的理解

Geek_acae888666

云原生 Docker 镜像

运筹帷幄决胜千里,Python3.10原生协程asyncio工业级真实协程异步消费任务调度实践

刘悦的技术博客

Python 协程 Async Python3 协程原理

LeaRun模型驱动开发框架 重塑企业生产力

力软低代码开发平台

深度解读 | 关于SBOM最基础元素,你需要知道的(Part I)

安势信息

开源 漏洞 SCA SBOM 最基础元素

Netty入门 -- 什么是Netty?

Bug终结者

Netty 8月月更

Go-Excelize API源码阅读(四)——Save()

Regan Yue

Go 开源 源码刨析 8月日更 8月月更

Qt下异步使用C++调用Python文件

Geek_163f36

2022纯手工打造1700道Java高级工程师面试宝典(含面试题解析)

Java工程师

Java 面试 八股文

永续合约交易所系统开发逻辑详情

开发微hkkf5566

什么是Shell?从小白到入门你只差一个它

Albert Edison

Linux centos 运维 shell脚本编程 8月月更

Grid 布局介绍

CRMEB

基于华为云弹性云服务器ECS(搭载openEuler的鲲鹏通用计算增强型)完成鲲鹏代码迁移工具实践【华为云至简致远】

科技云未来

鲲鹏服务器 弹性云服务器ESC

调研阶段复盘

Geek_XOXO

复盘

企业“数字化转型”成功的2个必备条件!

优秀

数字化转型

开源一夏 | 基于 Serverless一键体验FastAPI

六月的雨在InfoQ

阿里云 开源 Serverless FC 8月月更

Taro小程序跨端开发入门实战

京东科技开发者

小程序 taro 开发 移动端

如何用精益敏捷组合管理,提升研发效能?|ONES 研发管理大师课

万事ONES

mysql进阶(二十九)常用函数汇总

No Silver Bullet

MySQL mysql常用函数 8月月更

开源一夏 | RuntimeException 子类

六月的雨在InfoQ

开源 8月月更

阿里云数据库PolarDB开源人才培养计划发布!万元好礼等你来拿!

阿里云数据库开源

数据库 阿里云 开源 认证 polarDB

它们不一样!透析【观察者模式】和【发布订阅模式】

掘金安东尼

前端 设计模式 8月月更

Java泛型的继承场景

Geek_163f36

以数治企,韧性成长,2022 年中国 CIO 数字峰会成功举行

金蝶云·苍穹

QCon 回顾 | Data Fabric:逻辑统一、物理分散

网易数帆

大数据 数据湖 降本增效 Data Fabric

APICloud AVM 封装日期和时间选择组件

YonBuilder低代码开发平台

安卓 低代码开发 多端开发

如何让您的wiki内容更高级?

Geek_da0866

基于ECS实现一分钟自动化部署【华为云至简致远】

科技云未来

自动化部署

用完华为云会议解决方案,我直接卸载了之前的会议软件【华为云至简致远】

科技云未来

云会议产品

基于华为云ModelArts的水表读数识别开发实践【华为云至简致远】

科技云未来

水表读数识别项目

国内部分手机游戏开始显示用户IP属地

郑州埃文科技

游戏 手游 IP归属地

急了,Mysql索引中最不容易记的三个知识点通透了

知识浅谈

8月月更

专访阿里姜伟华:实时数仓,如何能做得更好?_ArchSummit_Tina_InfoQ精选文章