Linux 基金会的 Delta Lake(Delta.io)是一个给数据湖提供可靠性的开源存储层软件。在 QCon 全球软件开发大会(上海站)2019 的演讲中,Databricks 公司的 Engineering Manager 李潇带我们了解了 Delta Lake 在实际生产中的应用与实践以及未来项目规划,本文便整理自此次演讲。 今天我跟大家分享 一下 Data Lake 和 Delta 架构。
2019 年 10 月 16 日,在荷兰阿姆斯特丹举行的 Spark+AI 欧洲峰会上,Databricks 正式宣布将 Delta Lake 捐赠给了 Linux 基金会,其成为了该基金会中的一个正式项目。我们期待在今年(2019 年)或者是未来,很快, Delta Lake 将会成为数据湖的主流或者说是事实标准。
在 9 月份公布的 2019 年最佳开源软件奖名单中,Delta Lake 也榜上有名。正如官方对 Delta Lake 的颁奖评语描述,大家都很惊讶,Databricks 公司竟然把 Delta Lake 这个核心的拳头产品开源了。Delta Lake 的推出实际上是为了解决 Spark 作为大数据分析平台的诸多痛点,也相信它将会普惠整个 Spark 社区以及其他大数据社区,真正解决数据湖管理的各种关键问题。

很有幸,我参与了 Delta Lake 早期的开发,尤其是 merge、update、delete 这种关键 DML 的设计和实现。这个项目最早启动于 2017 年 6 月。当时,多位用户向我们抱怨 Spark 的不足和使用的不便,我们公司的工程师们讨论后发现,是时候去提出我们自己的存储架构。Spark 作为一种存储和计算分离的一种计算引擎,之前我们主要依赖于其他开源或非开源的项目去解决各种数据存储的问题,但实际上我们发现在用户的生产环境中,现有的存储方案都没办法真正的解决数据湖。于是乎,我们就和客户一起尝试去开发,去解决实际生产环境中的问题。经过四个月的快速开发,我们在 2017 年 10 月正式宣布了 Delta Lake 产品的诞生。在第二年 6 月份的 Spark+AI 峰会中,Apple 的工程师和我们的工程师 Michael 一起做了主题演讲,分享了 Apple 在使用 Delta Lake 的一些宝贵经验,比如说他们当时用 Delta Lake 解决了 trillion 级别数据的大表的度写。