Database PostgreSQL di origine

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:
    1. La tabella ha un indice B-tree univoco.
    2. L'indice non include colonne dei seguenti tipi: DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID, XML o tipi di dati geometrici.
    3. Nessuna colonna dell'indice presenta valori null.
    4. Tutte le colonne dell'indice sono in ordine crescente oppure tutte le colonne dell'indice sono in ordine decrescente.
    5. 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 dati DATE, TIMESTAMP o TIMESTAMP WITH TIME ZONE. Queste colonne vengono ignorate.
  • Datastream non supporta la replica di eventi UPDATE per le righe che includono valori TOAST 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 o JSONB con più di 2950 oggetti nidificati. Gli eventi contenenti questi valori JSON o JSONB non vengono replicati nel database di destinazione.
  • Datastream non supporta la replica di righe che includono valori NaN in NUMERIC (precision, scale) colonne. I valori in queste colonne vengono sostituiti con i valori NULL.
  • 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.