このページでは、Microsoft SQL Server データベースから BigQuery テーブルにデータを複製するときに Cloud Data Fusion のスキーマを変更する方法について説明します。スキーマの変更後もレプリケーション ジョブが SQL Server ソースからデータを複製し続けるようにする手順は次のとおりです。
スキーマを変更する
インスタンスに移動します:
Google Cloud コンソールで、Cloud Data Fusion のページに移動します。
Cloud Data Fusion ウェブ インターフェースでインスタンスを開くには、[Instances] をクリックしてから、[View instance] をクリックします。
Cloud Data Fusion ウェブ インターフェースで、[レプリケーション] をクリックします。
レプリケーション ジョブを停止します。
NULL 値を指定できる列の追加などのサポートされているスキーマの更新をソーステーブルに適用します。
sys.sp_cdc_enable_table
プロシージャを使用して、パラメータ@capture_instance
に一意の値を指定して新しいキャプチャ テーブルを作成します。BigQuery のターゲット テーブルに同じスキーマ変更を適用します。
レプリケーション ジョブを再起動します。
省略可: ジョブを停止した後に発生した新しい変更のストリーミングが開始されると、
sys.sp_cdc_disable_table
ストアド プロシージャを使用して古いキャプチャ テーブルを削除できます。パラメータ@capture_instance
を古いキャプチャ インスタンス名に設定します。
前の手順で行ったように、スキーマをソーステーブルに適用した後、新しいキャプチャ テーブルを作成する前に、すべての変更は古いスキーマの古いキャプチャでキャプチャされます。列を追加していた場合、その間の変更イベントには、新しい列のデータは含まれません。アプリケーションがこのような移行を処理できない場合は、次の手順に沿って操作します。
データベース レコードを生成するすべてのアプリケーションを停止します。
レプリケーション ジョブが既存のすべてのイベントを処理したことを確認します。
レプリケーション ジョブを停止します。
[NULL 値を指定できる列の追加] などのスキーマ変更をソーステービルに適用します。
sys.sp_cdc_enable_table
プロシージャを使用して、パラメータ@capture_instance
に一意の値を指定して、新しいキャプチャ テーブルを作成します。最初のステップで一時停止したアプリケーションを再開します。
BigQuery のターゲット テーブルに同じスキーマ変更を適用します。
レプリケーション ジョブを再起動します。
省略可: 前の手順で新しいキャプチャ テーブルを作成した後に発生した新しい変更のストリーミングが開始されると、
sys.sp_cdc_disable_table
ストアド プロシージャを使用して古いキャプチャ テーブルを削除できます。パラメータ@capture_instance
を古いキャプチャ インスタンス名に設定します。
次のステップ
- レプリケーションの詳細。
- サポートされているスキーマの変更を参照する。
- Replication API を参照する。