简介: 本文将会讲述共享充电宝开创企业来电科技如何基于 Flink + Hologres 构建统一数据服务加速的实时数仓
作者:陈健新,来电科技数据仓库开发工程师,目前专注于负责来电科技大数据平台离线和实时架构的整合。
深圳来电科技有限公司(以下简称 “来电科技”)是共享充电宝行业开创企业,主要业务覆盖充电宝自助租赁、定制商场导航机开发、广告展示设备及广告传播等服务。来电科技拥有业内立体化产品线,大中小机柜以及桌面型,目前全国超过 90% 的城市实现业务服务落地,注册用户超 2 亿人,实现全场景用户需求。
来电科技大数据平台的发展历程主要分为以下三个阶段:
1)离散 0.X Greenplum
为什么说离散?因为之前没有一个统一的大数据平台来支持数据服务,而是由每个业务开发线自行取数或者做一些计算,并用一个低配版的 Greenplum 离线服务来维持日常的数据需求。
2)离线 1.0 EMR
之后架构升级为离线 1.0 EMR,这里的 EMR 指的是阿里云由大数据组成的弹性分布式混合集群服务,包括 Hadoop、HiveSpark 离线计算等常见组件。
阿里云 EMR 主要解决我们三个痛点:
3)实时、统一 2.0 Flink + Hologres
当前正经历的 “Flink + Hologres” 实时数仓,这也是本文分享的核心。它为我们大数据平台带来了两个质的改变,一是实时计算,二是统一数据服务。基于这两点,我们加速知识数据探索,促进业务快速发展。
总的概括来说,2.0 版本的大数据平台提供了以下能力:
平台现在支持使用实时或者离线的方式集成业务数据库或业务数据的日志。
平台现已支持基于 Spark 的离线计算以及基于 Flink 的实时计算。
数据服务
数据服务主要由两部分组成:
同时平台可以直接对接常见的 BI 工具,业务系统也能快速地集成对接。
大数据平台提供的能力给我们带来了不少成就,总结为以下五点:
大数据平台的核心就是分布式架构,这样我们能够低成本地水平扩展存储或者计算资源。
可以整合所有服务器可用的资源。以前的架构是每个业务部门自己维护一套集群,这样会造成一些浪费,难以保证可靠性,而且运费成本较高,现在由平台统一调度。
整合了业务部门所有的业务数据以及业务日志等其他异构数据源数据,由平台统一清洗对接。
数据共享之后就由平台统一对外输出服务,各个业务线无需自行重复开发,就能快速得到平台提供的数据支撑。
由平台提供统一的安全认证等授权机制,可以做到对不同人进行不同程度的细粒度授权,保证数据安全。
随着业务的快速发展,构建统一的实时数仓迫在眉睫,综合 0.x、1.0 版本的平台架构,综合业务的现在发展和未来趋势判断,构建 2.x 版本数据平台的需求主要集中在以下几个方面:
实时大屏需要替换旧的准实时大屏,采用更可靠、低延迟的技术方案。
高性能、高并发和高可用的数据服务成为企业数字化转型统一数据门户的关键,需要构建一个统一的数据门户,统一对外输出。
数据时效性在企业运营中的重要性日益凸现,需要响应更快更及时。
技术架构主要分为四个部分,分别是数据 ETL、实时数仓、离线数仓和数据应用。
如上所示,实时数仓和离线数仓有一些相似的地方,只不过少一些其它层的链路。
下面的数据流图可以具象加深整体架构的规划和数仓模型整体的数据流向。
从图中可以看出,主要分为三个模块:
从数据的流入流出看到主要的核心有两点:
方案执行分为两个部分:实时与服务分析。实时方面我们选择了阿里云 Flink 全托管的方式,它主要有以下几方面优点:
服务分析方面我们选择了阿里云 Hologres 交互式分析,它带来了几点好处:
上图为业务实时大屏新旧方案对比。
以订单为例,旧方案中的订单是从订单从库通过 DTS 同步到另一个数据库,这虽然是实时的,但是在计算与处理这方面,主要是通过定时任务,比如调度间隔时间设为 1 分钟或者 5 分钟来完成数据的实时更新,而销售层、管理层需要更实时地掌握业务动态,,因此并不能算真正意义上的实时。除此之外,响应慢且不稳定也是很大的问题。
新方案采用的是 Flink 实时计算 + Hologres 架构。
开发方式完全是可以利用 Flink 的 SQL 支持,对于我们之前的 MySQL 计算开发方式,可以说是一个无缝的迁移,实现快速落地。数据分析和服务统一使用 Hologres。还是以订单为例,比如今日订单营收额,今日订单用户数或者今日订单用户量,随着业务多样性的增加,可能需要增加城市维度。通过 Hologres 的分析能力,可以完美支撑营收额、订单量、订单用户数以及城市维度的一些指标做快速展示。
以某块业务场景为例,比如量级比较大的业务日志,日均数据量在 TB 级别。下面先来分析一下旧方案的痛点:
现在通过 2.0 Flink+Hologres 架构,可以将业务日志进行改造。
通过 Flink+Hologres 的新方案,我们支撑了三大场景:
业务层面更高效地迭代多样化需求,同时降低了开发、运维维护开销。
通过一个 HSAP 系统来实现服务/分析一体化,避免数据孤岛以及一致性、安全性等问题。
满足企业运营中对于数据时效性越来越高的要求,秒级响应。
伴随着业务的迭代,我们未来在大数据平台的规划主要有两点:流批一体和完善实时数仓。
通过未来的规划,我们希望同 Flink 全托管和 Hologres 一起共建更加完善的实时数仓,但也在此对其有着更近一步的需求:
Flink 全托管中的 SQL 编辑器编写 FlinkSQL 作业很高效方便,并且也提供了很多常见的 SQL 上下游 Connector 满足开发需求。但是仍有一些需求希望Flink全托管在后续的迭代中支持:
Hologres 不仅能够支持高并发地实时写入和查询,并且兼容 PostgreSQL 生态,方便接入使用统一数据服务。但是仍有一些需求希望 Hologres 能在后期迭代中支持:
原文链接
本文为阿里云原创内容,未经允许不得转载。