Partilhar via


Adicionar origem CDC do Banco de Dados PostgreSQL a um fluxo de eventos

Este artigo mostra como adicionar uma fonte CDC (Change Data Capture) do banco de dados PostgreSQL a um fluxo de eventos.

O conector de origem do PostgreSQL Database Change Data Capture (CDC) para fluxos de eventos do Microsoft Fabric permite capturar um instantâneo dos dados correntes num banco de dados PostgreSQL. Atualmente, o PostgreSQL Database Change Data Capture (CDC) é suportado pelos seguintes serviços onde os bancos de dados podem ser acessados publicamente:

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

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

Pré-requisitos

Habilite o CDC em seu banco de dados PostgreSQL

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

Para habilitar o CDC no seu Banco de Dados do Azure para PostgreSQL – Servidor Flexível, siga estas etapas:

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

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

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

    Uma captura de tela da habilitação do CDC para uma implantação de servidor flexível.

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

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

  5. Conceda permissões de replicação ao usuário administrador executando a seguinte instrução SQL. Se você quiser usar outra conta de usuário para conectar seu banco de dados PostgreSQL para buscar CDC, verifique se o usuário é o proprietário da tabela .

    ALTER ROLE <admin_user_or_table_owner_user> WITH REPLICATION;
    

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 Selecione uma fonte de dados, procure e selecione Connect na seção PostgreSQL DB (CDC).

Captura de ecrã que mostra a seleção do Azure DB para PostgreSQL (CDC) como o tipo de origem no assistente para Obter eventos.

Configurar e conectar-se ao PostgreSQL Database CDC

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

    Captura de tela que mostra a página Connect para um banco de dados PostgreSQL do Azure com o link Nova conexão realçado.

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

    • 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 que mostra a seção Configurações de conexão para o 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 digite seu nome de usuário e senha para o banco de dados.

      Nota

      Atualmente, os fluxos de eventos do Fabric suportam apenas a autenticação Básica .

    • Selecione Conectar para concluir as configurações de conexão. Captura de tela que mostra a seção Credenciais de conexão para o conector de banco de dados PostgreSQL do Azure.

  3. Porta: Insira o número da porta do seu servidor. O valor padrão é 5432. Se a conexão de nuvem selecionada estiver configurada em Gerenciar conexões e gateways, verifique se o número da porta corresponde ao definido lá. Se eles não corresponderem, o número da porta na conexão de nuvem em Gerenciar conexões e gateways tem precedência.

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

    • Todas as tabelas: capture alterações de todas as tabelas no banco de dados.
    • Insira o(s) nome(s) da tabela: Permite especificar um subconjunto de tabelas usando uma lista separada por vírgula. 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 nomes começam no testdbo esquema.
    • dbo\.(test1|test2): Selecione dbo.test1 e dbo.test2.

    Você pode combinar ambos os 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 que foi criado para transmitir alterações de um plug-in específico para um determinado banco de dados/esquema. O servidor usa esse slot para transmitir eventos para o conector de streaming Eventstream. Deve conter apenas letras minúsculas, números e sublinhados.

    • Se não for especificado, um GUID será usado para criar o slot, exigindo as permissões de banco de dados apropriadas.
    • Se existir um nome de slot especificado, o conector o usará diretamente.
  6. Pode expandir as definições avançadas para aceder a mais opções de configuração para a fonte CDC da base de dados PostgreSQL:

    • Nome da publicação: especifica o nome da publicação de replicação lógica do PostgreSQL a ser usada. Isso deve corresponder a uma publicação existente no banco de dados ou será criado automaticamente, dependendo do modo de criação automática. Valor predefinido: dbz_publication.

      Nota

      O utilizador do conector deve ter permissões de superusuário para criar a publicação. É recomendável criar a publicação manualmente antes de iniciar o conector pela primeira vez para evitar problemas relacionados com 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 não existir, o conector cria um que inclui todas as tabelas na base de dados.
      • Disabled: O conector não cria uma publicação. Se a publicação especificada estiver ausente, o conector lançará uma exceção e parará. Neste caso, a publicação deve ser criada manualmente na base de dados.

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

    • Modo de manipulação decimal: especifica como o conector lida com PostgreSQL DECIMAL e NUMERIC valores de coluna:

      • 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. 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 os torna fáceis de consumir 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.
    • Consulta de ação do batimento cardíaco: Especifica uma consulta que o conector executa na base de dados de origem quando o conector envia uma mensagem de batimento cardíaco.

    • Substituição da instrução snapshot select: Especifica as linhas da tabela a incluir num snapshot. Use a propriedade se quiser que um snapshot inclua apenas um subconjunto das linhas numa tabela. Esta propriedade afeta apenas instantâneos. Não se aplica a eventos que o conector lê do log.

  7. Na página Rever e Conectar, reveja o sumário e, em seguida, selecione Adicionar.

    Captura de ecrã que mostra a página de Revisão e Criação preenchida para o conector de base de dados do Azure PostgreSQL.

Ver fluxo de eventos atualizado

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

    Uma captura de tela do streaming da fonte CDC do PostgreSQL DB no modo de edição.

  2. Para implementar essa fonte de CDC do banco de dados PostgreSQL recém-adicionada, selecione Publicar. Depois de concluir essas etapas, sua fonte de CDC de banco de dados PostgreSQL estará disponível para visualização na Visualização dinâmica.

    Uma captura de tela da transmissão da fonte de CDC do banco de dados PostgreSQL em visualização em tempo real.

Outros conectores: