Hudi Hive建表流程
1. 准备工作
在开始建表之前,需要确保以下条件已满足:
- 已安装和配置好Hudi和Hive
- 已创建好Hudi集群和Hive表空间
- 已准备好需要导入的数据文件
2. 建立Hive外部表
Hudi是建立在Hive之上的,因此首先需要在Hive中创建一个外部表,用于将Hudi数据与Hive进行关联。
CREATE EXTERNAL TABLE hudi_table (
id INT,
name STRING,
age INT
)
ROW FORMAT SERDE 'org.apache.hudi.hadoop.HoodieParquetInputFormat'
STORED AS
INPUTFORMAT 'org.apache.hudi.hadoop.HoodieParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION 'hdfs://path/to/hudi/data';
代码解释:
CREATE EXTERNAL TABLE
:创建一个外部表hudi_table
:表名id
,name
,age
:表的列名和数据类型ROW FORMAT SERDE
:指定Hudi Parquet格式的InputFormatSTORED AS
:指定Hudi Parquet格式的OutputFormatLOCATION
:指定Hudi数据存储的HDFS路径
3. 创建Hudi表
接下来需要创建一个Hudi表,这样才能使用Hudi的特性进行数据操作。
CREATE TABLE hudi_table_hudi
ROW FORMAT SERDE 'org.apache.hudi.hadoop.HoodieParquetInputFormat'
STORED AS
INPUTFORMAT 'org.apache.hudi.hadoop.HoodieParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION 'hdfs://path/to/hudi/data'
TBLPROPERTIES (
'hoodie.table.name' = 'hudi_table',
'hoodie.table.type' = 'COPY_ON_WRITE'
);
代码解释:
CREATE TABLE
:创建一个Hudi表hudi_table_hudi
:表名,以"_hudi"结尾,表示这是一个Hudi表ROW FORMAT SERDE
:指定Hudi Parquet格式的InputFormatSTORED AS
:指定Hudi Parquet格式的OutputFormatLOCATION
:指定Hudi数据存储的HDFS路径TBLPROPERTIES
:表的属性'hoodie.table.name' = 'hudi_table'
:指定关联的Hive外部表名'hoodie.table.type' = 'COPY_ON_WRITE'
:指定Hudi表的类型,这里使用的是Copy-on-Write模式
4. 导入数据
现在可以将数据导入到Hudi表中。
INSERT INTO TABLE hudi_table_hudi
SELECT * FROM hudi_table;
代码解释:
INSERT INTO TABLE
:将数据插入到Hudi表中hudi_table_hudi
:目标表,即Hudi表SELECT * FROM hudi_table
:从Hive外部表中选择全部数据,并将其插入到Hudi表中
5. 查询数据
现在可以对Hudi表进行查询操作了。
SELECT * FROM hudi_table_hudi;
代码解释:
SELECT * FROM hudi_table_hudi
:查询Hudi表中的全部数据
关系图
erDiagram
hudi_table ||--o{ hudi_table_hudi : "1"
饼状图
pie
title Hudi表数据分布
"男" : 70
"女" : 30
以上就是使用Hudi在Hive中建立表的完整流程,通过这种方式可以实现对Hudi表的数据操作和查询。请按照上述步骤进行操作,并根据实际情况进行相应的调整。希望对你有所帮助!