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

E-MapReduce:Hudi の使用

最終更新日:Jun 22, 2026

Apache Hudi は、レコードレベルでの挿入、更新、削除、および増分処理のための変更データキャプチャを可能にするデータレイクストレージ形式です。詳細については、「Apache Hudi」をご参照ください。このトピックでは、EMR Serverless Spark で Hudi テーブルを読み書きする方法について説明します。

前提条件

ワークスペースが作成済みであること。詳細については、「ワークスペースの作成」をご参照ください。

手順

ステップ 1: SQL セッションの作成

  1. [セッション] ページに移動します。

    1. EMR コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[EMR Serverless] > [Spark] を選択します。

    3. [Spark] ページで、対象のワークスペースの名前をクリックします。

    4. EMR Serverless Spark ページで、左側のナビゲーションウィンドウの Sessions をクリックします。

  2. SQL Session ページで、Connect to SQL Session をクリックします。

  3. Connect to SQL Session ページで、Spark Configuration セクションに次のパラメーターを追加し、create をクリックします。詳細については、「SQL セッションの管理」をご参照ください。

    この設定は、現在のワークスペースのデフォルトカタログに適用されます。外部 Hive メタストアをデフォルトカタログとして使用する方法については、「外部 Hive メタストアサービスへの接続」をご参照ください。

    spark.sql.extensions             org.apache.spark.sql.hudi.HoodieSparkSessionExtension
    spark.sql.catalog.spark_catalog  org.apache.spark.sql.hudi.catalog.HoodieCatalog
    spark.serializer                 org.apache.spark.serializer.KryoSerializer

ステップ 2: Hudi テーブルの読み書き

  1. 開発ページに移動します。

    EMR Serverless Spark ページで、左側のナビゲーションペインで Development をクリックします。

  2. [開発] タブで、image アイコンをクリックします。

  3. [作成] ダイアログボックスで、users_task などの名前を入力し、タイプはデフォルトの [SparkSQL] のままにして、[OK] をクリックします。

  4. 新しく作成された SparkSQL タブ (users_task) に、次のコードを貼り付けます。

    CREATE DATABASE IF NOT EXISTS ss_hudi_db;
    CREATE TABLE ss_hudi_db.hudi_tbl (id INT, name STRING) USING hudi TBLPROPERTIES (
      type = 'cow',
      primaryKey = 'id'
    );
    INSERT INTO ss_hudi_db.hudi_tbl VALUES (1, "a"), (2, "b");
    SELECT id, name FROM ss_hudi_db.hudi_tbl ORDER BY id;
    DROP TABLE ss_hudi_db.hudi_tbl;
    DROP DATABASE ss_hudi_db;
  5. ドロップダウンリストから、データベースと先ほど作成した SQL セッションを選択します。

  6. 実行 をクリックしてジョブを実行します。

    結果は、 id=1name=a のレコード、および id=2name=b のレコードの 2 つを含むテーブルです。

関連ドキュメント