DataWorks Data Integration は、複雑なネットワーク環境でのデータ同期をサポートしています。2 つの同期モードが利用可能です。定期的なオフラインデータ転送用の バッチ同期 と、継続的な増分レプリケーション用の リアルタイム同期 です。両方とも DataStudio ページで構成します。
同期モードの選択
2 つのモードは、転送頻度と実行あたりのデータ量で異なります。
| バッチ同期 | リアルタイム同期 | |
|---|---|---|
| 転送頻度 | スケジュール済み (定期的) | 継続的 |
| 転送されるデータ | 完全データまたは増分スナップショット | 増分変更のみ |
| 典型的なユースケース | 定期的なレポート作成、データウェアハウジング | 低遅延パイプライン |
| ソースのトポロジー | 単一テーブルから単一テーブル、シャーディングされたデータベースのテーブルから単一テーブル | スター型マルチソースリンク |
| 構成 | コードレス UI またはコードエディタ | 入力/出力構成 |
バッチ同期を使用する場合:
ダウンストリームワークロードが遅延を許容できる場合 (例: 日次または時間単位のリフレッシュ)
特定のパーティションに既存データをバックフィルする必要がある場合
ご利用のソースが、リレーショナルデータベース、非構造化ストレージシステム、ビッグデータストレージシステム、メッセージキューなど、40 種類以上のサポートされているデータソースタイプである場合
リアルタイム同期を使用する場合:
ソースの変更から数秒以内にデータが送信先に到達する必要がある場合
データベース全体を送信先に継続的にレプリケートしたい場合
バッチ同期が理想的ではない場合:
1 分未満のデータの新鮮さが必要な場合
ご利用のソースが、40 種類以上の互換性のあるデータソースタイプをサポートしていない場合
完全同期と増分同期、データベース全体のバッチ同期を含む追加の同期ソリューションについては、「サポートされているデータソースタイプとデータ同期ソリューション」をご参照ください。
前提条件
開始する前に、以下があることを確認してください。
お使いの DataWorks ワークスペースにおける [Development] ロール
RAM (Resource Access Management) ユーザーを追加し、ロールを割り当てるには、「RAM ユーザーをワークスペースにメンバーとして追加し、メンバーにロールを割り当てる」をご参照ください。
バッチ同期
仕組み
バッチ同期は、Reader プラグインを使用してソースからデータを読み取り、Writer プラグインを使用して送信先に書き込みます。バッチ同期ノードを作成する前に、ノード構成中に利用できるようにデータソースを DataWorks に追加します。
各実行は、完全データまたは増分データを送信先テーブルの特定のパーティションに転送します。組み込みのスケジューリングパラメーター $bizdate (デフォルトで組み込み変数 ${bizdate} に割り当てられます) を使用して、スケジュールされた各実行の正しいパーティションをターゲットにします。また、オペレーションセンターのデータバックフィル機能を使用して、バッチ同期ノードの構成に基づいて、既存データを特定のテーブルまたは特定のパーティションに同期することもできます。
バッチ同期ノードの構成
ご利用のデータソースと要件に基づいて、構成方法を選択してください。
| シナリオ | 方法 | 関連ドキュメント |
|---|---|---|
| DataWorks にデータソースが追加されており、コードレス UI をサポートしている | コードレス UI | コードレス UI (2.0) を使用してバッチ同期ノードを構成する |
| DataWorks にデータソースを追加できない | コードエディタ | コードエディタ (2.0) を使用してバッチ同期ノードを構成する |
| コードレス UI をサポートしていないデータソース | コードエディタ | コードエディタ (2.0) を使用してバッチ同期ノードを構成する |
| Reader プラグインまたは Writer プラグインのパラメーターをスクリプトモードでのみ設定できる | コードエディタ | コードエディタ (2.0) を使用してバッチ同期ノードを構成する |
サポートされているデータソース、Reader プラグイン、および Writer プラグインの完全なリストについては、「サポートされているデータソースタイプ、Reader プラグイン、および Writer プラグイン」と「バッチ同期機能の概要」をご参照ください。
リアルタイム同期
リアルタイム同期は、複数のデータソースタイプを組み合わせたスター型同期リンクを使用します。リアルタイム同期ノードの入力と出力を構成して、単一テーブルから別の単一テーブルへの同期、またはデータベース全体から送信先へのすべてのデータのレプリケートを行います。
サポートされているデータソースタイプとセットアップの詳細については、「リアルタイム同期をサポートするデータソースタイプ」と「リアルタイム同期機能の概要」をご参照ください。
スケジューリング依存関係の構成
スケジューリング依存関係は、ワークスペース内の他のノードと比較してノードがいつ実行されるかを制御します。
バッチ同期ノード
祖先ノード: ワークスペースの[ルートノード]またはゼロロードノードを祖先として設定します。これにより、ワークスペースのスケジューリングサイクル内でバッチ同期ノードがトリガーされます。
子孫ノード: DataWorks がバッチ同期ノードとダウンストリーム SQL ノード間の依存関係を自動的に解析できるようにするには、バッチ同期ノードの出力を
Project name.Table name形式で構成します。
リアルタイム同期ノード
リアルタイム同期ノードは継続的に実行され、自動トリガーされたノードと同じ方法で出力を生成しません。ダウンストリームノードについては、テーブルの系統に基づくスケジューリング依存関係はサポートされていません。代わりに、ワークスペースの[ルートノード]またはゼロロードノードを、ダウンストリームノードの直接的な祖先として設定します。
バッチ同期でのスケジューリングパラメーターの使用
DataWorks は、バッチ同期ノード用の組み込み変数 ${bizdate} を提供します。デフォルトでは、スケジューリングパラメーター $bizdate が ${bizdate} の値として割り当てられます。
データ同期におけるスケジューリングパラメーターの使用方法については、「バッチ同期機能の概要」の「データ同期におけるスケジューリングパラメーターの使用に関する説明」セクションをご参照ください。
スケジューリングパラメーターの一般的なユースケースについては、「スケジューリングパラメーターの一般的な使用シナリオ」をご参照ください。