其他分享
首页 > 其他分享> > 大数据 数据中台

大数据 数据中台

作者:互联网

这里写自定义目录标题

2. 上次内容总结

正式开讲大数据中台之前, 先复习之前学过的各种技术:

1. 各大类常用存储相关技术组件:
    HDFS
    Kafka
    HBase
    ElasticSearch
2. 各大类常用计算相关技术组件:
    MapReduce
    Spark
    Flink
3. 新老OLAP生态技术组件
    Hive
    ClickHouse
4. 集群资源管理调度组件
    YARN
    Spark Standalone
    Flink Standalone
5. 大数据通用协调服务组件
	ZooKeeper

但是,其实技术体系和大数据架构生态是不完整的。在大数据生态中,除了存储和计算之外,还有:

1. 数据收集和迁移
	常用技术:flume,canal,sqoop,datax,waterdrop等
2. 任务调度
	常用技术:azkaban,oozie,dophinscheduler,airflow
3. 部署运维
	常用技术:cloudera manager, ambari,SaltStack等
4. 监控告警
	常用技术:Alertmanager + Prometheus,Zabbix,openfalcon等
5. 安全和权限
	常用技术:Kerberos,ranger等

等。甚至大数据发展到现在,像数据治理,数据地图,元数据管理,数据资产,数据血缘,数据湖等新潮的概念。

4. 详细课堂内容

4.1. 数据中台由来

数据库阶段 —> 传统数仓 —> 大数据平台 ----> 大数据中台

4.1.1. 数据存储起源:数据库

4.1.2. 分析计算起源:传统数仓

商业智能(Business Intelligence)诞生在上个世纪90年代,它是将企业已有的数据转化为知识,帮助企业做出经营分析决策。比如在零售行业的门店管理中,如何使得单个门店的利润最大化,我们就需要分析每个商品的销售数据和库存信息,为每个商品制定合理的销售采购计划,有的商品存在滞销,应该降价促销,有的商品比较畅销,需要根据对未来销售数据的预测,进行提前采购,这些都离不开大量的数据分析。

而数据分析需要聚合多个业务系统的数据,比如需要集成交易系统的数据,需要集成仓储系统的数据等等,同时需要保存历史数据,进行大数据量的范围查询。传统数据库面向单一业务系统,主要实现的是面向事务的增删改查,已经不能满足数据分析的场景,这促使数据仓库概念的出现。

在 1991 年出版的《Building the Data Warehouse》中,数据仓库之父比尔·恩门(Bill Inmon)首次给出了数据仓库的完整定义,他认为:数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的,不可修改的数据集合

构建数据仓库,首先要把不同业务系统的数据同步到一个统一的数据仓库中,然后按照主题域方式组织数据。主题域是业务过程的一个高层次的抽象,像商品、交易、用户、流量都能作为一个主题域,你可以把它理解为数据仓库的一个目录。数据仓库中的数据一般是按照时间进行分区存放,一般会保留3年以上,每个时间分区内的数据都是追加写的方式,对于某条记录是不可更新的

这两种方法各有优劣,

传统数据仓库,第一次明确了数据分析的应用场景应该用单独的解决方案去实现,不再依赖于业务的数据库。而随着互联网发展,数据呈指数级增长,传统数据仓库逐渐没落,开始进入到大数据时代。

4.1.3. 数据工厂时代:大数据平台

进入互联网时代,有两个最重要的变化。

从 2003 年开始,互联网巨头谷歌先后发表了3篇论文,较为系统完整的阐述了海量数据的处理思路,奠定了现代大数据的技术基础。提出了一种新的、面向数据分析的海量异构数据的统一计算、存储的方法,完全分布式,易于扩展,可以使用价格低廉的机器堆出一个计算、存储能力很强的集群,满足海量数据的处理要求。

数据存储:HDFS,HBase,Kudu等
数据计算:MapReduce, Spark, Flink
交互式查询:Impala, Presto
在线实时分析:ClickHouse,Kylin,Doris,Druid,Kudu等
资源调度:YARN,Mesos,Kubernetes
任务调度:Oozie,Azakaban,AirFlow等
....
数据收集,数据迁移,服务协调,安装部署,数据治理等

基本上,到了 2010 年,Pentaho 创始人兼 CTO James Dixon 在纽约 Hadoop World 大会上提出了数据湖(一个以原始格式存储数据的存储库或系统)的概念,标志着 Hadoop 从开源走向商业化成熟。典型代表:ClouderaHortonworks 两家公司提供了成熟的商业化大数据平台解决方案CDHHDP

大数据平台的作用,就是为了提高数据研发的效率,降低数据研发的门槛,让数据能够在一个设备流水线上快速地完成加工。大数据平台按照使用场景,分为数据集成、数据开发、数据测试……任务运维等,大数据平台的使用对象是数据开发。大数据平台的底层是以 Hadoop 为代表的各种基础设施,分为存储、计算、资源调度和运维监控等。

大数据平台像一条设备流水线,经过大数据平台的加工,原始数据变成了指标,出现在各个报表或者数据产品中。互联网高速发展,背后对数据的需求越来越多,数据的应用场景也越来越多,有大量的数据产品进入到了我们运营的日常工作,成为运营工作中不可或缺的一部分。在电商业务中,有供应链系统,供应链系统会根据各个商品的毛利、库存、销售数据以及商品的舆情,产生商品的补货决策,然后推送给采购系统。随着数据需求的快速增长,报表、指标、数据模型越来越多,找不到数据,数据不好用,数据需求响应速度慢等问题日益尖锐,成为阻塞数据产生价值的绊脚石。

4.1.4. 数据价值时代:中台产生

业务发展前期,为了快速实现业务的需求,烟囱式的开发导致企业不同业务线,甚至相同业务线的不同应用之间,数据都是割裂的。两个数据应用的相同指标,展示的结果不一致,导致运营对数据的信任度下降。数据割裂的另外一个问题,就是大量的重复计算、开发,导致的研发效率的浪费,计算、存储资源的浪费,大数据的应用成本越来越高。

在国内,阿里最早提出了“数据中台”的概念。2014年,马云率队参观了实力强大的游戏公司supercell,它的成功的游戏产品有很多,其独特优势是能够快速推出新产品,而依靠的就是中台系统

马云深受启发,回到阿里后,便提出了“大中台、小前台”战略:沉淀共享服务,打破系统壁垒,业务快速创新。其中“大中台”包含两部分,一个是业务中台,另一个是数据中台

烟囱式开发 数据孤岛 数据割裂

一般来说,数据中台是指通过数据技术对海量数据进行采集、计算、存储和处理,同时统一标准和口径,形成全域级、可复用的数据资产中心和数据存储能力中心,形成大数据资产层,进而为客户提供高效的服务

形象地讲,数据中台构建的服务考虑了"可复用性",每项服务都像一个积木,可以随意组合,灵活高效地解决前台的个性化需求。

总之,数据中台的核心理念是"数据取之于业务,用之于业务",跟传统数据平台相比,数据中台着眼于业务的积累和沉淀,构建了从数据生产到消费、消费后数据返回到生产的闭环过程。

让一切业务数据化,一切数据业务化” 是对数据中台系统功能的精要概括。

在这里插入图片描述

在这里插入图片描述

数据中台的核心,是避免数据的重复计算通过数据服务化,提高数据的共享能力,赋能数据应用。之前,数据是要啥没啥,中间数据难于共享,无法积累。现在建设数据中台之后,要啥有啥,数据应用的研发速度不再受限于数据开发的速度,然后我们就可以根据需求场景,快速孵化出很多数据应用,这些应用让数据产生价值。

总的来说,数据中台吸收了传统数据仓库、数据湖、大数据平台的优势,同时又解决了数据共享的难题,通过数据应用,实现数据价值的落地。

4.2. 数据中台适合企业

4.2.1. 大数据平台型企业的问题

大量数据产品的出现,在不断提高企业运营效率的同时,也暴露出很多尖锐的问题,在我看来,主要有五点。

因此:数据中台是企业构建的标准的、安全的、统一的、共享的数据组织,通过数据服务化的方式支撑前端数据应用。数据中台消除了冗余数据,构建了企业级数据资产,提高了数据的共享能力。

在这里插入图片描述

4.2.2. 那么数据中台如何解决呢?

在我看来,要解决烟囱式开发面临的数据存储冗余,数据计算冗余等问题,就只能构筑一个统一的平台,提供统一的出入口:OneData, OneService

在这里插入图片描述

4.2.3. 什么样的企业适合构建数据中台?

数据中台的构建需要非常大的投入:

所以数据中台的建设,需要结合企业的现状,根据需要进行选择。我认为企业在选择数据中台的时候,应该考虑这样几个因素。

建设数据中台不能盲目跟风,因为它不一定适合你。所以不要迷信中台!一般人玩不起!

4.3. 如何建设数据中台

方法论 + 技术 + 组织

4.3.1. 方法论

在 2016 年,阿里巴巴就提出了"大中台,小前台",倡导数据中台建设,核心方法论:OneDataOneService

4.3.1.1. OneData

简而言之:OneData 就是所有数据只加工一次

数据中台就是要在整个企业中形成一个公共数据层,消灭这些跨部门的小数仓,实现数据的复用,所以强调数据只加工一次,不会因为不同的应用场景,不同的部门数据重复加工。

如何实现:

OneData 体系的目标是构建统一的数据规范标准,让数据成为一种资产,而不是成本。资产和成本的差别在于资产是可以沉淀的,是可以被复用的。成本是消耗性质的、是临时的、无法被复用的。

4.3.1.2. OneService

OneService,数据即服务,强调数据中台中的数据应该是通过 API 接口的方式被访问。记得我最开始在数仓部门工作的时候,因为数据库权限的问题,我们任务的数据只会通过 sqoop 导出到我们的可视化系统中。如果别的数据产品想要使用,只能给我们提需求,通过一些数据同步工具进行同步,慢慢的这个负担越来越重。

现阶段企业数据应用现状:

因此,从不同的系统取数据,应用开发需要定制不同的访问接口。而且如果数据发生异常,还不能查出影响到下游应用的那些应用或者报表。所以当你想下线一张表的时候,就无法实施,造成了上线容易,下线难的囧状。

而 API 接口一方面对应用开发屏蔽了底层数据存储,使用统一标准的 API 接口查询数据,提高了数据接入的速度。另一方面,对于数据开发,提高了数据应用的管理效率,建立了表到应用的链路关系。

如何实现:

OneService 体系的目标是提高数据的共享能力,让数据可以被用得好,用得爽。

4.3.2. 技术

以网易数据中台为例:

在这里插入图片描述

这个图完整地描述了数据中台支撑技术体系

  1. 大数据计算、存储基础设施

数据中台的底层是以 Hadoop 为代表的大数据计算、存储基础设施,提供了大数据运行所必须的计算、存储资源。

  1. 工具产品

在 Hadoop 之上,浅绿色的部分是原有大数据平台范畴内的工具产品,覆盖了从数据集成、数据开发、数据测试到任务运维的整套工具链产品。同时还包括基础的监控运维系统、权限访问控制系统和项目用户的管理系统。由于涉及多人协作,所以还有一个流程协作与通知中心。

  1. 数据治理模块

灰色的部分,是数据中台的核心组成部分:数据治理模块它对应的方法论就是OneData体系。以元数据中心为基础,在统一了企业所有数据源的元数据基础上,提供了包括数据地图、数仓设计、数据质量、成本优化以及指标管理在内的5个产品,分别对应的就是数据发现、模型、质量、成本指标的治理。

  1. 数据服务

深绿色的部分是数据服务,它是数据中台的门户,对外提供了统一的数据服务,对应的方法论就是OneService。数据服务向下提供了应用和表的访问关系,使数据血缘可以延申到数据应用,向上支撑了各种数据应用和服务,所有的系统通过统一的 API 接口获取数据。

  1. 数据产品和应用

在数据服务之上,是面向不同场景的数据产品和应用,包括面向非技术人员的自助取数系统;面向数据开发、分析师的自助分析系统;面向敏捷数据分析场景的 BI 产品;活动直播场景下的大屏系统;以及用户画像相关的标签工厂

关注奈学的 P8 百万大数据架构课程,带你详解:IaaS, PaaS, SaaS & DaaS。

4.3.3. 组织

数据中台提供的是一个跨业务部门共享的公共数据能力,所以,承担数据中台建设职责的部门一定是一个独立于业务线的部门。

独立部门的最大风险是与业务脱节,所以我们对数据中台的组织定位是:懂业务,能够深入业务,扎根业务。数据中台要管理所有的指标,而每个业务线之间的指标既有差异,也有交叉,要理解指标的口径定义,就必须要了解业务的过程。同时,当我们要制定一些新的指标时,必须要了解各个业务线新的业务目标,指标的本质还是为业务目标服务的。

综合来讲:

在这里插入图片描述

数据中台的组织架构改革涉及原有各个部门的利益,所以这个是数据中台构建最难又不得不做的地方,必须要取得高层领导的支持和重视。所以需要:

4.4. 数据中台实现:元数据中心

4.4.1. 元数据概念

数据中台的构建,需要确保全局指标的业务口径一致,要把原先口径不一致的、重复的指标进行梳理,整合成一个统一的指标字典。而这项工作的前提,是要搞清楚这些指标的业务口径、数据来源和计算逻辑。而这些数据都是元数据。

元数据中心应该包括哪些元数据呢? 什么样的数据是元数据。

元数据划为三类:数据字典、数据血缘和数据特征

4.4.2. 元数据技术

根据我的经历和了解,业界比较流行的元数据产品技术主要有:

关于开源的这两款产品,Metacat 擅长管理数据字典,Atlas 擅长管理数据血缘

Metacat 介绍:https://github.com/Netflix/metacat ,最大的优势:多数据源的可扩展架构

在这里插入图片描述

从上面 Metacat 的架构图中,你可以看到,Metacat 的设计非常巧妙,它并没有单独再保存一份元数据,而是采取直连数据源拉的方式,

Apache Atlas 介绍:http://atlas.apache.org/
血缘采集,一般可以通过三种方式:


在这里插入图片描述

对于 Hive 计算引擎,Atlas 通过 Hook 方式,实时地捕捉任务执行计划,获取输入表和输出表,推送给Kafka,由一个 Ingest模块负责将血缘写入 JanusGraph 图数据库中。然后通过 API 的方式,基于图查询引擎,获取血缘关系。对于 Spark,Atlas 提供了 Listener 的实现方式。

解释一下,什么叫做数据血缘

insert overwrite table t2 select classid, count(userid) as count_users from t1 group by classid;

t2 表是由 t1 表的数据计算来的,所以 t2 和 t1 是表血缘上下游关系,t2 的 classid 字段是由 t1 的classid 字段产生的,count 字段是由 userid 经过按照 classid 字段聚合计算得到的,所以 t2 表的classid 与 t1 的 classid 存在字段血缘,t2 表的 count 分别与 t1 表的 classid 和 userid 存在血缘关系。

4.4.3. 元数据中心架构设计

下图按照功能模块分为数据血缘数据字典数据特征

在这里插入图片描述

元数据中心统一对外提供了 API 访问接口,数据传输、数据地图、数据服务等其他的子系统都可以通过API 接口获取元数据。另外 Ranger 可以基于元数据中心提供的API接口,获取标签对应的表,然后根据标签更新表对应的权限,实现基于标签的权限控制。

4.4.4. 元数据设计要点

元数据中心是数据中台的基石,它提供了我们做数据治理的必须的数据支撑,数据的指标、模型、质量、成本、安全等的治理,这些都离不开元数据中心的支撑。

4.5. 数据中台实现:指标管理

指标是一种特定类型的元数据,公司的运营会围绕它进行工作,可以说,它是业务和数据的交汇点。指标数据能不能用,会影响他们的日常工作。而且元数据在指标管理、模型设计、数据质量成本治理四个领域也都发挥着作用,而这些领域构成了数据中台 OneData 数据体系。

4.5.1. 为什么需要指标管理

举两个例子:

1. 第一个:新用户
    市场部门认定新用户是首次下单并完成支付的用户;
    会员中心认定新用户是当日新注册用户。
2. 第二个:7 日 UV
    过去 7 日 UV 的平均值
    过去 7 日所有 Vistor 的去重数量

定义不一致,口径不一致,计算逻辑就不一致。所以构建数据中台,需要提供全局一致的指标口径,输出完备统一的指标字典

又是一个 web 管理平台

1. 运营,产品 能查询已有的指标那些
2. 可以指定新的指标的定义
3. 这些指标,一般来说,要按照主题域进行分类管理

4.5.2. 常见指标问题

一般进行烟囱式开发的企业都多多少少存在以下的指标问题:

4.5.3. 如何定义指标

4.5.4. 如何构建指标系统

4.5.5. 指标管理总结

4.6. 数据中台实现:模型设计

大多数公司的分析师会结合业务做一些数据分析(需要用到大量的数据),通过报表的方式服务于业务部门的运营。但是在数据中台构建之前,分析师经常发现自己没有可以复用的数据,不得不使用原始数据进行清洗、加工、计算指标。

烟囱式数据开发:数据模型无法复用,每次遇到新的需求,都从原始数据重新计算

4.6.1. 如何构建可复用模型

大数据中台的数据模型:

在这里插入图片描述

构建可复用模型的标准:数据模型可复用,完善且规范

4.7. 数据中台实现:数据质量

现有的大数据平台,或者数仓项目,很难做到任务追踪数据追踪。举一个例子。

运营每天上班的第一件事,都是打开相应的数据运营系统,如果某天突然发现这个数据反常,需要数据开发部门核对,或者经过他们自己核对,发现数据的确算错已经投诉了。

这样的例子中,可以得出几个结论:

这些问题最终导致了数据长时间不可用。这就是数据质量的问题

4.7.1. 数据质量问题的根源

对于一个做数据开发的人来讲,遇见数据质量的问题(也就是算错了数据的问题)是经常性的。通常进行排查和数据恢复,都需要较长的时间,和较大的代价。在多次问题的复盘中,总结出以下规律:

4.7.2. 如何提高数据质量

想提升数据质量,最重要的就是 “早发现,早恢复”:

具体实施:

4.7.3. 如何衡量数据质量

对于数据治理做到什么程度,很难衡量,最好的办法就是量化

4.8. 数据中台实现:成本控制

企业数据中台追求的是:高效,质量和成本。简单来说就是:快,准,省。所以能不能合理控制成本,也是决定数据中台项目成功与否的关键。

如果老板问你:

正常来说,数据中台的成本,是按照人力,物力,按照机器数量电费来算的,又不是按照数据应用来算的,来自老板的这种灵魂拷问,还真是不好回答。但是一个公司的资源都是有限的,不可能无限增加,所以这些资源肯定都需要确保应用在公司的核心战略上产生价值。所以数据中台刚好又是一个高消耗支撑部门,所以如果想展现自己的价值,至少要做到两方面:

4.8.1. 成本陷阱

根据经验,可以总结优化的地方还是挺多,如果都做到位,可以节省一半资源。相信很多小伙伴已经基本中招。

4.8.2. 精细化成本管理

  1. 全局资产盘点
    • 精细化成本管理的第一步,就是要对数据中台中,所有的数据进行一次全面盘点,基于元数据中心提供的数据血缘,建立全链路的数据资产视图
    • 数据成本计算:一张表的成本 = 每个加工任务的计算资源成本 * m + 上有依赖表的存储资源成本 * n
    • 数据价值计算:给使用人数,使用频率,数据应用数,老板等因素加权计算
  2. 发现问题
    • 持续产生成本,但是已经没有使用的末端数据(“没有使用”一般指 30 天内没有访问):没有使用,却消耗了资源
    • 数据应用价值很低,成本却很高,这些数据应用上游链路上的所有相关数据:低价值产出
    • 高峰期高消耗的数据:高成本的数据
  3. 治理优化
    • 对于第一类问题,应该对表进行下线
    • 对于第二类问题,我们需要按照应用粒度评估应用是否还有存在的必要,如果没有,则删除。
    • 对于第三类问题,主要是针对高消耗的数据,又具体分为产出数据的任务高消耗和数据存储高消耗,分配到非高峰期运行即可。
  4. 治理效果评估
    • 最简单粗暴的标准:省了多少钱
    • 下线了多少任务和数据;这些任务每日消耗了多少资源;数据占用了多少存储空间。
    • 将上述节省资源换算成钱,这就是你为公司省的钱。

4.9. 数据中台实现:数据服务化

4.9.1. 数据服务解决的问题

数据服务主要解决的问题:

  1. 数据接入效率低
  2. 数据服务解决的问题
  3. 不确定数据应用在哪里
  4. 数据部门的字段更变导致数据应用变更
4.9.1.1. 数据接入效率低

为了保障数据的查询速度,需要引入中间存储

不同中间存储提供的 API 接口不一致,导致使用复杂度提高。维护困难。

解决方案:提供统一的 API 接口,为开发者和应用者屏蔽不同的中间存储和底层数据源

4.9.1.2. 数据服务解决的问题
4.9.1.3. 不确定数据应用在哪里
4.9.1.4. 数据部门的字段更变导致数据应用变更

4.9.2. 数据服务解决方案

为所有的数据应用提供统一的 API 接口服务

表现在:

数据服务实现了数据中台模型和数据应用的全链路打通,解决了任务异常影响分析和数据下线不知道影响哪些应用的难题;

基于相同主键的物理模型,可以构建逻辑模型,逻辑模型解决了数据复用的难题,提高了接口模型的发布效率;

4.10. Amabari+HDP部署和维护使用

4. 11. CM+CDH部署和维护使用

5. 本次课程总结

今天是 数据中台课程的第一次课程,主要讲解的是:

  1. 数据中台由来
  2. 数据中台适合企业
  3. 如何构建数据中台
  4. 中台实现:元数据中心
  5. 中台实现:指标管理
  6. 中台实现:模型设计
  7. 中台实现:数据质量
  8. 中台实现:成本控制
  9. 中台实现:数据服务化
  10. CDH和HDP大数据平台

总的来说,就是告诉你,数据中台怎么产生的,什么样的情况适合构建数据中台,如果你真的要构建数据中台,你得明白你需要做哪些工作以及可能遇到的问题。理论指导实践,学习前辈的优秀实践经验,指导我们的生产才能价值最大化。

标签:数据服务,业务,指标,中台,应用,数据
来源: https://blog.csdn.net/sang1203/article/details/120699544