CDCスキーマ自動追従

Prev Next

概要

スキーマ自動追従とは、データソース側のスキーマ変更を、転送先にも自動追従させる機能です。
転送元のカラムやテーブル追加・変更・削除を転送先で手動設定する運用負荷を減らせるとともに、データの整合性担保も容易になります。

設定できる項目

スキーマ変更通知設定

データソースのスキーマ変更を検知し、Slackやメールで通知するよう設定できます。
CDC転送設定概要にて設定が可能です。

追加されたテーブル・カラムの追従設定

転送先に自動追従させるスキーマ変更の対象を設定できます。

バックフィル設定

カラム追加などのテーブル全体の再同期が必要なスキーマ変更を追従させる場合に、全件再転送(バックフィル)を行うかを設定できます。

機能詳細

追加されたテーブル・カラムの追従設定

自動追従する対象は以下の3つから選択が可能で、追従したい差分にあわせて設定ができます。

  • テーブル・カラムを自動同期
  • カラムのみを自動同期
  • 自動同期しない
テーブル・カラムの削除およびカラムの型変更について

本設定に関わらず、テーブル・カラムの削除とカラムの型変更はTROCCOの自動変更の対象となります。

なお、テーブル・カラムの削除の場合は、転送先のテーブル・カラムは削除されず、対象データの転送停止のみ行われます。
転送先のテーブル・カラムの削除は手動で行う必要があります。

テーブル・カラムを自動同期

テーブルとカラムの追加を自動同期します。
転送元のカラム・テーブルの変更をすべて自動で転送先に反映したい場合に利用します。

新規テーブル追加時のプライマリーキー

自動追従の対象となる新規テーブルは、プライマリーキーを持つテーブルのみです。
プライマリーキーがないテーブルは自動追従の対象から除外されます。

カラムのみを自動同期

カラムの追加のみを自動同期します。
テーブルの追加が発生した場合は、変更の転送先への反映を促すダイアログが表示されます。

特定のテーブルのみを自動追従の対象とし、テーブルの追加は承認制としたい場合に利用します。

自動同期しない

テーブル・カラムの追加検知のみ行い、転送先への反映は承認の上で実施するモードです。
セキュリティ観点で意図しないカラムが転送されていないかチェックしたいケースなど、転送先のスキーマ変更を慎重に行いたい場合に利用します。

既存テーブルからプライマリーキーを削除した場合

既存のテーブルからプライマリーキーを削除し、テーブルがプライマリーキーを持たなくなった場合、テーブルは自動追従の対象から除外されます。

カラム名・テーブル名の変更について

カラム名やテーブル名の変更は、カラムやテーブルの削除+追加として検知されます。
また、カラム名を変更する場合は、整合性を担保するためにバックフィルを有効にすることを推奨します。

バックフィル

CDCスキーマ自動追従では、データの整合性を保つために、特定の変更があった場合にテーブルのバックフィル(全件再転送)を実行できます。
バックフィルの対象となるスキーマ変更は以下のとおりです。

  • カラムの追加
  • カラムの型の変更
  • テーブルの追加
バックフィルが無効の場合の転送結果

転送設定でバックフィルを無効に設定した場合、転送先とのテーブル再同期は実行されず、不整合が発生する可能性があります。

  • カラム追加時:
    • 転送先がS3 Icebergの場合:新しいカラムは転送先に追加されるが、既存データは反映されずNULLとなる
    • 転送先がBigQueryの場合:転送先のスキーマが更新されないため転送エラーとなる
  • カラム型変更時:データ型の不整合により転送エラーが発生する可能性がある
  • テーブル追加時:転送先にテーブルが追加されない
バックフィル実行時のS3 Icebergにおけるスナップショット履歴

通常の初回転送(全件転送)と同様、バックフィルが実行された場合は既存の対象テーブルは削除・再生成されます。
そのため、S3 Icebergでは、テーブルのスナップショット履歴も削除されます。

バックフィルが実行されるテーブルの範囲

バックフィルによる全件再転送では、テーブルごとに全件転送が行われます。

操作例

「追加されたテーブル・カラムの追従設定」を「カラムのみを自動追従」とした場合

転送設定STEP1の詳細設定にて、「追加されたテーブル・カラムの追従設定」を「カラムのみを自動追従」、バックフィル設定を「有効」にします。

転送元にカラムを追加し転送を実行すると、転送先のスキーマも自動追従し、カラムが追加されます。CDC転送設定の変更履歴にて、スキーマ変更の詳細が確認できます。

「追加されたテーブル・カラムの追従設定」を「自動同期しない」とした場合

「追加されたテーブル・カラムの追従設定」を「自動同期しない」とした場合は、スキーマ変更検知時に追従の承認を促す通知が表示されます。

「詳細を確認」をクリックすると、スキーマ変更の確認ができます。

転送先に反映したいスキーマ変更を選択して、「更新する」をクリックします。

スキーマ変更保存時にバックフィルを実行するかを選択し、「更新する」をクリックして、転送先にスキーマ変更を反映します。