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

DataWorks:OSS から MaxCompute への単一テーブルのオフライン同期

最終更新日:Nov 28, 2025

この Topic では、単一の Object Storage Service (OSS) テーブルから MaxCompute テーブルへのオフライン同期を例に、データソースの設定、ネットワーク接続、同期タスクの設定に関するベストプラクティスについて説明します。

背景情報

Alibaba Cloud Object Storage Service (OSS) は、大容量、高セキュリティ、低コスト、高信頼性を提供するクラウドストレージサービスです。99.9999999999% (トゥエルブナイン) のデータ耐久性と 99.995% のデータ可用性を保証します。OSS は、ストレージコストを最適化するために複数のストレージクラスを提供します。Data Integration を使用すると、OSS から他の宛先にデータを同期したり、他のソースから OSS にデータを同期したりできます。この Topic では、OSS から MaxCompute へのオフライン同期を例に、プロセス全体を説明します。

OSS バケット情報の取得

OSS コンソールに移動します。バケットリストで、データ同期に使用する OSS バケットを見つけます。バケット情報ページの概要セクションから、インターネット経由のアクセス と VPC 経由の ECS からのアクセス (内部ネットワーク) を取得します。さまざまなシナリオに応じて、異なるエンドポイントを選択できます。

  • パブリックエンドポイントは、インターネット経由でのアクセスを提供します。パブリックエンドポイントを介した OSS へのインバウンドトラフィック (書き込み) は無料ですが、アウトバウンドトラフィック (読み取り) は課金されます。OSS の料金の詳細については、「課金項目」をご参照ください。

  • 内部エンドポイントは、同じリージョン内のプロダクト間で Alibaba Cloud 内部ネットワーク経由のアクセスを提供します。たとえば、Data Integration リソースグループを使用して、同じリージョン内の OSS サービスにアクセスできます。内部ネットワーク経由のインバウンドおよびアウトバウンドトラフィックはどちらも無料です。Data Integration リソースグループと同じリージョンにある OSS バケットからデータを読み取るか、または書き込む場合は、内部エンドポイントを設定します。それ以外の場合は、パブリックエンドポイントを設定します。

  • リージョンとエンドポイントのマッピングについては、「リージョンとエンドポイント」をご参照ください。

前提条件

制限事項

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

操作手順

説明

この Topic では、Data Studio (新規) インターフェイスを例に、オフライン同期タスクの設定方法を説明します。

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

ノードを作成し、コードレス UI を使用する一般的な手順については、「コードレス UI の設定」ガイドをご参照ください。

2. データソースと宛先の設定

データソース (OSS) の設定

この例では、データソースは OSS ファイルです。次の表に、主要な設定項目を示します。

設定項目

設定の詳細

テキストタイプ

同期するファイルのタイプを選択します。コードレス UI は、csvtextorcparquet 形式のファイルの読み取りをサポートしています。

ファイルパス

同期するファイルのパスを入力します。

  • 単一の OSS オブジェクトを指定する場合、OSS Reader は単一のスレッドでのみデータを抽出できます。

  • 複数の OSS オブジェクトを指定する場合、OSS Reader は複数のスレッドを使用してデータを抽出できます。必要に応じて同時実行スレッド数を設定できます。

  • ワイルドカード文字を指定すると、OSS Reader は複数のオブジェクト情報を走査しようとします。たとえば、パスを abc*[0-9] に設定すると、abc0abc1abc2abc3 などに一致します。パスを abc?.txt に設定すると、abc で始まり、.txt で終わり、中間に任意の 1 文字を持つファイルに一致します。

列区切り文字

設定ファイル内の列区切り文字を指定します。

エンコーディング

ソースファイルの読み取りに使用するエンコード形式を設定します。

Null 値

  • 「処理しない」を選択した場合、ソースから読み取られた値は変更されません。

  • 「可視文字」を選択した場合は、Null 値を表す文字列を入力します。空のままにすると、空文字列を表します。

  • 「不可視文字」を選択した場合は、\u001b\u007c などの Unicode コード、または \t などのエスケープ文字を入力します。空にすることはできません。

圧縮形式

ソースファイルの圧縮形式です。サポートされている形式は、GzipBzip2Zip、および非圧縮です。

ヘッダーをスキップ

CSV 形式のファイルには、タイトルとして機能するヘッダー行が含まれている場合があります。これをスキップするかどうかを選択できます。デフォルトではスキップされません。

説明

圧縮ファイルではヘッダーのスキップはサポートされていません。

テーブルデータ構造

データソースのパラメーターを設定した後、[テーブルスキーマの確認] をクリックして、データ形式が期待どおりかを確認します。

データ宛先 (MaxCompute) の設定

この例では、データ宛先は MaxCompute テーブルです。次の表に、主要な設定項目を示します。

説明

次の表に記載されていないパラメーターについては、デフォルト値を使用できます。

設定項目

設定の詳細

トンネルリソースグループ

MaxCompute Data Transmission Service のリソースであるトンネルクォータです。デフォルトの選択は「パブリック転送リソース」で、これは MaxCompute の無料クォータです。支払い遅延や有効期限切れにより専用のトンネルクォータが利用できなくなった場合、実行中のタスクは自動的に「パブリック転送リソース」に切り替わります。

テーブル

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

また、[宛先テーブルスキーマの生成] をクリックすることもできます。システムはデータを受け取るためのテーブルを自動的に作成します。テーブル作成ステートメントは手動で調整できます。

説明

次の場合:

  • 開発環境に MaxCompute テーブルが存在しない場合、オフライン同期ノードを設定する際に宛先テーブルのドロップダウンリストで見つけることができません。

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

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

パーティション

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

  • 値は ds=20220101 のような静的な値にすることができます。

  • 値は ds=${bizdate} のようなスケジューリングシステムパラメーターにすることができます。システムパラメーターは、タスク実行時にその値に自動的に置換されます。

書き込みモード

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

3. フィールドマッピングの設定

データソースと宛先を選択した後、ソースと宛先の間のフィールドマッピングを設定する必要があります。[同名のフィールドをマッピング][同じ行のフィールドをマッピング][マッピングをクリア]、または [マッピングを手動で編集] をクリックできます。

4. チャネル制御の設定

オフライン同期タスクは、[最大期待同時実行数][ダーティデータレコードのポリシー] などの設定をサポートしています。この例では、[ダーティデータレコードのポリシー][ダーティデータを許容しない] に設定され、その他の設定はデフォルト値を使用します。詳細については、「コードレス UI の設定」をご参照ください。

5. デバッグタスクの設定と実行

  1. オフライン同期ノードの編集ページの右側にある [デバッグ設定] をクリックします。デバッグ実行のための [リソースグループ][スクリプトパラメーター] を設定します。次に、上部のツールバーで [実行] をクリックして、同期チャネルが正常に実行されるかテストします。

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

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

6. スケジューリングの設定とタスクの公開

オフライン同期タスクの右側にある [スケジューリング] をクリックします。定期実行のためのスケジューリングパラメーターを設定します。次に、上部のツールバーで [公開] をクリックして公開パネルを開きます。画面の指示に従ってタスクを公開します。