云原生数据中台 3 —— 中台架构

Posted xingoo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生数据中台 3 —— 中台架构相关的知识,希望对你有一定的参考价值。

本篇针对数据中台中的某些关键模块进行整理:




关于中台中涉及到的关键功能和定位,可以参考下图

其中关键的一些软件可以尽量使用开源软件,因为开源软件基于社区的力量维护要比自己开发更快迭代。

开源软件推荐列表

云原生数据中台 3 —— 中台架构

云原生数据中台 3 —— 中台架构

分布式存储,没啥可选的——HDFS分布式数据库,为了方便使用,一般HDFS会搭配Hive进行元数据管理分布式实时数据库,如果为了查询高效可以使用HBase实时消息队列,Kafka关系型数据库,mysql或Oracle数据采集工具,Sqoop、DataX、FlinkX、日志采集工具,Flume、Logstash身份认证协议,Kerberos授权管理框架,Ranger

数据湖与数据仓库

数据湖最初的出现是为了解决存储全域原始数据,也可以理解成之前的数仓中的ODS层。数据湖的建设为了实现高效采集和存储尽可能多的数据、支持数仓、提供数据探索共享功能、支撑机器学习。

云原生数据中台 3 —— 中台架构

数据仓库已经有40年的历史,最初流行采用Bill Inmon倡导的ER实体关系建模,这种建模方式类似数据库,需要精心的设计数据模型关系;另一种是Ralph Kimball的维度建模思想,虽然设计上不符合3NF范式,但可以更直观更便于理解,处理效率更高。

云原生数据中台 3 —— 中台架构

数据资产管理

数据资产主要目标是解决数据不可知、不可控、不可取的问题。

不可知,用户不知道都有什么数据不可控,各个业务的数据标准或者格式编码不同,无法一同使用不可取,用户获取数据流程过长,无法自主开发业务流程。

在《数据资产实践管理白皮书》中,数据资产Data Asset指企业拥有的数据内容;数据资产管理Data Asset Management,指规划、控制和提供数据及信息资产的一组业务职能,如开发、执行、监督等。

主要包含:

数据标准管理数据模型管理元数据管理主数据管理数据质量管理数据安全管理数据价值管理数据共享管理

其中重点是这个元数据管理,按照用途可以分为:

业务元数据:业务相关的数据信息技术元数据,提供数据或运维信息,如数据量、物理位置等管理元数据,用于组织架构、人员权限等应用元数据,如代码版本,开发部门等

云原生数据中台 3 —— 中台架构

数据流水线管理

数据流水线也就是数据开发平台,承担了主要的ETL流程。

流水线的开始就是数据采集,一般的数据来源包括:

数据库数据,可以使用sqoop进行分布式采集、DataX适合单机采集、Canal可以实时监听mysql binlog,目前也有基于flink开发的FlinkX可以实现批流的数据整合,之前公司也使用过Streamsets进行流式数据的采集,体验也不错。服务器日志,可以采用Logstash或Flume到HDFSAPI数据,如果是无状态的可以使用固定时间间隔拉取;如果是有状态的数据,则需要记录之前的访问状态。用户上传数据互联网数据,目前正在做的舆情系统就是通过爬虫采集,自动上报的http服务,后台实时写入Kafka。

经典的批处理流水线,如下图所示,之前的使用经验是使用Spark代替了Sqoop,接口层使用Presto代替Impala。

云原生数据中台 3 —— 中台架构

流式处理之前一般都是基于Spark Streaming,采用小批量的模式处理;目前则大多采用Flink基于行处理。前者系统吞吐量高、但单条延迟大;后者单条处理延迟低,吞吐率则相对低一些。

下图是一个经典的复杂系统架构,跟之前做的个性化推荐服务特别相像:

云原生数据中台 3 —— 中台架构

最初批处理和流处理会使用Lambda架构,Speed Layer负责实时处理,Batch Layer负责批处理,Serving Layer负责整合批流的结果提供统一视图。

后来提出了Kappa架构,基于流式处理作为完整的处理流程,但不适合处理重跑数据或范围处理的场景,因此Kappa无法完全代替Lambda。

最近一年批流一体很火,一般是借助delta lake实现存储上的一体化,基于Flink来实现批流计算引擎的一体化。

数据应用开发

数据开发的目的是基于工具分析数据,从而提供商业洞见,转换价值。一般的数据分析包括以下几种类型:

描述性分析:针对已经发生的业务状况,进行结果统计诊断性分析:针对特殊状况,分析其形成原因预测性分析:根据当前数据,预测未来走势个性化分析:如用户画像、个性化推荐、精准营销等决策性分析:基于事实依据,决定未来的经营策略和行为

基于上述的分析需求,就需要中台提供交互式的编程工具、可视化分析工具、低延迟的海量数据探索工具、丰富且自动化的AI机器学习工具、标签系统等。

基于中台可以提供多种服务形态,如数据即服务(最常见的把数据通过API的方式暴露给使用者),模型即服务(直接提供个性化推荐算法模型,如LR、FM、GBDT等,小公司可以借助这些现有的模型直接接入到应用中,典型的公司如百分点),标签即服务(直接把用户画像作为输出,比如一些信用卡或者银行公司)

元数据管理

书中介绍的是数据门户,但是我理解的就是中台中的元数据管理,只不过侧重于统一管理所有的数据操作,如支持用户直接搜索、发现、跟踪、管理对应的数据内容。

如Twitter的EagleEye、LinkedIn的Data hub、Airbnb的Data Portal、Lyft的Amundsen、Netfix的MetaCat、Intuit的SuperGlue。

参考

《云原生数据中台》