目录
一、数据仓库:聚合业务系统,实现数据分析
出现背景
数据分析需要聚合多个业务系统的数据,比如需要集成交易系统的数据,需要集成仓储系统的数据等等,同时需要保存历史数据,进行大数据量的范围查询。传统数据库面向单一业务系统,主要实现的是面向事务的增删改查,已经不能满足数据分析的场景,这促使数据仓库概念的出现。
四要素
在企业管理和决策中面向主题的、集成的、与时间相关的,不可修改的数据集合。
存在问题
随着互联网时代发展,传统数据仓库暴露问题:1.数据规模前所未有,一个成功的互联网产品日活可以过亿,就像你熟知的头条、抖音、快手、网易云音乐,每天产生几千亿的用户行为。传统数据仓库难于扩展,无法承载如此规模的海量数据。 2.数据类型变得异构化,数据除了来自业务数据库的结构化数据,还有来自 App、Web 的前端埋点数据,或者业务服务器的后端埋点日志,这些数据一般都是半结构化,甚至无结构的。传统数据仓库对数据模型有严格的要求,在数据导入到数据仓库前,数据模型就必须事先定义好,数据必须按照模型设计存储。 所以,数据规模和数据类型的限制,导致传统数据仓库无法支撑互联网时代的商业智能。
二、Hadoop:大数据开源实现,形成框架
出现背景
- 从 2003 年开始,互联网巨头谷歌先后发表了 3 篇论文:《The Google File System》《MapReduce:Simplified Data Processing on Large Clusters》《Bigtable:A Distributed Storage System for Structed Data》,这三篇论文奠定了现代大数据的技术基础。
- 2005 年 Hadoop 出现的时候,大数据技术才开始普及。
主要优势
- 完全分布式,易于扩展,可以使用价格低廉的机器堆出一个计算、存储能力很强的集群,满足海量数据的处理要求
- 弱化数据格式,数据被集成到 Hadoop 之后,可以不保留任何数据格式,数据模型与数据存储分离,数据在被使用的时候,可以按照不同的模型读取,满足异构数据灵活分析的需求
三、数据湖:Hadoop走向商业化成熟
意义
随着 Hadoop 技术日趋成熟,2010 年,Pentaho 创始人兼 CTO James Dixon 在纽约 Hadoop World 大会上提出了数据湖的概念,他提到: 数据湖(Data Lake)是一个以原始格式存储数据的存储库或系统。数据湖概念的提出,我认为是 Hadoop 从开源技术走向商业化成熟的标志。企业可以基于 Hadoop 构建数据湖,将数据作为一种企业核心资产。 数据湖拉开了 Hadoop 商用化的大幕。
存在问题
但是一个商用的 Hadoop 包含 20 多种计算引擎, 数据研发涉及流程非常多,技术门槛限制了 Hadoop 的商用化进程。那么如何让数据的加工像工厂一样,直接在设备流水线上完成呢?
四、数据工厂时代:大数据平台兴起
大数据平台是面向数据研发场景的,覆盖数据研发的完整链路的数据工作台。
需求开发流程
数据开发在完成一项需求时,需要经过:1.数据集成到大数据平台中2.数据开发:按照需求进行开发。3:数据测试:开发完成以后要进行数据验证比对,确认是否符合预期。4.发布上线:接下来是把数据发布上线,提交调度。5.任务运维:通过日常运维以确保任务每日能够正常产出数据。
大数据平台的作用及意义
每项数据开发需求,都是一个繁杂的工作流程,需要有一个高效的平台作为支撑,在大数据平台建成之前,开发效率异常低下,根本无法大规模的应用。试想写代码没有 IDE, 用文本编辑器写代码一样,别人完成十个需求,你可能连一个需求都完成不了。
提出大数据平台的概念,就是为了提高数据研发的效率,降低数据研发的门槛。为每个开发流程提供适合的工具,让数据能够在一个设备流水线上快速地完成加工。
大数据平台的实现(软件硬件)
大数据平台的底层是以 Hadoop 为代表的基础设施,分为计算、资源调度和存储。
Hive、Spark、Flink、Impala 提供了大数据计算引擎:
- Hive、Spark 主要解决离线数据清洗、加工的场景
- 目前,Spark 用得越来越多,性能要比 Hive 高不少
- Flink 主要是解决实时计算的场景
- Impala 主要是解决交互式查询的场景
Yarn、Kubernetes作为资源调度管理框架:
计算引擎统一运行在一个称为 Yarn 的资源调度管理框架内,由 Yarn 来分配计算资源。目前最新的研究方向中也有基于 Kubernetes 实现资源调度的,例如在最新的 Spark 版本(2.4.4)中,Spark 已经能够运行在 Kubernetes 管理的集群上,这样的好处是可以实现在线和离线的资源混合部署,节省机器成本。
HDFS、Kudu 和 HBase 系统提供数据存储:
- HDFS 不可更新,主要存全量数据
- HBase 提供了一个可更新的 KV,主要存一些维度表
- Kudu 提供了实时更新的能力,一般用在实时数仓的构建场景中
发布及调度:
- JMP可以用于作业的统一管理和调度,可以通过配置依赖,确定不同表/作业的血缘关系,有序跑批。还可以定时并且通过参数、shell脚本等方式来对不同类型的作业进行管理。
- DCP为发布、上线提供平台,也可以进行ETL开发、生成拉链表以及作业执行。
存在问题
大数据平台像一条设备流水线,经过大数据平台的加工,原始数据变成了指标,出现在各个报表或者数据产品中。但是随着数据需求的快速增长,报表、指标、数据模型越来越多,找不到数据,数据不好用,数据需求响应速度慢等问题日益尖锐,成为阻塞数据产生价值的绊脚石。
五、数据价值时代:数据中台崛起
背景:大数据发展至今的主要矛盾
2016 年前后,互联网高速发展,背后对数据的需求越来越多,数据的应用场景也越来越多,有大量的数据产品进入到了我们运营的日常工作,成为运营工作中不可或缺的一部分。在电商业务中,有供应链系统,供应链系统会根据各个商品的毛利、库存、销售数据以及商品的舆情,产生商品的补货决策,然后推送给采购系统。 大规模数据的应用,也逐渐暴露出现一些问题,业务发展前期,为了快速实现业务的需求,烟囱式的开发导致企业不同业务线,甚至相同业务线的不同应用之间,数据都是割裂的。数据割裂会导致:1.两个数据应用的相同指标,展示的结果不一致,导致运营对数据的信任度下降。如果你是运营,当你想看一下商品的销售额,发现两个报表上,都叫销售额的指标出现了两个值,你的感受如何? 你第一反应肯定是数据算错了,你不敢继续使用这个数据了2.大量的重复计算、开发,导致的研发效率的浪费,计算、存储资源的浪费,大数据的应用成本越来越高。这些问题的根源在于数据无法共享。
数据中台核心&前景
2016 年,阿里巴巴率先提出了“数据中台”的口号。数据中台的核心,是避免数据的重复计算,通过数据服务化,提高数据的共享能力,赋能数据应用。之前,数据是要啥没啥,中间数据难于共享,无法积累。现在建设数据中台之后,要啥有啥,数据应用的研发速度不再受限于数据开发的速度,一夜之间,我们就可以根据场景,孵化出很多数据应用,这些应用让数据产生价值。
为什么说数据中台是大数据的下一站?
有这样几个原因:
1.数据中台构建于数据湖之上,具备数据湖异构数据统一计算、存储的能力,同时让数据湖中杂乱的数据通过规范化的方式管理起来。
2.数据中台需要依赖大数据平台,大数据平台完成了数据研发的全流程覆盖,数据中台增加了数据治理和数据服务化的内容。 数据中台借鉴了传统数据仓库面向主题域的数据组织模式,基于维度建模的理论,构建统一的数据公共层。
3.总的来说,数据中台吸收了传统数据仓库、数据湖、大数据平台的优势,同时又解决了数据共享的难题,通过数据应用,实现数据价值的落地。
在文章的最后,为了帮你把数据中台诞生的大事件串联起来,我做了一张时间图,在这个时间线里,你可以很清晰地看到数据中台诞生的前期、中期,和后期的大事件,这样可以帮你更清晰的掌握数据中台背景。