Compartilhar via


Adicionar origem da CDA do Banco de Dados PostgreSQL a um Eventstream

Este artigo mostra como adicionar uma origem da captura de dados de alterações do Banco de Dados PostgreSQL (CDA) a um Eventstream.

O conector de origem da captura de dados de alterações (CDA) do Banco de Dados PostgreSQL para fluxos de eventos do Microsoft Fabric permite capturar um instantâneo dos dados atuais em um Banco de Dados PostgreSQL. Atualmente, o CDC (Captura de Dados de Alteração de Banco de Dados postgreSQL) tem suporte nos seguintes serviços em que os bancos de dados podem ser acessados publicamente:

  • Banco de Dados do Azure para PostgreSQL
  • Amazon RDS para PostgreSQL
  • Amazon Aurora PostgreSQL
  • SQL do Google Cloud para PostgreSQL

Depois que a fonte CDC do banco de dados PostgreSQL é adicionada ao fluxo de eventos, ela captura alterações no nível da linha nas tabelas especificadas. Essas alterações podem ser processadas em tempo real e enviadas para destinos diferentes para análise posterior.

Pré-requisitos

Habilitar CDC em seu Banco de Dados PostgreSQL

Esta seção usa o Banco de Dados do Azure para PostgreSQL como exemplo.

Para habilitar o CDA em seu servidor flexível do Banco de Dados do Azure para PostgreSQL, siga essas etapas:

  1. No portal do Azure, na página do servidor flexível do Banco de Dados do Azure para PostgreSQL, selecione Parâmetros do servidor no menu de navegação.

  2. Na página Parâmetros do servidor:

    • Defina wal_level para lógico.
    • Atualize max_worker_processes para pelo menos 16.

    Captura de tela mostrando a habilitação da CDA para uma implantação de servidor flexível.

  3. Salve as alterações e reinicie o servidor.

  4. Confirme se a instância de servidor flexível do Banco de Dados do Azure para PostgreSQL permite tráfego de rede pública.

  5. Conceda ao usuário administrador permissões para executar a instrução SQL a seguir. Se você quiser usar outra conta de usuário para conectar o Banco de Dados PostgreSQL para buscar o CDC, verifique se o usuário é o proprietário da tabela.

    ALTER ROLE <admin_user_or_table_owner_user> WITH REPLICATION;
    

Iniciar o assistente Selecionar uma fonte de dados

Se você ainda não adicionou nenhuma fonte ao fluxo de eventos, selecione o bloco Usar o código-fonte externo .

Captura de tela que mostra a seleção do bloco para usar uma origem externa.

Se você estiver adicionando a origem a um fluxo de eventos já publicado, alterne para modo de edição. Na faixa de opções, selecione Adicionar origem>Fontes externas.

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

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

Captura de tela que mostra a seleção do Banco de Dados do Azure para PostgreSQL (CDA) como o tipo de fonte no assistente Obter eventos.

Configurar e conectar-se ao CDC do Banco de Dados PostgreSQL

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

    Captura de tela mostrando a página Conectar de um Banco de Dados PostgreSQL do Azure com o link Nova conexão em destaque.

  2. Na seção Configurações de conexão, insira as informações a seguir.

    • Servidor: o endereço do servidor do seu Banco de Dados PostgreSQL, por exemplo my-pgsql-server.postgres.database.azure.com.

    • Banco de dados: o nome do banco de dados, por exemplo my_database.

      Captura de tela mostrando a seção Configurações de conexão do conector de Banco de Dados PostgreSQL do Azure.

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

    • Tipo de autenticação, selecione Básico e insira seu nome de usuário e senha para o banco de dados.

      Observação

      Atualmente, os fluxos de eventos do Fabric dão suporte apenas à autenticação Básica .

    • Selecione Conectar para concluir as configurações de conexão. Captura de tela mostrando a seção Credenciais de conexão do conector de Banco de Dados PostgreSQL do Azure.

  3. Porta: insira o número da porta do servidor. O valor padrão é 5432. Se a conexão de nuvem selecionada estiver configurada em Gerenciar conexões e gateways, certifique-se de que o número da porta corresponda ao configurado lá. Se eles não corresponderem, o número da porta na conexão de nuvem em Gerenciar conexões e gateways terá precedência.

  4. Você pode escolher entre duas opções ao capturar alterações de tabelas de banco de dados:

    • Todas as tabelas: capturar alterações de todas as tabelas do banco de dados.
    • Insira os nomes da tabela: permite que você especifique um subconjunto de tabelas usando uma lista separada por vírgulas. Você pode usar: identificadores de tabela completos no formato schemaName.tableName ou expressões regulares válidas. Exemplos:
    • dbo.test.*: selecione todas as tabelas cujos test nomes começam no dbo esquema.
    • dbo\.(test1|test2): Selecione dbo.test1 e dbo.test2.

    Você pode combinar os dois formatos na lista. O limite total de caracteres para toda a entrada é de 102.400 caracteres .

  5. Nome do slot (opcional): Insira o nome do slot de decodificação lógica do PostgreSQL criado para o streaming de alterações de um plug-in específico para um banco de dados/esquema específico. O servidor utiliza este slot para transferir eventos para o conector de streaming Eventstream. Ele deve conter apenas letras minúsculas, números e sublinhados.

    • Caso não seja especificado, um GUID será utilizado para criar o slot, sendo necessário ter as permissões adequadas no banco de dados.
    • Se houver um nome de slot especificado, o conector o usará diretamente.
  6. Você pode expandir as configurações avançadas para acessar mais opções de configuração para a origem CDC do Banco de Dados PostgreSQL:

    • Nome da publicação: especifica o nome da publicação de replicação lógica postgreSQL a ser usada. Isso deve corresponder a uma publicação existente no banco de dados ou será criada automaticamente dependendo do modo de preenchimento automático. Valor padrão: dbz_publication.

      Observação

      O usuário do conector deve ter privilégios de administrador para criar a publicação. Recomenda-se criar a publicação manualmente antes de iniciar o conector pela primeira vez, para evitar problemas relacionados a permissões.

    • Modo de criação automática de publicação: controla se e como a publicação é criada automaticamente. As opções incluem:

      • Filtered (padrão): se a publicação especificada não existir, o conector criará uma que inclua apenas as tabelas selecionadas (conforme especificado na lista de inclusão da tabela).
      • AllTables: se a publicação especificada existir, o conector a usará. Se ele não existir, o conector criará um que inclui todas as tabelas do banco de dados.
      • Disabled: o conector não cria uma publicação. Se a publicação especificada estiver ausente, o conector gerará uma exceção e irá parar. Nesse caso, a publicação deve ser criada manualmente no banco de dados.

      Para obter mais informações, consulte a documentação do Debezium sobre o modo de criação automática de publicação

    • Modo de tratamento decimal: Especifica como o conector lida com DECIMAL e valores de coluna NUMERIC PostgreSQL:

      • Precise: representa valores usando tipos decimais exatos (por exemplo, Java BigDecimal) para garantir a precisão total e a precisão na representação de dados.
      • Double: converte valores em números de ponto flutuante de precisão dupla. Isso melhora a usabilidade e o desempenho, mas pode resultar em uma perda de precisão.
      • String: codifica valores como cadeias de caracteres formatadas. Isso facilita o consumo em sistemas downstream, mas perde informações semânticas sobre o tipo numérico original.
    • Modo de instantâneo: especifique os critérios para executar um instantâneo quando o conector for iniciado:

      • Initial: O conector executa um instantâneo somente quando nenhum offset foi registrado para o nome do servidor lógico ou se ele detecta que um instantâneo anterior não foi concluído. Após a conclusão do instantâneo, o conector começa a transmitir registros de eventos para alterações subsequentes no banco de dados.
      • InitialOnly: O conector executa um instantâneo apenas quando nenhum deslocamento foi registrado para o nome do servidor lógico. Depois que o instantâneo for concluído, o conector para. Ele não faz a transição para streaming para ler eventos de alteração do binlog.
      • NoData: o conector executa um instantâneo que captura apenas o esquema, mas não qualquer dado de tabela. Especifique esta opção se não precisar de um instantâneo consistente dos dados, mas apenas das alterações que ocorreram desde o início do conector.
    • Consulta de batimento cardíaco: especifica uma consulta que o conector executa no banco de dados de origem ao enviar uma mensagem de batimento cardíaco.

    • Substituição da instrução de SELECT de instantâneo: especifica as linhas da tabela a serem incluídas em um instantâneo. Use essa propriedade se você quiser que um instantâneo inclua apenas um subconjunto das linhas em uma tabela. Essa propriedade afeta somente instantâneos. Ele não se aplica a eventos que o conector lê do log.

  7. Na página Revisar e conectar, examine o resumo e selecione Adicionar.

    Captura de tela mostrando a página Revisar e criar preenchida para o conector de Banco de Dados PostgreSQL do Azure.

Exibir o Eventstream atualizado

  1. Você pode ver a origem da CDA do Banco de Dados PostgreSQL adicionada ao Eventstream no Modo de edição.

    Captura de tela dos fluxos de origem da CDA do BD para PostgreSQL no Modo de Exibição de Edição.

  2. Para implementar essa origem recém-adicionada da CDA do BD para PostgreSQL, selecione Publicar. Depois de concluir essas etapas, a origem da CDA do BD para PostgreSQL estará disponível para visualização na Exibição ao vivo.

    Captura de tela dos fluxos de origem da CDA do BD para PostgreSQL na Exibição ao vivo.

Outros conectores: