Spark SQL 使用 Delta Lake
读者交流群已经开通了,有需要的可以私信进入读者交流群
前面我们介绍过了 Delta Lake可以解决我们数据更新和小文件合并的问题,我们知道数据湖三驾马车的特性如下:
- Iceberg 的设计初衷更倾向于定义一个标准、开放且通用的数据组织格式,同时屏蔽底层数据存储格式上的差异,向上提供统一的操作 API,使得不同的引擎可以通过其提供的 API 接入;
- Hudi 的设计初衷更像是为了解决流式数据的快速落地,并能够通过 upsert 语义进行延迟数据修正;
- Delta Lake 作为 Databricks 开源的项目,更侧重于在 Spark 层面上解决 Parquet、ORC 等存储格式的固有问题,并带来更多的能力提升。他们都提供了 ACID 的能力,都基于乐观锁实现了冲突解决和提供线性一致性,同时相应地提供了 time travel 的功能。
我们知道了Delta Lake主要是基于Spark生态来做的数据湖产品,Databricks开源了存储层Delta Lake,为Apache Spark 提供可伸缩的 ACID 事务,提供事务管理、统一流批、元数据管理、版本回溯等数据库领域常见功能,下面我们就看一下如何使用
scala api 使用 Delta Lake
需要强调的是我们需要注意版本兼容的问题,
下载依赖包
前面我们一直在强调 Delta