Partilhar via


Adicionar a origem CDC do Banco de Dados SQL do Azure a um fluxo de eventos

Este artigo mostra como adicionar uma fonte CDC (Captura de Dados de Alteração) do Banco de Dados SQL do Azure a um fluxo de eventos.

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

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 de Colaborador ou superiores.
  • Um servidor SQL do Azure em execução com um banco de dados SQL do Azure.
  • Seu banco de dados SQL do Azure deve ser acessível publicamente e não estar protegido em um firewall ou protegido em uma rede virtual.
  • Ative o CDC na sua base de dados SQL do Azure executando o procedimento armazenado sys.sp_cdc_enable_db. Para obter detalhes, consulte Habilitar e desabilitar a captura de dados de alteração.
  • Se você não tiver um eventstream, crie um eventstream.

Observe que você não deve habilitar o espelhamento em seu banco de dados SQL do Azure.

Habilitar CDC em seu Banco de Dados SQL do Azure

  1. Vá para o portal do Azure, abra seu banco de dados SQL do Azure e selecione Editor de consultas. Escolha um método de autenticação para iniciar sessão.

    Uma captura de tela da abertura do banco de dados SQL do Azure.

  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 Usar fonte externa .

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>Fontes externas.

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

Na página Selecionar uma fonte de dados, procure e selecione Conectar no bloco Banco de Dados SQL (CDC) do Azure.

Captura de tela que mostra a seleção do CDC do Banco de Dados SQL do Azure como o tipo de origem no assistente Obter eventos.

Configurar e conectar-se ao CDC do Banco de Dados SQL do Azure

  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 seção Configurações de conexão , insira os seguintes valores para seu banco de dados SQL do Azure:

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

    • Banco de dados: insira o nome do banco de dados SQL do Azure no portal do 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, o Fabric Eventstream suporta apenas a autenticação Básica .

    • 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 as definições avançadas para aceder a opções de configuração adicionais para a fonte do Azure SQL Database 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 precisão na representação de 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 ocorrem 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).
    • Intenção da aplicação da base de dados: Determina o comportamento de roteamento em grupos de disponibilidade SQL Server Always On:
      • ReadWrite: Liga-se à réplica principal. Use isto 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.
  7. Selecione Seguinte.

    Captura de tela que mostra a página Conectar do assistente Obter eventos preenchida.

  8. No ecrã Rever e criar, reveja o resumo e, em seguida, selecione Adicionar.

    Captura de ecrã que mostra a página Rever e criar do assistente Obter eventos preenchida.

Ingerir dados de alteração de bancos de dados SQL do Azure com registro automático de esquema de tabela via CDC no Eventstream.

  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 seção Configurações de conexão , insira os seguintes valores para seu banco de dados SQL do Azure:

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

    • Banco de dados: insira o nome do banco de dados SQL do Azure no portal do 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, o Fabric Eventstream suporta apenas a autenticação básica.

    • 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 as definições avançadas para aceder a opções de configuração adicionais para a fonte do Azure SQL Database 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 precisão na representação de 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 ocorrem 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).
    • Intenção da aplicação da base de dados: Determina o comportamento de roteamento em grupos de disponibilidade SQL Server Always On:
      • ReadWrite: Liga-se à réplica principal. Use isto 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.
  7. Habilite a associação de esquema de eventos.

  8. Em Espaço de trabalho, selecione um espaço de trabalho de malha para o conjunto de esquemas.

  9. 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.

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

    Captura de tela que mostra a configuração de esquema para uma fonte CDC do Banco de Dados SQL do Azure.

  11. Na página Rever + conectar, selecione Adicionar.

    Captura de ecrã que mostra a página rever + ligar para a origem CDC da Base de Dados SQL do Azure.

    Para todas as tabelas ou tabelas selecionadas no banco de dados SQL do Azure, o conector descobre automaticamente e cria esquemas e os registra no registro do esquema.

  12. Selecione o nó do fluxo de eventos no meio e alterne para a guia Esquemas associados no painel inferior.

    Captura de tela 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 do Banco de Dados SQL do Azure (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 esses esquemas descobertos usando este editor, pois ele deixará de estar conforme o esquema de tabelas na fonte Azure SQL Database.

Ver fluxo de eventos atualizado

  1. Você pode ver a fonte do Banco de Dados SQL do Azure (CDC) adicionada ao seu fluxo de eventos no modo de edição.

    Captura de ecrã da origem de streaming CDC da Base de Dados SQL do Azure na vista de edição.

  2. Para implementar essa fonte CDC do Banco de Dados SQL do Azure recém-adicionada, selecione Publicar. Depois de concluir estes passos, a sua fonte CDC do Banco de Dados SQL do Azure estará disponível para visualização na Vista ao vivo.

    Captura de ecrã do streaming da origem CDC da Base de Dados SQL do Azure na vista ao vivo.

Configurar destinos de fluxo de eventos para usar esquemas

Atualmente, apenas o eventhouse, endpoint personalizado e destinos de stream derivados são suportados para eventstreams com as funcionalidades estendidas ativadas. Esta secção mostra-lhe como adicionar e configurar um destino de casa de eventos quando funcionalidades estendidas (como suporte a esquemas) estão ativadas para o fluxo de eventos.

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.

Outros conectores: