曹操出行基于 Hologres+Flink 的实时数仓建设

曹操出行业务背景介绍

曹操出行创立于2015年5月21日,是吉利控股集团布局“新能源汽车共享生态”的战略性投资业务,以“科技重塑绿色共享出行”为使命,将全球领先的互联网、车联网、自动驾驶技术以及新能源科技,创新应用于共享出行领域,以“用心服务国民出行”为品牌主张,致力于打造服务口碑最好的出行品牌。

作为一家互联网出行平台,曹操主要提供了网约车、顺风车和专车等多种出行服务。其中,打车是我们的核心业务之一。整体业务过程大致如下: 首先,用户在我们的平台上下单,然后曹操平台会给司机进行订单的派发,司机接到订单后,会进行履约服务。结束一次订单服务后,乘客会在平台上进行支付。

在整个流程中,涉及到的数据将会在我们的业务系统中流转,主要包括有营销、订单、派单、风控、支付、履约这些系统。这些系统产生的数据将存储在RDS中,并进一步流入实时数仓中以进行分析和处理。最终数据会进入到不同的使用场景中,比如实时的标签,实时大屏、多维BI分析,还有实时业务监控以及实时算法决策。

曹操出行业务痛点分析

上图是一个传统lambda架构,在这个架构中主要会分做实时数据流和离线数据流。在实时链路中,业务数据是存放在RDS中,并通过Binlog以Canal同步的方式进入Kafka,同时应用的日志数据也会通过实时采集的方式进入到Kafka。数据准备工作完成后,在Kafka中构建实时数据仓库。整个实时数仓基于数仓分层理念进行构建的,主要包括原始数据层(ODS)、数据明细层(DWD)、数据汇总层(DWS)和应用数据层(ADS)。这些层次通过Flink Streaming SQL进行串联,实现数据的流转和处理。

在离线链路中,数据主要是通过DataX定时同步任务将RDS中的数据同步到HDFS。同时应用的日志会通过定时任务同步到HDFS,整个离线数仓以Spark Sql定时调度任务去逐层执行。数据在离线数仓中会以不同的数据域去组织满足不同粒度的数据计算,最终数据会通过Flink Sink以及离线同步工具写到不同的数据应用组件中。同时,为了保证某些应用场景中数据的一致性,可能需要对离线和实时两条链路的数据进行合并处理和加工。

基于曹操出行数据生产成本和研发诉求,针对传统lambda架构中可以看到一些问题:

  • 为了适配不同应用场景,我们在架构中使用了非常丰富的数据组件。
  • 研发成本非常高,不仅在实时链路中进行研发和处理,而且还需额外研发一套离线的数据链路。
  • 运维效率较低,由于整个实时数仓是构建在Kafka上的,因此在数据探查以及进行数据订正就会变得非常困难。
  • 资源成本较大,主要体现在几方面:组件多,需要专门安排人员进行运维和管理;一些需要精准一致性的场景需求,需在两个数据链路中做数据的同步和合并计算;在某些计算场景中,需要Flink维护大状态进行处理,也造成额外性能问题和资源的浪费。

另外从公司开发者使用的角度,我们对实时数仓提出了以下几点诉求:

  • 统一的组件来满足不同数据应用场景。
  • 复杂的实时数据链路中保障高效的数据订正。
  • 能克服在Flink中一些大状态下的技术难点。

Hologres+Flink构建企业级实时数仓

Hologres能力分析

曹操出行作为Hologres的深度用户,在前期调研与测试阶段,我们对对Hologres的相关能力做了比较详细的分析,主要有以下优势:

1、业务场景能力丰富:

  • 具备OLAP分析能力
  • 具备高并发点查能力
  • 具备半结构化日志分析能力
  • 具备基于PostGIS的扩展能力,支持空间地理信息信息数据的分析与使用,对于曹操出行的业务属性来说非常重要。

2、一站式实时开发能力

  • 契合数仓分层结构理念(可以像离线数仓一样去构建分层体系,数据实时流动、实时存储)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值