……

 

第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);
 
 
 posted on 2024-03-02 15:41  大码王  阅读(234)  评论(1编辑  收藏  举报
复制代码