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 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 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 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 alterações 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 IDENTIDADE DE CÓPIA em uma tabela, o Datastream vai 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
- Amazon Aurora PostgreSQL
Limitações conhecidas
As limitações conhecidas para o uso do Datastream com um banco de dados PostgreSQL como fonte incluem:
- Os streams são limitados a 10.000 tabelas.
- Uma tabela com mais de 500 milhões de linhas só pode ser preenchida se as seguintes condições forem 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
,XML
, tipos de dados compostos ou tipos de 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.
- As tabelas sem chaves primárias precisam ter uma IDENTIDADE DE REPLICATA. Caso contrário, apenas os eventos
INSERT
sã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 é compatível com a 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:
- Descartar colunas.
- Como adicionar colunas no meio de uma tabela.
- Alterar o tipo de dados de uma coluna.
- Reordenar colunas.
- Como descartar tabelas (relevantes se a mesma tabela for recriada com novos dados adicionados).
- O Datastream não é compatível com colunas dos tipos de dados
geometric
. - O Datastream não é compatível com colunas dos tipos de dados
range
. - O Datastream não oferece suporte a 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
para linhas que incluem valoresTOAST
em colunas que fazem parte da identidade da réplica da tabela. Esses eventos são descartados. - O Datastream não é compatível com a 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 é compatível com a replicação de linhas que incluem valores
NaN
nas colunasNUMERIC (precision, scale)
. Os valores nessas colunas são substituídos por valores deNULL
. - O Datastream não é compatível com a replicação de colunas do tipo de dados hstore. Os valores nessas colunas são substituídos por valores de
NULL
. - O Datastream não oferece suporte a conexões SSL/TLS que exigem certificados do cliente.
- O Datastream não é compatível com a 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) definidas. Para saber como contornar essa limitação, consulte Comportamento e limitações da origem do PostgreSQL.
- O Datastream não captura as mudanças feitas nas colunas geradas.
A seguir
- Saiba como configurar uma origem do PostgreSQL para uso com o Datastream.