4.3.6. データベーススキーマの進化


Debezium は、時間の経過とともにスキーマの変更をキャプチャーできます。CDC が SQL Server に実装される方法により、スキーマの更新時にコネクターがデータ変更イベントの生成を継続するには、データベース Operator と連携して作業する必要があります。

前述のように、Debezium は SQL Server の変更データキャプチャー機能を使用します。これは、SQL Server がソーステーブルで実行されるすべての変更が含まれるキャプチャーテーブルを作成することを意味します。ただし、キャプチャーテーブルは静的であるため、ソーステーブル構造が変更された場合に更新する必要があります。この更新はコネクター自体によって実行されませんが、昇格された権限を持つ Operator によって実行する必要があります。

通常、スキーマの変更を実行する方法は 2 つあります。

  • Cold: これは Debezium が停止したときに実行されます。
  • hot - Debezium の実行中に実行されます

どちらのアプローチも、それぞれ長所と短所があります。

警告

いずれの場合も、同じソーステーブルで新しいスキーマが更新される前に、手順を完全に実行することが重要です。そのため、手順が一度だけ実行されるように、すべての DDL を 1 つのバッチで実行することが推奨されます。

注記

CDC がソーステーブルに対して有効になっている場合、スキーマの変更がすべてサポートされるわけではありません。このような例外の 1 つが列の名前を変更したり、そのタイプを変更したりすることです。SQL Server では操作を実行できません。

注記

SQL Server の CDC メカニズム自体では必要ありませんが、列を NULL から NOT NULL に変更する場合やその逆の場合、新しいキャプチャーインスタンスを作成する必要があります。これは、SQL Server コネクターが変更された情報を選択できるようにするために必要です。それ以外の場合は、出力される変更イベントには、元の値に一致するように対応するフィールド(true または false)の オプション の値が設定されます。

4.3.6.1. コールドスキーマの更新

これは最も安全な手順ですが、高可用性要件のあるアプリケーションでは実行できない可能性があります。オペレーターは、以下のステップに従う必要があります。

  1. データベースレコードを生成するアプリケーションを一時停止します。
  2. Debezium がストリーミングされていないすべての変更をストリーミングするのを待機します。
  3. コネクターを停止する
  4. ソーステーブルスキーマにすべての変更を適用します。
  5. パラメーター @capture_instanceの一意の値で sys.sp_cdc_enable_table の手順を使用して、更新ソーステーブルの新しいキャプチャーテーブルを作成します。
  6. アプリケーションの再開
  7. コネクターの起動
  8. Debezium が新しいキャプチャーテーブルからストリーミングを開始する場合、パラメーター @capture_instance を古いキャプチャーインスタンス名に設定した sys.sp_cdc_disable_table ストアドプロシージャーを使用すると、古いキャプチャーテーブルからストリーミングを削除できます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.