云原生数据中台 3 —— 中台架构
Posted xingoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生数据中台 3 —— 中台架构相关的知识,希望对你有一定的参考价值。
本篇针对数据中台中的某些关键模块进行整理:
关于中台中涉及到的关键功能和定位,可以参考下图
其中关键的一些软件可以尽量使用开源软件,因为开源软件基于社区的力量维护要比自己开发更快迭代。
开源软件推荐列表
•分布式存储,没啥可选的——HDFS•分布式数据库,为了方便使用,一般HDFS会搭配Hive进行元数据管理•分布式实时数据库,如果为了查询高效可以使用HBase•实时消息队列,Kafka•关系型数据库,mysql或Oracle•数据采集工具,Sqoop、DataX、FlinkX、•日志采集工具,Flume、Logstash•身份认证协议,Kerberos•授权管理框架,Ranger
数据湖与数据仓库
数据湖最初的出现是为了解决存储全域原始数据,也可以理解成之前的数仓中的ODS层。数据湖的建设为了实现高效采集和存储尽可能多的数据、支持数仓、提供数据探索共享功能、支撑机器学习。
数据仓库已经有40年的历史,最初流行采用Bill Inmon倡导的ER实体关系建模,这种建模方式类似数据库,需要精心的设计数据模型关系;另一种是Ralph Kimball的维度建模思想,虽然设计上不符合3NF范式,但可以更直观更便于理解,处理效率更高。
数据资产管理
数据资产主要目标是解决数据不可知、不可控、不可取的问题。
•不可知,用户不知道都有什么数据•不可控,各个业务的数据标准或者格式编码不同,无法一同使用•不可取,用户获取数据流程过长,无法自主开发业务流程。
在《数据资产实践管理白皮书》中,数据资产Data Asset指企业拥有的数据内容;数据资产管理Data Asset Management,指规划、控制和提供数据及信息资产的一组业务职能,如开发、执行、监督等。
主要包含:
•数据标准管理•数据模型管理•元数据管理•主数据管理•数据质量管理•数据安全管理•数据价值管理•数据共享管理
其中重点是这个元数据管理,按照用途可以分为:
•业务元数据:业务相关的数据信息•技术元数据,提供数据或运维信息,如数据量、物理位置等•管理元数据,用于组织架构、人员权限等•应用元数据,如代码版本,开发部门等
数据流水线管理
数据流水线也就是数据开发平台,承担了主要的ETL流程。
流水线的开始就是数据采集,一般的数据来源包括:
•数据库数据,可以使用sqoop进行分布式采集、DataX适合单机采集、Canal可以实时监听mysql binlog,目前也有基于flink开发的FlinkX可以实现批流的数据整合,之前公司也使用过Streamsets进行流式数据的采集,体验也不错。•服务器日志,可以采用Logstash或Flume到HDFS•API数据,如果是无状态的可以使用固定时间间隔拉取;如果是有状态的数据,则需要记录之前的访问状态。•用户上传数据•互联网数据,目前正在做的舆情系统就是通过爬虫采集,自动上报的http服务,后台实时写入Kafka。
经典的批处理流水线,如下图所示,之前的使用经验是使用Spark代替了Sqoop,接口层使用Presto代替Impala。
流式处理之前一般都是基于Spark Streaming,采用小批量的模式处理;目前则大多采用Flink基于行处理。前者系统吞吐量高、但单条延迟大;后者单条处理延迟低,吞吐率则相对低一些。
下图是一个经典的复杂系统架构,跟之前做的个性化推荐服务特别相像:
最初批处理和流处理会使用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。
参考
《云原生数据中台》
以上是关于云原生数据中台 3 —— 中台架构的主要内容,如果未能解决你的问题,请参考以下文章