Spark SQL 查询引擎连接器
Hudi
登录后可跨设备保存划线和私人笔记登录
Apache Hudi(读作 "hoodie")是新一代流式数据湖平台。Apache Hudi 将核心的数据仓库和数据库功能直接带入数据湖。
:::tip 提示
本文假设你已掌握 Hudi 的基础知识与操作。对于本文未涉及的 Hudi 相关知识,可参阅其官方文档。
:::
通过 Kyuubi,我们可以直接对 Hudi 执行 SQL 查询,这比直接使用 Spark 操作 Hudi 更加方便、易懂,也更易于扩展。
Hudi 集成
要通过 Catalog API 启用 Kyuubi Spark SQL 引擎与 Hudi 的集成,你需要:
依赖
支持 Hudi 的 Kyuubi Spark SQL 引擎的 classpath 由以下部分组成:
- kyuubi-spark-sql-engine-1.9.1_2.12.jar,随 Kyuubi 发行版部署的引擎 jar
- Spark 发行版的一份副本
- hudi-spark<spark.version>-bundle_<scala.version>-<hudi.version>.jar(例如:hudi-spark3.2-bundle_2.12-0.11.1.jar),可在 Maven Central 中找到
为了让 Hudi 包对引擎的运行时 classpath 可见,我们可以采用以下任一方法:
- 将 Hudi 包直接放入
$SPARK_HOME/jars - 设置
spark.jars=/path/to/hudi-spark-bundle
配置
要启用 Hudi 的功能,我们可以设置以下配置:
# Spark 3.2
spark.serializer=org.apache.spark.serializer.KryoSerializer
spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension
spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog
# Spark 3.1
spark.serializer=org.apache.spark.serializer.KryoSerializer
spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtensionHudi 操作
以 Create Table 为例,
CREATE TABLE hudi_cow_nonpcf_tbl (
uuid INT,
name STRING,
price DOUBLE
) USING HUDI;以 Query Data 为例,
SELECT * FROM hudi_cow_nonpcf_tbl WHERE id < 20;以 Insert Data 为例,
INSERT INTO hudi_cow_nonpcf_tbl SELECT 1, 'a1', 20;以 Update Data 为例,
UPDATE hudi_cow_nonpcf_tbl SET name = 'foo', price = price * 2 WHERE id = 1;以 Delete Data 为例,
DELETE FROM hudi_cow_nonpcf_tbl WHERE uuid = 1;评论
登录后参与评论
正在加载评论…
KnowForge