Analizza e visualizza i dati delle transazioni con carta di credito in Bigtable utilizzando BigQuery e Looker

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.

426dc59200875a20.png

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.

336e940307d0e0a.png

2. Configurazione del progetto

  1. Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud.

eb5309715175de69.png

  1. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
  2. 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.

  1. Nella console Google Cloud, vai alla pagina BigQuery.
  2. Nel riquadro Explorer, individua il nome del progetto e fai clic sul menu extra (tre puntini verticali accanto all'ID progetto).
  3. Fai clic su Crea set di dati.

122bc1a411b8dc63.png

  1. 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.

  1. Nella console Google Cloud, vai alla pagina delle istanze Bigtable.
  2. 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.

a2e8de7b66dc42e.png

  1. Nel riquadro di navigazione a sinistra, fai clic su Tables (Tabelle).
  2. Fai clic su Crea tabella.

9c267c00f93747c4.png

  • 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.

696cd1399c354816.png

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.

f4cd9d8faf10ce77.png

  1. Nella pagina Tabelle di Bigtable, individua la tabella retail-database.
  2. Nella colonna Stream di modifiche, fai clic su Connetti.
  3. Nella finestra di dialogo Connetti con Dataflow, seleziona BigQuery.
  4. Fai clic su Crea job Dataflow.
  5. 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.
  1. Fai clic su Esegui job.
  2. 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.

a04908b37c6fe96b.png

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.

  1. Apri Cloud Shell facendo clic sul pulsante nell'angolo in alto a destra della console Cloud.

f6395329b04ecb64.png

  1. Se richiesto, accetta la richiesta di autorizzazione di Cloud Shell.
  2. Scaricare il set di dati.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. Imposta le variabili di ambiente nella riga di comando
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. Utilizza l'interfaccia a riga di comando cbt per scrivere un numero di transazioni con carta di credito nella tabella retail-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

  1. Nella console Google Cloud, vai alla pagina BigQuery.
  2. Nel riquadro Explorer, espandi il progetto e il set di dati bigtable_bigquery_tutorial.
  3. Fai clic sulla tabella retail-database_changelog. Potresti dover aggiornare il set di dati se la tabella non è presente.
  4. Per visualizzare il log delle modifiche, fai clic su Anteprima.

aa97ff01f944832.png

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

  1. Fai clic su Vai alla visualizzazione per passare alla pagina dei dettagli della nuova visualizzazione.
  2. Fai clic su Esporta.
  3. Seleziona Esplora con Looker Studio.

bb45482e9101b0f.png

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

426dc59200875a20.png

Configurare la pagina

  1. Fai clic su ciascun grafico esistente e premi Canc per rimuoverlo.
  2. Seleziona Proprietà sul lato destro della pagina per modificare i dati del grafico.

Aggiungi i grafici

Importi delle transazioni nel tempo

  1. Fai clic su Aggiungi un grafico e crea un grafico delle serie temporali.
  2. Imposta Dimensione su transaction_date.
  1. Imposta Metrica su sales_dollars.

372bdf2a2bcdb817.png

Transazioni totali per ogni commerciante

  1. Fai clic su Aggiungi un grafico e crea una tabella.
  2. Imposta Dimensione su merchant.
  3. Imposta Metrica su sales_dollars

Percentuale di transazioni per categoria

  1. Fai clic su Aggiungi un grafico e crea un grafico a torta.
  2. Imposta Dimensione su category.
  3. 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.

  1. Torna a Cloud Shell.
  2. 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
  1. 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

  1. Nella console Google Cloud, vai alla pagina Job Dataflow.
  2. Seleziona il tuo job di streaming dall'elenco dei job.
  3. Nella barra di navigazione, fai clic su Interrompi.
  4. 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.

  1. Nella console Google Cloud, vai alla pagina delle istanze Bigtable.
  2. Fai clic sull'ID dell'istanza che stai utilizzando per questo tutorial.
  3. Nel riquadro di navigazione a sinistra, fai clic su Tables (Tabelle).
  4. Individua la tabella retail-database.
  5. Fai clic su Modifica.
  6. Deseleziona Attiva flusso di modifiche.
  7. Fai clic su Salva.
  8. Apri il menu extra della tabella.
  9. Fai clic su Elimina e inserisci il nome della tabella per confermare.
  10. (Facoltativo) Elimina l'istanza se ne hai creata una nuova per questo tutorial

Elimina il set di dati BigQuery

  1. Nella console Google Cloud, vai alla pagina BigQuery.
  2. Nel riquadro di esplorazione, trova il set di dati bigtable_bigquery_tutorial e fai clic su di esso.
  3. Fai clic su Elimina, digita elimina e poi fai clic su Elimina per confermare.

Passaggi successivi