適用対象:SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL マネージド インスタンス
Microsoft Fabric の SQL データベース
以下は、SQL Server 2025(17.x)、Azure SQL Database、Azure SQL Managed Instance、およびMicrosoft FabricのSQLデータベースに関する変更イベントストリーミング(CES)機能に関する質問への回答です。
互換性と要件
CES は Azure SQL Database で動作しますか?
はい。 CES は、2025 年 11 月から Azure SQL Database でサポートされています。
CES には完全復旧モデルが必要ですか?
はい。 CES はトランザクション ログの読み取りに依存するため、SQL Server データベースを完全復旧モデルで構成する必要があります。
CES を使用する場合のコストは何ですか?
CESの場合、Azure Event HubsとFabric Eventstreamの使用は標準料金で請求されます。 イングレスとエグレスの料金も適用されます。
パフォーマンスと影響
CES が有効になっている場合、数百万行の大規模なデータベースで予想されるパフォーマンスへの影響は何ですか?
パフォーマンスへの影響は、特定のワークロードと構成によって異なります。 ただし、CES は、データベースにデータを書き戻さないため、変更データ キャプチャ (CDC) よりもオーバーヘッドが低いと予想されます。
CES でサポートされる最大メッセージ サイズは何ですか?
CESは@max_message_size_kb設定を用いて、大きなアウトバウンドイベントを宛先Azure Event Hubs制限や設定されたイベントストリームスループットに合うメッセージチャンクに分割Fabric。 この設定はメッセージ分割のみを制御します。 これは1列あたりの切り詰め制限を変えません。CESがアウトバウンドイベントを形成する前に、1MBを超える各ストリームカラム値は1MBに切り詰められます。
CES がイベントを配信できない場合 (宛先の問題、承認資格情報の期限切れなど)、トランザクション ログは引き続き増加しますか?
はい。 CES は信頼性の高い ("少なくとも 1 回") メッセージ配信を保証するため、イベントが正常に配信されるまでトランザクション ログは切り捨てられません。 配信に失敗すると、問題が解決されるまでログが大きくなります。 メッセージの配信、 エラー、CES が有効になっているデータベースのトランザクション ログの使用状況を監視することで、CES の正常性を維持することが重要です。
スキーマとデータの処理
CES では、列の削除など、スキーマの変更をどのように処理しますか?
CES には、各イベントを含む行スキーマが含まれています。 DDL 操作によってテーブルが変更された場合 (列の削除、名前変更、追加など)、次の DML イベントには更新されたスキーマが反映されます。 CES は DDL 操作自体のイベントを出力しません。
LOB 列を含むテーブル (varchar(max) など) は CES でサポートされていますか?
はい。 CES では、LOB 列を含むテーブルがサポートされています。 ストリーミング用に設定した各テーブルでは、sys.sp_add_object_to_event_stream_groupを使って古い行にLOB列値を含めるかどうかを制御できます。 各ストリームLOB値は依然として1列あたり1MBの切り詰め制限の対象となります。 CESが有効の場合、最大 テキストreplサイズ サーバー設定オプションを設定し、LOB列に65,536バイト以上を書き込めるようにしてください。
ストリームされたカラムの値が1MBを超えた場合はどうなりますか?
ストリームされたカラム値が1MBを超える場合、CESは影響を受けた各カラムの値をアウトバウンドイベントになる前に1MBに切り詰めます。 この制限は各列ごとに個別に適用されます。 例えば、行が5列で、最初の3列の値がそれぞれ1MBより大きい場合、CESはこれら3つの値をそれぞれ1MBに切り詰め、アウトバウンドイベントを形成し、 @max_message_size_kbに応じてメッセージチャンクに分割して各チャンクを宛先へ送信します。
カラムデータの切り詰めは無条件です。 CESはこの短縮が発生した際にエラーや警告を記録しません。 CESが有効の場合、最大 テキストreplサイズ サーバー設定オプションを設定し、LOB列に65,536バイト以上を書き込めるようにしてください。
CES を使用するには、テーブルに主キーが必要ですか?
いいえ。 CES では、テーブルに主キーは必要ありません。
CES イベントの粒度はどのくらいですか?
INSERT、UPDATE、またはDELETE操作の影響を受ける各行は、個別のイベントとしてストリーミングされます。
トランザクションで複数の行が変更された場合、それらは個別のイベントとして、または 1 つのイベントとしてストリーミングされますか?
影響を受ける各行は、個別のイベントとしてストリーミングされます。 各イベントにはトランザクション メタデータが含まれているため、同じトランザクションからの変更を宛先に論理的にグループ化できます。
統合と構成
高可用性 (HA) 構成での CES のしくみ DNN 接続文字列を使用できますか?
CES はプライマリ レプリカからのストリームのみ。 フェールオーバーが発生した場合は、新しいプライマリで CES を再構成する必要があります。 SQL Serverでサポートされている任意の方法、分散ネットワーク名(DNN)など、プライマリレプリカに接続できます。
CES は送信先との通信にどのプロトコルを使用しますか?
CESはAzure Event HubsおよびFabric Eventstream向けにKafkaおよびAMQPプロトコルをサポートしています。 HTTPS はサポートされていません。 2026年8月15日より、Azure SQL DatabaseおよびMicrosoft FabricのSQLデータベース上の新しいストリームグループではAMQPプロトコルが非推奨されます。 これらのプラットフォームでは、新たに作成されたすべてのストリームグループは AzureEventHubs を destination_typeとして使用しなければなりません。 この宛先タイプはKafkaプロトコルを使用します。 Azure SQL Managed InstanceとSQL Server 2025は今後のアップデートまで引き続きAzureEventHubsApacheKafkaとAzureEventHubsAMQPを受け入れています。 詳細は AMQPプロトコルの廃止を参照してください。 既存のストリームグループでAMQPプロトコルを使用している場合は、Azure Event HubsのTLS最低バージョン設定オプションを1.2に設定してください。 CESはAMQPプロトコル上のTLS 1.3では動作しません。
CES は Kafka に直接ストリーミングできますか?
いいえ。 CES では現在、送信先として Azure Event Hubs (AMQP および Kafka プロトコル) のみがサポートされています。
CESはFabric Eventstreamにストリーミングできますか?
はい。 CESをFabric Eventstreamに接続するには、Eventstreamが提供するAzure Event Hubs互換のカスタム入力エンドポイントを使っています。 CESはeventstreamの接続文字列でAzure Event Hubsの設定と同じように設定してください。
CESはAzure Event HubsやFabric Eventstreamでの認証のためにMicrosoft EntraマネージドIDをサポートしていますか?
はい。 CESはAzure SQL DatabaseおよびAzure SQL Managed InstanceでMicrosoft Entra認証をサポートしています。 SQL Server 2025では、Azure Arcで有効化されたインスタンスやAzure VM上で動作するインスタンスに対して、Cumulative Update 3(CU3)からMicrosoft Entra認証がサポートされています。 Microsoft Entra認証は現在、Microsoft FabricのSQLデータベースではサポートされていません。
機能と特徴
トランザクション レプリケーションを既に使用しているデータベースで 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 sure 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やFabric Eventstreamを監視し、関連するメトリクスやログを利用できます。
sys.dm_change_feed_errorsではCESエラーはどのくらいの期間保持されますか?
sys.dm_change_feed_errorsエラーリストは自動回転します。 新しいエラーは以前のエントリーを押し出します。 発生が止まったエラーはすぐにリストから削除されません。新しいエラーで排除されるか、リストが完全に消えるまで残ります。
ストリーミング用に構成できるテーブルの数に制限はありますか?
はい。 CESは最大4,096ストリームグループをサポートし、各グループあたり最大40,000テーブルに対応しています。