Essa seção contém informações sobre:
- O comportamento de como o Datastream lida com os dados extraídos de um banco de dados PostgreSQL de origem
- As versões do banco de dados PostgreSQL que o Datastream aceita.
- Uma visão geral de como configurar um banco de dados PostgreSQL de origem para que os dados possam ser transmitidos dele para um destino
- Limitações conhecidas para o uso do banco de dados PostgreSQL como fonte
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 mudanças gravadas no banco de dados e permite consumir e processar essas mudanças 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 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 tabelas específicas, podem ser selecionados.
- Todos os dados históricos são replicados.
- Todas as mudanças na linguagem de manipulação de dados (DML), como inserções, atualizações e exclusões dos bancos de dados e tabelas especificados, são replicadas.
- Apenas alterações confirmadas são replicadas.
- Se você definir uma REPLICA IDENTITY em uma tabela, o Datastream tratará as colunas especificadas como chaves primárias.
Versões
O Datastream é compatível com o PostgreSQL versão 10 e mais recentes.
O Datastream é compatível com os seguintes tipos de banco de dados PostgreSQL:
- PostgreSQL auto-hospedado
- Cloud SQL para PostgreSQL
- AlloyDB para PostgreSQL
- AlloyDB Omni
- Amazon RDS para PostgreSQL
- PostgreSQL do Amazon Aurora
Limitações conhecidas
Limitações conhecidas do uso do Datastream com um banco de dados PostgreSQL como origem incluem:
- 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:
- A tabela tem um índice de árvore B exclusivo.
- O índice não inclui colunas dos seguintes tipos:
DOUBLE
,FLOAT
,MONEY
,REAL
,JSON
,JSONB
,BYTEA
,TXID
eXML
ou dados geométricos. - Nenhuma das colunas do índice é anulável.
- Todas as colunas do índice estão em ordem crescente ou decrescente.
- Todas as colunas do índice são incluídas no fluxo.
- Tabelas sem chaves primárias precisam ter uma REPLICA IDENTITY. Caso contrário, apenas eventos
INSERT
serão replicados para o destino. - O Datastream não pode se replicar de uma instância de réplica de leitura porque o PostgreSQL não é compatível com 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:
- Eliminando colunas.
- Adicionar colunas no meio de uma tabela.
- Alterar o tipo de dados de uma coluna.
- Reordenando colunas.
- Como descartar tabelas (relevantes se a mesma tabela for recriada com novos dados adicionados).
- O Datastream não oferece suporte a colunas dos tipos de dados
geometric
. - O Datastream não é compatível com colunas dos tipos de dados
range
. - O Datastream não aceita matrizes de tipos de dados sem suporte, matrizes de tipos de dados definidos pelo usuário (incluindo
ENUM
) ou matrizes de tipos de dadosDATE
,TIMESTAMP
ouTIMESTAMP WITH TIME ZONE
. Essas colunas são ignoradas. - O Datastream não oferece suporte à replicação de eventos
UPDATE
em linhas que incluem valoresTOAST
em colunas que fazem parte da identidade de réplica da tabela. Esses eventos são descartados. - O Datastream não oferece suporte à replicação de linhas que incluem valores
JSON
ouJSONB
com mais de 2.950 objetos aninhados. Os eventos que contêm esses valoresJSON
ouJSONB
não são replicados no banco de dados de destino. - O Datastream não oferece suporte à replicação de linhas que incluem valores
NaN
em colunasNUMERIC (precision, scale)
. Os valores nessas colunas são substituídos por valoresNULL
. - O Datastream não oferece 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 de cliente.
- O Datastream não aceita a replicação de registros não ASCII de um banco de dados de origem codificado em SQL_ASCII. Esses registros serão descartados.
- O Datastream não é compatível com a replicação de tabelas com políticas de segurança no nível da linha (RLS) 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.
A seguir
- Saiba como configurar uma origem do PostgreSQL para uso com o Datastream.