すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Paimon と Hive の統合

最終更新日:Jan 11, 2025

E-MapReduce(EMR)では、Hive で Paimon のデータをクエリできます。このトピックでは、Hive で Paimon のデータをクエリする方法について説明します。

前提条件

Hive サービスと Paimon サービスを含む Data Lake またはカスタムクラスターが作成されていること。クラスターの作成方法の詳細については、「クラスターの作成」をご参照ください。

制限事項

EMR V3.46.0 以降のマイナーバージョンのクラスター、または EMR V5.12.0 以降のマイナーバージョンのクラスターのみが、Hive で Paimon のデータをクエリできます。

手順

  1. Hive カタログおよび Data Lake Formation(DLF)カタログで作成されたテーブルからデータをクエリします。

    Hive カタログを使用して他のサービスから Hive Metastore にメタデータを同期した後、Hive カタログ内のテーブルからデータをクエリできます。EMR クラスターの作成時に [メタデータ][DLF 統合メタデータ] を選択した場合は、DLF カタログを使用して他のサービスから DLF にメタデータを同期し、Hive でメタデータをクエリできます。

    次の例は、Spark を使用して Hive カタログにデータを書き込み、Hive で Paimon のデータをクエリする方法を示しています。

    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 という名前のカタログを定義します。

      • spark.sql.catalog.paimon.metastore: カタログで使用されるメタデータストレージタイプを指定します。hive に設定すると、メタデータは Hive Metastore に同期されます。

      • spark.sql.catalog.paimon.uri: Hive Metastore のアドレスとポート番号を指定します。thrift://master-1-1:9083 に設定すると、Spark SQL クライアントは master-1-1 ノードで実行され、リスニングポートが 9083 である Hive Metastore に接続してメタデータ情報を取得します。

      • spark.sql.catalog.paimon.warehouse: データウェアハウスの実際の場所を指定します。ビジネス要件に基づいてこのパラメーターを設定します。

    2. 次の Spark SQL ステートメントを実行して、作成されたカタログに Paimon テーブルを作成し、テーブルにデータを書き込みます。

      -- paimon カタログに切り替えます。
      USE paimon;
      
      -- 作成されたカタログにテストデータベースを作成し、そのデータベースを使用します。
      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 ステートメントを実行して、Paimon テーブルに書き込まれたデータをクエリします。

      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;