全部产品
Search
文档中心

开源大数据平台E-MapReduce:Paimon与Hive集成

更新时间:Jun 26, 2023

E-MapReduce支持在Hive中查询Paimon数据。本文通过示例为您介绍如何在Hive中查询Paimon中的数据。

使用限制

EMR-3.46.0及后续版本、EMR-5.12.0及后续版本的集群,支持在Hive中查询Paimon中的数据。

操作步骤

  1. 查询Hive Catalog与DLF Catalog中的表。

    其他服务通过Hive Catalog同步元数据到Hive MetaStore后,可以在Hive中直接查询Hive Catalog中的表。如果创建集群时,元数据选择为DLF统一元数据,则其它服务也可以通过DLF Catalog同步元数据到DLF,并在Hive中查询。

    下面以Spark写入Hive Catalog为例。

    1. 执行以下命令,启动Spark SQL。

      spark-sql --conf spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog --conf spark.sql.catalog.paimon.metastore=hive --conf spark.sql.catalog.paimon.uri=thrift://master-1-1:9083 --conf spark.sql.catalog.paimon.warehouse=oss://<yourBucketName>/warehouse
      说明

      spark.sql.catalog.paimon.uri为Hive MetaStore Service的地址。

    2. 执行以下Spark SQL语句,在Catalog中创建一张表,并写入数据。

      -- 在已创建的catalog中,创建并使用一个测试database。
      CREATE DATABASE paimon.test_db;
      USE paimon.test_db;
      
      -- 创建Paimon表。
      CREATE TABLE test_tbl (
          uuid int,
          name string,
          price double
      ) TBLPROPERTIES (
          'primary-key' = 'uuid'
      );
      
      -- 向Paimon中写入数据。
      INSERT INTO test_tbl VALUES (1, 'apple', 3.5), (2, 'banana', 4.0), (3, 'cherry', 20.5);
    3. 执行以下命令,启动Hive CLI。

      hive
    4. 执行以下Hive SQL,查询刚刚写入的数据。

      select * from test_db.test_tbl;
  2. 添加并查询外表。

    Hive也可以将指定路径下的Paimon表添加为外表并查询。

    CREATE EXTERNAL TABLE test_ext_tbl
    STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
    LOCATION 'oss:// <yourBucketName>/warehouse/test_db.db/test_tbl';
    
    SELECT * FROM test_ext_tbl;