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