1. Panoramica
Questo codelab illustra la procedura per analizzare uno stream di dati sulle transazioni con carta di credito scritti in Bigtable. Scoprirai come utilizzare il modello di flussi di modifiche di Bigtable in BigQuery per esportare i dati in tempo reale. Quindi, vedrai le tecniche per eseguire query sul log delle modifiche e come riformattare i dati per creare una dashboard utilizzando Looker.
Questo codelab è destinato agli utenti tecnici che hanno familiarità con Bigtable, utilizzando strumenti a riga di comando e servizi di flussi di eventi.
Questo codelab mostra come:
- Crea una tabella Bigtable con un flusso di modifiche abilitato.
- Creare un set di dati BigQuery.
- Esegui il deployment del modello Dataflow
Bigtable change streams to BigQuery.
- Esegui una query sullo stream di eventi in BigQuery.
- Visualizza lo stream di eventi con Looker.
Questo diagramma mostra l'architettura del sistema di cui eseguirai il deployment.
2. Configurazione del progetto
- Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud.
- Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
- Visita questa pagina di abilitazione delle API precompilate per attivare le API necessarie per Dataflow, Bigtable, BigQuery, Looker e Cloud Storage.
3. Crea un set di dati BigQuery
Analizzerai i dati utilizzando BigQuery più avanti nel codelab. Segui queste istruzioni per creare il set di dati per l'output della pipeline di dati.
- Nella console Google Cloud, vai alla pagina BigQuery.
- Nel riquadro Explorer, individua il nome del progetto e fai clic sul menu extra (tre puntini verticali accanto all'ID progetto).
- Fai clic su Crea set di dati.
- Nel riquadro Crea set di dati, segui questi passaggi:
- In ID set di dati, inserisci
bigtable_bigquery_tutorial
. - Lascia invariate le restanti impostazioni predefinite.
- Fai clic su Crea set di dati.
4. Crea una tabella Bigtable con un flusso di modifiche abilitato
Bigtable è un servizio di database NoSQL scalabile orizzontalmente e a bassa latenza. Un caso d'uso comune è la pubblicazione di dati finanziari. Qui creerai una tabella che può memorizzare le transazioni con carta di credito. Bigtable può gestire le scritture ad alta velocità effettiva delle transazioni in tutto il mondo e potrebbe persino utilizzare questi dati per il rilevamento delle frodi in tempo reale.
- Nella console Google Cloud, vai alla pagina delle istanze Bigtable.
- Fai clic sull'ID dell'istanza che stai utilizzando per questo tutorial. Se non è disponibile un'istanza, creane una con un nome a tua scelta in una regione vicino a te. Per tutto il resto, puoi utilizzare le configurazioni predefinite.
- Nel riquadro di navigazione a sinistra, fai clic su Tables (Tabelle).
- Fai clic su Crea tabella.
- Assegna alla tabella il nome
retail-database
. - Aggiungi una famiglia di colonne denominata
transactions
. - Seleziona Attiva flusso di modifiche.
- Lascia invariati i valori predefiniti del criterio di raccolta dei rifiuti e del periodo di conservazione.
- Fai clic su Crea.
5. Inizializzare una pipeline di dati per acquisire il flusso di modifiche
Le prestazioni di Bigtable sono ottimali per le letture puntuali e le scansioni dell'intervallo di righe, ma l'analisi a livello di tabella può mettere a dura prova la capacità di pubblicazione e le risorse della CPU. BigQuery è ideale per l'analisi a livello di tabella, quindi la soluzione che utilizzerai qui è la scrittura doppia. Ciò significa che scriverai i dati in Bigtable e BigQuery, una tecnica comune. Non sarà necessaria alcuna codifica aggiuntiva perché utilizzerai il modello Dataflow Bigtable change streams to BigQuery
: quando i dati vengono scritti in Bigtable, la pipeline scriverà un record di modifica in BigQuery. Una volta che i dati sono in BigQuery, puoi eseguire query ottimizzate sull'intero set di dati che non influiscono sul rendimento dei dati di pubblicazione in Bigtable.
- Nella pagina Tabelle di Bigtable, individua la tabella
retail-database
. - Nella colonna Stream di modifiche, fai clic su Connetti.
- Nella finestra di dialogo Connetti con Dataflow, seleziona BigQuery.
- Fai clic su Crea job Dataflow.
- Inserisci i valori parametro negli appositi campi. Non è necessario fornire parametri facoltativi.
- Imposta l'ID profilo dell'applicazione Cloud Bigtable su
default
. - Imposta il set di dati BigQuery su
bigtable_bigquery_tutorial
.
- Fai clic su Esegui job.
- Prima di procedere, attendi che lo stato del job sia In fase di avvio o In esecuzione. Una volta messo in coda il job, possono essere necessari circa cinque minuti. La pagina verrà aggiornata automaticamente. Questo modello crea un job di streaming, in modo da poter elaborare continuamente i nuovi dati scritti in Bigtable finché il job non viene interrotto manualmente.
6. Scrivere alcuni dati in Bigtable
Ora scriverai un anno di transazioni con carta di credito nella tabella Bigtable. Questo set di dati di esempio include informazioni come il numero di carta di credito, il nome e l'ID del commerciante e l'importo. In un'applicazione di elaborazione delle carte di credito, questi dati verrebbero inseriti nel database in tempo reale a ogni transazione.
- Apri Cloud Shell facendo clic sul pulsante nell'angolo in alto a destra della console Cloud.
- Se richiesto, accetta la richiesta di autorizzazione di Cloud Shell.
- Scaricare il set di dati.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- Imposta le variabili di ambiente nella riga di comando
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- Utilizza l'interfaccia a riga di comando
cbt
per scrivere un numero di transazioni con carta di credito nella tabellaretail-database
.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
L'output sarà
Done importing 10000 rows.
7. Visualizza i log delle modifiche in BigQuery
- Nella console Google Cloud, vai alla pagina BigQuery.
- Nel riquadro Explorer, espandi il progetto e il set di dati
bigtable_bigquery_tutorial
. - Fai clic sulla tabella
retail-database_changelog
. Potresti dover aggiornare il set di dati se la tabella non è presente. - Per visualizzare il log delle modifiche, fai clic su Anteprima.
Prova alcune query
Ora puoi eseguire alcune query su questo set di dati per ottenere alcuni approfondimenti. Le query SQL sono fornite qui, ma la documentazione Eseguire query su un log delle modifiche di Bigtable in BigQuery contiene ulteriori informazioni su come scrivere query per i dati del log delle modifiche.
Cercare una transazione
Utilizza la seguente query per cercare i dati di una transazione specifica.
SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"
Vedrai che ogni colonna scritta è stata trasformata in una singola riga in BigQuery.
Trovare il numero di acquisti in ogni categoria
Utilizza la seguente query per conteggiare il numero di acquisti per categoria.
SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category
Riformattare i dati
Per ricostruire ogni transazione in un'unica riga della tabella BigQuery, esegui il pivot dei dati e salva il risultato in una nuova tabella. Si tratta di un formato più gestibile per le query.
CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
SELECT *, parse_numeric(amount) as sales_dollars FROM (
SELECT row_key, timestamp, column, value
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
)
PIVOT (
MAX(value)
FOR column in ("merchant", "amount", "category", "transaction_date")
)
)
Crea una dashboard di Looker
- Fai clic su Vai alla visualizzazione per passare alla pagina dei dettagli della nuova visualizzazione.
- Fai clic su Esporta.
- Seleziona Esplora con Looker Studio.
8. Aggiungere grafici alla dashboard
Ora puoi creare un grafico delle informazioni per facilitarne l'interpretazione e la condivisione sotto forma di report. Aggiungerai tre grafici alla dashboard:
- Importi delle transazioni nel tempo
- Transazioni totali per ogni commerciante
- Percentuale di transazioni per categoria
Configurare la pagina
- Fai clic su ciascun grafico esistente e premi Canc per rimuoverlo.
- Seleziona Proprietà sul lato destro della pagina per modificare i dati del grafico.
Aggiungi i grafici
Importi delle transazioni nel tempo
- Fai clic su Aggiungi un grafico e crea un grafico delle serie temporali.
- Imposta Dimensione su
transaction_date
.
- Imposta Metrica su
sales_dollars
.
Transazioni totali per ogni commerciante
- Fai clic su Aggiungi un grafico e crea una tabella.
- Imposta Dimensione su
merchant
. - Imposta Metrica su
sales_dollars
Percentuale di transazioni per categoria
- Fai clic su Aggiungi un grafico e crea un grafico a torta.
- Imposta Dimensione su
category
. - Imposta Metrica su
sales_dollars
.
Visualizzare le modifiche in tempo reale
Dedica del tempo a esplorare i valori nei grafici. Puoi fare clic su commercianti o categorie specifici nella tabella per filtrare tutti i grafici in base a questi valori specifici, in modo da ottenere ulteriori approfondimenti. A questo punto, puoi scrivere altri dati e vedere come questo grafico si aggiorna in tempo reale.
- Torna a Cloud Shell.
- Scaricare e scrivere il secondo set di dati.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv column-family=transactions
- Torna alla dashboard di Looker e aggiorna i dati con il comando
Ctrl+Shift+E
o fai clic su Aggiorna dati nel menu Visualizza. Ora dovresti vedere i dati di gennaio 2024 nei grafici.
Esistono molte varianti di grafici e metriche che puoi creare oltre a questo modello. Scopri di più nella documentazione di Looker.
9. Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Interrompi la pipeline del flusso di modifiche
- Nella console Google Cloud, vai alla pagina Job Dataflow.
- Seleziona il tuo job di streaming dall'elenco dei job.
- Nella barra di navigazione, fai clic su Interrompi.
- Nella finestra di dialogo Arresta job, seleziona Annulla, quindi fai clic su Arresta job.
Elimina le risorse Bigtable
Se hai creato un'istanza Bigtable per questo tutorial, puoi eliminarla o eseguire la pulizia della tabella che hai creato.
- Nella console Google Cloud, vai alla pagina delle istanze Bigtable.
- Fai clic sull'ID dell'istanza che stai utilizzando per questo tutorial.
- Nel riquadro di navigazione a sinistra, fai clic su Tables (Tabelle).
- Individua la tabella
retail-database
. - Fai clic su Modifica.
- Deseleziona Attiva flusso di modifiche.
- Fai clic su Salva.
- Apri il menu extra della tabella.
- Fai clic su Elimina e inserisci il nome della tabella per confermare.
- (Facoltativo) Elimina l'istanza se ne hai creata una nuova per questo tutorial
Elimina il set di dati BigQuery
- Nella console Google Cloud, vai alla pagina BigQuery.
- Nel riquadro di esplorazione, trova il set di dati
bigtable_bigquery_tutorial
e fai clic su di esso. - Fai clic su Elimina, digita elimina e poi fai clic su Elimina per confermare.