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

1. Panoramica

Questo codelab ti guida nell'analisi di un flusso di dati delle 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. Poi, vedrai le tecniche per eseguire query sul log del flusso di modifiche e come riformattare i dati per creare una dashboard utilizzando Looker.

Questo codelab è destinato agli utenti tecnici che hanno familiarità con Bigtable, l'utilizzo di strumenti a riga di comando e i servizi di streaming 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 sul flusso di eventi in BigQuery.
  • Visualizza il flusso 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 precompilata per abilitare 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, trova il nome del progetto e fai clic sul menu di overflow (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 a bassa latenza e scalabilità orizzontale e uno dei suoi casi d'uso più comuni è la gestione di dati finanziari. Qui creerai una tabella in grado di archiviare le transazioni con carta di credito. Bigtable può gestire le scritture ad alto throughput 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 Istanze Bigtable.
  2. Fai clic sull'ID dell'istanza che stai utilizzando per questo tutorial. Se non hai un'istanza disponibile, creane una con un nome a tua scelta in una regione vicina. Per tutto il resto, puoi utilizzare le configurazioni predefinite.

a2e8de7b66dc42e.png

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

9c267c00f93747c4.png

  • Assegna un nome alla tabella retail-database.
  • Aggiungi una famiglia di colonne denominata transactions.
  • Seleziona Abilita flusso di modifiche.
  • Lascia invariati i valori predefiniti del criterio di Garbage Collection e del periodo di conservazione.
  • Fai clic su Crea.

696cd1399c354816.png

5. Inizializza una pipeline di dati per acquisire lo stream delle modifiche

Le prestazioni di Bigtable sono ottimali per le letture puntuali e le scansioni di intervalli di righe, ma l'analisi a livello di tabella può mettere a dura prova la capacità di gestione e le risorse della CPU. BigQuery è ideale per l'analisi a livello di tabella, quindi la soluzione che utilizzerai qui è la doppia scrittura. Ciò significa che scriverai i dati in Bigtable e BigQuery, una tecnica comune. Non sarà necessaria una codifica aggiuntiva, in quanto utilizzerai il modello Dataflow Bigtable change streams to BigQuery: quando i dati vengono scritti in Bigtable, la pipeline scrive un record di modifica in BigQuery. Una volta che i dati si trovano in BigQuery, puoi eseguire query ottimizzate sull'intero set di dati senza influire sul rendimento dei dati di pubblicazione in Bigtable.

f4cd9d8faf10ce77.png

  1. Nella pagina Tabelle di Bigtable, trova 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. Nei campi dei parametri forniti, inserisci i valori dei parametri. 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. Attendi che lo stato del job sia Avvio o In esecuzione prima di procedere. Una volta messo in coda, il job può richiedere circa cinque minuti. La pagina si aggiornerà automaticamente. Questo modello crea un job di streaming, quindi può 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 numero di carta di credito, nome e ID commerciante e importo. In un'applicazione di elaborazione delle carte di credito effettiva, questi dati verrebbero trasmessi in streaming al tuo database in tempo reale man mano che si verificano le transazioni.

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

f6395329b04ecb64.png

  1. Se richiesto, accetta il prompt per autorizzare Cloud Shell.
  2. Scarica 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 la CLI 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. Se la tabella non è presente, potrebbe essere necessario aggiornare il set di dati.
  4. Per visualizzare il registro 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.

Trova 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 una singola riga della tabella BigQuery, devi pivotare i dati e salvare il risultato in una nuova tabella. Questo è 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")
    )
)

Creare una dashboard di Looker

  1. Fai clic su Vai alla visualizzazione per andare 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 rappresentare graficamente le informazioni per renderle più facili da comprendere e condividere come report. Aggiungerai tre grafici alla dashboard:

  • Importi delle transazioni nel tempo
  • Numero totale di transazioni per ogni commerciante
  • Percentuale di transazioni per categoria

426dc59200875a20.png

Configurare la pagina

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

Aggiungere i grafici

Importi delle transazioni nel tempo

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

372bdf2a2bcdb817.png

Numero totale di transazioni 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 un po' di tempo a esplorare i valori nei grafici. Puoi fare clic su commercianti specifici nella tabella o su categorie specifiche nella tabella, in modo che tutti i grafici vengano filtrati in base a questi valori specifici, fornendoti ulteriori approfondimenti. A questo punto, puoi scrivere altri dati e vedere come questo grafico si aggiornerà in tempo reale.

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

Oltre a questi, puoi creare molte varianti di grafici e metriche. 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.

Arresta la pipeline di modifiche in tempo reale

  1. Nella console Google Cloud, vai alla pagina Job Dataflow.
  2. Seleziona il tuo lavoro di streaming dall'elenco dei lavori.
  3. Nella navigazione, fai clic su Stop.
  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 pulire la tabella che hai creato.

  1. Nella console Google Cloud, vai alla pagina 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 Tabelle.
  4. Individua la tabella retail-database.
  5. Fai clic su Modifica.
  6. Deseleziona Abilita 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 Spazio di esplorazione, trova il set di dati bigtable_bigquery_tutorial e fai clic.
  3. Fai clic su Elimina, digita elimina e poi fai clic su Elimina per confermare.

Passaggi successivi