数据湖Hudi-5-Hudi集成Spark-SparkSQL

  • SparkSQL操作Hudi数据
  • 1.环境准备
  • 2.创建表格
  • 3.插入数据
  • 4.查询数据
  • 1.时间旅行查询
  • 5.更新数据
  • 1.update
  • 2.MergeInto
  • 6.删除数据
  • 7.覆盖数据
  • 8.修改表结构(Alter Table)
  • 9.修改分区
  • 10.存储过程(Procedures)


SparkSQL操作Hudi数据

1.环境准备

  • hive元数据服务需要是外置的并且要启动起来。
  • 查看hive元数据服务是否为外置,需要看hive配置文件“hive-site.xml” 的配置是否是依托于外界环境。

2.创建表格

  • 1.建表参数
  • 2.创建非分区表
  • 3.创建分区表
  • 4.在已有的hudi表上创建新表
  • 5.通过CTAS(Create Table As Select)建表
  • 为了提高向hudi表加载数据的性能,CTAS使用批量插入作为写操作。

3.插入数据

sparksql不能用位置参数么 sparksql hudi_数据仓库

sparksql不能用位置参数么 sparksql hudi_hive_02


sparksql不能用位置参数么 sparksql hudi_sparksql不能用位置参数么_03


使用 bulk_insert插入数据的时候,一般是在历史数据导入的时候使用。

4.查询数据

1.时间旅行查询

  • 时间旅行查询要求的版本:Hudi从0.9.0开始支持,并且Spark SQL要求Spark版本为3.2以上。

5.更新数据

1.update

sparksql不能用位置参数么 sparksql hudi_sparksql不能用位置参数么_04

2.MergeInto

sparksql不能用位置参数么 sparksql hudi_大数据_05

  • 1.向非分区表插入数据
  • sparksql不能用位置参数么 sparksql hudi_大数据_06

  • merge into的时候,两个表进行关联,后面可以写判断匹配条件,匹配上了就进行更新操作,没匹配上条件,就进行插入操作。
  • 2.向分区表插入数据
  • 准备数据,创建表格并插入数据

6.删除数据

sparksql不能用位置参数么 sparksql hudi_hive_07

7.覆盖数据

sparksql不能用位置参数么 sparksql hudi_大数据_08

8.修改表结构(Alter Table)

  • 1.语法:
  • 相关案例:

9.修改分区

  • 1.相关语法
  • 2.案例

10.存储过程(Procedures)

  • 1.语法
  • 2.案例实践