赞
踩
做数据的同学经常听到一些数据相关的术语,常见的包括数据仓库,逻辑数据仓库,数据湖,数据湖仓/湖仓一体,数据网格 data mesh,数据编织 data fabric等.
笔者在这里回顾了下数据平台的发展史,也介绍和对比了下常见的概念,主要包括数据仓库,数据湖和数据湖仓,希望大家有所收获。
回顾数据平台发展历史,梳理数据平台变迁脉络,更全面准确地理解数据仓库数据湖和数据湖仓!
所谓「数据平台,主要是指数据分析平台,其消费(分析)内部和外部其它系统生成的各种原始数据(比如券商柜台系统产生的各种交易流水数据,外部行情数据等),对这些数据进行各种分析挖掘以生成衍生数据,从而支持企业进行数据驱动的决策」:
数据分析平台既可以部署在本地,也可以部署在云端,其典型特征有:
数据(分析)平台,常见的相关术语有:数据仓库,数据湖,数据湖仓,数据中台,逻辑数仓 Logical data warehouse,数据编织 Data fabric,Data mesh 等:
本次分享,我们主要关注数据仓库数据湖和数据湖仓
整个数据平台的发展史,其实可以用一句话简单概括下:「数据平台的发展,是随着企业信息化和数字化的逐渐推进,从数据库,数据仓库,数据湖到数据湖仓逐渐演进的」:
数据仓库(Data Warehouse),是由被誉为全球数据仓库之父的 W.H.Inmon 于1990年提出的,其相对学术的解释:「数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策和信息的全局共享」;
数据仓库一般具有以下特点:
关于数仓,有以下几点需要注意下:
数据湖是大数据时代的产物,本身没有相对官方的概念,其最早是由 Pentaho 的创始人兼首席技术官James Dixon 与2010年10月提出的,其后不同厂商有所延伸和细化:
数据湖为什么叫数据湖,而不叫数据河,数据海?一个贴切的解释是:
数据湖一般具有以下特点:
数据湖具有开放性,其开放性体现在以下几点:
数据湖开放性的特点,带来了以下优缺点:
数据湖与上云无关,底层存储可以采用文件系统也可以采用对象存储,常见的实现有:
经过前面对数据仓库和数据湖的比较,我们可以看到,两者在设计上的根本分歧点是对包括存储系统访问、权限管理、建模要求等方面的把控:
数据仓库和数据湖,各有自己的优缺点,前者主要支撑BI场景,后者主要支撑AI场景,两者并不是互斥的关系:「企业搭建数据平台时,既有BI需求也有AI需求,所以现阶段,很多数据平台是融合了数据仓库和数据湖的:使用数据湖泊作为底座,在数据湖基础上组建多个数据仓库,数据仓库支撑各种BI业务场景,数据湖泊的底座除了支撑各个数据仓库,也可以直接支撑机器学习和深度学习等AI场景;」
上文讲到,企业搭建数据平台时,由于既有BI需求也有AI需求,所以现阶段,很多数据平台中融合搭建数据湖和数据仓库以应对BI和AI两大类数据分析场景,但是这样势必会造成资源的浪费,增加了数据成本。为解决数据平台中融合搭建数据仓库和数据湖造成的资源浪费问题,数据仓库和数据湖厂商都做了自己的尝试,给出了相应的解决方案:
笔者尝试使用如下一句话概括总结下数据湖仓:「数据湖仓是在数据湖的基本架构上,通过一系列以表格式 Table Format 为代表的新技术解决了数据湖泊的各种传统痛点,将数据仓库和数据湖泊功能融合在一起,使其具有了数据仓库在数据管理方面的各种优点,并直接支持 BI和AI的各种数据分析场景的新型架构」
数据湖仓最大的技术创新是,通过一系列以表格式 Table Format 为代表的新技术,为数据湖的基本架构带来了ACID事务支持,提供了对记录级别的增删改的支持,对多作业并发读写同一个表或同一个分区的的支持,从而支持了以下特性:
数据湖仓一般具有以下基本特征:
数据湖厂商,改进和增强了自身功能,包括支持ACID事务和加强数据治理能力等,融合了传统的data lake 和 data warehouse的特点,推出了数据湖2.0方案,该方案即湖仓一体或数据湖仓 lake house,在数据湖仓lake house这个概念下,目前最主流的是数据湖三剑客:delta lake/apache hudi/apache iceberg;
三大数据湖仓框架在官网对自身的介绍如下:
三者均为 Data Lake 的数据存储中间层,是文件格式 file format之上的表格式 table format,其数据管理的功能均是基于一系列的 meta 文件:
三者的相似点如下:
三者最初的设计初衷和对应场景并不完全相同,尤其是Hudi,其设计与另外两个相比差别更为明显,但数据湖仓要解决的问题是共同的,随着时间的发展,三者都在不断补齐自己缺失的能力,在将来会彼此趋同,成为功能相似却又各有特点的主流数据湖仓框架,目前三者的差异点主要如下:
以下重点看下Iceberg的架构特点:
对大多数尚未大规模引进数据湖仓技术的公司,笔者有如下几点建议:
文章来源于明哥的IT随笔 ,作者IT明哥。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。