Skip to main content
ClickPipes for Postgres は、ソーステーブルのスキーマ変更を検出し、場合によってはその変更を宛先テーブルへ自動的に反映できます。各 DDL 操作がどのように処理されるかを以下に示します。 カラムの追加は、バッチ同期の最後に反映される点に注意してください。これは、同期間隔または pull batch size のしきい値に達した後に発生する可能性があります。同期の制御について詳しくは、こちらを参照してください。

追加したカラムのデフォルト値

追加したカラムについて、ClickPipes は値を安全に ClickHouse に変換できる場合にのみデフォルト値を反映します。デフォルト値が反映されると、ClickHouse は新しいカラムが追加される前のデータパーツを読み取る際にその値を使用します。その結果、ClickHouse にすでに存在する行には、PostgreSQL で ADD COLUMN より前から存在する行に使用される値と同じ値が表示されます。テーブル全体の更新は必要ありません。 PostgreSQL では、ClickPipes はカラムの現在のデフォルト式ではなく、既存の行に対して PostgreSQL が保存した値を読み取ります。デフォルト値が式の場合、これは重要です。now() のような非揮発性の式はカラム追加時に PostgreSQL によって評価され、ClickPipes は式そのものではなく、その評価結果を反映します。後から実行する SET DEFAULTDROP DEFAULT 操作は既存の行に使用されるデフォルト値を変更せず、ClickHouse にも反映されません。 次の値が反映されます。
  • ブール値および有限の数値。
  • varcharchar、enum、UUID、JSON/JSONB、hstore、ネットワークアドレス、Date を含むテキスト値。
  • タイムスタンプ。タイムゾーン付きのタイムスタンプは UTC に正規化されます。
NULL、非有限の数値、bytea、配列、インターバル、時刻のみの値、ジオメトリ型など、ClickHouse に安全に移植できない表現のデフォルト値は省略されます。カラム自体は追加されますが、ClickHouse はカラム追加前のパーツに対して通常の型のデフォルト値を使用します。既存の行にソース側のデフォルト値を含める必要がある場合は、テーブル全体の更新が必要です。
最終更新日 2026年8月14日