Adicionar Azure SQL Database CDC source a um eventstream

Este artigo mostra-lhe como adicionar uma fonte Azure SQL Database Change Data Capture (CDC) a um fluxo de eventos.

O conector fonte Azure SQL Database CDC para fluxos de eventos Microsoft Fabric permite-lhe capturar um instantâneo dos dados atuais numa base de dados Azure SQL. Em seguida, o conector monitora e registra quaisquer alterações futuras ao nível de linha nesses dados. Depois de capturadas as alterações no fluxo de eventos, pode processar estes dados CDC em tempo real e enviá-los para diferentes destinos dentro do Fabric para processamento ou análise posterior.

Nota

Com o DeltaFlow (Pré-visualização), pode transformar eventos Debezium CDC brutos em fluxos prontos para análise que espelham a estrutura da sua tabela de fonte. O DeltaFlow automatiza o registo de esquemas, a gestão de tabelas de destino e o tratamento da evolução do esquema. Para usar o DeltaFlow, escolha eventos prontos para análises e esquema auto-atualizado durante a etapa de gestão do esquema.

Pré-requisitos

  • Acesso a um espaço de trabalho no modo de licença de capacidade do Fabric ou no modo de licença de Teste com permissões Contribuidor ou superiores.
  • Um servidor Azure SQL a correr com uma base de dados Azure SQL.
  • A sua base de dados Azure SQL deve ser acessível publicamente e não estar atrás de firewall ou protegida numa rede virtual. Se residir numa rede protegida, conecte-se a ela usando a injeção virtual de rede do conector Eventstream.
  • Ativei o CDC na tua base de dados Azure SQL ao executar o procedimento armazenado sys.sp_cdc_enable_db. Para obter detalhes, consulte Habilitar e desabilitar a captura de dados de alteração.

Nota

Não ative o espelhamento na sua base de dados Azure SQL.

Ative o CDC na sua Azure SQL Database

  1. Vai ao portal Azure, abre a tua base de dados de Azure SQL e seleciona Editor de consultas. Escolha um método de autenticação para iniciar sessão.

    Uma captura de ecrã da abertura da base de dados do Azure SQL.

  2. Execute os seguintes comandos SQL para habilitar o CDC em seu banco de dados:

    -- Enable Database for CDC
    EXEC sys.sp_cdc_enable_db;
    
    -- Enable CDC for a table using a gating role option
    EXEC sys.sp_cdc_enable_table
        @source_schema = N'dbo',
        @source_name   = N'MyTable',
        @role_name     = NULL
    GO
    

Inicie o assistente Selecionar uma fonte de dados

Se ainda não adicionaste nenhuma fonte ao teu event stream, seleciona o mosaico Connect data sources . Também pode selecionar Adicionar fonte>Conectar fontes de dados na fita.

Captura de ecrã que mostra a seleção do tile para usar uma fonte externa.

Se estiveres a adicionar a fonte a um fluxo de eventos já publicado, muda para o modo Editar. Na fita, selecione Adicionar fonte>Ligar fontes de dados.

Captura de ecrã que mostra seleções para adicionar fontes externas.

Na página Selecione uma fonte de dados, procure e selecione Conectar no bloco Azure SQL DB (CDC).

Captura de ecrã que mostra a seleção de Azure SQL Database (DB) CDC como tipo de origem no assistente Get events.

Configurar e ligar-se ao Azure SQL Database CDC

Ingerir dados de alteração a partir de bases de dados Azure SQL com registo automático de esquemas de tabelas via CDC para o fluxo de eventos.

Nota

DeltaFlow (Visualização): Quando seleciona eventos prontos para análise e esquema auto-atualizado na etapa de gestão do esquema, o DeltaFlow transforma os eventos brutos do Debezium CDC em fluxos prontos para análise que espelham a estrutura da sua tabela de origem. A DeltaFlow também automatiza a criação de tabelas de destino e o tratamento da evolução de esquemas.

  1. Na página Conectar, selecione Nova conexão.

    Captura de tela que mostra a página Conectar do assistente Obter eventos com o link Nova conexão realçado.

  2. Na secção Definições de Ligação, insira os seguintes valores para a sua base de dados de Azure SQL:

    • Server: Insira o nome do Azure SQL servidor no portal Azure. É desta forma: mysqlservername.database.windows.net.

    • Database: Introduza o nome da base de dados Azure SQL no portal Azure.

      Captura de ecrã que mostra a secção Definições de ligação da página Nova ligação.

  3. Role para baixo e, na secção Credenciais de conexão, siga estas etapas.

    • Em Nome da conexão, insira um nome para a conexão.

    • Em Tipo de autenticação, selecione Básico.

      Nota

      Atualmente, Fabric Eventstream suporta apenas autenticação Basic.

    • Digite Nome de usuário e senha para o banco de dados.

  4. Selecione Ligar.

    Captura de tela que mostra a seção Credenciais de conexão da página Nova conexão.

  5. Agora, na página Conectar, selecione Todas as tabelas ou Digite o(s) nome(s) da(s) tabela(s). Se você selecionar o último, especifique tabelas usando uma lista separada por vírgulas de identificadores de tabela completos (schemaName.tableName) ou expressões regulares válidas. Por exemplo:

    • Use dbo.test.* para selecionar todas as tabelas cujos nomes comecem com dbo.test.
    • Use dbo\.(test1|test2) para selecionar dbo.test1 e dbo.test2.

    Você pode misturar ambos os formatos usando vírgulas. O limite total de caracteres para toda a entrada é de 102.400 caracteres.

  6. Pode expandir Definições avançadas para aceder a mais opções de configuração para a Azure SQL Database fonte CDC:

    • Modo de tratamento decimal: Define como o conector trata os valores de DECIMAL e NUMERIC nas colunas:
      • Precise: Representa valores usando tipos decimais exatos (por exemplo, Java BigDecimal) para garantir total precisão e exatidão na representação dos dados.
      • Double: Converte valores em números de vírgula flutuante de precisão dupla. Essa configuração melhora a usabilidade e o desempenho, mas pode resultar em uma perda de precisão.
      • String: Codifica valores como cadeias de caracteres formatadas. Essa configuração facilita o consumo em sistemas a jusante, mas perde informações semânticas sobre o tipo numérico original.
    • Modo snapshot: Especifique os critérios para realizar uma snapshot quando o conector inicia:
      • Initial: O conector executa um snapshot apenas quando não foram registados offsets para o nome lógico do servidor, ou se detetar que um snapshot anterior não foi concluído com sucesso. Após a conclusão do snapshot, o conector começa a transmitir registos de eventos para alterações subsequentes na base de dados.
      • InitialOnly: O conector executa um snapshot apenas quando não foram registados deslocamentos para o nome lógico do servidor. Depois de concluída a fotografia, o conector para. Não faz a transição para streaming para ler os eventos de alteração do binlog.
      • NoData: O conector executa um snapshot que captura apenas o esquema, mas não quaisquer dados da tabela. Define esta opção se não precisares de um snapshot consistente dos dados, mas só precisas das alterações que acontecem desde o início do conector.
    • Lista de exclusão de colunas: Especifica colunas a excluir dos valores de eventos de mudança usando nomes totalmente qualificados (schemaName.tableName.columnName).
    • Database applicationIntent: Determina o comportamento de roteamento em grupos de disponibilidade SQL Server Always On:
      • ReadWrite: Liga-se à réplica principal. Use esta opção se a ligação precisar de realizar tanto operações de leitura como de escrita.
      • ReadOnly: Permite o encaminhamento para uma réplica secundária legível para operações de leitura apenas. Use-o para ativar o CDC diretamente nas réplicas. É necessário definir snapshot.isolation.mode para snapshot, que é o único modo de isolamento de transação suportado para réplicas apenas de leitura.
    • Substituição do comando snapshot select: Use esta propriedade se quiser que um snapshot inclua apenas um subconjunto das linhas de uma tabela. Esta propriedade afeta apenas instantâneos. Não se aplica a eventos que o conector lê do log.

Detalhes do fluxo ou da fonte

  1. Na página de Conectar , siga um destes passos consoante se está a usar o Eventstream ou Real-Time hub.

    • Eventstream:

      No painel de detalhes de origem à direita, siga estes passos:

      1. Para o nome da Fonte, selecione o botão Lápis para alterar o nome.

      2. Note que o nome do Eventstream e o nome do Stream são apenas de leitura.

    • Real-Time hub:

      Na seção Detalhes do fluxo à direita, siga estas etapas:

      1. Selecione o espaço de trabalho Fabric onde quer criar o fluxo de eventos.

      2. Para o nome do Eventostream, selecione o botão Pencil e insira um nome para o eventostream.

      3. O valor nome do Stream é gerado automaticamente ao adicionar -stream ao nome do eventstream. Este fluxo aparece na página Todos os fluxos de dados do hub em tempo real quando o assistente termina.

  2. Selecione Seguinte no final da página de Configurar .

Revise e conecte-se

No ecrã Revisão + ligar, reveja o resumo e selecione Adicionar (Eventstream) ou Ligar (Real-Time Hub).

Página de tratamento de esquemas

  1. Na página de Gestão de Esquema , escolha uma das seguintes opções:

    • Eventos prontos para análise e esquema atualizado automaticamente (DeltaFlow Preview): O conector transforma eventos CDC brutos em fluxos prontos para análise que espelham a estrutura da sua tabela de fonte. O DeltaFlow enriquece os eventos com metadados como tipo de alteração (inserir, atualizar ou eliminar) e carimbos temporais, e gere automaticamente tabelas de destino e evolução do esquema.
    • Eventos brutos do CDC: O conector ingere e disponibiliza os eventos brutos do CDC. Opcionalmente, o conector pode descobrir automaticamente esquemas de tabela e registá-los no registo de esquemas. Use esta opção quando quiser sensibilidade ao esquema sem transformação DeltaFlow.

    Nota

    A captura de ecrã seguinte mostra o Azure SQL Database CDC. As opções de tratamento de esquemas são as mesmas para todos os conectores de origem CDC suportados.

    Captura de ecrã que mostra o passo de manipulação de esquema com as opções de evento DeltaFlow e Raw CDC para um conector de origem CDC.

  2. Habilite a associação de esquema de eventos.

  3. Para Workspace, selecione um Fabric workspace para o conjunto de esquemas.

  4. Para Conjunto de esquemas, + Criar é selecionado por padrão, o que cria um novo conjunto de esquemas. Você pode alterá-lo para selecionar um conjunto de esquemas de eventos existente.

  5. Se você selecionou a opção + Criar na etapa anterior, insira um nome para o conjunto de esquemas.

  6. Na página Revisão + ligar , selecione Adicionar (Eventostream) ou Ligar (Real-Time hub).

    Captura de ecrã que mostra a página de avaliação + ligação para a fonte Azure SQL Database CDC.

    Para todas as tabelas ou tabelas selecionadas na base de dados Azure SQL, o conector descobre automaticamente e cria esquemas, registando-os no registo de esquemas.

  7. Selecione o nó fluxo de eventos no meio e mude para a guia Esquemas associados no painel inferior.

    Captura de ecrã que mostra a janela Esquema Associado no painel inferior.

Conjunto de esquemas

  1. Navegue até o espaço de trabalho selecionado na etapa anterior. No exemplo a seguir, é Meu espaço de trabalho.

  2. Selecione o conjunto de esquemas que o conector Azure SQL Database (CDC) criou.

    Captura de tela que mostra o esquema gerado definido na página Meu espaço de trabalho.

  3. Você vê os esquemas no conjunto de esquemas conforme mostrado na imagem a seguir.

    Captura de tela que mostra esquemas no conjunto de esquemas gerado.

  4. Para ver a versão JSON do esquema, alterne para a exibição de esquema JSON .

    Captura de tela que mostra a exibição do esquema JSON.

    Não altere estes esquemas descobertos usando este editor, pois torna-se não conforme com o esquema das tabelas na Azure SQL Database.

DeltaFlow: Transformação de eventos pronta para análises (Pré-visualização)

Quando ativa eventos prontos para análise e esquema atualizado automaticamente (DeltaFlow), o conector fornece as seguintes capacidades:

  • Forma de evento pronta para análise: Os eventos Debezium Raw CDC são transformados num formato tabular que espelha a estrutura da tabela de origem. Os eventos são enriquecidos com colunas de metadados incluindo o tipo de alteração (insert, update, ou delete) e o carimbo temporal do evento.

  • Gestão automática de tabelas de destino: Quando encaminha fluxos habilitados com DeltaFlow para um destino suportado, como uma casa de eventos, as tabelas de destino são criadas automaticamente para corresponder ao esquema da tabela de origem. Não precisas de criar ou configurar tabelas de destino manualmente.

  • Gestão da evolução do esquema: Quando as tabelas da base de dados de origem mudam (por exemplo, novas colunas são adicionadas ou criadas tabelas), a DeltaFlow deteta automaticamente as alterações, atualiza os esquemas registados e ajusta as tabelas de destino em conformidade. Esta opção minimiza a intervenção manual causada por alterações no esquema.

    Captura de ecrã mostrando tabelas de destinos Eventhouse em formato preparado para análise, criada pela DeltaFlow.

Nota

O DeltaFlow (Preview) é atualmente compatível com os conectores de fonte Azure SQL Database CDC, Azure SQL Managed Instance CDC, SQL Server on VM CDC e PostgreSQL CDC.

Para detalhes sobre como o DeltaFlow transforma eventos CDC brutos em resultados prontos para análise, incluindo tipos de operações e colunas de metadados, veja transformação de saída do DeltaFlow.

Ver fluxo de eventos atualizado

  1. Pode ver a fonte Azure SQL Database (CDC) adicionada ao seu fluxo de eventos em modo Editar.

    Captura de ecrã do streaming Azure SQL Database fonte CDC na vista Editar.

  2. Para implementar esta fonte recém-adicionada Azure SQL Database CDC, selecione Publicar. Depois de completar estes passos, a sua Azure SQL Database fonte CDC fica disponível para visualização na vista Live.

    Captura de ecrã da fonte CDC de streaming do Azure SQL Database em modo ao vivo.

Configurar destinos Eventstream para usar esquemas

Atualmente, apenas o Eventhouse, endpoints personalizados e destinos de stream derivados são suportados para Eventstreams que possuem esquemas associados. Esta seção mostra como adicionar e configurar um destino Eventhouse quando recursos estendidos (como suporte a esquema) estão habilitados para o fluxo de eventos.

Nota

Quando utiliza DeltaFlow (Preview) com uma fonte de Captura de Dados de Alteração (CDC) suportada, as tabelas de destino no Eventhouse são automaticamente criadas e geridas para corresponder à estrutura da tabela de origem. Não precisas de configurar manualmente o esquema da tabela de destino. O DeltaFlow também gere automaticamente a evolução do esquema quando as tabelas de origem mudam.

Configure um esquema para um destino de endpoint personalizado

  1. Selecione Transformar eventos ou adicionar destino, e depois selecione CustomEndpoint.

  2. No painel Endpoint Personalizado, especifique um nome para o destino.

  3. Em Esquema de entrada, selecione o esquema para eventos. Faz uma seleção nesta caixa ao ativar o suporte para esquemas para um stream de eventos.

Captura de ecrã que mostra o painel para configurar um endpoint personalizado.

Para obter etapas detalhadas sobre como configurar um destino de ponto de extremidade personalizado, consulte Adicionar um ponto de extremidade personalizado ou um destino de aplicativo personalizado a um fluxo de eventos.

Configurar esquemas para um destino de eventos

  1. Selecione Transformar eventos ou adicionar destino e, em seguida, selecione Casa de eventos.

  2. No painel do Eventohouse , configure as seguintes definições relacionadas com o esquema:

    1. Para o esquema de entrada, selecione um ou mais esquemas da lista suspensa.

      Captura de ecrã que mostra o painel de configuração do Eventhouse com um esquema de entrada selecionado.

      Nota

      Se selecionou a opção Esquema Dinâmico via cabeçalhos ao configurar uma fonte de Event Hubs, pode ter configurado múltiplos esquemas para a fonte e mapeado-os para várias propriedades e seus valores.

    2. Para o método de criação de tabelas, selecione uma única tabela com todos os esquemas combinados ou tabelas separadas para cada esquema, dependendo das suas necessidades.

      Captura de ecrã que mostra o painel de configuração do Eventhouse com métodos de criação de tabelas.

    3. Em Gravar dados com, selecione uma das seguintes opções:

      • Payload apenas: Inserir os dados extraídos do payload na tabela. Se houver vários esquemas de entrada, os dados serão enviados para várias tabelas.
      • Metadados e carga útil: escreva metadados e dados de carga útil em uma única tabela. Colunas de exemplo incluem source , subject, type, e data.

      Captura de ecrã que mostra o painel de configuração da casa do evento com as opções para escrever dados.

Para passos detalhados na configuração de um destino de casa de eventos, consulte Adicionar um destino de casa de eventos a um fluxo de eventos.

Veja a saída pronta para análises do DeltaFlow (Pré-visualização)

Se ativaste eventos prontos para Analytics e esquema atualizado automaticamente (DeltaFlow), as tabelas de destino são automaticamente criadas numa forma que espelha as tabelas da tua base de dados de origem. Cada tabela inclui as colunas originais juntamente com colunas de metadados para o tipo de alteração e carimbo temporal.

Captura de ecrã que mostra as tabelas de destinos Eventhouse criadas pela DeltaFlow em formato pronto para análise.

Pode consultar estas tabelas usando a Linguagem de Consulta Kusto (KQL) ou outras ferramentas de análise sem precisar de analisar cargas úteis Debezium CDC brutas.

::: fim de zona

Outros conectores incluem: