Banco de dados PostgreSQL de origem

Essa seção contém informações sobre:

  • O comportamento de como o Datastream lida com dados que estão sendo extraídos de um banco de dados PostgreSQL de origem
  • As versões do banco de dados PostgreSQL compatíveis com o Datastream
  • Uma visão geral de como configurar um banco de dados PostgreSQL de origem para fazer streaming dos dados dele para um destino
  • Limitações conhecidas para o uso do banco de dados PostgreSQL como origem

Comportamento

O banco de dados PostgreSQL de origem depende do recurso de decodificação lógica. A decodificação lógica expõe todas as alterações confirmadas no banco de dados e permite consumir e processar essas alterações em um formato fácil de usar usando um plug-in de saída. O Datastream usa o plug-in pgoutput, que é o plug-in de decodificação lógica padrão do PostgreSQL para o PostgreSQL 10 e versões mais recentes.

  • Todos os esquemas ou esquemas específicos de uma determinada origem do PostgreSQL, bem como todas as tabelas do esquema ou de tabelas específicas, podem ser selecionados.
  • Todos os dados históricos são replicados.
  • Todas as alterações na linguagem de manipulação de dados (DML, na sigla em inglês), como inserções, atualizações e exclusões de bancos de dados e tabelas especificados, são replicadas.
  • Apenas alterações confirmadas são replicadas.
  • Se você definir uma IDENTIDADE REPLICA em uma tabela, o Datastream tratará as colunas especificadas como chaves primárias.

Versões

O Datastream oferece suporte ao PostgreSQL versão 10 e posteriores.

O Datastream oferece suporte aos seguintes tipos de banco de dados PostgreSQL:

  • PostgreSQL auto-hospedado
  • Cloud SQL para PostgreSQL
  • AlloyDB para PostgreSQL
  • AlloyDB Omni
  • Amazon RDS para PostgreSQL
  • Amazon Aurora PostgreSQL

Limitações conhecidas

Estas são as limitações conhecidas para usar o Datastream com um banco de dados PostgreSQL como origem:

  • Os streams são limitados a 10.000 tabelas.
  • Uma tabela com mais de 500 milhões de linhas não pode ser preenchida, a menos que as seguintes condições sejam atendidas:
    1. A tabela tem um índice de árvore B exclusivo.
    2. O índice não inclui colunas dos seguintes tipos: DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID, XML ou tipos de dados geométricos.
    3. Nenhuma das colunas do índice é anulável.
    4. Todas as colunas do índice estão em ordem crescente ou todas as colunas do índice estão em ordem decrescente.
    5. Todas as colunas do índice são incluídas no stream.
  • As tabelas sem chaves primárias precisam ter uma IDENTITY DE REPLICA. Caso contrário, apenas eventos INSERT serão replicados para o destino.
  • O Datastream não pode replicar de uma instância de réplica de leitura porque o PostgreSQL não oferece suporte à decodificação lógica em réplicas de leitura.
  • Nem todas as alterações no esquema de origem podem ser detectadas automaticamente. Nesse caso, pode ocorrer corrupção de dados. As seguintes alterações de esquema podem causar corrupção de dados ou falha no processamento de eventos downstream:
    • Descartando colunas.
    • Adicionar colunas ao meio de uma tabela.
    • Alterar o tipo de dados de uma coluna.
    • Reordenar colunas.
    • Eliminação de tabelas (relevante se a mesma tabela for recriada com novos dados adicionados).
  • O Datastream não oferece suporte às colunas dos tipos de dados geometric.
  • O Datastream não oferece suporte às colunas dos tipos de dados range.
  • O Datastream não oferece suporte a matrizes de tipos de dados incompatíveis, de tipos de dados definidos pelo usuário (incluindo ENUM) ou de tipos de dados DATE, TIMESTAMP ou TIMESTAMP WITH TIME ZONE. Essas colunas são ignoradas.
  • O Datastream não oferece suporte à replicação de eventos UPDATE para linhas que incluem valores TOAST em colunas que fazem parte da identidade da réplica da tabela. Esses eventos são descartados.
  • O Datastream não oferece suporte à replicação de linhas que incluem valores JSON ou JSONB com mais de 2.950 objetos aninhados. Os eventos com esses valores JSON ou JSONB não são replicados para o banco de dados de destino.
  • O Datastream não é compatível com a replicação de linhas que incluem valores NaN em colunas NUMERIC (precision, scale). Os valores nessas colunas são substituídos por valores NULL.
  • O Datastream não dá suporte à replicação de colunas do tipo de dados hstore. Os valores nessas colunas são substituídos por valores NULL.
  • O Datastream não oferece suporte a conexões SSL/TLS que exigem certificados do cliente.
  • O Datastream não oferece suporte à replicação de registros não ASCII de um banco de dados de origem codificado em SQL_ASCII. Esses registros são descartados.
  • O Datastream não oferece suporte à replicação de tabelas com políticas de segurança no nível da linha (RLS, na sigla em inglês) definidas. Para saber como ignorar essa limitação, consulte Comportamento e limitações da fonte do PostgreSQL.
  • O Datastream não captura as alterações feitas nas colunas geradas.