全部產品
Search
文件中心

E-MapReduce:Paimon與Hive整合

更新時間:Jul 04, 2024

E-MapReduce支援在Hive中查詢Paimon資料。本文通過樣本為您介紹如何在Hive中查詢Paimon中的資料。

前提條件

已建立選擇了Hive和Paimon的DataLake或Custom類型的叢集,建立叢集詳情請參見建立叢集

使用限制

僅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:定義了名為paimon的Catalog。

      • spark.sql.catalog.paimon.metastore:指定Catalog使用的中繼資料存放區類型。設定為hive意味著將中繼資料同步到Hive Metastore中。

      • spark.sql.catalog.paimon.uri:為Hive MetaStore Service的地址和連接埠。參數值為thrift://master-1-1:9083,這意味著Spark SQL將串連到這個運行在master-1-1主機上、監聽9083連接埠的Hive Metastore服務以擷取中繼資料資訊。

      • spark.sql.catalog.paimon.warehouse:配置資料倉儲的實際位置,請根據實際情況修改。

    2. 執行以下Spark SQL語句,在Catalog中建立一張表,並寫入資料。

      -- 切換到paimon catalog
      USE paimon;
      
      -- 在已建立的paimon catalog中,建立並使用一個測試database。
      CREATE DATABASE test_db;
      USE 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;