メインコンテンツへスキップ
メインコンテンツへスキップ

スキーマ変更の伝播サポート

MySQL 向け ClickPipes は、ソーステーブルでのスキーマ変更を検出し、場合によってはその変更を自動的に宛先テーブルへ伝播できます。各 DDL 操作の扱い方は以下のとおりです。

スキーマ変更の種類動作
新しいカラムの追加 (ALTER TABLE ADD COLUMN ...)自動的に伝播されます。新しいカラムは、スキーマ変更後に複製されたすべての行で値が設定されます
デフォルト値付きの新しいカラムの追加 (ALTER TABLE ADD COLUMN ... DEFAULT ...)自動的に伝播されます。新しいカラムは、スキーマ変更後に複製されたすべての行で値が設定されますが、既存の行については、テーブル全体を再取り込みしない限りデフォルト値は反映されません
既存カラムの削除 (ALTER TABLE DROP COLUMN ...)検出はされますが、伝播はされません。削除されたカラムは、スキーマ変更後に複製されたすべての行で NULL に設定されます
注記

現在、スナップショット中のカラム追加はサポートされていません。推奨される回避策は、計画しているスキーマ変更の前後でスナップショットを実行することです。あるいは、ClickPipe がすでに失敗している場合は、適切な型のカラムを宛先テーブルに手動で追加してください。

MySQL 5.x の制約

8.0.1 より古い MySQL バージョンでは、binlog に完全なカラムメタデータ(binlog_row_metadata=FULL)が含まれていないため、ClickPipes はカラムを位置(序数)で追跡します。これは次のことを意味します。

  • 末尾へのカラム追加ALTER TABLE ADD COLUMN ...)はサポートされています。
  • カラム位置をずらすあらゆる DDL は、序数位置をもはや確実に対応付けできないため、パイプがエラーを発生させます。これには次が含まれます。
    • ALTER TABLE DROP COLUMN ...
    • ALTER TABLE ADD COLUMN ... AFTER ... / FIRST
    • ALTER TABLE MODIFY COLUMN ... AFTER ... / FIRST
    • ALTER TABLE CHANGE COLUMN ... AFTER ... / FIRST

このエラーが発生した場合は、パイプを再同期する必要があります。