Connettore Beam HBase Bigtable
Per aiutarti a utilizzare Bigtable in una pipeline Dataflow, sono disponibili due connettori I/O Beam Bigtable open source.
Se esegui la migrazione da HBase a Bigtable o la tua applicazione chiama l'API HBase, utilizza il connettore Beam HBase Bigtable
(CloudBigtableIO
) descritto in questa pagina.
In tutti gli altri casi, devi utilizzare il connettore Beam Bigtable
(BigtableIO
) in combinazione con il client Cloud Bigtable per Java,
che funziona con le API Cloud Bigtable. Per iniziare a utilizzare questo connettore, consulta Connettore Bigtable Beam.
Per ulteriori informazioni sul modello di programmazione Apache Beam, consulta la documentazione di Beam.
Inizia a utilizzare HBase
Il connettore Beam Bigtable HBase è scritto in Java ed è basato sul client Bigtable HBase per Java. È compatibile con l'SDK Dataflow 2.x per Java, basato su Apache Beam. Il codice sorgente del connettore è disponibile su GitHub nel repository googleapis/java-bigtable-hbase.
Questa pagina fornisce una panoramica su come utilizzare le trasformazioni Read
e Write
.
Configura l'autenticazione
Per utilizzare gli Java esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia alla gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Per informazioni sulla configurazione dell'autenticazione per un ambiente di produzione, consulta Set up Application Default Credentials for code running on Google Cloud.
Aggiungere il connettore a un progetto Maven
Per aggiungere il connettore Beam Bigtable HBase a un progetto Maven, aggiungi
l'elemento Maven al file pom.xml
come dipendenza:
Specifica la configurazione di Bigtable
Crea un'interfaccia di opzioni per consentire gli input per l'esecuzione della pipeline:
Quando leggi da o scrivi in Bigtable, devi fornire un oggetto di configurazione CloudBigtableConfiguration
. Questo oggetto specifica l'ID progetto e l'ID istanza della tabella, nonché il nome della tabella stessa:
Per la lettura, fornisci un oggetto di configurazione CloudBigtableScanConfiguration
,
che ti consente di specificare un oggetto Scan
di Apache HBase che
limita e filtra i risultati di una lettura. Per informazioni dettagliate, consulta Lettura da
Bigtable.
Leggere da Bigtable
Per leggere da una tabella Bigtable, applica una trasformazione Read
al risultato di un'operazione CloudBigtableIO.read
. La trasformazione Read
restituisce un
PCollection
di oggetti Result
HBase, in cui ogni elemento
nel PCollection
rappresenta una singola riga della tabella.
Per impostazione predefinita, un'operazione CloudBigtableIO.read
restituisce tutte le righe della tabella. Puoi utilizzare un oggetto HBase Scan
per limitare la lettura a un intervallo di chiavi di riga all'interno della tabella o per applicare filtri ai risultati della lettura. Per utilizzare un oggetto Scan
, includilo nel
CloudBigtableScanConfiguration
.
Ad esempio, puoi aggiungere un Scan
che restituisce solo la prima coppia chiave-valore
da ogni riga della tabella, utile per conteggiare il numero di righe nella tabella:
Scrivere in Bigtable
Per scrivere in una tabella Bigtable, apply
un'operazione CloudBigtableIO.writeToTable
. Dovrai eseguire questa operazione su un PCollection
di oggetti HBase Mutation
, che possono includere oggetti Put
e Delete
.
La tabella Bigtable deve già esistere e deve avere definito le famiglie di colonne appropriate. Il connettore Dataflow non
crea tabelle e famiglie di colonne dinamicamente. Puoi utilizzare l'interfaccia a riga di comando
cbt
per creare una tabella e configurare le famiglie di colonne oppure puoi farlo in modo programmatico.
Prima di scrivere in Bigtable, devi creare la pipeline Dataflow in modo che le operazioni put ed eliminate possano essere serializzate sulla rete:
In generale, dovrai eseguire una trasformazione, ad esempio ParDo
, per formattare
i dati di output in una raccolta di oggetti Put
o Delete
di HBase. L'esempio seguente mostra una trasformazione DoFn
che prende il valore corrente e lo utilizza come chiave di riga per un Put
. Puoi quindi scrivere gli oggetti Put
in Bigtable.
Per attivare il controllo del flusso di scrittura batch, impostaBIGTABLE_ENABLE_BULK_MUTATION_FLOW_CONTROL
su true
. Questa funzionalità limita automaticamente la frequenza del traffico per le richieste di scrittura batch e consente alla scalabilità automatica di Bigtable di aggiungere o rimuovere automaticamente i nodi per gestire il tuo job Dataflow.
Ecco l'esempio completo di scrittura, inclusa la variazione che consente il controllo del flusso di scrittura batch.