この記事では、Azure SQL データベースの変更データ キャプチャ (CDC) ソースをイベントストリームに追加する方法について説明します。
Microsoft Fabric イベント ストリーム用の PostgreSQL データベースの変更データ キャプチャ (CDC) ソース コネクタを使用すると、PostgreSQL データベース内の現在のデータのスナップショットをキャプチャできます。 コネクタは、このデータに対する将来の行レベルの変更を監視し、記録します。 イベントストリームに変更がキャプチャされると、この CDC データをリアルタイムで処理し、Fabric 内のさまざまな宛先に送信して、さらに処理または分析することができます。
前提条件
- 共同作成者以上のアクセス許可を使用した Fabric 容量ライセンス モード (または試用版ライセンス モード) でのワークスペースへのアクセス。
- Azure SQL データベースを備えた実行中の Azure SQL サーバー。
- Azure Event Hubs と Azure SQL Database のリソースは、パブリックにアクセスでき、ファイアウォールの内側に配置されておらず、また Azure Virtual Network 内でセキュリティ保護されていない必要があります。
- ストアド プロシージャ
sys.sp_cdc_enable_dbを実行して、Azure SQL データベースで CDC を有効にしました。 変更データ キャプチャを有効および無効にする。 - イベントストリームがない場合は、イベントストリームを作成します。
Azure SQL データベースでミラーリングを有効にしてはならないことに注意してください。
Azure SQL データベースで CDC を有効にする
Azure portal に移動し、Azure SQL データベース を開き、[クエリ エディター] を選択します。 ログインするための認証方法を選びます。
次の SQL コマンドを実行して、データベースで CDC を有効にします。
-- Enable Database for CDC EXEC sys.sp_cdc_enable_db; -- Enable CDC for a table using a gating role option EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'MyTable', @role_name = NULL GO
データ ソースの選択ウィザードを起動する
まだイベントストリームにソースを追加していない場合は、[ 外部ソースを使用 ] タイルを選択します。
既に公開されているイベントストリームにソースを追加する場合は、 編集 モードに切り替えます。 リボンで、[ソース>の追加] を選択します。
[データ ソースの選択] ページにおいて、[Azure SQL DB (CDC)] タイルで [接続] を探して選択します。
Azure SQL データベース接続を構成します。
データ 接続ページで、新しい接続を選択します。
[接続設定] セクションで、Azure SQL データベースの次の値を入力します。
Azure Portal からサーバー名を入力します これは、
mysqlservername.database.windows.netという形式です。データベース: Azure portal から Azure SQL データベース名を入力します。
下にスクロールし、[接続資格情報] セクションで、次の 手順に従います。
接続名 には、接続の名前を入力します。
[認証の種類] で、[Basic] を選択します。
注
現時点では、Fabric Eventstream では 基本 認証のみがサポートされています。
データベースで、[ユーザー名] と [パスワード] を入力します。
接続 を選択します。
[ 接続 ] ページで、[ すべてのテーブル] または [ テーブル名の入力] を選択します。 後者を選択する場合は、完全なテーブル識別子 (
schemaName.tableName) または有効な正規表現のコンマ区切りの一覧を使用してテーブルを指定します。 例えば次が挙げられます。-
dbo.test.*を使用して、名前がdbo.testで始まるすべてのテーブルを選択します。 -
dbo\.(test1|test2)を使用して、dbo.test1とdbo.test2を選択します。
両方の形式をコンマで混在させることができます。 エントリ全体の文字制限の合計は 102,400 文字です。
-
[詳細設定] を展開して、Azure SQL Database CDC ソースの追加の構成オプションにアクセスできます。
-
10 進処理モード: コネクタが
DECIMALとNUMERIC列の値を処理する方法を定義します。-
Precise: 正確な 10 進型 (JavaBigDecimalなど) を使用して値を表し、データ表現の完全な精度と精度を確保します。 -
Double: 値を倍精度浮動小数点数に変換します。 この設定により、使いやすさとパフォーマンスが向上しますが、精度が低下する可能性があります。 -
String: 値を書式設定された文字列としてエンコードします。 この設定により、ダウンストリーム システムで簡単に使用できますが、元の数値型に関するセマンティック情報は失われます。
-
-
スナップショット モード: コネクタの起動時にスナップショットを実行するための条件を指定します。
-
Initial: コネクタは、論理サーバー名のオフセットが記録されていない場合、または以前のスナップショットが完了しなかったことを検出した場合にのみ、スナップショットを実行します。 スナップショットが完了すると、コネクタは後続のデータベース変更のイベント レコードのストリーミングを開始します。 -
InitialOnly: コネクタは、論理サーバー名のオフセットが記録されていない場合にのみスナップショットを実行します。 スナップショットが完了すると、コネクタは停止します。 binlog から変更イベントを読み取るためにストリーミングに移行することはありません。 -
NoData: コネクタは、スキーマのみをキャプチャするスナップショットを実行しますが、テーブル データはキャプチャしません。 データの一貫性のあるスナップショットは必要ありませんが、コネクタの起動後に発生する変更のみが必要な場合は、このオプションを設定します。
-
- 列除外リスト: 完全修飾名 (schemaName.tableName.columnName) を使用して変更イベント値から除外する列を指定します。
-
データベース アプリケーションインテント: SQL Server Always On 可用性グループにおけるルーティング動作を決定します。
-
ReadWrite: プライマリ レプリカに接続します。 これは、接続で読み取り操作と書き込み操作の両方を実行する必要がある場合に使用します。 -
ReadOnly: 読み取り専用操作のために読み取り可能なセカンダリ レプリカへのルーティングを許可します。 これを使用して、レプリカで CDC を直接有効にします。 snapshot.isolation.mode をスナップショットに設定する必要があります。これは、読み取り専用レプリカでサポートされる唯一のトランザクション分離モードです。
-
- スナップショット選択ステートメントのオーバーライド: スナップショットにテーブル内の行のサブセットのみを含める場合は、このプロパティを使用します。 このプロパティはスナップショットにのみ影響します。 コネクタがログから読み取るイベントには適用されません。
-
10 進処理モード: コネクタが
[次へ] を選択します。
[確認と作成] 画面で、概要を確認し、[追加] を選択します。
CDC を介した自動テーブル スキーマ登録を使用して Azure SQL データベースから Eventstream に変更データを取り込みます。
データ 接続ページで、新しい接続を選択します。
[接続設定] セクションで、Azure SQL データベースの次の値を入力します。
Azure Portal からサーバー名を入力します これは、
mysqlservername.database.windows.netという形式です。データベース: Azure portal から Azure SQL データベース名を入力します。
下にスクロールし、[接続資格情報] セクションで、次の 手順に従います。
接続名 には、接続の名前を入力します。
[認証の種類] で、[Basic] を選択します。
注
現時点では、Fabric Eventstream では 基本 認証のみがサポートされています。
データベースで、[ユーザー名] と [パスワード] を入力します。
接続 を選択します。
[ 接続 ] ページで、[ すべてのテーブル] または [ テーブル名の入力] を選択します。 後者を選択する場合は、完全なテーブル識別子 (
schemaName.tableName) または有効な正規表現のコンマ区切りの一覧を使用してテーブルを指定します。 例えば次が挙げられます。-
dbo.test.*を使用して、名前がdbo.testで始まるすべてのテーブルを選択します。 -
dbo\.(test1|test2)を使用して、dbo.test1とdbo.test2を選択します。
両方の形式をコンマで混在させることができます。 エントリ全体の文字制限の合計は 102,400 文字です。
-
[詳細設定] を展開して、Azure SQL Database CDC ソースの追加の構成オプションにアクセスできます。
-
10 進処理モード: コネクタが
DECIMALとNUMERIC列の値を処理する方法を定義します。-
Precise: 正確な 10 進型 (JavaBigDecimalなど) を使用して値を表し、データ表現の完全な精度と精度を確保します。 -
Double: 値を倍精度浮動小数点数に変換します。 この設定により、使いやすさとパフォーマンスが向上しますが、精度が低下する可能性があります。 -
String: 値を書式設定された文字列としてエンコードします。 この設定により、ダウンストリーム システムで簡単に使用できますが、元の数値型に関するセマンティック情報は失われます。
-
-
スナップショット モード: コネクタの起動時にスナップショットを実行するための条件を指定します。
-
Initial: コネクタは、論理サーバー名のオフセットが記録されていない場合、または以前のスナップショットが完了しなかったことを検出した場合にのみ、スナップショットを実行します。 スナップショットが完了すると、コネクタは後続のデータベース変更のイベント レコードのストリーミングを開始します。 -
InitialOnly: コネクタは、論理サーバー名のオフセットが記録されていない場合にのみスナップショットを実行します。 スナップショットが完了すると、コネクタは停止します。 binlog から変更イベントを読み取るためにストリーミングに移行することはありません。 -
NoData: コネクタは、スキーマのみをキャプチャするスナップショットを実行しますが、テーブル データはキャプチャしません。 データの一貫性のあるスナップショットは必要ありませんが、コネクタの起動後に発生する変更のみが必要な場合は、このオプションを設定します。
-
- 列除外リスト: 完全修飾名 (schemaName.tableName.columnName) を使用して変更イベント値から除外する列を指定します。
-
データベース アプリケーションインテント: SQL Server Always On 可用性グループにおけるルーティング動作を決定します。
-
ReadWrite: プライマリ レプリカに接続します。 これは、接続で読み取り操作と書き込み操作の両方を実行する必要がある場合に使用します。 -
ReadOnly: 読み取り専用操作のために読み取り可能なセカンダリ レプリカへのルーティングを許可します。 これを使用して、レプリカで CDC を直接有効にします。 snapshot.isolation.mode をスナップショットに設定する必要があります。これは、読み取り専用レプリカでサポートされる唯一のトランザクション分離モードです。
-
- スナップショット選択ステートメントのオーバーライド: スナップショットにテーブル内の行のサブセットのみを含める場合は、このプロパティを使用します。 このプロパティはスナップショットにのみ影響します。 コネクタがログから読み取るイベントには適用されません。
-
10 進処理モード: コネクタが
イベント スキーマの関連付けを有効にします。
[ワークスペース] で、スキーマ セットのファブリック ワークスペースを選択します。
[ スキーマ セット] では、[ + 作成 ] が既定で選択され、新しいスキーマ セットが作成されます。 既存のイベント スキーマ セットを選択するように変更できます。
前の手順で [+ 作成 ] オプションを選択した場合は、スキーマ セットの名前を入力します。
[確認と接続] ページで [追加] を選択します。
Azure SQL データベース内のすべてのテーブルまたは選択したテーブルに対して、コネクタはスキーマを自動検出して作成し、スキーマ レジストリに登録します。
中央の イベントストリーム ノードを選択し、下部ウィンドウの [ 関連付けられたスキーマ ] タブに切り替えます。
スキーマ セット
更新されたイベントストリームを表示する
編集モードで Eventstream に追加された Azure SQL Database (CDC) ソースを確認できます。
この新しく追加された Azure SQL Database CDC ソースを実装するには、[発行] を選択します。 これらの手順を完了すると、Azure SQL Database CDC ソースをライブ ビューで視覚化できるようになります。
スキーマを使用するように eventstream 送信先を構成する
現時点では、拡張機能が有効になっているイベントストリームでは、eventhouse、カスタム エンドポイント、および派生ストリーム変換先のみがサポートされています。 このセクションでは、イベントストリームに対して拡張機能 (スキーマ サポートなど) が有効になっている場合に、eventhouse 変換先を追加および構成する方法について説明します。
カスタム エンドポイント変換先のスキーマを構成する
[ イベントの変換] または [宛先の追加] を選択し、[ CustomEndpoint] を選択します。
[ カスタム エンドポイント ] ウィンドウで、宛先の名前を指定します。
[入力スキーマ] で、イベントのスキーマを選択します。 このボックスでは、イベントストリームのスキーマサポートを有効にするときに選択します。
カスタム エンドポイントの送信先を構成する詳細な手順については、「 カスタム エンドポイントまたはカスタム アプリの宛先をイベントストリームに追加する」を参照してください。
イベントハウスの宛先に対するスキーマを設定する
[ イベントの変換] または [宛先の追加] を選択し、[ Eventhouse] を選択します。
[Eventhouse] ウィンドウで、次のスキーマ関連の設定を構成します。
[入力スキーマ] で、ドロップダウン リストから 1 つ以上のスキーマを選択します。
注
Event Hubs ソースを構成するときに [ヘッダーによる動的スキーマ ] オプションを選択した場合は、ソースに対して複数のスキーマを構成し、それらをさまざまなプロパティとその値にマップしている可能性があります。
[テーブルの作成方法] では、要件に応じて、すべてのスキーマを結合した 1 つのテーブルを選択するか、スキーマごとに個別のテーブルを選択します。
[ データの書き込み方法] で、次のいずれかのオプションを選択します。
- ペイロードのみ: 抽出されたペイロード データをテーブルに書き込みます。 複数の入力スキーマがある場合、データは複数のテーブルに送信されます。
-
メタデータとペイロード: メタデータとペイロード データを 1 つのテーブルに書き込みます。 列の例には、
source、subject、type、およびdataがあります。
イベントハウスの宛先を構成する詳細な手順については、「 イベントストリームにイベントハウスの宛先を追加する」を参照してください。
関連するコンテンツ
その他のコネクタ。