Questa sezione contiene informazioni su:
- Il comportamento di come Datastream gestisce i dati estratti da un database PostgreSQL di origine
- Le versioni del database PostgreSQL supportate da Datastream
- Panoramica di come configurare un database PostgreSQL di origine in modo che i flussi di dati possano essere trasmessi da questo database a una destinazione
- Limitazioni note per l'utilizzo del database PostgreSQL come origine
Comportamento
Il database PostgreSQL di origine si basa sulla sua funzionalità di decodifica logica. La decodifica logica espone tutte le modifiche impegnate nel database e consente di consumare ed elaborare queste modifiche in un formato facile da usare utilizzando un plug-in di output. Datastream utilizza il plug-in pgoutput
, che è il plug-in di decodifica logica standard PostgreSQL per PostgreSQL 10 e versioni successive.
- Puoi selezionare tutti gli schemi o gli schemi specifici di una determinata origine PostgreSQL, nonché tutte le tabelle dello schema o di tabelle specifiche.
- Tutti i dati storici vengono replicati.
- Tutte le modifiche in Data Manipulation Language (DML), ad esempio inserti, aggiornamenti ed eliminazioni dai database e dalle tabelle specificati, vengono replicate.
- Solo le modifiche di cui hai eseguito il commit vengono replicate.
- Se definisci un valore REPLICA IDENTITY in una tabella, Datastream tratta le colonne specificate come chiavi primarie.
Versioni
Datastream supporta PostgreSQL 10 e versioni successive.
Datastream supporta i seguenti tipi di database PostgreSQL:
- PostgreSQL self-hosted
- Cloud SQL per PostgreSQL
- AlloyDB per PostgreSQL
- AlloyDB Omni
- Amazon RDS per PostgreSQL
- Amazon Aurora PostgreSQL
Limitazioni note
Le limitazioni note per l'utilizzo di Datastream con un database PostgreSQL come origine includono:
- I flussi sono limitati a 10.000 tabelle.
- Non è possibile eseguire il backfill di una tabella con più di 500 milioni di righe, a meno che non vengano soddisfatte le seguenti condizioni:
- La tabella ha un indice B-tree univoco.
- L'indice non include colonne dei seguenti tipi:
DOUBLE
,FLOAT
,MONEY
,REAL
,JSON
,JSONB
,BYTEA
,TXID
,XML
o tipi di dati geometrici. - Nessuna colonna dell'indice presenta valori null.
- Tutte le colonne dell'indice sono in ordine crescente oppure tutte le colonne dell'indice sono in ordine decrescente.
- Tutte le colonne dell'indice sono incluse nel flusso.
- Le tabelle senza chiavi primarie devono avere un'IDENTITÀ REPLICA. In caso contrario, solo gli eventi
INSERT
vengono replicati nella destinazione. - Datastream non può replicare da un'istanza di replica di lettura, perché PostgreSQL non supporta la decodifica logica nelle repliche di lettura.
- Non tutte le modifiche allo schema di origine possono essere rilevate automaticamente, nel qual caso potrebbe verificarsi il danneggiamento dei dati. Le seguenti modifiche allo schema possono causare il danneggiamento dei dati o la mancata elaborazione degli eventi downstream:
- Eliminazione delle colonne in corso...
- Aggiunta di colonne al centro di una tabella.
- Modifica del tipo di dati di una colonna.
- Riordinamento delle colonne.
- Eliminazione delle tabelle (pertinente se la stessa tabella viene poi ricreata con nuovi dati aggiunti).
- Datastream non supporta le colonne dei tipi di dati
geometric
. - Datastream non supporta le colonne dei tipi di dati
range
. - Datastream non supporta array di tipi di dati non supportati, array di tipi di dati definiti dall'utente (tra cui
ENUM
) o array di tipi di datiDATE
,TIMESTAMP
oTIMESTAMP WITH TIME ZONE
. Queste colonne vengono ignorate. - Datastream non supporta la replica di eventi
UPDATE
per le righe che includono valoriTOAST
in colonne che fanno parte dell'identità di replica della tabella. Questi eventi vengono ignorati. - Datastream non supporta la replica di righe che includono valori
JSON
oJSONB
con più di 2950 oggetti nidificati. Gli eventi contenenti questi valoriJSON
oJSONB
non vengono replicati nel database di destinazione. - Datastream non supporta la replica di righe che includono valori
NaN
inNUMERIC (precision, scale)
colonne. I valori in queste colonne vengono sostituiti con i valoriNULL
. - Datastream non supporta la replica di colonne del tipo di dati hstore. I valori in queste colonne vengono sostituiti con i valori
NULL
. - Datastream non supporta le connessioni SSL/TLS che richiedono certificati client.
- Datastream non supporta la replica di record non ASCII da un database di origine codificato SQL_ASCII. Questi record vengono eliminati.
- Datastream non supporta la replica di tabelle con criteri di sicurezza a livello di riga (RLS) definiti. Per informazioni su come bypassare questa limitazione, consulta Comportamento e limitazioni dell'origine PostgreSQL.
- Datastream non acquisisce le modifiche apportate alle colonne generate.