本トピックでは、DataWorks のオフライン同期タスクを構成して、単一の MaxCompute テーブルから ApsaraDB for ClickHouse テーブルへデータを書き込む方法について説明します。データソースの構成、ネットワーク接続、およびタスク設定についても解説します。
背景情報
ApsaraDB for ClickHouse は、オンライン分析処理 (OLAP) を目的としたカラムナデータベースサービスです。Data Integration を使用すると、ApsaraDB for ClickHouse から他の宛先へのデータ同期、および他のデータソースからの ApsaraDB for ClickHouse へのデータ同期が可能です。本トピックでは、単一の MaxCompute テーブルから ApsaraDB for ClickHouse へのデータ同期を行うオフライン同期タスクの構成方法を紹介します。
制限事項
単一テーブルのオフライン同期は、Alibaba Cloud 上の ApsaraDB for ClickHouse インスタンスでのみ利用できます。
前提条件
Serverless リソースグループまたはデータ統合用の排他的リソースグループを購入します。
MaxCompute データソースおよび ApsaraDB for ClickHouse データソースを作成済みである必要があります。詳細については、「データソースの構成」をご参照ください。
リソースグループとデータソース間のネットワーク接続が確立済みである必要があります。詳細については、「ネットワーク接続ソリューションの概要」をご参照ください。
操作手順
本トピックでは、Data Studio (新) を使用したオフライン同期タスクの構成方法を紹介します。
ステップ 1:バッチ同期ノードの作成
DataWorks コンソールの[ワークスペース]ページに移動します。トップナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[操作]列でを選択します。
左側のナビゲーションウィンドウで
をクリックし、
Project Directory の横にある [アイコン] をクリックし、 を選択し、ノードの [名前] を入力して [確認] をクリックします。
ステップ 2:ネットワークおよびリソース設定の構成
ネットワークおよびリソース設定 ステップで、同期タスクの データソース、リソースグループ、データ送信先 をそれぞれ選択します。また、このタスクの計算ユニット (CU) 単位での タスクリソース使用量 を指定することもできます。
データソース には、追加済みの
MaxComputeデータソースを選択します。[データ宛先] には、追加した
ApsaraDB for ClickHouseデータソースを選択します。リソースグループ には、
MaxComputeおよびApsaraDB for ClickHouseの両方のデータソースに接続可能なリソースグループを選択します。また、タスクリソースの CU 使用量 を指定することもできます。
データソース および データ送信先 の各セクションで、接続性のテスト をクリックします。

両方の接続性テストが成功した後、次へ をクリックします。
ステップ 3:ソースおよび送信先の構成
ソースパラメーター (MaxCompute)
以下の表は、MaxCompute データソースの構成に必要な主なパラメーターを示しています。

パラメーター | 説明 |
データソース | 前ステップで選択した MaxCompute データソースです。Standard モードの DataWorks ワークスペースを使用している場合、開発環境および本番環境のプロジェクト名が表示されます。 |
Tunnel リソースグループ | 本チュートリアルでは、デフォルトで パブリック転送リソース を使用します。また、専用 Tunnel クォータ を保有している場合は、ドロップダウンリストから選択できます。 |
テーブル | ソースとなる MaxCompute テーブルを選択します。Standard モードの DataWorks ワークスペースを使用している場合、開発環境および本番環境の両方の MaxCompute 環境に、同一の名前およびテーブルスキーマを持つテーブルが存在することを確認してください。 説明 注:
|
フィルター方法 | パーティションフィルター または データフィルター を使用してソースデータをフィルターできます。
|
パーティション | フィルター方法 を パーティションフィルター に設定した場合、このパラメーターは必須です。パーティション列の値を指定できます。
|
パーティションが存在しない場合の動作 | パーティションが存在しない場合の処理方法を指定します。有効な値は以下のとおりです。
|
送信先パラメーター (ApsaraDB for ClickHouse)
以下の表は、ApsaraDB for ClickHouse データ送信先の構成に必要な主なパラメーターを示しています。

パラメーター | 説明 |
データソース | 前ステップで選択した ApsaraDB for ClickHouse データソースです。 |
テーブル | 送信先となる ApsaraDB for ClickHouse テーブルを選択します。データ同期に使用するテーブルは、開発環境および本番環境の両方で同一のテーブルスキーマを持つことを推奨します。 説明 テーブル一覧には、ApsaraDB for ClickHouse データソースの開発環境のテーブルが表示されます。開発環境と本番環境のテーブル定義が異なる場合、開発環境ではタスクの構成が正しく行われても、本番環境ではテーブルまたは列が不足しているためにタスクが失敗する可能性があります。 |
プライマリキー/ユニークキーの競合処理 |
|
インポート前ステートメント | データ同期タスクの実行前および実行後に SQL ステートメントを実行できます。たとえば、タスク実行前に日次パーティションのデータをクリアして、空であることを保証できます。 |
インポート後ステートメント | |
バッチ挿入サイズ(バイト) | Data Integration は、ApsaraDB for ClickHouse へデータをバッチ単位で書き込みます。これらのパラメーターは、各バッチの最大バイト数および最大レコード数を定義します。いずれかの制限に達した時点で書き込みがトリガーされます。 バッチ挿入サイズ(バイト) の推奨値は 16777216(16 MB)です。バッチ挿入サイズ(レコード数) は、単一レコードのサイズに基づいて大きな値を設定することを推奨します。これにより、バッチ書き込みは主にバイト数制限によってトリガーされるようになります。 たとえば、単一レコードが 1 KB の場合、バッチ挿入サイズ(バイト) を 16777216(16 MB)に、バッチ挿入サイズ(レコード数) を 20000(16 MB ÷ 1 KB = 16384 より大きい値)に設定します。この場合、バッチサイズが 16 MB に達した時点で書き込みがトリガーされます。 |
バッチ挿入サイズ(レコード数) | |
ClickHouse でのバッチ書き込み例外発生時 | ApsaraDB for ClickHouse へのバッチ書き込みが失敗した場合のエラー処理戦略を指定します。有効な値は以下のとおりです。
|
ステップ 4:フィールドマッピングの構成
データソースおよび送信先を選択した後、ソース列と送信先列をマッピングします。名前によるマッピング、行によるマッピング、マッピング解除、または 自動レイアウト を選択できます。
ステップ 5:チャネル制御の構成
オフライン同期タスクに対して、ジョブ同時実行数 および ダーティデータポリシー を構成できます。本チュートリアルでは、ダーティデータポリシー を ダーティデータを許容しない に設定し、その他のパラメーターはデフォルト値のままとします。詳細については、「コードレス UI によるタスクの構成」をご参照ください。
ステップ 6:タスクのデバッグおよび実行
バッチ同期ノードの構成ページ右側で、Run Configuration をクリックし、デバッグ用の リソースグループ および スクリプトパラメーター を設定した後、上部ツールバーの 実行 をクリックしてタスクをテストします。
左側のナビゲーションウィンドウで、
をクリックします。
My Directory の横にある[アイコン] をクリックし、.sql拡張子のファイルを作成し、次の SQL 文を実行して宛先テーブルのデータを検証します。説明この方法でクエリを実行するには、送信先の ApsaraDB for ClickHouse インスタンスを DataWorks のコンピュートエンジンとしてバインド する必要があります。
.sqlファイルの編集ページで、右側の Run Configuration をクリックして、データソースの タイプ、コンピュートエンジン、および リソースグループ を指定します。その後、上部ツールバーの 実行 をクリックします。
SELECT * FROM <your_clickhouse_destination_table_name> LIMIT 20;
ステップ 7:スケジュール設定および公開
バッチ同期タスクの構成ページ右側で、スケジュール設定 をクリックし、必要な スケジュールパラメーター を構成した後、上部ツールバーの 公開 をクリックします。画面の指示に従ってタスクを公開します。
付録:メモリパラメーターの調整
同時実行数を増加させても同期スループットが大幅に向上しない場合、タスクのメモリパラメーターを手動で調整します。
バッチ同期タスクページの上部ツールバーで、スクリプトモード をクリックして、ウィザードモードから切り替えます。

JSON スクリプトの
settingセクションに、jvmOptionパラメーターを追加します。パラメーターの形式は-Xms${heapMem} -Xmx${heapMem} -Xmn${newMem}です。
ウィザードモードでは、${heapMem} の値は、次の数式でシステムが算出します:768 MB + (ジョブ同時実行数 - 1) × 256 MB。スクリプトモードでは、${heapMem} の値をより大きく設定することを推奨し、${newMem} は ${heapMem} の値の約 1/3 に設定することを推奨します。たとえば、ジョブ同時実行数が 8 の場合、ウィザードモードで算出されるデフォルトの ${heapMem} 値は 2560 MB です。スクリプトモードでは、より大きな値(例: jvmOption を -Xms3072m -Xmx3072m -Xmn1024m に設定)を指定できます。