集成Hive
虽然之前与Flink集成时,已经使用Hive Catalog,可以从Flink创建、删除、查询和插入到paimon表中,如果与Hive集成,可以直接使用Hive SQL创建、查询Paimon表以及读取之前的Flink的Hive Catalog创建好的Paimon表。
1. 环境准备
Paimon目前支持Hive3.1, 2.3, 2.2, 2.1 and 2.1-cdh-6.3。读取支持MR和Tez执行引擎,写入只支持MR 执行引擎,在Hive根目录下创建auxlib文件夹,将paimon-hive-connector-1.2.0.jar复制到auxlib中(不推荐用add jar,MR引擎运行 join 语句会报异常):
sh
mkdir /opt/module/hive/auxlib
cp paimon-hive-connector-3.1-1.2.0.jar /opt/module/hive/auxlib2. 访问已有的Paimon表
sql
USE test;
SHOW TABLES;
SELECT * FROM ws_t;
INSERT INTO test_table VALUES (9,9,9);3. 创建Paimon表
sql
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'4. 通过外部表访问Paimon表
要访问现有的paimon表,还可以将它们注册为Hive中的外部表,不需要指定任何列或表属性,只需要指定路径。
sql
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);