数据平台简史与开放数据架构演进
数据平台发展历程
- 过去:写入时架构,采用 JSON 数据类型,消耗定价模式,存储和计算分离,维护成本高,专业人才需求大。
- 现在:读取模式架构,支持灵活的数据文件/类型,具有成本效益的存储,但仍面临维护/升级费用高、专业人才稀缺等问题。
开放数据架构演进
- 数据湖 1.0:存储开放数据,但维护和工程成本高,分析/访问性能受损,需要大量客户工程工作。
- 数据湖屋(Lakehouse):比 EDW 走得更远,提供用户和应用程序接口(ODBC/JDBC),支持多种数据湖引擎(如 Dremio、Spark、Hive、雅典娜),采用现代元存储(如 Nessie),支持打开表格格式(如 Iceberg、Delta Lake、Hudi),存储在 S3、ADLS、HDFS 等云存储中。
数据湖屋关键特性
- 事务性表:支持自动分区、时间旅行(由 Netflix、苹果等创建),使用 SQL DML 进行记录级数据突变,支持即时模式和分区演化。
- 数据分支:类似数据库的分支机构,支持多表一致性/事务、实验(隔离开发/测试)、生产前验证,使用 Nessie 实现现代元存储,支持重复性、合规性、历史比较。
- 表格格式:Hive 表格式作为事实上的标准,但存在目录列表性能、一致性问题;新的表格格式(如 Iceberg、Delta Lake)解决这些问题,提供 ACID 事务、表演化、一致性/正确性、快速查询规划、分区与布局解耦。
Iceberg 设计优势
- 冰山设计:支持丰富的模式进化、事务的可序列化隔离、更快的计划和执行,提供压缩、隐藏分区、表随时间变化等特性。
- 抽象物理,暴露逻辑视图:所有引擎立即看到更改,支持并发写入、任何引擎执行压缩。
- 写入端定义的文件列表:通过清单文件消除文件,提供统计信息,无需昂贵的最终一致 FS 操作。
核心观点与结论
- 数据湖屋是数据平台发展的新方向,结合了数据湖的开放性和数据仓库的结构化特性。
- 表格格式(如 Iceberg、Delta Lake)解决了传统数据湖的痛点,提供了更强大的数据管理能力。
- 数据湖屋和表格格式能够支持大规模数据处理,提高数据访问性能,促进数据民主化,快速实现价值。