適用対象: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Server 2025 (17.x)、Azure SQL Database、Azure SQL Managed Instance の Change Event Streaming (CES) 機能に関する質問への回答を次に示します。
注
変更イベント ストリーミングは、次の目的で現在 プレビュー段階 にあります。
- SQL Server 2025 (プレビュー機能データベーススコープ構成が必要)。
- Azure SQL Database (プレビュー機能データベーススコープ構成は必要ありません)。
- Azure SQL Managed Instance (SQL Server 2025 または Always-up-to-date 更新ポリシーを使用します。プレビュー機能データベーススコープ構成は必要ありません)。 プレビュー期間中、この機能は変更される可能性があります。 現在のサポート可能性については、「 制限事項」を参照してください。
互換性と要件
CES は Azure SQL Database で動作しますか?
はい。 CES は、2025 年 11 月から Azure SQL Database でサポートされています。
CES には完全復旧モデルが必要ですか?
はい。 CES はトランザクション ログの読み取りに依存するため、SQL Server データベースを完全復旧モデルで構成する必要があります。
CES を使用する場合のコストは何ですか?
CES の場合、Azure Event Hubs の使用量は標準料金で課金されます。 イングレスとエグレスの料金も適用されます。
パフォーマンスと影響
CES が有効になっている場合、数百万行の大規模なデータベースで予想されるパフォーマンスへの影響は何ですか?
パフォーマンスへの影響は、特定のワークロードと構成によって異なります。 ただし、CES は、データベースにデータを書き戻さないため、変更データ キャプチャ (CDC) よりもオーバーヘッドが低いと予想されます。
CES でサポートされる最大メッセージ サイズは何ですか?
メッセージ サイズは最大 1 MB まで構成でき、 Azure Event Hubs インスタンスの制限に合わせる必要があります。
CES がイベントを配信できない場合 (宛先の問題、承認資格情報の期限切れなど)、トランザクション ログは引き続き増加しますか?
はい。 CES は信頼性の高い ("少なくとも 1 回") メッセージ配信を保証するため、イベントが正常に配信されるまでトランザクション ログは切り捨てられません。 配信に失敗すると、問題が解決されるまでログが大きくなります。 メッセージの配信、 エラー、CES が有効になっているデータベースのトランザクション ログの使用状況を監視することで、CES の正常性を維持することが重要です。
スキーマとデータの処理
CES では、列の削除など、スキーマの変更をどのように処理しますか?
CES には、各イベントを含む行スキーマが含まれています。 DDL 操作によってテーブルが変更された場合 (列の削除、名前変更、追加など)、次の DML イベントには更新されたスキーマが反映されます。 CES は DDL 操作自体のイベントを出力しません。
LOB 列を含むテーブル (varchar(max) など) は CES でサポートされていますか?
はい。 CES では、LOB 列を含むテーブルがサポートされています。 ストリーミング用に構成されたテーブルごとに、ストリーミング イベントにラージ オブジェクトを含めるかどうかを構成できます。
CES を使用するには、テーブルに主キーが必要ですか?
いいえ。 CES では、テーブルに主キーは必要ありません。
CES イベントの粒度はどのくらいですか?
INSERT、UPDATE、またはDELETE操作の影響を受ける各行は、個別のイベントとしてストリーミングされます。
トランザクションで複数の行が変更された場合、それらは個別のイベントとして、または 1 つのイベントとしてストリーミングされますか?
影響を受ける各行は、個別のイベントとしてストリーミングされます。 各イベントにはトランザクション メタデータが含まれているため、同じトランザクションからの変更を宛先に論理的にグループ化できます。
統合と構成
高可用性 (HA) 構成での CES のしくみ DNN 接続文字列を使用できますか?
CES はプライマリ レプリカからのストリームのみ。 フェールオーバーが発生した場合は、新しいプライマリで CES を再構成する必要があります。 DNN など、SQL Server でサポートされている任意の方法を使用して、プライマリ レプリカに接続できます。
CES は送信先との通信にどのプロトコルを使用しますか?
CES では、Azure Event Hubs の AMQP プロトコルと Kafka プロトコルがサポートされています。 HTTPS はサポートされていません。
CES は Kafka に直接ストリーミングできますか?
いいえ。 CES では現在、送信先として Azure Event Hubs (AMQP および Kafka プロトコル) のみがサポートされています。
CES は、Azure Event Hubs での認証に Microsoft Entra マネージド ID をサポートしていますか?
データ ソースによって異なります。 Azure SQL Database 上の CES では、Azure Event Hubs で認証するための Microsoft Entra マネージド ID がサポートされています。SQL Server 2025 では現在、認証に Microsoft Entra がサポート されていません 。
機能と特徴
トランザクション レプリケーションを既に使用しているデータベースで CES を有効にできますか?
いいえ。 トランザクション レプリケーションで構成されたデータベースで CES を有効にすることはできません。
CES は変更データ キャプチャ (CDC) と共に実行できますか?
いいえ。 CDC で有効になっているデータベースで CES を有効にすることはできません。
SQL Server 用ファブリック ミラー化データベースで CES を使用できますか?
いいえ。 SQL Server 用ファブリック ミラー化データベースでは、CES はサポートされていません。
CES が無効になっている場合はどうなりますか? 再び可能になったときに中断したところから再開されますか?
CES が無効になっている場合、再開できません。 ストリーミング イベントを続行するには、CES を手動で再構成する必要があります。 CES が無効になっている間に行われたデータ変更はキャプチャされません。 CES の再起動後に行われた変更のみがストリーミングされます。 CES では 、少なくとも 1 回 の配信が保証されます。 CES がメッセージの配信に失敗した場合、メッセージが正常に配信されるか、CES が無効になるまで再試行を続けます。 CES が無効でない場合、配信に失敗すると、エラー条件が解決されてメッセージが正常に配信されるまで、ログの切り捨ては行われません。 CES が無効になっている場合、ログの切り捨てが再開され、ダウンタイム中に発生したイベントはキャプチャされません。
CES 用に構成されたデータベースの復元 (または別の種類の移行) を行うとどうなりますか?
復元 (またはその他の種類のデータベース移行) 後、データベースの CES は無効になり、停止されます。 もう一度ストリーミングを開始するには、再構成する必要があります。
CES が有効になっている場合、CES はテーブル内の既存のデータの初期スナップショット ("シード") を実行できますか?
いいえ。 現在、CES は、CES が有効になった後に発生したデータに対する変更のみをストリームします。 CES が有効になる前に存在するテーブル内のデータはストリーミングされません。
CES アクティビティ (処理されたイベント、エラーなど) を監視するにはどうすればよいですか?
CES アクティビティを監視するには、次のシステム ビューを使用します。
- イベント配信エラーの調査にsys.dm_change_feed_errorsを使用します。
- ログ スキャン アクティビティ用のsys.dm_change_feed_log_scan_sessions。
SQL Server 2025 では、CES 関連の XEvent セッションを作成し、CES アクティビティと潜在的なエラーの詳細を取得できます。
CREATE EVENT SESSION ChangeEventStreaming
ON SERVER
ADD EVENT sqlserver.synapse_link_error
(
)
ADD TARGET package0.event_file
(SET filename=N'C:\temp\YourSession_Target1.xel');
GO
Azure SQL Managed Instance の CES xEvent 監視を構成する場合は、 .xel ファイルを Azure Blob Storage コンテナーに格納します。 Azure SQL Managed Instance で変更イベント ストリーミング トレース情報を確認するには、次の synapse_link_error イベントを監視します。
CREATE CREDENTIAL
[your blob container URL here] --make suire to not leave / at the end
WITH IDENTITY = 'MANAGED IDENTITY';
DROP EVENT SESSION ChangeEventStreaming ON SERVER
CREATE EVENT SESSION ChangeEventStreaming
ON SERVER
ADD EVENT sqlserver.synapse_link_error
(
)
ADD TARGET package0.event_file
(
SET filename = N'https://[your container URL]/cessession.xel'
);
xEvent デバッグは、Azure SQL Database での CES のトラブルシューティングではサポートされていません。
Azure Event Hubs を監視し、関連するメトリックとログを使用できます。
ストリーミング用に構成できるテーブルの数に制限はありますか?
はい。 CES では、最大 4,096 個のストリーミング グループがサポートされ、1 グループあたり最大 40,000 個のテーブルがサポートされます。