来电科技:基于 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 版本的大数据平台提供了以下能力:

  • 数据集成

    平台现在支持使用实时或者离线的方式集成业务数据库或业务数据的日志。

  • 数据开发

    平台现已支持基于 Spark 的离线计算以及基于 Flink 的实时计算。

  • 数据服务

    数据服务主要由两部分组成:

    • 一部分是由 Impala 提供的分析服务和即席分析的能力;
    • 另一部分是 Hologres 提供的针对业务数据的交互式分析能力。
  • 数据应用

    同时平台可以直接对接常见的 BI 工具,业务系统也能快速地集成对接。

image

3. 取得成就

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

  • 横向扩展

    大数据平台的核心就是分布式架构,这样我们能够低成本地水平扩展存储或者计算资源。

  • 资源共享

    可以整合所有服务器可用的资源。以前的架构是每个业务部门自己维护一套集群,这样会造成一些浪费,难以保证可靠性,而且运费成本较高,现在由平台统一调度。

  • 数据共享

    整合了业务部门所有的业务数据以及业务日志等其他异构数据源数据,由平台统一清洗对接。

  • 服务共享

    数据共享之后就由平台统一对外输出服务,各个业务线无需自行重复开发,就能快速得到平台提供的数据支撑。

  • 安全保障

    由平台提供统一的安全认证等授权机制,可以做到对不同人进行不同程度的细粒度授权,保证数据安全。

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

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

  • 实时大屏

    实时大屏需要替换旧的准实时大屏,采用更可靠、低延迟的技术方案。

  • 统一数据服务

    高性能、高并发和高可用的数据服务成为企业数字化转型统一数据门户的关键,需要构建一个统一的数据门户,统一对外输出。

  • 实时数仓

    数据时效性在企业运营中的重要性日益凸现,需要响应更快更及时。

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

1. 整体技术架构

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

  • 数据 ETL 是对业务数据库和业务日志进行实时处理,统一使用 Flink 实时计算,
  • 实时数仓中数据实时处理后进入 Hologres 存储与分析
  • 业务冷数据存储在 Hive 离线数仓,并同步到 Hologres 做进一步的数据分析处理
  • 由 Hologres 统一对接常用的 BI 工具,如 Tableau、Quick BI、DataV 和业务系统等。

image

2. 实时数仓数据模型

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

  • 第一层是原始数据层,数据来源有两种类型,一种是业务库的 Binlog,第二种是服务器的业务日志,统一用 Kafka 作为存储介质。
  • 第二层是数据明细层,将原始数据层 Kafka 里面的信息进行 ETL 提取,作为实时明细存储至 Kafka。这样做的目的是为了方便下游不同消费者同时订阅,同时方便后续应用层的使用。维表数据也是通过 Hologres 存储,来满足下面的数据关联或者条件过滤。
  • 第三是数据应用层,这里除了打通 Hologres,还使用了 Hologres 对接了 Hive,由 Hologres 统一提供上层应用服务。

3. 整体技术架构数据流

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

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

  • 第一个是集成处理;
  • 第二个是实时数仓;
  • 第三块是数据应用。

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

  • 第一个核心是 Flink 的实时计算:可以从 Kafka 获取,或者直接 Flink cdt 读取 MySQL Binlog 数据,或者直接再写回 Kafka 集群,这是一个核心。
  • 第二个核心是统一数据服务:现在统一数据服务是由 Hologres 完成,避免数据孤岛产生的问题,或者一致性难以维护等,也加速了离线数据的分析。

image

四、具体实践细节

1. 大数据技术选型

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

  • 状态管理与容错机制;
  • Table API 和 Flink SQL 支持;
  • 高吞吐低延迟;
  • Exactly Once 语义支持;
  • 流批一体;
  • 全托管等增值服务。

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

  • 极速响应分析;
  • 高并发读写;
  • 计算存储分离;
  • 简单易用。

image

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

image

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

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

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

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

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

image

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

  • 数据时效性差:由于数据量较大,所以在旧方案中使用了每小时离线调度的策略进行数据计算。但是该方案时效性较差,无法满足众多业务产品的实时需求,例如硬件系统需要实时知道设备当前状态,如告警、错误、空仓等,以及时做出相应的决策行动。
  • 数据孤岛:旧方案使用 Tableau 对接大量业务报表,报表用于分析过去一个小时或者过去一天,设备上报有多少数量,哪些设备上报出现异常等。针对不同的场景,会将之前通过 Spark 离线计算的数据,再备份存储到 MySQL 或者 Redis 上。这样就多套系统,形成数据孤岛,这些数据孤岛对平台维护是一个巨大的挑战。

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

  • 以前 TB 级别的日志量在 Flink 高分子低延迟的计算框架下完全没有压力。例如之前的 flume HDFS 到 Spark 的一个链路直接被废弃,取而代之的是 Flink,我们只需要维护一个 Flink 的计算框架即可。
  • 设备状态数据采集的时候都是一些非结构的数据,需要对数据进行清洗,之后再返回 Kafka,因为消费者可能是多样化的,这样可以方便下游的多个消费者同时订阅。
  • 在刚才的场景中,硬件系统需要高并发、实时查询上千万的设备(充电宝)状态,对服务能力的要求较高。通过 Hologres 提供高并发读写能力,关联状态设备建立主键表,可以实时更新状态,满足 CRM 系统对设备(充电宝)的实时查询。
  • 同时在 Hologres 还会存最近的热点明细数据,直接提供对外服务。

4. 业务支撑效果

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

  • 实时大屏

    业务层面更高效地迭代多样化需求,同时降低了开发、运维维护开销。

  • 统一数据服务

    通过一个 HSAP 系统来实现服务/分析一体化,避免数据孤岛以及一致性、安全性等问题。

  • 实时数仓

    满足企业运营中对于数据时效性越来越高的要求,秒级响应。

五、未来规划

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

  • 现在的大数据平台总的来说还是离线架构和实时架构混合,后续会废弃冗余的离线代码架构,借助 Flink 的流批一体统一计算引擎。
  • 另外,我们目前只迁移了部分业务,所以会参考之前已经完善的离线数仓指标系统体系,来满足我们现在的实时数仓建设,全面迁移到 2.0 Flink + Hologres 架构上。

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

1. 对 Flink 全托管的需求

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

  • SQL 作业版本控制和兼容性监测;
  • SQL 作业支持 Hive3.X 集成;
  • DataStream 作业打包更方便、资源包上传速度更快;
  • Session 集群模式部署的任务支持自动调优功能。

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

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

  • 支持热升级操作,减少对业务的影响;
  • 支持数据表备份、支持读写分离;
  • 支持加速查询阿里云 EMR-Hive 数仓;
  • 支持对用户组进行计算资源管理。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux find 图片,linuxfind命令的介绍【图解】

作为一种分时的特数操作系统,Linux具备Windows和mac OS与众不同的操作界面和用户体验,虽然它并不是最主流的操作系统,但是它会作为操作系统而得到众多程序开发人员的青睐和熟知。find命令是操作系统环境下进行计算机功能调用的特殊命令&#…

移动云TeaTalk:这是一场云数据库技术的深度对话!

随着云计算的发展,数据库上云已经成为趋势,云数据库服务相对于传统数据库在架构、性能与安全等方面都存在着新的挑战。11月23日,移动云TeaTalk线上直播活动成功举办。本次活动以“云数据库技术创新研究与实践”为主题,邀请了移动云…

devc++源文件未编译_iOS 编译知识小结

简介源码到可执行文件流程编译器 编译流程预处理(preprocessor)词法分析(lexical anaysis)语法分析(semantic analysis)CodeGen生成汇编代码生成目标文件生成可执行文件Xcode中查看Clang编译.m文件信息 Xcode常见编译报错分析1. duplicate symbols报错2. symbol(s) not found f…

微信不再提供小程序打开App?借助H5为App引流的方式你必须知道!

简介: 2021年5月14日App开发者领域发布了一条重要消息:微信开放平台为了提升用户体验,将于2021年5月20日(后来延期到2021年5月27日)起不再提供“小程序打开App技术服务”,现在能够实现从微信打开App的方式只…

Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!

简介: 在云原生时代,充分利用边缘节点的计算和存储能力,结合冷热数据分离实现高性价比的数据价值探索已经逐渐成为 APM 领域的主流。 作者:夏明(涯海) 调用链记录了完整的请求状态及流转信息,是…

山石网科发布数据安全综合治理体系,覆盖数据全生命周期

编辑 | 宋慧 出品 | CSDN 云计算 11月24日,在“从一维到多维 ,让数据安全有章可循——山石网科数据安全综合治理体系发布会”上,山石网科面向全行业推出《数据安全治理白皮书》,并向企业侧正式发布全新的数据安全治理体系和数据安…

android 获取cpu使用率_超详细的zabbix监控windows磁盘IO及cpu使用率教程

概述今天主要介绍怎么用zabbix来监控windows CPU使用率及磁盘IO,下面一起来看看吧~1、监控Windows-CPU使用率1.1、创建模板在zabbix中,默认的模板不带CPU使用率的监控,为减少重复工作率,在template模板下创建一个模板然后模板直接…

深入理解领域驱动设计中的聚合

简介: 聚合模式是 DDD 的模式结构中较为难于理解的一个,也是 DDD 学习曲线中的一个关键障碍。合理地设计聚合,能清晰地表述业务一致性,也更容易带来清晰的实现,设计不合理的聚合,甚至在设计中没有聚合的概念…

jenkins linux 发邮件,linuxea:jenkins pipeline邮件提醒的两种方式(5)

可以通过Mailer Plugin和Email-ext plugin插件发送邮件在pipeline中可以在执行完成进行,通过直接的结果发送失败或者成功,也可以在执行阶段过程中,如果在那个阶段执行失败发送,想看第一中,只发送失败的详细结果&#x…

致青春!一键上线你们专属的云上毕业纪念册

简介: 毕业不说再见,青春不散场!在云端,在一起!在问答https://developer.aliyun.com/ask/321737的留言区域晒出自己「线上环境」部署的毕业纪念册,在6月30号18点之前点赞数前10可以获得我们送出的毕业大礼包…

信息安全≠数据安全,山石网科发布2021《数据安全治理白皮书》

完整的数据安全治理体系,是一个包含了目标、组织、流程、技术等多维度的复杂系统工程。数据安全治理应该侧重四点:数据安全治理是必选项;是一套完整的治理体系问题;是多维视角的立体建构能力;是建立数据全生命周期的多…

dynamo python修改多个参数_40岁小白学了30天python发现,编程真的其乐无穷

今天是十一哥学python的第30天。时间过得挺快,感觉第一篇学习心得写了还没多久,这就已经不知不觉写30篇了。从第1集开始,看视频教程、记笔记、截图、写代码,然后写文章、配图、发帖、回复网友留言,以及在学习交流群里跟…

友盟+U-APM 移动应用性能体验报告:Android崩溃率达0.32%,OPPO 、华为、VIVO 崩溃表现良好

简介: 应用性能稳定是良好用户体验中非常关键的一环,而现实情况却是应用崩溃、卡顿、加载缓慢、页面白屏等问题,频频出现在用户的真实体验之中,成为影响业务表现的直接杀手。为此,应用性能管理(APM&#xf…

阿里云张毅萍:构建边缘云全站加速网络体系

简介: 2021年6月9日,亚太内容分发大会暨CDN峰会在北京举行,阿里云边缘云网络高级技术专家张毅萍受邀参会,分享了阿里云在构建边缘云全站加速网络体系的实践,基于边缘云节点支撑各种应用协议的分层传输加速,…

http中的请求头各部分都是什么意思_硬核!30 张图解 HTTP 常见的面试题

每日一句英语学习,每天进步一点点:前言在面试过程中,HTTP 被提问的概率还是比较高的。小林我搜集了 5 大类 HTTP 面试常问的题目,同时这 5 大类题跟 HTTP 的发展和演变关联性是比较大的,通过问答 图解的形式由浅入深的…

Hologres揭秘:高性能原生加速MaxCompute核心原理

简介: Hologres技术揭秘系列持续更新中,本期我们将带来Hologres高性能原生加速查询MaxCompute的技术原理解析。 Hologres(中文名交互式分析)是阿里云自研的一站式实时数仓,这个云原生系统融合了实时服务和分析大数据的…

mfc 消息消息队列概念_消息队列面试连环问

最近我一直扎在消息队列实现细节之中无法自拔,已经写了 3 篇Kafka源码分析,还剩很多没肝完。之前还存着RocketMQ源码分析还没整理。今儿暂时先跳出来盘一盘大方向上的消息队列有哪些核心注意点。核心点有很多,为了更贴合实际场景,…

如何用增长的思维做提效?

简介: 埋点作为记录用户行为的常规手段,伴随着前端技术的发展早已历经春秋,不过直到“增长黑客”系列理论出现,才真正让埋点分析变得内涵丰富且有章可循。 作者 | 金戟 来源 | 阿里技术公众号 埋点作为记录用户行为的常规手段&am…

ajax返回list前台遍历_List、set集合接口分析

一、List接口详解1、List接口有三个实现类,ArrayList、LinkedList、Vector2、三个实现类的异同点:(1)ArrayList: 作为list接口的主要实现类;线程不安全,效率高;底层使用Object[]存储&#xff08…

聚焦 | 数据湖分析如何面向对象存储OSS进行优化?

简介: 最佳实践,以DLA为例子。DLA致力于帮助客户构建低成本、简单易用、弹性的数据平台,比传统Hadoop至少节约50%的成本。其中DLA Meta支持云上15种数据数据源(OSS、HDFS、DB、DW)的统一视图,引入多租户、元…