Partilhar via


Perguntas frequentes (FAQ) sobre o Change Event Streaming (CES)

Aplica-se a: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed Instance

Seguem-se as respostas a perguntas sobre a funcionalidade Change Event Streaming (CES) para SQL Server 2025 (17.x), Azure SQL Database e Azure SQL Managed Instance.

Observação

O streaming de eventos de mudança está atualmente em versão beta para:

  • SQL Server 2025 (configuração com escopo de base de dados que requer funcionalidades de visualização prévia).
  • Azure SQL Database (funcionalidade de pré-visualização, configuração de base de dados com âmbito não necessária).
  • Azure SQL Managed Instance (com a SQL Server 2025 ou Always-up-to-date política de atualização, recurso de pré-visualização sem necessidade de configuração com âmbito de base de dados). Durante a visualização, esse recurso está sujeito a alterações. Para saber mais sobre a capacidade de suporte atual, consulte Limitações.

Compatibilidade e requisitos

O CES funciona com Azure SQL Database?

Sim. O CES é suportado no Azure SQL Database a partir de novembro de 2025.

O modelo de recuperação total é necessário para a CES?

Sim. O CES depende da leitura do log de transações, portanto, o banco de dados do SQL Server deve ser configurado com o modelo de recuperação completa.

Qual é o custo de usar o CES?

Para a CES, o uso dos Hubs de Eventos do Azure é cobrado com taxas padrão. Taxas de entrada e saída também se aplicam.

Desempenho e impacto

Qual é o impacto esperado no desempenho de um banco de dados grande com milhões de linhas quando o CES está habilitado?

O impacto no desempenho depende da sua carga de trabalho e configuração específicas. No entanto, espera-se que o CES tenha uma sobrecarga menor do que a captura de dados de alteração (CDC), já que não há gravação de dados de volta no banco de dados.

Qual é o tamanho máximo de mensagem suportado pelo CES?

O tamanho da mensagem é configurável, até um máximo de 1 MB, e deve alinhar-se com os limites da sua instância Azure Event Hubs.

O registo de transações continuará a crescer se a CES não conseguir entregar eventos (como devido a um problema de destino, credencial de autorização expirada, etc.)?

Sim. O CES assegura uma entrega fiável de mensagens ("pelo menos uma vez"), pelo que o registo de transações não será truncado até que os eventos sejam entregues com sucesso. Se a entrega falhar, o log crescerá até que o problema seja resolvido. É importante manter a saúde do CES monitorizando a entrega de mensagens, erros e a utilização do registo de transações para bases de dados que têm o CES ativado.

Esquema e tratamento de dados

Como o CES lida com alterações de esquema, como a exclusão de uma coluna?

O CES inclui o esquema de linha com cada evento. Se uma operação DDL modificar a tabela (como excluir, renomear ou adicionar uma coluna), o próximo evento DML refletirá o esquema atualizado. A CES não emite eventos para operações DDL em si.

As tabelas com colunas LOB (por exemplo, varchar(max)) são suportadas pelo CES?

Sim. O CES suporta tabelas com colunas LOB. Para cada tabela configurada para streaming, pode determinar se objetos grandes são incluídos nos eventos transmitidos.

Uma tabela precisa de uma chave primária para usar o CES?

Não. O CES não requer uma chave primária na mesa.

Quão granulares são os eventos da CES?

Cada linha afetada por um INSERT, UPDATEou DELETE operação é transmitida como um evento separado.

Se uma transação modifica várias linhas, elas são transmitidas como eventos separados ou como uma só?

Cada linha afetada é transmitida como um evento separado. Cada evento inclui metadados de transação, portanto, as alterações da mesma transação podem ser agrupadas logicamente no destino.

Integração e configuração

Como funciona o CES em uma configuração de alta disponibilidade (HA)? Posso usar uma cadeia de conexão DNN?

O CES só transmite da réplica primária. No caso de um failover, o CES deve ser reconfigurado no novo servidor primário. Você pode se conectar à réplica primária usando qualquer método com suporte do SQL Server, incluindo DNN.

Quais protocolos a CES usa para se comunicar com o destino?

O CES dá suporte aos protocolos AMQP e Kafka para Hubs de Eventos do Azure. HTTPS não é suportado.

A CES pode transmitir diretamente para Kafka?

Não. Atualmente, o CES dá suporte apenas aos Hubs de Eventos do Azure (protocolo AMQP e Kafka) como destino.

O CES oferece suporte à identidade gerenciada do Microsoft Entra para autenticação com Hubs de Eventos do Azure?

Depende da fonte de dados. O CES no Azure SQL Database suporta a identidade gerida Microsoft Entra para autenticação com os Azure Event Hubs, enquanto o SQL Server 2025 atualmente não suporta o Microsoft Entra para autenticação.

Funcionalidade e características

O CES pode ser habilitado em um banco de dados que já usa replicação transacional?

Não. O CES não pode ser habilitado em um banco de dados configurado com replicação transacional.

O CES pode executar-se juntamente com a captura de dados de alteração (CDC)?

Não. CES não pode ser ativado em um banco de dados que tenha o CDC ativado.

O CES pode ser utilizado com bases de dados espelhadas do Fabric para SQL Server?

Não. CES não é suportado com bancos de dados espelhados Fabric para SQL Server.

O que acontece se o CES for desativado? Retoma do ponto onde parou quando é reativado?

Se o CES estiver desativado, não pode ser retomado. Deve reconfigurar manualmente CES para continuar a transmitir eventos em tempo real. As alterações de dados feitas enquanto o CES estava desativado não são registadas. Só as alterações feitas após o reinício do CES são transmitidas em streaming. A CES garante a entrega pelo menos uma vez. Se o CES não entregar uma mensagem, continua a tentar novamente até que a mensagem seja entregue com sucesso ou o CES seja desativado. Se o CES não estiver desativado, as entregas falhadas impedem o truncamento dos logs até que a condição de erro seja resolvida e a mensagem seja entregue com sucesso. Se o CES estiver desativado, a truncação dos logs recomeça e os eventos que ocorrem durante o tempo de inatividade não são capturados.

O que acontece se fizer uma restauração (ou outro tipo de migração) de uma base de dados que foi configurada para CES?

Após a restauração (ou outros tipos de migração da base de dados), o CES é desativado e interrompido para a base de dados. Tens de o reconfigurar para voltar a fazer streaming.

O CES pode fazer uma captura inicial ("semente") dos dados existentes em tabelas quando o CES está activado?

Não. Atualmente, o CES só transmite alterações aos dados que ocorrem depois de o CES estar ativado. Não transmite dados numa tabela que exista antes de o CES estar ativado.

Como posso monitorar a atividade do CES (por exemplo, eventos processados, erros)?

Use as seguintes vistas do sistema para monitorizar a atividade do CES:

No SQL Server 2025, pode criar uma sessão XEvent relacionada com o CES e obter mais detalhes sobre a atividade do CES e potenciais erros.

  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

Ao configurar a monitorização CES xEvent para Azure SQL Managed Instance, armazene o seu .xel ficheiro num contentor Azure Blob Storage. Pode observar a informação de rastreio do Fluxo de Eventos de Alteração na Azure SQL Managed Instance observando synapse_link_error eventos:

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'
  
);

A depuração xEvent não é suportada para resolução de problemas CES na Azure SQL Database.

Você pode monitorar Hubs de Eventos do Azure e usar métricas e logs associados.

Existe um limite para quantas tabelas podem ser configuradas para streaming?

Sim. A CES suporta até 4.096 grupos de streaming, com até 40.000 mesas por grupo.