Database PostgreSQL di origine

Questa sezione contiene informazioni su:

  • Il comportamento del modo in cui Datastream gestisce i dati estratti da un database PostgreSQL di origine
  • Le versioni del database PostgreSQL supportate da Datastream
  • Una panoramica su come configurare un database PostgreSQL di origine in modo che i dati possano essere trasmessi in flusso da un 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 utilizzare 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 PostgreSQL standard per PostgreSQL 10 e versioni successive.

  • È possibile 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 DML (Data Manipulation Language), ad esempio inserimenti, aggiornamenti ed eliminazioni dai database e dalle tabelle specificati, vengono replicate.
  • Vengono replicate solo le modifiche committate.
  • Se definisci una REPLICA IDENTITY in una tabella, Datastream considera 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:

  • Gli stream sono limitati a 10.000 tabelle.
  • Una tabella con più di 500 milioni di righe non può essere sottoposta a backfill, a meno che non vengano soddisfatte le seguenti condizioni:
    1. La tabella ha un indice B-tree univoco.
    2. L'indice non include le colonne dei seguenti tipi: DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID e XML o tipi di dati geometrici.
    3. Nessuna delle colonne dell'indice può ammettere valori nulli.
    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 valore REPLICA IDENTITY. In caso contrario, solo INSERT eventi 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 i dati potrebbero essere danneggiati. Le seguenti modifiche allo schema potrebbero danneggiare i dati o compromettere l'elaborazione degli eventi downstream:
    • Eliminazione di colonne in corso...
    • Aggiungere 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 l'aggiunta di nuovi dati).
  • Datastream non supporta le colonne con i tipi di dati geometric.
  • Datastream non supporta le colonne con i tipi di dati range.
  • Datastream non supporta gli array di tipi di dati non supportati, gli array di tipi di dati definiti dall'utente (incluso ENUM) o gli array di tipi di dati DATE, TIMESTAMP o TIMESTAMP WITH TIME ZONE. Queste colonne vengono ignorate.
  • Datastream non supporta la replica degli eventi UPDATE per le righe che includono valori TOAST nelle colonne che fanno parte dell'identità della replica della tabella. Questi eventi vengono eliminati.
  • 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 con codifica SQL_ASCII. Questi record vengono eliminati.
  • Datastream non supporta la replica di tabelle con criteri di sicurezza a livello di riga definiti. Per informazioni su come ignorare questa limitazione, consulta Comportamento e limitazioni dell'origine PostgreSQL.
  • Datastream non acquisisce le modifiche apportate alle colonne generate.

Passaggi successivi