SQL Server レプリケーション ジョブのスキーマを変更する

このページでは、Microsoft SQL Server データベースから BigQuery テーブルにデータを複製するときに Cloud Data Fusion のスキーマを変更する方法について説明します。スキーマの変更後もレプリケーション ジョブが SQL Server ソースからデータを複製し続けるようにする手順は次のとおりです。

スキーマを変更する

  1. インスタンスに移動します:

    1. Google Cloud コンソールで、Cloud Data Fusion のページに移動します。

    2. Cloud Data Fusion ウェブ インターフェースでインスタンスを開くには、[Instances] をクリックしてから、[View instance] をクリックします。

      [インスタンス] に移動

  2. Cloud Data Fusion ウェブ インターフェースで、[レプリケーション] をクリックします。

  3. レプリケーション ジョブを停止します。

  4. NULL 値を指定できる列の追加などのサポートされているスキーマの更新をソーステーブルに適用します。

  5. sys.sp_cdc_enable_table プロシージャを使用して、パラメータ @capture_instance に一意の値を指定して新しいキャプチャ テーブルを作成します。

  6. BigQuery のターゲット テーブルに同じスキーマ変更を適用します。

  7. レプリケーション ジョブを再起動します。

  8. 省略可: ジョブを停止した後に発生した新しい変更のストリーミングが開始されると、sys.sp_cdc_disable_table ストアド プロシージャを使用して古いキャプチャ テーブルを削除できます。パラメータ @capture_instance を古いキャプチャ インスタンス名に設定します。

前の手順で行ったように、スキーマをソーステーブルに適用した後、新しいキャプチャ テーブルを作成する前に、すべての変更は古いスキーマの古いキャプチャでキャプチャされます。列を追加していた場合、その間の変更イベントには、新しい列のデータは含まれません。アプリケーションがこのような移行を処理できない場合は、次の手順に沿って操作します。

  1. データベース レコードを生成するすべてのアプリケーションを停止します。

  2. レプリケーション ジョブが既存のすべてのイベントを処理したことを確認します。

  3. レプリケーション ジョブを停止します。

  4. [NULL 値を指定できる列の追加] などのスキーマ変更をソーステービルに適用します。

  5. sys.sp_cdc_enable_table プロシージャを使用して、パラメータ @capture_instance に一意の値を指定して、新しいキャプチャ テーブルを作成します。

  6. 最初のステップで一時停止したアプリケーションを再開します。

  7. BigQuery のターゲット テーブルに同じスキーマ変更を適用します。

  8. レプリケーション ジョブを再起動します。

  9. 省略可: 前の手順で新しいキャプチャ テーブルを作成した後に発生した新しい変更のストリーミングが開始されると、sys.sp_cdc_disable_table ストアド プロシージャを使用して古いキャプチャ テーブルを削除できます。パラメータ @capture_instance を古いキャプチャ インスタンス名に設定します。

次のステップ