Condividi tramite


Aggiungere la fonte CDC del database PostgreSQL a un flusso di eventi

Questo articolo mostra come aggiungere un'origine di acquisizione delle modifiche dei dati del database PostgreSQL a un flusso di eventi.

Il connettore di origine Change Data Capture (CDC) per PostgreSQL nei flussi di eventi di Microsoft Fabric consente di acquisire uno snapshot dei dati correnti di un database PostgreSQL. Attualmente, PostgreSQL Database Change Data Capture (CDC) è supportato dai servizi seguenti a cui è possibile accedere pubblicamente ai database:

  • database di Azure per PostgreSQL
  • Amazon RDS per il PostgreSQL
  • Amazon Aurora PostgreSQL
  • Google Cloud SQL per PostgreSQL

Dopo aver aggiunto l'origine CDC del database PostgreSQL al flusso di eventi, acquisisce le modifiche a livello di riga alle tabelle specificate. Queste modifiche possono quindi essere elaborate in tempo reale e inviate a destinazioni diverse per ulteriori analisi.

Prerequisiti

Abilitare CDC nel database PostgreSQL

Questa sezione usa database di Azure per PostgreSQL come esempio.

Seguire questa procedura per abilitare CDC nel Server Flessibile del Database di Azure per PostgreSQL:

  1. Nella pagina del portale di Azure del Database di Azure per PostgreSQL Server flessibile, seleziona Parametri del server nel menu di navigazione.

  2. Nella pagina Parametri del server:

    • Imposta wal_level su logico.
    • Aggiorna il max_worker_processes ad almeno 16.

    Una schermata che mostra l'abilitazione di CDC per una distribuzione di server flessibile.

  3. Salvare le modifiche e riavviare il server.

  4. Verificare che l'istanza del Server flessibile di Database di Azure per PostgreSQL consenta il traffico di rete pubblico.

  5. Concedere le autorizzazioni di replica dell'utente amministratore eseguendo l'istruzione SQL seguente. Se si vuole usare un altro account utente per connettere il database PostgreSQL per recuperare CDC, assicurarsi che l'utente sia il proprietario della tabella .

    ALTER ROLE <admin_user_or_table_owner_user> WITH REPLICATION;
    

Avviare la procedura guidata Selezionare un'origine dati

Se non è ancora stata aggiunta alcuna origine al flusso di eventi, selezionare il riquadro Usa origine esterna .

Screenshot che mostra la selezione del tile per usare un'origine esterna.

Se si aggiunge l'origine a un flusso di eventi già pubblicato, passare alla modalità Modifica. Sulla barra multifunzione selezionare Aggiungi origine>Origini esterne.

Screenshot che mostra le selezioni per l'aggiunta di fonti esterne.

Nella pagina Selezionare un'origine dati, cercare e selezionare Connetti nel riquadro PostgreSQL DB (CDC).

Screenshot che mostra la selezione di Azure Database per PostgreSQL (CDC) come origine nella procedura guidata Ottieni eventi.

Configurare e connettersi a PostgreSQL Database CDC

  1. Nella pagina Connetti, seleziona Nuova connessione.

    Screenshot che mostra la pagina Connetti per un database PostgreSQL di Azure con il collegamento Nuova connessione evidenziato.

  2. Nella sezione Impostazioni connessione immettere le informazioni seguenti.

    • Server: indirizzo del server del database PostgreSQL, ad esempio my-pgsql-server.postgres.database.azure.com.

    • Database: nome del database, ad esempio mio_database.

      Screenshot che mostra la sezione Impostazioni di Connessione per il connettore di database PostgreSQL di Azure.

    • Nome connessione: immettere un nome per la connessione.

    • Tipo di autenticazione, selezionare Basic e immettere il nome utente e la password per il database.

      Nota

      Attualmente, i flussi di eventi di Fabric supportano solo l'autenticazione di base .

    • Selezionare Connetti per completare le impostazioni di connessione. Screenshot che mostra la sezione Credenziali di Connessione per il connettore di database PostgreSQL di Azure.

  3. Porta: immettere il numero di porta del server. Il valore predefinito è 5432. Se la connessione cloud selezionata è configurata in Gestire connessioni e gateway, assicurarsi che il numero di porta corrisponda a quello impostato. Se non corrispondono, il numero di porta nella connessione cloud in Gestisci connessioni e gateway ha la precedenza.

  4. È possibile scegliere tra due opzioni durante l'acquisizione delle modifiche dalle tabelle di database:

    • Tutte le tabelle: acquisisci le modifiche da ogni tabella nel database.
    • Immettere i nomi della tabella: consente di specificare un subset di tabelle usando un elenco delimitato da virgole. È possibile usare: identificatori di tabella completi nel formato schemaName.tableName o espressioni regolari valide. Esempi:
    • dbo.test.*: selezionare tutte le tabelle i cui nomi iniziano con test nello dbo schema.
    • dbo\.(test1|test2): selezionare dbo.test1 e dbo.test2.

    È possibile combinare entrambi i formati nell'elenco. Il limite di caratteri totale per l'intera voce è di 102.400 caratteri.

  5. Nome slot (facoltativo): immettere il nome dello slot di decodifica logica PostgreSQL creato per lo streaming delle modifiche da un particolare plug-in per un database o uno schema specifico. Il server usa questo slot per trasmettere eventi al connettore di streaming Eventstream. Deve contenere solo lettere minuscole, numeri e caratteri di sottolineatura.

    • Se non specificato, viene usato un GUID per creare lo slot, richiedendo le autorizzazioni appropriate per il database.
    • Se esiste un nome di slot specificato, il connettore lo usa direttamente.
  6. È possibile espandere Impostazioni avanzate per accedere ad altre opzioni di configurazione per l'origine CDC del database PostgreSQL:

    • Nome pubblicazione: specifica il nome della pubblicazione di replica logica PostgreSQL da usare. Deve corrispondere a una pubblicazione esistente nel database oppure verrà creata automaticamente a seconda della modalità di creazione automatica. Valore predefinito: dbz_publication

      Nota

      L'utente del connettore deve disporre delle autorizzazioni con privilegi avanzati per creare la pubblicazione. È consigliabile creare manualmente la pubblicazione prima di avviare il connettore per la prima volta per evitare problemi relativi alle autorizzazioni.

    • Modalità di creazione automatica della pubblicazione: controlla se e come viene creata automaticamente la pubblicazione. Le opzioni includono:

      • Filtered (impostazione predefinita): se la pubblicazione specificata non esiste, il connettore ne crea uno che include solo le tabelle selezionate (come specificato nell'elenco di inclusione della tabella).
      • AllTables: se la pubblicazione specificata esiste, il connettore la usa. Se non esiste, il connettore ne crea uno che include tutte le tabelle nel database.
      • Disabled: il connettore non crea una pubblicazione. Se la pubblicazione specificata non è presente, il connettore genera un'eccezione e si arresta. In questo caso, la pubblicazione deve essere creata manualmente nel database.

      Per altre informazioni, vedere la documentazione di Debezium sulla modalità di creazione automatica della pubblicazione

    • Modalità di gestione decimale: Specifica come il connettore gestisce i valori delle colonne di PostgreSQL:

      • Precise: rappresenta i valori usando tipi decimali esatti ,ad esempio Java BigDecimal, per garantire la precisione completa e l'accuratezza nella rappresentazione dei dati.
      • Double: converte i valori in numeri a virgola mobile e precisione doppia. Ciò migliora l'usabilità e le prestazioni, ma può comportare una perdita di precisione.
      • String: codifica i valori come stringhe formattate. Questo li rende facili da utilizzare nei sistemi downstream, ma perde informazioni semantiche sul tipo numerico originale.
    • Modalità snapshot: specificare i criteri per l'esecuzione di uno snapshot all'avvio del connettore:

      • Initial: il connettore esegue uno snapshot solo quando non sono stati registrati offset per il nome del server logico o se rileva che non è stato completato uno snapshot precedente. Al termine dello snapshot, il connettore inizia a trasmettere i record degli eventi per le modifiche successive al database.
      • InitialOnly: il connettore esegue uno snapshot solo quando per il nome del server logico non sono stati registrati offset. Al termine dello snapshot, il connettore si arresta. Non esegue la transizione allo streaming per leggere gli eventi di modifica dal binlog.
      • NoData: il connettore esegue uno snapshot che acquisisce solo lo schema, ma non i dati della tabella. Impostare questa opzione se non è necessario uno snapshot coerente dei dati, ma sono necessarie solo le modifiche apportate dall'avvio del connettore.
    • Query di azione del heartbeat: specifica una query che il connettore esegue nel database di origine quando invia un messaggio di heartbeat.

    • Override dell'istruzione di selezione snapshot: specifica le righe della tabella da includere in uno snapshot. Utilizzare la proprietà se si desidera che uno snapshot includa solo un subset delle righe di una tabella. Questa proprietà influisce solo sui snapshot. Non si applica agli eventi letti dal connettore dal log.

  7. Nella pagina Rivedi e connetti esaminare il riepilogo e quindi selezionare Aggiungi.

    Screenshot che mostra la pagina Rivedi e crea compilata per il connettore di database PostgreSQL di Azure.

Visualizzare il flusso di eventi aggiornato

  1. È possibile visualizzare l'origine CDC del database di PostgreSQL aggiunta al flusso di eventi in Modalità modifica.

    Una screenshot della fonte CDC del database PostgreSQL in streaming nella vista di modifica.

  2. Per implementare l'origine CDC del database PostgreSQL appena aggiunta, selezionare Pubblica. Dopo aver completato questi passaggi, l'origine CDC del database PostgreSQL è disponibile per la Visualizzazione in diretta.

    Screenshot dell'origine in streaming del database PostgreSQL CDC nella vista Live.

Altri connettori: