作者:果贝,阿里云资深技术专家,实时数仓 Hologres 负责人
2022 年 1 月 7 日,阿里云实时数仓 Hologres 举办了年度发布会,在发布会上,来自阿里的资深技术专家从阿里的外围场景登程,为大家解读了实时数仓的新发展趋势“在线化、麻利化、一站式”。通过本文,咱们将会深刻解读实时数仓倒退所面临的问题,以及外围发展趋势,以帮忙大家更好的做产品选型和数仓布局。
实时数仓是当初大数据畛域十分热门的一个概念(和它同热度的大略就是湖仓一体了)。通过十多年的倒退,大数据曾经成为每家公司的标配。传统上,离线数仓(开源以 Hive/Spark 为代表,闭源以阿里 MaxCompute、Snowflake、AWS Redshift、Google BigQuery 等为代表,以及 Vertica、Oracle、HANA 等传统 IT 厂商),流式计算(以 Flink/Spark Structured Streaming 为代表),数据服务层(HBase、MySQL、ES、Redis 等)独特组成了大数据处理的规范架构:Lambda 架构。Lambda 架构提供了实时数据的服务(serving)能力。但 Lambda 架构的典型问题是开发简单、数据冗余和剖析不灵便。
近几年,以 ClickHouse、Apache Doris、阿里 Hologres 等为代表的实时数仓衰亡,通过实时写入明细数据 + 灵便交互式查问局部实现了去 Lambda 架构,在实时性、灵活性、老本、治理和运维等多方面都达到了较好的均衡。
随着 2021 年双 11 的完满闭幕,实时数仓技术在阿里双 11 场景也经验了多年的实际和倒退。从晚期的基于不同作业的烟囱式开发,到基于畛域分层建模的数仓引入,再到剖析服务一体化的新型交融式一站式架构,开发效率逐渐晋升,数据品质更有保障,也积淀了更多技术创新,让咱们看到了一些将来数仓开发、利用的可能性和趋势。
上面咱们来聊聊从阿里双 11 看到的实时数仓倒退的一些趋势。
实时数仓曾经成为业务标配
第一个趋势是实时数仓曾经成为标配。
业务对时效的要求、对灵活性的要求越来越高,从而使得实时数据变为一种刚需。而实时数仓在老本、灵活性上的微小劣势使得业务优先选择实时数仓作为实时数据的生产、存储和应用平台。在阿里巴巴,Hologres 服务了约 90% 的 BU,集群规模超过了 60 万 core,并放弃 100% 的增长速度。在这些业务中,有较常见的实时数仓场景,比方:
- 数字化经营:
这种场景上游对接 Flink 进行数据流式加工;上游对接 BI 工具、数据大屏等,实现业务的自助开发和上线。极大晋升了开发效率和灵活性,反对所见即所得的开发体验。 - 网络流量剖析、Metrics 剖析:通过对网络流量、及其他 Metrics 类数据的实时存储和监控,可疾速预警和定位设施潜在故障。在万亿级记录上查问秒级响应,故障秒级发现。
- 实时物流跟踪:通过实时数仓实现物流信息的实时跟踪,保障物流流转状态的实时更新、实时查问。
在这些绝对常见的实时数仓场景外,因为剖析服务一体化(Hybrid Serving/Analytics Processing,以下简称 HSAP)能力(以及与之对应的 Hologres 高速纯实时写入能力和点查能力),Hologres 也被用在了很多非典型的实时数仓场景。例如:
- 对商家的广告人群圈选:通过 Hologres 对宽广商家(to B)提供高 QPS、低提早的人群圈选和广告投放服务。
- 无人车送货:Hologres 承载无人车上商品的订单、物流等指标信息,面向 B 端驿站,实时汇报物流信息,从而帮忙驿站老板实现智能化包裹分拣、挪动投柜等工作;面向用户,再通过系统调度运力,实现”定时上门、送货到楼”。
- 搜寻举荐中的特色存储和样本存储:利用 Hologres 的弱小点查能力,实现实时样本(feature store)、实时特色(sample store)和实时算法成果剖析。
- 客户全链路体验: 客服服务部门通过在 Hologres 存储客户的相干多渠道数据,实现间接对消费者提供各种明细查问能力(to C)。
…
相似的场景还有很多,数据的实时“被看见”,“被应用”成为企业高速倒退的原动力。
实时数仓撑持在线生产零碎
第二个趋势就是实时数仓越来越成为生产零碎的一部分。
传统上,实时数仓(数据仓库)是一个非生产零碎。因为它次要面对的是外部客户,所以尽管大屏等重要性很高,但实时数仓实质上并不在生产要害链路上,也就是说,如果实时数仓不可用了,对客户的影响并不大。这也是为什么大部分实时数仓产品在高可用性、资源隔离、灾备等能力上和数据库等零碎是有很大差距的。
传统上对外的服务是通过离线 / 流式加工 + 后果点查来提供的,即和用户交互的要害链路是后果点查(通过 HBase、Redis、MySQL 这样的零碎去承载)。这种模式的益处是简略牢靠,但限度也是微小的,能提供的服务性能十分无限,且不灵便。业务迫切希望能将外部的实时数仓能力以可控的形式凋谢给内部客户(to B、to C),并且放弃内外两套零碎在数据和逻辑上的一致性。下面列举的阿里广告、无人车送货、客户全链路体验等场景都是这种 to B,甚至 to C 的案例。
随着实时数仓作为一个服务对外提供,用户对服务的并发度、可用性、稳定性都提出了更高的需要。这也是 Hologres 在过来一年中重点发力的中央。Hologres 在过来一年中引入了多正本、热降级、疾速 failover、资源隔离、读写拆散、灾备等能力,实现了生产级高可用,并在往年的双 11 中失去了很好的利用。举几个例子:
- 阿里巴巴客户体验事业部(Chief Customer Office,以下简称 CCO)去年是业务上做了双链路写入和存储冗余来保障高可用。往年双 11 应用了 Hologres 原生高可用计划下掉手工双链路,省去备用数据链路上实时工作开发、数据比对的人力投入,缩小链路切换时的数据不统一,整体开发人力老本缩小 200 人日,环比去年升高 50% 以上;缩小了 100+ 用于实时重保的备份链路作业,缩小计算资源 2000CU。
- 阿里巴巴数据技术与产品部(Data Technology,以下简称 DT)应用 Hologres 读写拆散计划,高吞吐写入和灵便查问互不烦扰;剖析查问 QPS 增长 80% 的同时,查问抖动显著缩小。
咱们认为实时数仓的生产系统化是一个必然的趋势,置信各个实时数仓产品都会逐渐加码这方面的开发投入。
剖析服务一体化(HSAP)
第三个趋势是剖析服务的一体化(HSAP)。
Hologres 是这方面的首倡者,源头是阿里团体内的业务对剖析服务一体化有强诉求,剖析服务一体化最佳实际首先在阿里外部落地,但咱们在业界也看到越来越多的产品和企业在提倡和实际剖析服务一体化。
剖析服务一体化(HSAP)能够从几个层面下来了解:
最根底的是用户能够应用一套技术栈(Flink+Hologres)去解决 Ad-hoc Query 剖析(对内)和线上服务(对内、to B、to C)两个工作,从而升高开发运维老本。传统上,实时数仓做的是 Ad-hoc Query,而 lambda 架构实现的是线上服务。这两个在技术栈、数据链路、开发运维等都齐全不同,但解决的数据起源往往是同一份数据,导致了大量的开发作业冗余,同时数据的一致性也是大难题。而通过应用对立技术栈同时满足这两方面的需要,开发、运维、治理变的简略。
以阿里 CCO 的场景为例,数据写入到 Hologres 行存表后(行存表写入吞吐高,主键查问快,更新场景 Binlog 开销低),会通过 Hologres 表的 binlog 被 Flink 二次生产加工后,存入 Hologres 的列存表提供剖析(列存对于统计类查问速度快)。行存表提供线上服务 / 点查,列存表提供剖析能力。
更高层次的 HSAP 是用户能够在 一个平台 上用 一份数据 去实现 Ad-hoc Query 和线上服务两个工作,同时实现良好的资源隔离和可用性。
例如,往年双 11 DT 部门上了 Hologres 读写拆散计划(由两个 Hologres 实例别离负责实时写入和实时查问,但共享一份底层数据存储),同时有多个读实例别离负责不同类型的查问,这样就能够保障读写隔离、剖析查问和服务查问隔离,且只有一份数据。也就是所谓的One Data,Multi Workload。
剖析服务一体化除了上述的益处外,另外一个显著的劣势是服务上线速度显著放慢。因为一体化后,剖析和服务的边界变的含糊,所以服务的开发和剖析差别不大,能够认为服务就是一种简略、固定 pattern 的剖析。这样,传统上服务上线的简单流程就被大大简化了。当有紧急需要须要长期开发,也能马上就上线,无需繁琐的流程了。
咱们置信剖析服务一体化的理念随着像 Hologres 这样的产品的倒退,会在更多的场景落地。而这也会反哺像 Hologres 这样的 HSAP 产品,将 HSAP 的理念、方法论、反对能力在产品中更好的积淀下来,从而让更多的用户更容易的从 HSAP 中获益。
实时数据治理成为刚需
第四个趋势是实时数据治理变的越来越重要。
实时数据对于企业来说,有着致命的吸引力。因而,企业会盲目不盲目的逐渐加大实时数仓上的投入。而各企业的实时数仓因为实时性的要求,往往没有施行离线数仓那么紧密的方法论和管理体系。因为没有治理,数据大量冗余或者不合理,往往会导致老本急剧增大,数据可信度降落。在阿里这样的超大企业中,这块的老本就会突显进去,这曾经成为实时数仓的一种刚需。
通过对实时数仓、离线数仓、流式计算、音讯队列等全链路进行数据治理,能够实现数据没有“法外之地”,从而在节省成本的同时,进步数据的品质,真正将数据变为企业的资产。
实时数仓的类数据库化
第五个趋势是实时数仓的类数据库化。
大数据诞生于对传统数据库的扬弃,从 NoSQL 到 NewSQL,大数据产品走出了一条独立于数据库的路。但就像从 NoSQL 到 NewSQL 一样,大数据产品中的实时数仓也在像数据库学习,提供了和数据库更好的兼容性,从而让用户能以更低的老本应用实时数仓产品。
这蕴含几个方面:
- 操作 SQL 化以及和传统数据库在协定、语法上的兼容性,从而不便开发同学能够用习惯的工具(BI、开发工具等)去对接开发。大数据在这方面的积攒还是及不上数据库几十年的积攒的,相当多的业务同学对于数据库很纯熟,但对于大数据(特地是实时数仓)就感觉不容易上手了。
- 数据模型和语义向传统数据库聚拢。例如,主键(Primary Key)概念是传统数仓类产品所不足的,操作的原子性数仓产品往往也不能保障,这就限度了很多场景的利用。比方说,Clickhouse 不足数据库意义上的主键(CK 所说的主键是另外一个货色,非唯一性束缚),所以就不适合解决数据库 CDC 同步场景。这两年,大数据业界能够显著看到对这块的加强。最典型的例子是 DeltaLake、Iceberge 和 Hudi 等为代表的近实时数仓减少了 ACID 能力。当然,受制于架构,这种近实时 ACID 在频繁更新场景下的性能和延时是有瓶颈的。
在阿里,大量场景须要这种基于主键的更新能力,以阿里巴巴外部场景为例:
- 数据库的实时同步:通过将上游的分库分表和多个业务库实时同步(镜像)到一个大数据实时数仓中,能够提供对业务数据的弱小剖析能力,而这就须要很好的解决纯实时的高频 UPDATE 和 DELETE 操作。
- Flink 计算产生的 UPDATE 和 DELETE(RETRACTION)操作:例如统计 GMV,Flink 在后果更新时会生成 UPDATE 记录,而在有些场景下会生成 RETRACTION 记录(DELETE),这都要求上游零碎能很好的解决这两类事件。
- 风控等业务的计算是由多路作业共同完成的,这些作业独特实时更新一张大宽表(每个作业更新局部字段),这就要求上游零碎能提供基于主键的局部更新能力。
传统上,这样的业务是由 HBase、Redis 这样的 NoSQL 零碎或者 MySQL、PostgreSQL 等数据库 RDS 来承接的。但 NoSQL 的问题是剖析能力一般偏弱,而数据库问题是写入性能和规模有限度。
这些业务在大数据处理中普遍存在。但在阿里的挑战是因为规模的微小(特地是双 11 这样的场景),对基于主键的更新性能和提早有刻薄的要求。
Hologres 从设计之初就思考了这两点。Hologres 齐全兼容了 PostgreSQL 11 的协定、语法、函数等,很多 PostgreSQL 扩大(例如 PostGIS)能够间接应用。同时,Hologres 提供了残缺的主键概念和弱小的更新能力,并提供了单 SQL 的 ACID。往年双 11,有业务测得了每秒 350 万 + 的实时写入更新性能。这些能力极大的放宽了实时数仓的利用场景,将传统由 NoSQL 和 RDS 承载的场景改由实时数仓来承载,为用户提供了更加弱小的剖析解决工具。
实时数仓的类数据库化并不就等价于 HTAP 数据库了。HSAP 相比于 HTAP,在事务能力上是减弱的。因为在服务(serving)场景,并不需要传统数据库残缺的事务能力。而这种舍弃,带来的是在实时写入性能和查问性能上的极大晋升,以及可扩展性上的晋升(因为不须要全局事务管理器了)。因而,HSAP 相比 HTAP 也就更加适宜大数据场景。
实时数仓开发麻利化
最初一个趋势是开发方法论上的变动,实时数仓的开发越来越麻利,以适应剖析场景的灵便多变。
过来数仓的开发往往依照经典的方法论,采纳 ODS->DWD->DWS->ADS 逐层开发的办法,层与层之间采纳事件驱动,或者微批次的形式调度。分层带来更好的语义层形象和数据复用,但也减少了调度的依赖、升高数据的时效性、缩小数据灵便剖析的敏捷性。
实时数仓驱动了业务决策的实时化,在决策时通常须要丰盛的上下文信息,因而传统的高度根据业务定制 ADS 的开发方法受到了较大挑战,成千上万的 ADS 表保护艰难,利用率低,更多的业务方心愿通过 DWS 甚至 DWD 进行多角度数据比照剖析,这对查问引擎的计算效率、调度效率、IO 效率都提出了更高的要求。
随着计算算子向量化重写、精细化索引、异步化执行、多级缓存等多种查问引擎优化技术,Hologres 的计算力在每个版本都有较大改善。因而咱们看到越来越多的用户采纳了麻利化的开发方式,在计算前置的阶段,只做数据品质清理、根本的大表关联拉宽,建模到 DWD、DWS 即可,缩小建模档次,同时,将灵便查问在真正剖析时在交互式查问引擎中执行,通过秒级的交互式剖析体验,撑持了数据分析民主化的重要趋势。
总结
阿里巴巴在业界是较早利用实时数仓来解决海量数据的公司。实时数仓在阿里的倒退也逐步走入深水区。无论是生产系统化、剖析服务一体化、实时数据治理(平台化)还是类数据库化、麻利化,实时数仓正在随着业务需要的疾速倒退而疾速迭代,并在双 11 这样的年度大戏中焕发出越来越亮堂的荣耀,成为业务必不可少的搭档和助手。
业务驱动技术,数据带来价值,实时数仓 Hologres 同阿里巴巴外围业务一起成长一起打磨,从多维简单 OLAP 剖析到高 QPS 点查,高性能实时写入与更新到高可用,为 大数据平台提供对立剖析服务进口 ,满足 一站式实时数仓 的存储、开发、治理、服务全流程全场景。
咱们置信,这些实时数仓的趋势也实用于整个业界,咱们会逐渐把在阿里双 11 中积攒的能力在云上产品中透出,帮忙客户用好实时数仓,独特成长!