Van toepassing op: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Hieronder volgen antwoorden op vragen over de change event streaming (CES)-functie voor SQL Server 2025 (17.x), Azure SQL Database, Azure SQL Managed Instance en SQL database in Microsoft Fabric.
Opmerking
Het streamen van Change Event is momenteel in preview en heeft verschillen in ondersteuning tussen producten. Tijdens de preview kan deze functie worden gewijzigd.
Compatibiliteit en vereisten
Werkt CES met Azure SQL Database?
Ja. CES wordt ondersteund in Azure SQL Database vanaf november 2025.
Is het volledige herstelmodel vereist voor CES?
Ja. CES is afhankelijk van het lezen van het transactielogboek, dus de SQL Server-database moet worden geconfigureerd met het volledige herstelmodel.
Wat zijn de kosten voor het gebruik van CES?
Voor CES wordt het gebruik van Azure Event Hubs en Fabric Eventstream tegen standaardtarieven gefactureerd. Kosten voor inkomend en uitgaand verkeer zijn ook van toepassing.
Prestaties en impact
Wat is de verwachte invloed op de prestaties van een grote database met miljoenen rijen wanneer CES is ingeschakeld?
De invloed op de prestaties is afhankelijk van uw specifieke workload en configuratie. ER wordt echter verwacht dat CES een lagere overhead heeft dan Change Data Capture (CDC), omdat er geen gegevens terug naar de database worden geschreven.
Wat is de maximale berichtgrootte die wordt ondersteund door CES?
CES gebruikt de @max_message_size_kb instelling om grote uitgaande gebeurtenissen op te splitsen in berichtblokken die passen bij de bestemmingslimieten van Azure Event Hubs of de geconfigureerde Fabric Eventstream-doorvoer. Deze instelling regelt alleen het splitsen van berichten. Dit verandert de afbrekingslimiet per kolom niet: voordat CES de uitgaande gebeurtenis samenstelt, wordt elke gestreamde kolomwaarde van meer dan 1 MB afgebroken op 1 MB.
Blijft het transactielogboek groeien als CES geen gebeurtenissen kan leveren (zoals vanwege een doelprobleem, verlopen autorisatiereferenties, enzovoort)?
Ja. CES zorgt voor betrouwbare bezorging van berichten ('ten minste één keer'). Het transactielogboek wordt dus pas geschoond als de gebeurtenissen succesvol zijn afgeleverd. Als de levering mislukt, groeit het logboek totdat het probleem is opgelost. Het is belangrijk om de status van CES te behouden door de bezorging van berichten, fouten en het gebruik van het transactielogboek te controleren voor databases waarvoor CES is ingeschakeld.
Schema en gegevensverwerking
Hoe verwerkt CES schemawijzigingen, zoals het verwijderen van een kolom?
CES bevat het rijenschema voor elke gebeurtenis. Als een DDL-bewerking de tabel wijzigt (zoals het verwijderen, hernoemen of toevoegen van een kolom), weerspiegelt de volgende DML-gebeurtenis het bijgewerkte schema. CES verzendt geen gebeurtenissen voor DDL-bewerkingen zelf.
Worden tabellen met LOB-kolommen (bijvoorbeeld varchar(max)) ondersteund door CES?
Ja. CES ondersteunt tabellen met LOB-kolommen. Voor elke tabel die voor streaming is geconfigureerd, kun je bepalen of de oude rij LOB-kolomwaarden bevat door sys.sp_add_object_to_event_stream_group te gebruiken. Elke gestreamde LOB-waarde valt nog steeds onder de afkortingslimiet van 1 MB per kolom. Configureer de maximale serverconfiguratie-optie voor tekstreplisering zodat meer dan 65.536 bytes naar LOB-kolommen kunnen worden geschreven wanneer CES is ingeschakeld.
Wat gebeurt er als een gestreamde kolomwaarde groter is dan 1 MB?
Als één of meer gestreamde kolomwaarden groter zijn dan 1 MB, kortst CES elke getroffen kolomwaarde af tot 1 MB voordat het uitgaande evenement ontstaat. De limiet geldt voor elke kolom afzonderlijk. Als bijvoorbeeld een rij vijf kolommen heeft en de eerste drie kolomwaarden elk groter zijn dan 1 MB, kortst CES elk van die drie waarden af tot 1 MB, vormt het uitgaande evenement, splitst het evenement op in berichtblokken volgens , @max_message_size_kben stuurt elk chunk naar de bestemming.
Afkapping van kolomgegevens gebeurt zonder voorwaarden. CES legt geen fouten of waarschuwingen vast wanneer deze afkapping plaatsvindt. Configureer de maximale serverconfiguratie-optie voor tekstreplisering zodat meer dan 65.536 bytes naar LOB-kolommen kunnen worden geschreven wanneer CES is ingeschakeld.
Heeft een tabel een primaire sleutel nodig om CES te kunnen gebruiken?
Nee. CES vereist geen primaire sleutel in de tabel.
Hoe gedetailleerd zijn CES-gebeurtenissen?
Elke rij die wordt beïnvloed door een INSERT, UPDATEof DELETE bewerking, wordt gestreamd als een afzonderlijke gebeurtenis.
Als een transactie meerdere rijen wijzigt, worden ze gestreamd als afzonderlijke gebeurtenissen of als één?
Elke betrokken rij wordt gestreamd als een afzonderlijke gebeurtenis. Elke gebeurtenis bevat transactiemetagegevens, zodat wijzigingen van dezelfde transactie logisch op de bestemming kunnen worden gegroepeerd.
Integratie en configuratie
Hoe werkt CES in een hoge beschikbaarheidsconfiguratie? Kan ik een DNN-verbindingsreeks gebruiken?
CES streamt alleen van de primaire replica. In het geval van een failover moet CES opnieuw worden geconfigureerd op de nieuwe primaire. Je kunt verbinding maken met de primaire replica via elke methode die door SQL Server wordt ondersteund, inclusief een gedistribueerde netwerknaam (DNN).
Welke protocollen gebruikt CES om met de bestemming te communiceren?
CES ondersteunt Kafka- en AMQP-protocollen voor Azure Event Hubs en Fabric Eventstream. HTTPS wordt niet ondersteund. Vanaf 15 augustus 2026 is het AMQP-protocol verouderd voor nieuwe streamgroepen op Azure SQL Database en SQL Database in Microsoft Fabric. Op deze platforms moeten AzureEventHubs alle nieuw aangemaakte streamgroepen als de destination_type. Dit bestemmingstype gebruikt het Kafka-protocol. Azure SQL Managed Instance en SQL Server 2025 blijven accepteren AzureEventHubsApacheKafka tot AzureEventHubsAMQP een toekomstige update. Voor details, zie AMQP-protocol deprecation. Als je het AMQP-protocol gebruikt op bestaande streamgroepen, stel dan de configuratieoptie voor de minimale TLS-versie van Azure Event Hubs in op 1.2. CES werkt niet met TLS 1.3 via het AMQP-protocol.
Kan CES rechtstreeks naar Kafka streamen?
Nee. CES ondersteunt momenteel alleen Azure Event Hubs (AMQP- en Kafka-protocol) als de bestemming.
Kan CES streamen naar Fabric Eventstream?
Ja. Je kunt CES verbinden met Fabric Eventstream door gebruik te maken van het Azure Event Hubs-compatibele custom input endpoint dat Eventstream levert. Configureer CES met de eventstream verbindingsreeks op dezelfde manier als je het zou configureren voor Azure Event Hubs.
Ondersteunt CES Microsoft Entra managed identity voor authenticatie met Azure Event Hubs en Fabric Eventstream?
Ja. CES ondersteunt Microsoft Entra-authenticatie in Azure SQL Database en Azure SQL Managed Instance. Voor SQL Server 2025 wordt Microsoft Entra-authenticatie ondersteund vanaf Cumulative Update 3 (CU3) voor instanties die worden ingeschakeld door Azure Arc of draaien op een Azure VM. Microsoft Entra-authenticatie wordt momenteel niet ondersteund in SQL-databases in Microsoft Fabric.
Functionaliteit en functies
Kan CES worden ingeschakeld voor een database die al gebruikmaakt van transactionele replicatie?
Nee. CES kan niet worden ingeschakeld voor een database die is geconfigureerd met transactionele replicatie.
Kan CES samen met change data capture (CDC) draaien?
Nee. CES kan niet worden ingeschakeld voor een database die is ingeschakeld met CDC.
Kan CES worden gebruikt met Fabric Mirrored Databases voor SQL Server?
Nee. CES wordt niet ondersteund met 'Fabric' gespiegeld databases voor SQL Server.
Wat gebeurt er als CES is uitgeschakeld? Wordt het hervat vanaf waar het was gebleven wanneer het opnieuw wordt ingeschakeld?
Als CES is uitgeschakeld, kan deze niet worden hervat. U moet CES handmatig opnieuw configureren om door te gaan met streaming-gebeurtenissen. Gegevenswijzigingen die zijn aangebracht terwijl CES is uitgeschakeld, worden niet vastgelegd. Alleen wijzigingen die zijn aangebracht nadat CES opnieuw is opgestart, worden gestreamd. CES garandeert ten minste eenmaal levering. Als CES een bericht niet kan bezorgen, blijft het opnieuw proberen totdat het bericht is bezorgd of CES is uitgeschakeld. Als CES niet is uitgeschakeld, verhinderen mislukte leveringen het inkorten van logboeken totdat de fout is opgelost en het bericht succesvol is afgeleverd. Als CES is uitgeschakeld, wordt het afkappen van logboeken hervat en worden gebeurtenissen die optreden tijdens de downtime niet vastgelegd.
Wat gebeurt er als ik herstel (of een ander type migratie) van een database die is geconfigureerd voor CES?
Na herstel (of andere typen databasemigratie) wordt CES uitgeschakeld en gestopt voor de database. U moet deze opnieuw configureren om opnieuw te streamen.
Kan CES een eerste momentopname uitvoeren ('seed') van bestaande gegevens in tabellen wanneer CES is ingeschakeld?
Nee. CES streamt momenteel alleen wijzigingen in gegevens die plaatsvinden nadat CES is ingeschakeld. Er worden geen gegevens gestreamd in een tabel die bestaat voordat CES is ingeschakeld.
Hoe kan ik CES-activiteit bewaken (bijvoorbeeld gebeurtenissen verwerkt, fouten)?
Gebruik de volgende systeemweergaven om CES-activiteiten te bewaken:
- sys.dm_change_feed_errors voor fouten bij het leveren van gebeurtenissen.
- sys.dm_change_feed_log_scan_sessions voor log-scanning activiteit.
In SQL Server 2025 kun je een CES-gerelateerde xEvent-sessie aanmaken en meer details krijgen over CES-activiteit en mogelijke fouten.
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
Wanneer u CES xEvent-bewaking configureert voor Azure SQL Managed Instance, slaat u uw .xel bestand op in een Azure Blob Storage-container. Je kunt change event streaming trace-informatie observeren in Azure SQL Managed Instance door events te observerensynapse_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-foutopsporing wordt niet ondersteund voor het oplossen van problemen met CES in Azure SQL Database.
Je kunt Azure Event Hubs of Fabric Eventstream monitoren en bijbehorende metrics en logs gebruiken.
Hoe lang worden CES-fouten in sys.dm_change_feed_errors bewaard?
De sys.dm_change_feed_errors foutenlijst draait automatisch. Nieuwere fouten verdringen eerdere vermeldingen. Fouten die stoppen met optreden worden niet direct uit de lijst verwijderd; Ze blijven bestaan totdat nieuwe fouten ze verdrijven of de lijst volledig is verwijderd.
Is er een limiet voor het aantal tabellen dat kan worden geconfigureerd voor streaming?
Ja. CES ondersteunt tot 4.096 streamgroepen, met maximaal 40.000 tafels per groep.