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

DataWorks:EMR Hive テーブルの MaxCompute へのオフライン同期

最終更新日:Feb 13, 2026

本トピックでは、E-MapReduce (EMR) の単一 Hive テーブルを MaxCompute にオフラインモードで同期する方法について説明します。データソースの構成、ネットワーク接続、および同期タスクの構成に関するベストプラクティスも併せてご案内します。

背景情報

Hive は Hadoop 上に構築されたデータウェアハウスツールであり、データの抽出(Extract)、変換(Transform)、ロード(Load)を実行します。Hive は Hadoop 上で大規模なデータセットを格納、クエリ、分析できます。また、構造化データファイルをデータベーステーブルにマッピングし、SQL 文を MapReduce タスクに変換することで SQL クエリ機能を提供します。DataWorks Data Integration を使用すると、Hive から他の宛先へ、または他のソースから Hive へデータを同期できます。

事前準備

  • サーバーレスリソースグループ を購入します。

  • Hive データソースと MaxCompute データソースを作成します。詳細については、「データソースの構成」をご参照ください。

  • リソースグループとデータソース間のネットワーク接続を確立します。詳細については、「ネットワーク接続ソリューションの概要」をご参照ください。

    説明

    専用リソースグループと EMR 間でパブリックネットワーク接続を使用する場合、EMR クラスターのセキュリティグループにルールを追加する必要があります。このルールでは、専用リソースグループの Elastic IP(EIP)アドレスからのアクセスを許可する必要があります。また、インバウンドルールでは、EMR クラスターのアクセスポート(例:10000、9093、8020)へのトラフィックを許可する必要があります。

制限事項

ソースデータを MaxCompute の外部テーブル(foreign table)へ同期することはサポートされていません。

操作手順

1. ノードの作成とタスクの構成

ノードの作成およびコードレス UI におけるタスク構成の一般的な手順については、本トピックでは説明しません。詳細については、「コードレス UI での同期ノードの構成」をご参照ください。

2. データソースと宛先の構成

Hive データソースの構成

本ドキュメントでは、単一の Hive テーブルを MaxCompute にオフラインモードで同期する方法について説明します。データソースは Hive テーブルです。主な構成パラメーターを以下に示します。

構成項目

構成の注意点

Hive 読み取り方法

  • HDFS ファイルからデータを読み取る:Hive Reader プラグインは Hive Metastore サービスにアクセスして情報を解析します。この情報には、Hadoop 分散ファイルシステム(HDFS)のストレージパス、ファイル形式、および構成済みデータテーブルの区切り文字が含まれます。その後、プラグインは HDFS ファイルからテーブルデータを読み取ります。

  • Hive JDBC を使用してデータを読み取る(条件付きフィルタリング対応):Hive Reader プラグインは Java Database Connectivity(JDBC)クライアントを介して HiveServer2 サービスに接続し、データを読み取ります。この方法では、WHERE 句によるデータフィルタリングをサポートしており、SQL を直接使用してデータを読み取ります。

説明

HDFS 方式の方が効率的です。JDBC 方式では MapReduce プログラムが生成されるため、同期効率が低下します。なお、HDFS 方式ではデータフィルタリングやビューからのデータ読み取りはサポートされません。用途に応じて同期方法を選択してください。

テーブル

同期対象の Hive テーブルを選択します。Hive データソースの開発環境および本番環境で、テーブルのスキーマが同一であることを確認してください。

説明

ここには、Hive データソースの開発環境から取得したテーブル一覧およびテーブルスキーマが表示されます。開発環境と本番環境のテーブル定義が異なる場合、開発環境ではタスクの構成が正しく行われても、本番環境へ提出後に失敗する可能性があります。「テーブルが見つかりません」または「カラムが見つかりません」といったエラーが発生する場合があります。

Parquet スキーマ

Hive テーブルが Parquet 形式で保存されている場合は、対応する Parquet スキーマを構成します。

MaxCompute 宛先の構成

本ドキュメントでは、単一の Hive テーブルを MaxCompute にオフラインモードで同期する方法について説明します。データの宛先はテーブルです。主な構成の注意点を以下に示します。

説明

以下の表に記載のないパラメーターについては、デフォルト設定のまま使用してください。

構成項目

構成の注意点

Tunnel リソースグループ

これは MaxCompute のデータ転送に使用される Tunnel クォータです。デフォルトでは「パブリックトランスポートリソース」が選択されており、これは MaxCompute の無料クォータです。支払い遅延または有効期限切れにより専用 Tunnel クォータが利用不可となった場合、タスクは実行時に自動的にパブリックトランスポートリソースに切り替わります。

テーブル

同期対象の MaxCompute テーブルを選択します。標準の DataWorks ワークスペースを使用している場合、開発環境および本番環境の両方に、同じ名前およびスキーマを持つ MaxCompute テーブルが存在することを確認してください。

また、ターゲットテーブルスキーマをワンクリックで生成 をクリックすると、システムがデータ受信用のテーブルを自動的に作成します。その後、テーブル作成文を手動で調整できます。

説明

条件:

  • 宛先 MaxCompute テーブルが開発環境に存在しない場合、オフライン同期ノードの構成時に宛先テーブルのドロップダウンリストにそのテーブルが表示されません。

  • 宛先 MaxCompute テーブルが本番環境に存在しない場合、タスクを提出・公開後にスケジュール実行時に同期タスクが失敗します。これは、宛先テーブルが見つからないためです。

  • 開発環境と本番環境のテーブルスキーマが不一致の場合、スケジュール実行時の実際のカラムマッピングが、オフライン同期ノードで構成したマッピングと異なる可能性があります。これにより、誤ったデータが書き込まれるおそれがあります。

パーティション情報

テーブルがパーティションテーブルである場合、パーティションキー列の値を入力します。

  • 値には静的な値(例:ds=20220101)を指定できます。

  • 値にはスケジューリングシステムパラメーター(例:ds=${bizdate})を指定できます。このシステムパラメーターは、タスク実行時にその実際の値に自動的に置き換えられます。

書き込みモード

宛先テーブルへの書き込み時に、既存のデータをクリアするか、保持するかを選択します。

3. タスクの構成と検証

  • フィールドマッピング:ほとんどの場合、同名フィールドの自動マッピング または 同一行のフィールドマッピング で十分です。ソースと宛先のフィールドの順序または名称が異なる場合は、マッピングを手動で調整できます。

  • チャネル制御:ダーティデータの品質保証のため、ダーティデータレコードの処理ポリシー を「拒否」に設定します。その他のパラメーターについては、デフォルト設定のまま使用してください。

4. テストの構成と実行

  1. オフライン同期ノードのエディター画面右側で、Run Configuration をクリックします。テスト実行用の リソースグループ および スクリプトパラメーター を設定し、上部ツールバーの 実行 をクリックして、同期タスクが正常に実行されるかをテストします。

  2. 左側のナビゲーションウィンドウで image をクリックし、次に [個人ディレクトリ] の右側にある image アイコンをクリックして、.sql 拡張子のファイルを作成できます。その後、次の SQL 文を実行して宛先テーブルのデータをクエリし、データが期待どおりであるかを確認できます。

    説明
    SELECT * FROM <MaxCompute_destination_table_name> WHERE pt=<specified_partition> LIMIT 20;

5. スケジュールの構成とタスクの公開

オフライン同期ノードの右側で、スケジュール をクリックします。定期実行のスケジュール構成 パラメーターを設定し、上部ツールバーの 公開 をクリックします。表示されるパネルで、画面上の指示に従って タスクの公開 を実行します。