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

E-MapReduce:Paimon と Hive の連携

最終更新日:Apr 21, 2026

E-MapReduce (EMR) を使用すると、Hive から Paimon データをクエリできます。このトピックでは、その例を示します。

前提条件

Hive と Paimon の両方を選択した DataLake クラスターまたはカスタムクラスターが必要です。詳細については、「クラスターの作成」をご参照ください。

制限事項

Hive からの Paimon データのクエリは、EMR-3.46.0 以降または EMR-5.12.0 以降を実行している EMR クラスターでのみサポートされています。

操作手順

  1. SSH 経由でクラスターのマスターノードに接続します。詳細については、「クラスターのマスターノードへのログイン」をご参照ください。

  2. Spark を使用して Paimon にデータを書き込みます。

    サービスが Hive カタログを介してメタデータを Hive メタストアに同期すると、Hive でそれらのテーブルを直接クエリできます。または、クラスター作成時にMetadataDLF 統合メタデータオプションで選択した場合、サービスは Hive でクエリ可能な DLF カタログにメタデータを同期することもできます。

    この例では、Spark を使用して Hive カタログにデータを書き込む方法を示します。

    1. Spark SQL を起動します。

      spark-sql コマンドラインツールを使用して Paimon カタログに接続し、Hive メタストアのエンドポイントとデータウェアハウスのパスを指定します。

      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 メタストアと同期されます。

      • spark.sql.catalog.paimon.uri:Hive メタストアサービスのアドレスとポートです。thrift://master-1-1:9083 という値は、Spark SQL が master-1-1 ホストで実行され、ポート 9083 でリッスンしている Hive メタストアサービスに接続してメタデータを取得することを意味します。

      • spark.sql.catalog.paimon.warehouse:データウェアハウスのルートパスを設定します。ご利用の環境に応じて値を置き換えてください。<yourBucketName> はご利用の OSS バケット名です。バケットの作成方法の詳細については、「バケットの作成」をご参照ください。

    2. データベースとテーブルを作成します。

      Paimon に test_db という名前のテストデータベースと test_tbl という名前のテーブルを作成し、データを挿入します。

      -- paimon カタログに切り替えます。
      USE paimon;
      
      -- 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 から Paimon データをクエリします。

    1. Hive への接続

    2. 次の HiveQL ステートメントを実行して、新しく挿入されたデータをクエリします。

      select * from test_db.test_tbl;

      このステートメントは次の出力を返します。

      OK
      1       apple   3.5
      2       banana  4.0
      3       cherry  20.5
  4. Hive 外部テーブルを介して Paimon データをクエリします。

    指定したパスから Paimon テーブルを Hive 外部テーブルとしてマッピングし、そのデータを直接クエリすることもできます。

    1. Hive への接続

    2. Hive で、次のコマンドを実行して外部テーブルを作成します。

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

      パラメーター

      • STORED BY 'org.apache.paimon.hive.PaimonStorageHandler':Paimon ストレージハンドラを指定します。

      • LOCATION:Paimon テーブルのストレージパスを指定します。

        oss://<yourBucketName>/warehouse/test_db.db/test_tbl を、ご利用の Paimon テーブルの実際のストレージパスに置き換えてください。

    3. 次の SQL ステートメントを実行して、外部テーブルをクエリします。

      SELECT * FROM test_ext_tbl;