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


Debezium は、時間の経過とともにスキーマの変更をキャプチャーできます。方法は SQL Server に実装されるため、スキーマの更新時にコネクターがデータ変更イベントを生成し続けるには、データベースオペレーターと共同作業を行う必要があります。

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

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

  • コールド - これは Debezium が停止したときに実行されます。
  • hot: Debezium が実行中に実行されます。

いずれのアプローチも、短所と短所があります。

警告

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

注記

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

注記

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

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

これは最も安全な手順ですが、高可用性の要件のあるアプリケーションでは実現できない可能性があります。Operator は以下の一連の手順に従う必要があります。

  1. データベースレコードを生成するアプリケーションの一時停止
  2. Debezium がストリームされていないすべての変更をストリーミングするのを待ちます。
  3. コネクターを停止します。
  4. ソーステーブルスキーマにすべての変更を適用する
  5. sys.sp_cdc_enable_table 手順でパラメーター固有の値を使用して、更新ソーステーブルの新しいキャプチャーテーブルを作成します。 @capture_instance
  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.