この 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 バケットからデータを読み取るか、または書き込む場合は、内部エンドポイントを設定します。それ以外の場合は、パブリックエンドポイントを設定します。
リージョンとエンドポイントのマッピングについては、「リージョンとエンドポイント」をご参照ください。
前提条件
Serverless リソースグループを購入済みであること。
OSS データソースと MaxCompute データソースを作成済みであること。詳細については、「データソースの設定」をご参照ください。
リソースグループとデータソース間のネットワーク接続を確立済みであること。詳細については、「ネットワーク接続ソリューションの概要」をご参照ください。
制限事項
ソースデータを MaxCompute の外部テーブルに同期することはサポートされていません。
操作手順
この Topic では、Data Studio (新規) インターフェイスを例に、オフライン同期タスクの設定方法を説明します。
1. ノードの作成とタスクの設定
ノードを作成し、コードレス UI を使用する一般的な手順については、「コードレス UI の設定」ガイドをご参照ください。
2. データソースと宛先の設定
データソース (OSS) の設定
この例では、データソースは OSS ファイルです。次の表に、主要な設定項目を示します。
設定項目 | 設定の詳細 |
テキストタイプ | 同期するファイルのタイプを選択します。コードレス UI は、 |
ファイルパス | 同期するファイルのパスを入力します。
|
列区切り文字 | 設定ファイル内の列区切り文字を指定します。 |
エンコーディング | ソースファイルの読み取りに使用するエンコード形式を設定します。 |
Null 値 |
|
圧縮形式 | ソースファイルの圧縮形式です。サポートされている形式は、 |
ヘッダーをスキップ | CSV 形式のファイルには、タイトルとして機能するヘッダー行が含まれている場合があります。これをスキップするかどうかを選択できます。デフォルトではスキップされません。 説明 圧縮ファイルではヘッダーのスキップはサポートされていません。 |
テーブルデータ構造 | データソースのパラメーターを設定した後、[テーブルスキーマの確認] をクリックして、データ形式が期待どおりかを確認します。 |
データ宛先 (MaxCompute) の設定
この例では、データ宛先は MaxCompute テーブルです。次の表に、主要な設定項目を示します。
次の表に記載されていないパラメーターについては、デフォルト値を使用できます。
設定項目 | 設定の詳細 |
トンネルリソースグループ | MaxCompute Data Transmission Service のリソースであるトンネルクォータです。デフォルトの選択は「パブリック転送リソース」で、これは MaxCompute の無料クォータです。支払い遅延や有効期限切れにより専用のトンネルクォータが利用できなくなった場合、実行中のタスクは自動的に「パブリック転送リソース」に切り替わります。 |
テーブル | データを同期する MaxCompute テーブルを選択します。標準の DataWorks ワークスペースを使用している場合は、MaxCompute の開発環境と本番環境の両方に、同じ名前とスキーマを持つ MaxCompute テーブルが存在することを確認してください。 また、[宛先テーブルスキーマの生成] をクリックすることもできます。システムはデータを受け取るためのテーブルを自動的に作成します。テーブル作成ステートメントは手動で調整できます。 説明 次の場合:
|
パーティション | テーブルがパーティションテーブルの場合、パーティションキー列の値を入力できます。
|
書き込みモード | 宛先テーブルに書き込む際に、既存のデータをクリアするか、保持するかを選択できます。 |
3. フィールドマッピングの設定
データソースと宛先を選択した後、ソースと宛先の間のフィールドマッピングを設定する必要があります。[同名のフィールドをマッピング]、[同じ行のフィールドをマッピング]、[マッピングをクリア]、または [マッピングを手動で編集] をクリックできます。
4. チャネル制御の設定
オフライン同期タスクは、[最大期待同時実行数] や [ダーティデータレコードのポリシー] などの設定をサポートしています。この例では、[ダーティデータレコードのポリシー] は [ダーティデータを許容しない] に設定され、その他の設定はデフォルト値を使用します。詳細については、「コードレス UI の設定」をご参照ください。
5. デバッグタスクの設定と実行
オフライン同期ノードの編集ページの右側にある [デバッグ設定] をクリックします。デバッグ実行のための [リソースグループ] と [スクリプトパラメーター] を設定します。次に、上部のツールバーで [実行] をクリックして、同期チャネルが正常に実行されるかテストします。
左側のナビゲーションウィンドウで、
アイコンをクリックします。次に、[個人ディレクトリ] の右側にある
アイコンをクリックし、.sql拡張子のファイルを作成します。次の SQL クエリを実行して、宛先テーブルのデータが期待どおりであるかどうかを確認します。説明このクエリメソッドでは、宛先の MaxCompute プロジェクトを DataWorks の計算リソースとしてバインドする必要があります。
.sqlファイルの編集ページで、右側の [デバッグ設定] をクリックします。[タイプ]、[計算リソース]、および [リソースグループ] を指定します。次に、上部のツールバーで [実行] をクリックします。
SELECT * FROM <destination_table_name_in_MaxCompute> WHERE pt=<specified_partition> LIMIT 20;
6. スケジューリングの設定とタスクの公開
オフライン同期タスクの右側にある [スケジューリング] をクリックします。定期実行のためのスケジューリングパラメーターを設定します。次に、上部のツールバーで [公開] をクリックして公開パネルを開きます。画面の指示に従ってタスクを公開します。