この記事では、Azure SQL データベースの変更データ キャプチャ (CDC) から Fabric リアルタイムリアルタイム ハブにイベントを取得する方法について説明します。
Microsoft Fabric イベント ストリーム用の Azure SQL データベース CDC ソース コネクタを使用すると、Azure SQL データベース内の現在のデータのスナップショットをキャプチャできます。 コネクタは、このデータに対する将来の行レベルの変更を監視し、記録します。 イベントストリームに変更がキャプチャされると、この CDC データをリアルタイムで処理し、Fabric 内のさまざまな宛先に送信して、さらに処理または分析することができます。
注記
DeltaFlow (プレビュー) を使用すると、未加工の Debezium CDC イベントを、ソース テーブル構造をミラーリングする分析対応ストリームに変換できます。 DeltaFlow を使用すると、スキーマの登録、宛先テーブルの管理、スキーマの進化の処理が自動化されます。 DeltaFlow を使用するには、スキーマ処理手順中に [Analytics 対応イベント] と [スキーマの自動更新 ] を選択します。
前提条件
- 共同作成者以上のアクセス許可を持つファブリック容量ライセンス モードまたは試用版ライセンス モードのワークスペースへのアクセス。
- Azure SQL データベースを備えた実行中の Azure SQL サーバー。
- Azure SQL データベースにはパブリックにアクセスでき、ファイアウォールの内側に置いたり、仮想ネットワークでセキュリティで保護したりしないでください。 保護されたネットワークに存在する場合は、 Eventstream コネクタの仮想ネットワークインジェクションを使用して接続します。
- ストアド プロシージャ
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
データ ソース ページ
Microsoft Fabric にサインインします。
ページの左下に Power BI が表示される場合は、Power BI を選択し、その後、Fabricを選択して Fabric のワークロードに切り替えます。
左側のナビゲーション バーで [リアルタイム] を選択します。
[ ストリーミング データ ] ページが既定で開きます。 [データの 追加 ] ボタンをクリックして、[ データ ソース ] ページに移動します。
左側のナビゲーション バーの [データの追加] オプションを選択して、[データ ソース] ページに直接アクセスすることもできます。
[データ ソース ] ページで、上部にある [Microsoft ソース] カテゴリを選択し、[Azure SQL DB (CDC)] タイルの [ 接続] を選択します。
「Azure SQL Database CDC ソースに接続する」セクションの手順を使用します。
Azure SQL Database CDC ソースに接続する
CDC を介した自動テーブル スキーマ登録を使用して Azure SQL データベースから Eventstream に変更データを取り込みます。
注記
DeltaFlow (プレビュー):スキーマ処理手順で Analytics 対応イベントと自動更新されたスキーマ を選択すると、DeltaFlow は未加工の Debezium CDC イベントを、ソース テーブル構造をミラーリングする分析対応ストリームに変換します。 DeltaFlow では、変換先テーブルの作成とスキーマの進化処理も自動化されます。
接続ページで、新しい接続を選択します。
[接続設定] セクションで、Azure SQL データベースの次の値を入力します。
サーバー: Azure ポータルから Azure SQL サーバー名を入力します。 これは、
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) を使用して変更イベント値から除外する列を指定します。
-
Database applicationIntent: SQL Server Always On 可用性グループのルーティング動作を決定します。
-
ReadWrite: プライマリ レプリカに接続します。 接続で読み取り操作と書き込み操作の両方を実行する必要がある場合は、このオプションを使用します。 -
ReadOnly: 読み取り専用操作のために読み取り可能なセカンダリ レプリカへのルーティングを許可します。 これを使用して、レプリカで CDC を直接有効にします。 snapshot.isolation.mode をスナップショットに設定する必要があります。これは、読み取り専用レプリカでサポートされる唯一のトランザクション分離モードです。
-
- スナップショット選択ステートメントのオーバーライド: スナップショットにテーブル内の行のサブセットのみを含める場合は、このプロパティを使用します。 このプロパティはスナップショットにのみ影響します。 コネクタがログから読み取るイベントには適用されません。
-
10 進処理モード: コネクタが
ストリームまたはソースの詳細
[ 接続 ] ページで、Eventstream または Real-Time ハブのどちらを使用しているかに基づいて、次のいずれかの手順に従います。
Eventstream:
右側の [ ソースの詳細 ] ウィンドウで、次の手順に従います。
[ソース名] で、[鉛筆] ボタンを選択して名前を変更します。
Eventstream 名と Stream 名は読み取り専用であることに注意してください。
リアルタイムハブ:
右側の [ストリームの詳細] セクションで、次の手順に従います。
イベントストリームを作成する Fabric ワークスペース を選択します。
"イベントストリーム名" の鉛筆ボタンを選択し、イベントストリームの名前を入力します。
Stream 名の値は、eventstream の名前に -stream を追加することによって自動的に生成されます。 このストリームは、ウィザードの終了時にリアルタイム ハブの [すべてのデータ ストリーム ] ページに表示されます。
[構成] ページの下部にある [ 次へ ] を選択 します。
確認して接続する
[ 確認と接続 ] 画面で概要を確認し、[ 追加] (Eventstream) または [接続 ] (Real-Time ハブ) を選択します。
スキーマ処理ページ
[ スキーマ処理 ] ページで、次のいずれかのオプションを選択します。
- 分析対応イベントと自動更新スキーマ (DeltaFlow プレビュー):コネクタは、ソース テーブル構造をミラーリングする分析対応ストリームに未加工の CDC イベントを変換します。 DeltaFlow は、変更の種類 (挿入、更新、削除) やタイムスタンプなどのメタデータを使用してイベントを強化し、変換先テーブルとスキーマの進化を自動的に管理します。
- 未加工の CDC イベント: コネクタは、生の CDC イベントを取り込んで使用できるようにします。 必要に応じて、コネクタはテーブル スキーマを自動検出し、スキーマ レジストリに登録できます。 DeltaFlow 変換を使用せずにスキーマ認識を行う場合は、このオプションを使用します。
注記
次のスクリーンショットは、Azure SQL Database CDC を示しています。 スキーマ処理オプションは、サポートされているすべての CDC ソース コネクタで同じです。
イベント スキーマの関連付けを有効にします。
[ワークスペース] で、スキーマ セットのファブリック ワークスペースを選択します。
[ スキーマ セット] では、[ + 作成 ] が既定で選択され、新しいスキーマ セットが作成されます。 既存のイベント スキーマ セットを選択するように変更できます。
前の手順で [+ 作成 ] オプションを選択した場合は、スキーマ セットの名前を入力します。
[ 確認と接続 ] ページで、[ 追加] (Eventstream) または [接続 ] (Real-Time ハブ) を選択します。
Azure SQL データベース内のすべてのテーブルまたは選択したテーブルに対して、コネクタはスキーマを自動検出して作成し、スキーマ レジストリに登録します。
中央の イベントストリーム ノードを選択し、下部ウィンドウの [ 関連付けられたスキーマ ] タブに切り替えます。
スキーマ セット
前の手順で選択したワークスペースに移動します。 次の例では、 個人用ワークスペースです。
Azure SQL Database (CDC) コネクタが作成したスキーマ セットを選択します。
次の図に示すように、スキーマ セットにスキーマが表示されます。
スキーマの JSON バージョンを表示するには、 JSON スキーマ ビューに切り替えます。
このエディターを使用して検出されたこれらのスキーマは、Azure SQL データベース ソース内のテーブルのスキーマに対して不確認になるため、変更しないでください。
DeltaFlow: Analytics 対応イベント変換 (プレビュー)
Analytics 対応イベントと自動更新スキーマ (DeltaFlow) を有効にすると、コネクタは次の機能を提供します。
分析対応のイベント形状: 生の Debezium CDC イベントは、ソース テーブル構造を反映する表形式に変換されます。 イベントは、変更の種類 (
insert、update、またはdelete) やイベントタイムスタンプなどのメタデータ列でエンリッチされます。自動宛先テーブル管理: DeltaFlow 対応ストリームをイベントハウスなどのサポート対象の宛先にルーティングすると、変換先テーブルがソース テーブル スキーマと一致するように自動的に作成されます。 コピー先テーブルを手動で作成または構成する必要はありません。
スキーマの進化の処理: ソース データベース テーブルが変更されると (たとえば、新しい列が追加されたり、テーブルが作成されたりすると)、DeltaFlow は変更を自動的に検出し、登録されたスキーマを更新し、それに応じて変換先テーブルを調整します。 このオプションにより、スキーマの変更による手動による介入が最小限に抑えられます。
注記
DeltaFlow (プレビュー) は現在、Azure SQL Database CDC、Azure SQL Managed Instance CDC、VM CDC 上の SQL Server、PostgreSQL CDC ソース コネクタでサポートされています。
DeltaFlow が未加工の CDC イベントを分析対応の出力 (操作の種類やメタデータ列など) に変換する方法の詳細については、「 DeltaFlow 出力変換」を参照してください。
データ ストリームの詳細を表示する
[確認と接続] ページで [イベントストリームを開く] を選択すると、選択した Azure SQL Database CDC をソースとして作成されたイベントストリームがウィザードで開きます。 ウィザードを閉じるには、ページの下部にある [完了] を選択します。
Real-Time ハブのホーム ページの [最近のストリーミング データ] セクションにストリームが表示されます。 詳細な手順については、「Fabric リアルタイム ハブでのデータ ストリームの詳細の表示」を参照してください。
関連するコンテンツ
データ ストリームの使用について詳しくは、次の記事を参照してください。