其他分享
首页 > 其他分享> > 来电科技:基于 Flink + Hologres 的实时数仓演进之路

来电科技:基于 Flink + Hologres 的实时数仓演进之路

作者:互联网

简介: 本文将会讲述共享充电宝开创企业来电科技如何基于 Flink + Hologres 构建统一数据服务加速的实时数仓

作者:陈健新,来电科技数据仓库开发工程师,目前专注于负责来电科技大数据平台离线和实时架构的整合。

深圳来电科技有限公司(以下简称 “来电科技”)是共享充电宝行业开创企业,主要业务覆盖充电宝自助租赁、定制商场导航机开发、广告展示设备及广告传播等服务。来电科技拥有业内立体化产品线,大中小机柜以及桌面型,目前全国超过 90% 的城市实现业务服务落地,注册用户超 2 亿人,实现全场景用户需求。

一、大数据平台介绍

1. 发展历程

来电科技大数据平台的发展历程主要分为以下三个阶段:

1)离散 0.X Greenplum

为什么说离散?因为之前没有一个统一的大数据平台来支持数据服务,而是由每个业务开发线自行取数或者做一些计算,并用一个低配版的 Greenplum 离线服务来维持日常的数据需求。

2)离线 1.0 EMR

之后架构升级为离线 1.0 EMR,这里的 EMR 指的是阿里云由大数据组成的弹性分布式混合集群服务,包括 Hadoop、HiveSpark 离线计算等常见组件。

阿里云 EMR 主要解决我们三个痛点:

3)实时、统一 2.0 Flink + Hologres

当前正经历的 “Flink + Hologres” 实时数仓,这也是本文分享的核心。它为我们大数据平台带来了两个质的改变,一是实时计算,二是统一数据服务。基于这两点,我们加速知识数据探索,促进业务快速发展。

2. 平台能力

总的概括来说,2.0 版本的大数据平台提供了以下能力:

image

3. 取得成就

大数据平台提供的能力给我们带来了不少成就,总结为以下五点:

二、企业业务对数据方面的需求

随着业务的快速发展,构建统一的实时数仓迫在眉睫,综合 0.x、1.0 版本的平台架构,综合业务的现在发展和未来趋势判断,构建 2.x 版本数据平台的需求主要集中在以下几个方面:

三、实时数仓和统一数据服务技术方案

1. 整体技术架构

技术架构主要分为四个部分,分别是数据 ETL、实时数仓、离线数仓和数据应用。

image

2. 实时数仓数据模型

如上所示,实时数仓和离线数仓有一些相似的地方,只不过少一些其它层的链路。

3. 整体技术架构数据流

下面的数据流图可以具象加深整体架构的规划和数仓模型整体的数据流向。

从图中可以看出,主要分为三个模块:

从数据的流入流出看到主要的核心有两点:

image

四、具体实践细节

1. 大数据技术选型

方案执行分为两个部分:实时与服务分析。实时方面我们选择了阿里云 Flink 全托管的方式,它主要有以下几方面优点:

服务分析方面我们选择了阿里云 Hologres 交互式分析,它带来了几点好处:

image

2. 实时大屏业务实践落地

image

上图为业务实时大屏新旧方案对比。

以订单为例,旧方案中的订单是从订单从库通过 DTS 同步到另一个数据库,这虽然是实时的,但是在计算与处理这方面,主要是通过定时任务,比如调度间隔时间设为 1 分钟或者 5 分钟来完成数据的实时更新,而销售层、管理层需要更实时地掌握业务动态,,因此并不能算真正意义上的实时。除此之外,响应慢且不稳定也是很大的问题。

新方案采用的是 Flink 实时计算 + Hologres 架构。

开发方式完全是可以利用 Flink 的 SQL 支持,对于我们之前的 MySQL 计算开发方式,可以说是一个无缝的迁移,实现快速落地。数据分析和服务统一使用 Hologres。还是以订单为例,比如今日订单营收额,今日订单用户数或者今日订单用户量,随着业务多样性的增加,可能需要增加城市维度。通过 Hologres 的分析能力,可以完美支撑营收额、订单量、订单用户数以及城市维度的一些指标做快速展示。

3. 实时数仓和统一数据服务实践落地

image

以某块业务场景为例,比如量级比较大的业务日志,日均数据量在 TB 级别。下面先来分析一下旧方案的痛点:

现在通过 2.0 Flink+Hologres 架构,可以将业务日志进行改造。

4. 业务支撑效果

通过 Flink+Hologres 的新方案,我们支撑了三大场景:

五、未来规划

伴随着业务的迭代,我们未来在大数据平台的规划主要有两点:流批一体和完善实时数仓。

通过未来的规划,我们希望同 Flink 全托管和 Hologres 一起共建更加完善的实时数仓,但也在此对其有着更近一步的需求:

1. 对 Flink 全托管的需求

Flink 全托管中的 SQL 编辑器编写 FlinkSQL 作业很高效方便,并且也提供了很多常见的 SQL 上下游 Connector 满足开发需求。但是仍有一些需求希望Flink全托管在后续的迭代中支持:

2. 对 Hologres 交互式分析的需求

Hologres 不仅能够支持高并发地实时写入和查询,并且兼容 PostgreSQL 生态,方便接入使用统一数据服务。但是仍有一些需求希望 Hologres 能在后期迭代中支持:

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

标签:数仓,Flink,离线,实时,数据,Hologres
来源: https://blog.csdn.net/yunqiinsight/article/details/117982874