DataWorks Data Integration は、リアルタイムで単一テーブルの同期タスクを提供し、ソース側でのデータ変更(挿入、削除、更新)をキャプチャして、低遅延かつ高スループットで送信先に適用します。本トピックでは、LogHub (SLS) から MaxCompute へのリアルタイム同期タスクの構成方法について説明します。
前提条件
-
データソースの準備
-
ソースおよび送信先のデータソースが作成済みである必要があります。詳細については、「データソース管理」をご参照ください。
-
データソースがリアルタイム同期をサポートしていることを確認してください。詳細については、「サポートされるデータソースと同期ソリューション」をご参照ください。
-
-
リソースグループ: Serverless リソースグループ を購入・設定済みである必要があります。
-
ネットワーク接続性: ネットワーク接続性 がリソースグループとデータソース間で設定済みである必要があります。
ステップ 1: 同期タスクの作成
-
DataWorks コンソール にログインします。対象のリージョンで、左側のナビゲーションウィンドウから をクリックします。ドロップダウンリストからワークスペースを選択し、移動 Data Integration をクリックします。
-
左側のナビゲーションウィンドウで、同期タスク をクリックします。ページ上部で、同期タスクの作成 をクリックし、タスクパラメーターを構成します。本例では、LogHub (SLS) のリアルタイムデータを MaxCompute に書き込みます。
-
データソースタイプ:
LogHub。 -
データ宛先タイプ:
MaxCompute。 -
詳細種別:
Single-table real-time。 -
同期ステップ:
-
スキーマ移行: ソーススキーマに合わせて、テーブル、フィールド、データの型などのデータベースオブジェクトを送信先に自動作成します。このステップにはデータは含まれません。
-
増分同期: ソース側の新規データ、変更済みデータ、削除データなどのデータ変更を継続的にキャプチャし、送信先に同期します。
-
-
サポートされるデータソースと同期ソリューションの詳細については、「サポートされるデータソースと同期ソリューション」をご参照ください。
ステップ 2: データソースと実行リソースの構成
-
ソースデータソース で、追加済みの
LogHubデータソースを選択します。宛先データソース で、追加済みのMaxComputeデータソースを選択します。 -
実行中のリソース セクションで、同期タスク用の リソースグループ を選択し、タスクに リソースグループ CUs を割り当てます。リソース使用量を正確に制御し、無駄を防ぐため、フル同期と増分同期それぞれに個別に CU を設定できます。同期タスクがメモリ不足 (OOM) エラーにより失敗した場合は、リソースグループの CU 割り当てを増やしてください。
説明CU はリソースグループの課金単位であり、1 CU は約 1 vCPU および 4 GB のメモリに相当します。初期構成では必要なスループットを見積もり、モニタリングデータに基づいて値を調整することを推奨します。
-
ソースおよび送信先の両方のデータソースで 接続性チェック が成功していることを確認します。
ステップ 3: 同期ソリューションの構成
1. データソースの構成
データソース セクションで、LogHub (SLS) データソースを構成します。
-
Source Information セクションで、同期する Logstore を選択します。
-
Logstore: ドロップダウンリストから既存の Logstore を選択します。
-
-
データサンプリング をクリックして、LogHub データをサンプリングおよびプレビューします。
表示されるダイアログボックスで、開始時間 および サンプリング数 を設定し、収集開始 をクリックします。サンプリング結果は、後続のデータ処理ノードのプレビュー入力として使用できます。
-
出力フィールド設定 セクションで、システムが Logstore のフィールド一覧を自動ロードします。ここで データ型 を変更したり、フィールドを 削除 したり、出力フィールドの手動追加 できます。
SLS に存在しないフィールドを構成した場合、その値は NULL として送信先に書き込まれます。
2. データ処理
データ処理 スイッチをオンにします。5 種類のデータ処理方法が提供されています:Data Masking、String Replace、Data Filtering、JSON Parsing、および Field Editing and Assignment。これらの方法を任意の順序で配置できます。タスクは指定された順序でデータを処理します。
データ処理ノードを構成したら、右上隅の データ出力プレビュー ボタンをクリックできます。
-
入力データ下の表で、前のステップの データサンプリング 結果を確認できます。アップストリーム出力の再取得 をクリックして結果を更新できます。
-
上流ノードから出力が生成されない場合は、データの手動作成 を使用して、上流の出力をシミュレートできます。
-
プレビュー をクリックして、上流ノードからの処理済み出力を確認します。
-
このプレビューは最終的な出力を示します。
データ処理プレビュー画面では、Input Data セクションに
_source_、_time_、_topic_、check_rowsなどのフィールドを含む生ログが表示されます。Preview Result セクションには、client_ipやdbなどの新たに解析されたフィールドを含む処理済みデータが表示されます。また、ダーティデータレコードが 0 件であることが示されます。
データ出力プレビュー機能は、LogHub (SLS) ソースの データサンプリング 機能に依存しています。データ出力をプレビューする前に、まず LogHub (SLS) ソースからデータをサンプリングする必要があります。
3. データ送信先の構成
-
データ宛先 セクションで、Tunnel リソースグループを選択します。デフォルトでは、
Public transport resources(MaxCompute の無料クォータ)が選択されます。 -
データを New table または Existing table に書き込むかどうかを選択します。
-
新しいテーブルにデータを書き込む場合は、ドロップダウンリストから 作成 を選択します。デフォルトでは、ソースと同じスキーマを持つテーブルが作成されます。送信先テーブルの名前およびスキーマを手動で変更できます。
-
既存のテーブルを使用する場合は、ドロップダウンリストから送信先テーブルを選択します。
-
-
(オプション)テーブルスキーマを編集します。
テーブル名の横にある編集アイコンをクリックして、テーブルスキーマを編集します。上流ノードの出力に基づいてスキーマを自動生成するには、先祖ノードの出力列に基づいてテーブルスキーマを再生成します をクリックします。自動生成されたスキーマのカラムをプライマリキーとして選択できます。
4. フィールドマッピングの構成
-
システムは、同名マッピング ルールに基づき、ソースカラムを送信先テーブルカラムに自動マッピングします。必要に応じてマッピングを調整できます。1 つのソースカラムを複数の送信先テーブルカラムにマッピングできますが、複数のソースカラムを 1 つの送信先テーブルカラムにマッピングすることはできません。マッピングされていないソースカラムのデータは、送信先テーブルに書き込まれません。
-
(オプション)パーティションを構成します。
-
Automatic Time-based Partitioning: 業務日時フィールド(本例では
_timestamp)に基づいてデータをパーティション分割します。第 1 レベルのパーティションは年、第 2 レベルは月、以下同様です。 -
Dynamic Partitioning By Field Value: ソースフィールドを送信先 MaxCompute テーブルのパーティションフィールドにマッピングします。これにより、ソースフィールドの値に基づいて、行が MaxCompute テーブルの適切なパーティションに書き込まれます。
-
ステップ 4: 詳細設定
同期タスクでは、詳細な制御が可能な高度なパラメーターが提供されています。ほとんどのテストケースではデフォルト値で動作します。カスタマイズするには、次の操作を行います。
-
構成タブの右上隅で、詳細設定 をクリックして、高度なパラメータ 構成ページに移動します。
説明Data Development では、詳細設定はタスク構成ページの右側にあるタブにあります。
-
同期タスクの読み取り側および書き込み側のパラメーターを個別に設定できます。Auto-configure runtime settings を false に設定して、Runtime configuration をカスタマイズします。
-
プロンプトに従ってパラメーター値を変更します。各パラメーター名の後に説明が記載されていますので、詳細についてはそちらをご参照ください。一部のパラメーターの推奨設定については、「リアルタイム同期の高度なパラメーター」をご参照ください。
これらのパラメーターは、目的と潜在的な影響を十分に理解した場合にのみ変更してください。予期しないエラーやデータ品質の問題を回避するためです。
ステップ 5: シミュレーションの実行
Data Development の単一テーブルリアルタイム同期タスクでは、ツールバーでシミュレーション実行機能を利用できます。
タスクを構成したら、左下隅の 模擬実行 をクリックしてデバッグします。シミュレーションでは、小規模なデータサンプルに対してタスクを実行し、送信先への書き込みを行わずに結果を表示することで、構成エラー、ランタイム例外、ダーティデータに関する即時のフィードバックを得られます。
-
表示されるダイアログボックスで、サンプリングパラメーター(開始時間 および サンプリング数)を設定します。
-
収集開始 をクリックして、サンプルデータを取得します。
-
プレビュー結果 ボタンをクリックして、タスクのシミュレーション実行を行い、出力を確認します。
シミュレーション実行の出力はプレビュー専用であり、送信先に書き込まれることはありません。
ステップ 6: タスクの公開と実行
-
構成を完了したら、ページ下部の 保存 をクリックします。
-
Data Integration タスクは、実行するために本番環境に公開する必要があります。そのため、新規または編集済みのタスクは有効化のために 発行 する必要があります。タスクを公開する際に 公開後すぐに起動 オプションを選択すると、タスクが自動的に開始されます。それ以外の場合、タスクを公開した後、 ページに移動し、対象タスクの [操作] 列で手動でタスクを開始します。
-
タスク一覧 で、タスクの 名前 / ID をクリックして、実行情報の詳細を確認します。
ステップ 7: アラートルールの構成
タスクを公開して実行中になったら、問題発生時に即座に通知を受け取れるようアラートルールを構成します。Data Integration タスクリストで対象タスクを見つけ、[操作] 列の を選択します。
1. アラートルールの追加
Add Alert ダイアログボックスで、Use Custom Rule または Use Public Alert Rule を選択します。Alert Name および Description を指定します。サポートされる通知方法には、Mail、SMS、Phone、DingTalk、webhook、Lark があります。On-call Schedule から受信者を選択するか、Others を指定できます。
(1)ルールの作成 をクリックして、アラートルールを構成します。
アラーム原因 を設定することで、ビジネスレイテンシー、Failover、タスクステータス、DDL 通知、タスクのリソース利用率 などのメトリックを監視できます。指定されたしきい値に基づいて、CRITICAL または WARNING アラートを設定できます。
-
通知方法を設定した後、詳細パラメータ設定 を使用して通知間隔を制御し、過剰なアラートを防止できます。
-
ビジネスレイテンシー、タスクステータス、または タスクのリソース利用率 をアラート理由として選択した場合、タスクが正常状態に戻った際に受信者に通知する復旧通知を有効化できます。
(2)アラートルールの管理
作成済みのアラートルールについては、スイッチを使用して有効化または無効化できます。また、アラートレベルに基づいて異なる担当者にアラートを送信できます。
2. アラートの確認
タスクリストで目的のタスクを見つけ、 を選択します。その後、[アラートイベント] ページに移動して、過去のアラート情報を確認します。
次のステップ
タスクを開始した後、以下の操作が可能です。
-
同期タスクリストで、タスクの実行ステータスおよび実行サマリーを確認します。
-
タスク名をクリックしてタスク詳細ページに移動し、スキーマ移行 および リアルタイムデータ同期 の詳細を確認します。
-
[操作] 列で、起動 または 停止 をクリックします。また、[More] を選択して、編集 や 表示 などの他の操作を実行できます。
よくある質問
-
リアルタイム同期タスクに関する一般的な問題については、「リアルタイム同期に関するよくある質問」をご参照ください。