第3章 集成 Hive 引擎
前面与Flink集成时,通过使用 paimon Hive Catalog,可以从 Flink 创建、删除、查询和插入到 paimon 表中。这些操作直接影响相应的Hive元存储。以这种方式创建的表也可以直接从 Hive 访问。
更进一步的与 Hive 集成,可以使用 Hive SQL创建、查询Paimon表。
3.1 环境准备
Paimon 目前支持 Hive 3.1、2.3、2.2、2.1 和 2.1-cdh-6.3。支持 Hive Read 的 MR 和 Tez 执行引擎,以及 Hive Write 的 MR 执行引擎(beeline也不支持hive write)。
在Hive根目录下创建auxlib文件夹,将paimon-hive-connector-0.5-SNAPSHOT.jar复制到auxlib中(不推荐用add jar,MR 引擎运行 join 语句会报异常):
下载地址:https://repository.apache.org/snapshots/org/apache/paimon/paimon-hive-connector-3.1/0.5-SNAPSHOT/
mkdir /opt/module/hive/auxlib
cp paimon-hive-connector-3.1-0.5-20230703.002437-65.jar /opt/module/hive/auxlib
3.2 访问已有的Paimon表
USE test;
SHOW TABLES;
SELECT * FROM ws_t;
INSERT INTO test_table VALUES (9,9,9);
3.3 创建Paimon表
SET hive.metastore.warehouse.dir=hdfs://hadoop102:8020/paimon/hive;
CREATE TABLE test_h(
a INT COMMENT 'The a field',
b STRING COMMENT 'The b field'
)
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
3.4 通过外部表访问Paimon表
要访问现有的 paimon 表,还可以将它们注册为 Hive 中的外部表,不需要指定任何列或表属性,只需要指定路径。
CREATE EXTERNAL TABLE test.hive_ex
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
LOCATION 'hdfs://hadoop102:8020/paimon/hive/test.db/ws_t';
–或将路径写在表属性中:
CREATE EXTERNAL TABLE hive_ex
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
TBLPROPERTIES (
'paimon_location' ='hdfs://hadoop102:8020/paimon/hive/test.db/ws_t'
);
操作外部表:
SELECT * FROM hive_ex;
INSERT INTO hive_ex VALUES (8,8,8);
本文来自博客园,作者:大码王,转载请注明原文链接:https://www.cnblogs.com/huanghanyu/