本記事では、SQL Server 2025、Azure SQL Database、Azure SQL Managed Instance、およびMicrosoft FabricのSQL Databaseにおける変更イベントストリーミング(CES)機能のAMQPプロトコルの非推奨化について説明します。
AMQPプロトコルの廃止により、新しいストリームグループを作成する際の destination_type 設定値に大きな変更が生じます。 展開スケジュールは製品によって異なります。 この記事では、これらの変更が新規および既存のストリームグループにどのように影響するか、プラットフォーム固有の違い、そしてAMQPプロトコルからKafkaプロトコルへの既存ストリームグループ移行方法について説明します。
AMQPプロトコルとは何ですか?
AMQPプロトコル(「AMQP」)は、CESがAzure Event HubsおよびFabric Eventstreamに変更イベントを送信する際にサポートしていた2つのプロトコルのうちの1つです。 これはサービス・ツー・サービス(Service-to-service)の実装で、イベントをAzure Event HubsやFabric Eventstreamに公開していました。
この大きな変更以前は、ストリームグループを設定する際のdestination_type設定値にプロトコルを指定しており、以下のいずれかのサポート値を使用していました:
-
AzureEventHubsAMQP- AMQPプロトコル -
AzureEventHubsApacheKafka- カフカプロトコル
この画期的な変更以降、Azure SQL Database Microsoft FabricのSQLデータベースで新たに作成されたストリームグループに対してサポートされているdestination_type値は、Kafkaプロトコルを使用するAzureEventHubsのみとなりました。 Azure SQL Managed Instanceと2025 SQL ServerもAzureEventHubsAMQPとAzureEventHubsApacheKafkaを受け入れています。
2026年8月15日以降、Azure SQL Database上で新たに作成されたストリームグループはAzureEventHubsをdestination_typeとして使用しなければなりません。 前の値を使ってストリームグループを作成しようとすると失敗します。
Azure Event Hubsに公開されたメッセージの消費者は、メッセージを公開するプロトコルに関わらず、AMQPプロトコルかKafkaプロトコルのどちらかを選択できます。
destination_type の値のプラットフォーム サポート
新しいストリームグループを作成する際の許容 destination_type 値は、積とバージョンによって異なります。
| 製品 |
destination_type許容値 |
Notes |
|---|---|---|
| Azure SQL Database | AzureEventHubs |
唯一の支持される価値。
AzureEventHubsAMQP そして AzureEventHubsApacheKafka は新しいストリームグループには受け入れられていません。 |
| Azure SQL Managed Instance |
AzureEventHubsAMQP、AzureEventHubsApacheKafka |
これらの値は今も受け入れられていますが、非推奨化されています。 新しいストリームグループの AzureEventHubsAMQP は避けましょう。 |
| SQL Server 2025 |
AzureEventHubsAMQP、AzureEventHubsApacheKafka |
これらの値は今も受け入れられていますが、非推奨化されています。 新しいストリームグループの AzureEventHubsAMQP は避けましょう。 |
| Microsoft Fabric 内の SQL データベース | AzureEventHubs |
唯一の支持される価値。 |
新しいストリームグループの場合は、プラットフォームが対応している場合に使う AzureEventHubs 。 2025年Azure SQL Managed InstanceおよびSQL Serverでは、AzureEventHubsApacheKafka(カフカプロトコル)を使用してください。 新しいストリームグループの AzureEventHubsAMQP は避けましょう。
AMQPで設定されたストリームグループをKafkaに移行する方法
既存のCESグループは AzureEventHubsAMQP で設定されており、2027年4月までAMQPプロトコルを使用してメッセージを公開し続けます。 SQL Server 2025、Azure SQL Database、Azure SQL Managed Instance、またはMicrosoft FabricのSQLデータベースで、既存のAMQP設定ストリームグループをできるだけ早くdestination_typeとしてAzureEventHubs作成してください。
以下のクエリを使って、すべての設定されたストリームグループを特定します:
exec sp_help_change_event_stream_groups
streaming_dest_type列にAzureEventHubsAMQPがあるストリームグループの設定値を保存してください。 新しいストリームグループを作成する際にはこれらの値が必要です。
以下のクエリを使って、移行が必要な各ストリームグループのテーブルを特定してください:
exec sys.sp_help_change_event_stream_tables
AMQP構成のストリームグループをKafkaに移行するには、以下の手順に従ってください。
sys.sp_create_event_stream_groupストアドプロシージャを使って代替ストリームを作成します。
destination_typeパラメータとしてAzureEventHubsを指定します。destination_locationパラメータはポート9093を期待しており、以下の例:myEventHubsNamespace.servicebus.windows.net:9093/myEventHubsInstance。KafkaプロトコルはMicrosoft Entraまたはサービスキー認証をサポートしています。 現在、CESではSAS認証が利用できません。
各テーブルを古いストリームグループから1つずつ削除するには 、以下の方法を使ってsys.sp_remove_object_from_event_stream_group:
exec sys.sp_remove_object_from_event_stream_group @stream_group_name = '<old_stream_group_name>', @object_name = '<schema.table_name>'古いストリーム グループから削除した各テーブルを、新しい置換先のストリーム グループに sys.sp_add_object_to_event_stream_group を使用して追加します:
exec sys.sp_add_object_to_event_stream_group @stream_group_name = '<new_stream_group_name>', @object_name = '<schema.table_name>'すべてのテーブルを新しいストリームグループに追加したら、 sys.sp_drop_event_stream_group を使って古いストリームグループを削除してください。 詳細は「 設定CES」を参照してください。
exec sys.sp_drop_event_stream_group @stream_group_name = '<old_stream_group_name>'新しいストリームグループがアクティブかどうかは
sp_help_change_event_stream_groupsを実行し、AzureEventHubsがstreaming_dest_typeとして表示されているか確認してください。
このプロセスを環境内のすべてのAMQP構成ストリームグループで繰り返します。
テーブルを新しいストリームグループに移動する(Kafka)
CESはログファイルから変更が作成された瞬間にスキャンして公開しますが、遅延が発生するとイベントが遅延することがあります。 ストリームグループからテーブルを削除すると、ログファイル内の保留中の変更は公開されません。 したがって、ストリームグループ間のテーブル移動を慎重に調整し、イベントを見逃さないようにしましょう。
ストリームグループからテーブルを削除する前に、 sys.dm_change_feed_log_scan_sessions DMVで公開予定の変更がないか確認してください。 保留変更がある場合は、プロセスが公開するまでテーブルを古いストリームグループから削除し、新しいストリームグループに追加してください。
イベントの見逃しリスクを軽減するために、以下のいずれかの方法を用いてください。
- テーブルに書き込みが行われていない専用のメンテナンスウィンドウ中に、テーブルをストリームグループ間で移動させます。
- 活動が少ない期間中にストリーミングされているテーブルに排他的ロックをかけ、そのテーブルへの新たな書き込みを防ぎます。 テーブルが新しいストリームグループに含まれるまでは、排他ロックを解除しないでください。
非推奨スケジュール
AMQPプロトコルの廃止は以下の2つのタイムラインに従っています。
| ストリームグループタイプ | 有効日 | 影響 |
|---|---|---|
| Azure SQL Database および Microsoft Fabric の SQL データベースにおける新しいストリームグループ | 2026年8月15日 | 新たに作成されたストリームグループは、 AzureEventHubs を destination_typeとして指定しなければなりません。
AzureEventHubsAMQPやAzureEventHubsApacheKafkaのどちらかを試みても失敗します。 |
| Azure SQL Managed Instance と SQL Server 2025 の新しいストリーム グループ | 今後の更新(未定) |
AzureEventHubsAMQP
AzureEventHubsApacheKafkaは現在も受け入れられていますが、廃止されています。 今後のアップデートでは、AzureEventHubs が必要な値として追加されます。 |
| AMQPプロトコルを使用する既存のストリームグループ | 2027 年 4 月 | すでに AzureEventHubsAMQP で設定されているストリームグループは、この日までは通常通り動作します。 AMQPプロトコルのサポートが終了する前に、Kafkaプロトコルを使用するために移行する必要があります。 |
公開されたメッセージの消費者は変更を加える必要がありません。
退廃の影響
この節では、AMQPプロトコルの廃止がもたらす影響について説明します。例えば:
公開されたメッセージの消費者への影響
宛先への書き込みプロトコル(Azure Event HubsまたはFabric Eventstream)は、メッセージ利用者が使用するプロトコルとは独立しています。 したがって、AMQPプロトコルからKafkaプロトコルへのメッセージ公開への切り替えは、メッセージ消費者には影響しません。 どちらのプロトコルでもメッセージを消費し続けることができます。
既存のAMQPストリームグループへの影響
既存のストリームグループは、AzureEventHubsAMQPそのまま引き続き動作し、AMQP プロトコルを使用します。 これらのグループには即時の中断や設定変更は必要ありません。 ただし、AMQPプロトコルのサポートが2027年4月に終了する前に、AMQP構成のストリームグループをKafkaプロトコルに移行する必要があります。
新たに作成されたストリームグループへの影響
2026年8月15日以降、Microsoft FabricのAzure SQL DatabaseおよびSQLデータベース上で新たに作成されたストリームグループに対して許可される唯一の許容値destination_typeAzureEventHubsとなります。 前の値 AzureEventHubsAMQP または AzureEventHubsApacheKafkaを使ってストリームグループを作成しようとすると、以下のエラーメッセージで失敗します。
Msg 23626, Level 16, State 2, Line 481, An error occurred. The error/state returned was 23618/5: 'The value provided for the argument '@destination_type' is invalid. Allowed values: AzureEventHubs.'
この日より前にストリームグループを作成する自動化スクリプトは必ず更新してください。
destination_typeパラメータはAzureEventHubsAMQPやAzureEventHubsApacheKafkaではなくAzureEventHubsを使わなければなりません。
KafkaプロトコルはMicrosoft Entraまたはサービスキー認証を使ってAzure Event HubsやFabric Eventstreamに接続します。 既存のAMQPストリームグループがSAS認証を使用している場合、新しいストリームグループを作成する際にはMicrosoft Entraまたはサービスキー認証に切り替える必要があります。 ストリームグループの認証設定方法については 「Change event streaming の設定」を参照してください。
パブリッシャーネットワーク構成への影響
パブリッシング側のネットワーク設定によっては、AMQPが使う5671や5672ポートではなく、Kafkaのポート9093を使うように許可されたアウトバウンドポートを再設定する必要があるかもしれません。 パブリッシャーはポート 9093でのアウトバウンドトラフィックを許可しなければなりません。
AMQPプロトコルを使っている既存のストリームグループがある場合のみ、ポート 5671 と 5672 を開けておくべきです。 これらのポートは、Kafkaプロトコルを使用する新たに作成されたストリームグループには必要ありません。
詳細については、Azure Event Hubs firewall configuration per protocol(プロトコルごとの設定)をご覧ください。