Spark SQL 查询引擎连接器

Delta Lake

qianmoQqianmoQ· 更新于 2026-09-29· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Delta Lake 是一个开源项目,可以在 S3、ADLS、GCS 和 HDFS 等现有存储系统之上构建湖仓一体架构(Lakehouse Architecture)。

::: tip 提示
本文假定你已经掌握了 Delta Lake 的基础知识和操作方法。对于本文未涉及的 Delta Lake 相关知识,你可以查阅其官方文档。
:::

通过使用 Kyuubi,我们可以直接对 Delta Lake 执行 SQL 查询,这比直接使用 Spark 操作 Delta Lake 更加便捷、易于理解且易于扩展。

Delta Lake 集成

要通过 Apache Spark Datasource V2 和 Catalog API 启用 Kyuubi Spark SQL 引擎与 Delta Lake 的集成,你需要:

  • 引入 Delta Lake 的依赖
  • 设置 Spark 扩展与 Catalog 的配置

依赖

支持 Delta Lake 的 Kyuubi Spark SQL 引擎的 classpath 由以下部分组成:

  1. kyuubi-spark-sql-engine-1.9.1_2.12.jar,随 Kyuubi 发行包部署的引擎 jar
  2. 一份 Spark 发行版的拷贝
  3. delta-core 和 delta-storage,可在 Maven Central 中找到

为了使 delta 相关包对引擎的运行时 classpath 可见,我们可以采用以下任一方式:

  1. 将 delta 相关包直接放入 $SPARK_HOME/jars
  2. 设置 spark.jars=/path/to/delta-core,/path/to/delta-storage

::: warning 警告
请注意不同 Delta Lake 版本与 Spark 版本之间的兼容性,可以在 delta release notes 页面上确认。
:::

配置

要启用 Delta Lake 的相关功能,我们可以进行如下配置:

spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension
spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog

Delta Lake 操作

对于只使用纯 SQL 接口的最终用户而言,使用 Delta 表与使用普通的 Hive 表并没有太大差别。除非你要使用一些高级特性,但它们本质上仍然是 SQL,只是增加了一些语法。

以 CREATE A TABLE 为例:

CREATE TABLE IF NOT EXISTS kyuubi_delta (
  id INT,
  name STRING,
  org STRING,
  url STRING,
  start TIMESTAMP
) USING DELTA;

评论

登录后参与评论

正在加载评论…