Spark SQL 查询引擎连接器
Delta Lake
登录后可跨设备保存划线和私人笔记登录
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 的 Kyuubi Spark SQL 引擎的 classpath 由以下部分组成:
- kyuubi-spark-sql-engine-1.9.1_2.12.jar,随 Kyuubi 发行包部署的引擎 jar
- 一份 Spark 发行版的拷贝
- delta-core 和 delta-storage,可在 Maven Central 中找到
为了使 delta 相关包对引擎的运行时 classpath 可见,我们可以采用以下任一方式:
- 将 delta 相关包直接放入
$SPARK_HOME/jars - 设置
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.DeltaCatalogDelta 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;评论
登录后参与评论
正在加载评论…
KnowForge