1. 摘要
数仓架构在未来一段时间内会逐渐消亡,会被一种新的Lakehouse架构取代,该架构主要有如下特性
- 基于开放的数据格式,如Parquet;
- 机器学习和数据科学将被作为头等公民支持;
- 提供卓越的性能;
Lakehouse可以解决数据仓库面临的几个主要挑战,如数据陈旧,可靠性,总成本,数据格式不开放和有限场景支持。
2. 数据分析平台发展
数据仓库将业务数据库的数据收集到集中式仓库来帮助企业领导者获得分析见解,然后将其用于决策支持和商业智能(BI),仓库使用写模式(schema-on-write)写入数据,对下游消费者进行了优化,此为第一代数据分析平台。
慢慢地第一代系统开始面临若干挑战,首先是计算与存储耦合使得扩容成本增加;其次越来越多的数据集是非结构化的,例如视频,音频和文本文档,数据仓库无法存储和查询这些数据。
为了解决这些问题,引入第二代数据分析平台,其将所有原始数据导入数据湖:具有文件API的低成本存储系统,该API以通用且通常是开放的文件格式保存数据,例如Apache Parquet和ORC,可以基于HDFS实现低成本数据湖存储,数据湖是一种读模式(schema-on-read)架构,可以灵活地以低成本存储任何数据。
该架构中的一小部分数据随后将被ETL到下游数据仓库以提供最重要的决策支持和BI应用程序。
从2015年起,S3,ADLS,GCS,OSS等云数据湖开始取代HDFS,云上的架构与第二代系统中的架构基本相同,云上有Redshift、Snowflake和ADB等数据仓库,这种两层的数据湖+数仓架构在行业中占主导地位(财富500强企业中几乎都在使用)。但这种架构也面临了一些挑战,尽管由于分开的存储(例如S3)和计算(例如Redshift)而使云数据湖和仓库的体系架构表面上便宜,但是对于用户来说,两层体系结构却非常复杂。在第一代平台中所有数据都从运营数据系统直接ETL到仓库,而在这种架构中,数据首先被ETL到数据湖,然后又被ELT到数仓,引入额外的复杂性、延迟和故障率,而且企业用例中包括机器学习之类的高级分析,数据湖和仓库都支持得不理想,具体来说,当前的数据架构通常会遇到如下四个问题:
- 可靠性。保持数据湖和数仓一致是困难且昂贵的,需要对两个系统之间的ETL作业进行仔细设计,每个ETL步骤还有发生故障或引入错误的风险,例如由于数据湖和仓库引擎之间的细微差别而导致数据质量降低的风险。
- 数据陈旧。与数据湖的数据相