Trasmettere le modifiche in streaming con Dataflow

Il connettore Beam di Bigtable ti consente di utilizzare Dataflow per leggere i record di modifica dei dati di Bigtable senza dover monitorare o elaborare modifiche alle partizioni nel codice, perché il connettore gestisce la logica per te.

Questo documento descrive come configurare e utilizzare il connettore Beam di Bigtable per leggere un flusso di modifiche utilizzando una pipeline Dataflow. Prima di leggere questo documento, consulta la Panoramica dei flussi di modifiche e familiarizza con Dataflow.

Alternative alla creazione di una pipeline

Se non vuoi creare la tua pipeline Dataflow, puoi utilizzare una delle seguenti opzioni.

Puoi utilizzare un modello Dataflow fornito da Google.

Puoi anche utilizzare gli esempi di codice del tutorial o della guida rapida di Bigtable come punto di partenza per il tuo codice.

Assicurati che il codice generato utilizzi google cloud libraries-bom versione 26.14.0 o successive.

Dettagli connettore

Il metodo del connettore Beam di Bigtable, BigtableIO.readChangeStream, consente di leggere un flusso di record di modifica dei dati (ChangeStreamMutation) che puoi elaborare. Il connettore Beam di Bigtable è un componente del repository GitHub di Apache Beam. Per una descrizione del codice del connettore, consulta i commenti in BigtableIO.java.

Devi utilizzare il connettore con Beam versione 2.48.0 o successive. Controlla il supporto di runtime di Apache Beam per assicurarti di utilizzare una versione supportata di Java. Poi puoi eseguire il deployment di una pipeline che utilizza il connettore a Dataflow, che gestisce il provisioning e la gestione delle risorse e assiste con la scalabilità e l'affidabilità dell'elaborazione dei dati di flusso.

Per ulteriori informazioni sul modello di programmazione di Apache Beam, consulta la documentazione di Beam.

Raggruppare i dati senza orari degli eventi

I record di modifica dei dati trasmessi in streaming utilizzando il connettore Beam di Bigtable non sono compatibili con le funzioni Dataflow che dipendono dagli orari degli eventi.

Come spiegato in Replica e filigrane, una filigrana bassa potrebbe non avanzare se la replica per la partizione non ha raggiunto il resto dell'istanza. Quando una filigrana bassa smette di avanzare, il flusso di modifiche può bloccarsi.

Per evitare che il flusso si blocchi, il connettore Beam di Bigtable restituisce tutti i dati con un timestamp di output pari a zero. Il timestamp zero fa sì che Dataflow consideri tutti i record di modifica dei dati come dati in ritardo. Di conseguenza, le funzionalità di Dataflow che dipendono dagli orari degli eventi non sono compatibili con i flussi di modifiche in tempo reale di Bigtable. In particolare, non puoi utilizzare le funzioni di finestra, i trigger di orario degli eventi o i timer di orario degli eventi.

In alternativa, puoi utilizzare GlobalWindows con trigger non di orario degli eventi per raggruppare questi dati in ritardo in riquadri, come mostrato nell'esempio del tutorial. Per informazioni dettagliate su trigger e riquadri, consulta Trigger nella guida alla programmazione di Beam.

Scalabilità automatica