You need to enable JavaScript to run this app.
导航

Hive 访问 Hudi 数据

最近更新时间2022.11.22 14:27:31

首次发布时间2022.09.22 16:55:46

1 前提条件

  1. 已创建集群,详情请参见 创建集群

  2. 确保本地服务器和 EMR 集群主节点的网络能互通,可以直接访问到集群,需要在主节点绑定一个公网IP地址,并 私有网络 > 安全组 添加本地服务器访问规则的白名单。详见:访问规则

2 创建 Huid 的表

使用 SSH 方式登录到集群主节点,详情请参见使用 SSH连接主节点

  1. 进入 Spark 命令行,执行命令:
spark-sql --master local --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' --conf 'spark.sql.catalog.spark\_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog' --conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension'
  1. 在 Spark 中创建 Hudi 表
CREATE TABLE hudi_mor_tbl (
  id INT,
  name STRING,
  price DOUBLE,
  ts BIGINT
) USING HUDI
TBLPROPERTIES (
  type = 'mor',
  primaryKey = 'id',
  preCombineField = 'ts'
);
  1. 向 Hudi 表写入数据
INSERT INTO hudi_mor_tbl SELECT 1, 'a1', 20, 1000;

3 在 Hive 中查看 Hudi 数据

  1. 执行以下命令,进入 Hive 命令行
su hive
hive
  1. 执行 SQL
SELECT * FROM hudi_mor_tbl;

返回如下信息:

OK
20220802214303953 20220802214303953_0_0 id:1 1bb25562-0342-4b99-b7a6-d2bf82fa0119-0_0-27-1215_20220802214303953.parquet 1 a1 20.01000
Time taken: 1.55 seconds, Fetched: 1 row(s)