Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Configure um banco de dados PostgreSQL

Última atualização: Jun 27, 2026

Antes de usar o conector PostgreSQL Change Data Capture (CDC), verifique se o armazenamento PostgreSQL upstream atende aos requisitos de configuração. Este tópico descreve os requisitos de configuração e as operações relacionadas para ApsaraDB RDS for PostgreSQL, Amazon RDS for PostgreSQL e bancos de dados PostgreSQL autogerenciados.

Contexto

Antes de usar o conector PostgreSQL CDC, garanta que o armazenamento PostgreSQL upstream atenda aos requisitos de configuração. Este tópico explica como configurar o ApsaraDB RDS for PostgreSQL, o Amazon RDS for PostgreSQL e bancos de dados PostgreSQL autogerenciados. O conector PostgreSQL CDC sincroniza dados com base no mecanismo de assinatura lógica do PostgreSQL. Para obter mais informações, consulte Logical Decoding Concepts e Principles and Best Practices of Logical Subscription.

Banco de dados ApsaraDB RDS for PostgreSQL

  • Conexão de rede entre o ApsaraDB RDS for PostgreSQL e a Ververica Platform (VVP)

  • Configurações do servidor ApsaraDB RDS for PostgreSQL

    • Versões compatíveis

      A sincronização é compatível apenas com dados do PostgreSQL 10, PostgreSQL 11, PostgreSQL 12, PostgreSQL 13, PostgreSQL 14, PostgreSQL 15 e PostgreSQL 16. Execute o comando select version() para consultar a versão do PostgreSQL.

    • Decodificação lógica

      • Defina wal_level = logical para ativar a decodificação lógica. Para obter instruções detalhadas, consulte Modify the parameters of an ApsaraDB RDS for PostgreSQL instance. Após configurar corretamente, teste e use esse recurso seguindo o exemplo descrito em Logical decoding.

      • Verifique se a configuração REPLICA IDENTITY da tabela cujos dados serão sincronizados está definida como FULL.

        Execute as instruções SQL a seguir para visualizar e modifique a configuração REPLICA IDENTITY.

        -- View the setting of REPLICA IDENTITY. 
        SELECT CASE relreplident
          WHEN'd'THEN'default'
        WHEN'n'THEN'nothing'
        WHEN'f'THEN'full'
        WHEN'i'THEN'index'
        ENDASreplica_identity
        FROMpg_class
        WHEREoid='mytablename'::regclass;
        
        -- Modify the setting of REPLICA IDENTITY. 
        ALTERTABLEmytablenameREPLICAIDENTITYFULL;
  • Plug-ins de sincronização de dados

    O plug-in de decodificação lógica wal2json tem suporte apenas quando a versão principal do mecanismo da instância ApsaraDB RDS for PostgreSQL é PostgreSQL 11, PostgreSQL 12 ou PostgreSQL 13. O plug-in pgoutput funciona exclusivamente nas versões PostgreSQL 10 ou superior. Recomendamos o uso dos plug-ins pgoutput e decodebuf. Para mais informações, pesquise a opção decoding.plugin.name no tópico PostgreSQL CDC.

    Nota

    Ao usar o plug-in pgoutput para sincronizar dados, certifique-se de usar uma conta privilegiada. Para mais detalhes, consulte Create an account.

Amazon RDS for PostgreSQL

  • Conexão de rede entre o Amazon RDS for PostgreSQL e a VVP

    Para estabelecer a conexão de rede entre o Amazon RDS for PostgreSQL e a VVP, permita que a VVP acesse o Amazon RDS for PostgreSQL pela Internet. Para obter orientações adicionais, consulte How does Realtime Compute for Apache Flink access the Internet? e Controlling access with security groups.

  • Configurações do servidor Amazon RDS for PostgreSQL

    • Versões compatíveis

      A sincronização é compatível apenas com dados do PostgreSQL 10, PostgreSQL 11, PostgreSQL 12, PostgreSQL 13, PostgreSQL 14, PostgreSQL 15 e PostgreSQL 16. Execute o comando select version() para verificar a versão do PostgreSQL.

    • Decodificação lógica

      • Defina o parâmetro rds.logical_replication como 1.

      • Verifique se o valor do parâmetro wal_level é logical. Por padrão, ao definir rds.logical_replication como 1, o sistema ajusta automaticamente wal_level para logical.

      • Verifique se a configuração REPLICA IDENTITY da tabela a ser sincronizada está definida como FULL.

        Execute as instruções SQL a seguir para consultar e modifique a configuração REPLICA IDENTITY.

        -- View the setting of REPLICA IDENTITY. 
        SELECTCASErelreplident
         WHEN'd'THEN'default'
         WHEN'n'THEN'nothing'
         WHEN'f'THEN'full'
         WHEN'i'THEN'index'
         ENDASreplica_identity
        FROMpg_class
        WHEREoid='mytablename'::regclass;
        
        -- Modify the setting of REPLICA IDENTITY. 
        ALTERTABLEmytablenameREPLICAIDENTITYFULL;
      • Requisitos de função da conta

        Por padrão, apenas a conta de gerenciamento da Amazon Web Services (AWS) recebe a função rds_replication no Amazon RDS for PostgreSQL. Usuários com essa função podem gerenciar slots lógicos e ler dados de streaming por meio deles. Para ativar a replicação lógica com uma conta diferente da conta de gerenciamento, atribua a função rds_replication a essa conta. Por exemplo, conceda a função rds_replication ao usuário especificado em <my_user>. A atribuição dessa função exige permissões de superusuário. Além disso, para criar um snapshot inicial sem usar a conta de gerenciamento, conceda à conta a permissão SELECT na tabela que deseja capturar.

    • Plug-in de sincronização de dados

      Use o plug-in pgoutput para a sincronização de dados.

Banco de dados PostgreSQL autogerenciado

  • Conexão de rede entre o banco de dados PostgreSQL autogerenciado e a VVP

    • Se o banco de dados PostgreSQL autogerenciado estiver implantado na Alibaba Cloud e residir na mesma VPC que a VVP, eles já estarão conectados.

    • Se o banco de dados PostgreSQL autogerenciado não estiver implantado na Alibaba Cloud, permita que a VVP acesse o endereço IP público dele. Nesse cenário, conecte o banco de dados à VVP usando o VPN Gateway. Para mais informações, consulte How does Realtime Compute for Apache Flink access the Internet?. Também é necessário modifique o arquivo pg_hba.conf para autorizar o acesso da VVP ao banco de dados. Para obter instruções detalhadas, consulte Update the pg_hba.conf file.

  • Configurações do servidor PostgreSQL autogerenciado

    • Versões compatíveis

      A sincronização é compatível com dados do PostgreSQL 9.6, PostgreSQL 10, PostgreSQL 11, PostgreSQL 12, PostgreSQL 13, PostgreSQL 14, PostgreSQL 15 e PostgreSQL 16. Para consultar a versão instalada, execute o comando select version().

    • Decodificação lógica

      • Garanta que o parâmetro wal_level esteja definido como logical. Modifique o arquivo postgresql.conf e reinicie o banco de dados.

      • Verifique se a configuração REPLICA IDENTITY da tabela a ser sincronizada está definida como FULL.

        Execute as instruções SQL a seguir para visualize e modifique a configuração REPLICA IDENTITY.

        -- View the setting of REPLICA IDENTITY. 
        SELECT CASE relreplident
           WHEN 'd' THEN 'default'
           WHEN 'n' THEN 'nothing'
           WHEN 'f' THEN 'full'
           WHEN 'i' THEN 'index'
           END AS replica_identity
        FROM pg_class
        WHERE oid = 'mytablename'::regclass;
        
        -- Modify the setting of REPLICA IDENTITY. 
        ALTER TABLE mytablename REPLICA IDENTITY FULL;
      • Crie uma conta e conceda as permissões necessárias para sincronizar dados.

        A conta de sincronização de dados deve ter as permissões REPLICATION e LOGIN, além da permissão SELECT para sincronizar os dados da tabela.

        CREATE ROLE <replication_user> REPLICATION LOGIN;
        
        GRANT SELECT ON <table_name> TO <name>;
    • Plug-in de sincronização de dados

      O plug-in pgoutput vem instalado por padrão no PostgreSQL 10 e em versões posteriores. Se você usar outras versões do PostgreSQL ou precisar instale plug-ins alternativos para sincronização, siga as instruções em Logical Decoding Output Plug-in Installation for PostgreSQL.

      Ao usar o plug-in pgoutput como ferramenta de sincronização, verifique se a conta de sincronização é proprietária da tabela cujos dados serão sincronizados. Para garantir essa propriedade, execute as etapas a seguir:

      -- 1. Create a synchronization group. 
      CREATE ROLE <replication_group>;
      
      -- 2. Add the original owner of the table to the synchronization group. 
      GRANT REPLICATION_GROUP TO <original_owner>;
      
      -- 3. Add the data synchronization account to the synchronization group. 
      GRANT REPLICATION_GROUP TO <replication_user>;
      
      -- 4. Transfer the relevant permissions to the synchronization group. 
      ALTER TABLE <table_name> OWNER TO REPLICATION_GROUP;
      Nota

      Nesse caso, a conta de sincronização atua como proprietária apenas de uma única tabela. Portanto, defina o parâmetro debezium.publication.autocreate.mode na cláusula WITH como filtered. Se configurar permissões individuais para cada tabela for complexo, conceda diretamente a permissão pg_monitor à conta de sincronização.

      GRANT pg_monitor TO <replication_user>;