Connettersi a Databricks
In qualità di amministratore di BigQuery, puoi creare una connessione
per leggere e scrivere dati da un notebook Databricks. I passaggi sono
descritti utilizzando la
Google Cloud console e
i workspace Databricks.
Puoi anche eseguire questi passaggi utilizzando gli strumenti a riga di comando gcloud e databricks, anche se queste indicazioni non rientrano nell'ambito di questo tutorial.
Databricks su Google Cloud è un ambiente Databricks ospitato su Google Cloud, in esecuzione su Google Kubernetes Engine (GKE) e che fornisce un'integrazione integrata con BigQuery e altre Google Cloud tecnologie. Se non hai familiarità con Databricks, guarda il video Introduzione alla piattaforma dati unificata di Databricks per una panoramica della piattaforma lakehouse di Databricks.
Obiettivi
- Configura Google Cloud per connetterti a Databricks.
- Esegui il deployment di Databricks su Google Cloud.
- Esegui query su BigQuery da Databricks.
Costi
Questo tutorial utilizza componenti fatturabili della Google Cloud console, tra cui BigQuery e GKE. Si applicano i prezzi di BigQuery e i prezzi di GKE. Per informazioni sui costi associati a un account Databricks in esecuzione su Google Cloud, consulta la sezione Configurare l'account e creare un workspace nella documentazione di Databricks.
Prima di iniziare
Prima di connettere Databricks a BigQuery, completa i seguenti passaggi:
- Abilita l' API BigQuery Storage.
- Crea un account di servizio per Databricks.
- Crea un bucket Cloud Storage per l'archiviazione temporanea.
Abilitare l'API BigQuery Storage
L' API BigQuery Storage è abilitata per impostazione predefinita per tutti i nuovi progetti in cui viene utilizzato BigQuery. Per i progetti esistenti in cui l'API non è abilitata, segui queste istruzioni:
Nella Google Cloud console, vai alla pagina API BigQuery Storage.
Verifica che l'API BigQuery Storage sia abilitata.

Creare un account di servizio per Databricks
Poi, crea un account di servizio Identity and Access Management (IAM) per consentire a un cluster Databricks di eseguire query su BigQuery. Ti consigliamo di concedere a questo account di servizio i privilegi minimi necessari per eseguire le sue attività. Consulta Ruoli e autorizzazioni di BigQuery.
Nella Google Cloud console, vai alla pagina Service account.
Fai clic su Crea account di servizio, assegna all'account di servizio il nome
databricks-bigquery, inserisci una breve descrizione, ad esempioDatabricks tutorial service account, quindi fai clic su Crea e continua.In Concedi a questo account di servizio l'accesso al progetto, specifica i ruoli per l'account di servizio. Per concedere all'account di servizio l'autorizzazione a leggere i dati con il workspace Databricks e la tabella BigQuery nello stesso progetto, in particolare senza fare riferimento a una vista materializzata, concedi i seguenti ruoli:
- BigQuery Read Session User
- Visualizzatore dati BigQuery
Per concedere l'autorizzazione a scrivere i dati, concedi i seguenti ruoli:
- Utente job BigQuery
- Editor dati BigQuery
Registra l'indirizzo email del nuovo account di servizio per riferimento nei passaggi futuri.
Fai clic su Fine.
Creare un bucket Cloud Storage
Per scrivere in BigQuery, il cluster Databricks deve accedere a un bucket Cloud Storage per eseguire il buffering dei dati scritti.
Nella Google Cloud console, vai al browser Cloud Storage.
Fai clic su Crea bucket per aprire la finestra di dialogo Crea un bucket.
Specifica un nome per il bucket utilizzato per scrivere i dati in BigQuery. Il nome del bucket deve essere un nome globalmente univoco. Se specifichi un nome bucket già esistente, Cloud Storage risponde con un messaggio di errore. In questo caso, specifica un nome diverso per il bucket.

In questo tutorial, utilizza le impostazioni predefinite per la località di archiviazione, la classe di archiviazione, il controllo dell'accesso e le impostazioni avanzate.
Fai clic su Crea per creare il bucket Cloud Storage.
Fai clic su Autorizzazioni, poi su Aggiungi e specifica l'indirizzo email dell' account di servizio che hai creato per l'accesso a Databricks nella pagina Service account.

Fai clic su Seleziona un ruolo e aggiungi il ruolo Amministratore spazio di archiviazione.
Fai clic su Salva.
Eseguire il deployment di Databricks su Google Cloud
Completa i seguenti passaggi per prepararti a eseguire il deployment di Databricks su Google Cloud.
- Per configurare l'account Databricks, segui le istruzioni riportate nella documentazione di Databricks, Configurare l'account Databricks su Google Cloud account.
- Dopo la registrazione, scopri di più su come gestire il tuo account Databricks.
Creare un workspace, un cluster e un notebook Databricks
I seguenti passaggi descrivono come creare un workspace Databricks, un cluster e un notebook Python per scrivere codice per accedere a BigQuery.
Verifica i prerequisiti di Databricks.
Crea il tuo primo workspace. Nella console dell'account Databricks, fai clic su Crea workspace.
Specifica
gcp-bqper il nome del workspace e seleziona la regione.
Per determinare l'ID Google Cloud progetto, visita la Google Cloud console, e copia il valore nel campo Google Cloud ID progetto.
Fai clic su Salva per creare il workspace Databricks.
Per creare un cluster Databricks con Databricks Runtime 7.6 o versioni successive, nella barra dei menu a sinistra seleziona Cluster, quindi fai clic su Crea cluster in alto.
Specifica il nome e le dimensioni del cluster, quindi fai clic Opzioni avanzate e specifica l'indirizzo email del tuo Google Cloud account di servizio.

Fai clic su Crea cluster.
Per creare un notebook Python per Databricks, segui le istruzioni riportate in Creare un notebook.
Eseguire query su BigQuery da Databricks
Con la configurazione sopra, puoi connettere in modo sicuro Databricks a BigQuery. Databricks utilizza un fork dell' adattatore Apache Spark open source di Google per accedere a BigQuery.
Databricks riduce il trasferimento di dati e accelera le query eseguendo automaticamente il push-down di determinati predicati di query, ad esempio il filtro sulle colonne nidificate in BigQuery. Inoltre, la funzionalità aggiunta per eseguire prima una query SQL su BigQuery con l'API query() riduce le dimensioni del trasferimento del set di dati risultante.
I seguenti passaggi descrivono come accedere a un set di dati in BigQuery e scrivere i tuoi dati in BigQuery.
Accedere a un set di dati pubblico su BigQuery
BigQuery fornisce un elenco di set di dati pubblici disponibili . Per eseguire query sul set di dati BigQuery Shakespeare che fa parte dei set di dati pubblici, segui questi passaggi:
Per leggere la tabella BigQuery, utilizza il seguente snippet di codice nel notebook Databricks.
table = "bigquery-public-data.samples.shakespeare" df = spark.read.format("bigquery").option("table",table).load() df.createOrReplaceTempView("shakespeare")Esegui il codice premendo
Shift+Return.Ora puoi eseguire query sulla tabella BigQuery tramite Apache Spark DataFrame (
df). Ad esempio, utilizza il seguente comando per mostrare le prime tre righe del DataFrame:df.show(3)Per eseguire query su un'altra tabella, aggiorna la variabile
table.Una funzionalità chiave dei notebook Databricks è che puoi combinare le celle di linguaggi diversi come Scala, Python e SQL in un unico notebook.
La seguente query SQL ti consente di visualizzare il conteggio delle parole in Shakespeare dopo aver eseguito la cella precedente che crea la vista temporanea.
%sql SELECT word, SUM(word_count) AS word_count FROM words GROUP BY word ORDER BY word_count DESC LIMIT 12
La cella esegue una query SQL Apache Spark sul DataFrame nel cluster Databricks, non in BigQuery. Il vantaggio di questo approccio è che l'analisi dei dati avviene a livello di Apache Spark, non vengono emessi ulteriori chiamate API BigQuery e non vengono addebitati costi aggiuntivi di BigQuery.
In alternativa, puoi delegare l'esecuzione di una query SQL a BigQuery con l'API
query()e ottimizzare per ridurre le dimensioni del trasferimento del DataFrame risultante. A differenza dell'esempio precedente, in cui l'elaborazione è stata eseguita in Apache Spark, se utilizzi questo approccio, i prezzi e le ottimizzazioni delle query si applicano all'esecuzione della query su BigQuery.L'esempio seguente utilizza Scala, l'API
query()e il set di dati pubblico Shakespeare in BigQuery per calcolare le cinque parole più comuni nelle opere di Shakespeare. Prima di eseguire il codice, devi prima creare un set di dati vuoto in BigQuery denominatomdataseta cui il codice può fare riferimento. Per ulteriori informazioni, consulta Scrivere dati in BigQuery.%scala // public dataset val table = "bigquery-public-data.samples.shakespeare" // existing dataset where the Google Cloud user has table creation permission val tempLocation = "mdataset" // query string val q = s"""SELECT word, SUM(word_count) AS word_count FROM ${table} GROUP BY word ORDER BY word_count DESC LIMIT 10 """ // read the result of a GoogleSQL query into a DataFrame val df2 = spark.read.format("bigquery") .option("query", q) .option("materializationDataset", tempLocation) .load() // show the top 5 common words in Shakespeare df2.show(5)Per altri esempi di codice, consulta il notebook di esempio BigQuery di Databricks.
Scrivere dati in BigQuery
Le tabelle BigQuery esistono nei set di dati. Prima di poter scrivere dati in una tabella BigQuery, devi creare un nuovo set di dati in BigQuery. Per creare un set di dati per un notebook Python Databricks, segui questi passaggi:
Vai alla pagina BigQuery nella Google Cloud console.
Espandi l'opzione Azioni , fai clic su Crea set di dati e assegnagli il nome
together.Nel notebook Python Databricks, crea un DataFrame Apache Spark da un elenco Python con tre voci stringa utilizzando il seguente snippet di codice:
from pyspark.sql.types import StringType mylist = ["Google", "Databricks", "better together"] df = spark.createDataFrame(mylist, StringType())Aggiungi un'altra cella al notebook che scrive il DataFrame Apache Spark del passaggio precedente nella tabella BigQuery
myTablenel set di datitogether. La tabella viene creata o sovrascritta. Utilizza il nome del bucket specificato in precedenza.bucket = YOUR_BUCKET_NAME table = "together.myTable" df.write .format("bigquery") .option("temporaryGcsBucket", bucket) .option("table", table) .mode("overwrite").save()Per verificare di aver scritto correttamente i dati, esegui query e visualizza la tabella BigQuery tramite Apache Spark DataFrame (
df):display(spark.read.format("bigquery").option("table", table).load)
Libera spazio
Prima di rimuovere Databricks, esegui sempre il backup dei dati e dei notebook. Per liberare spazio e rimuovere completamente Databricks, annulla l'abbonamento a Databricks nella Google Cloud console e rimuovi tutte le risorse correlate che hai creato dalla Google Cloud console.
Se elimini un workspace Databricks, i due bucket Cloud Storage con i
nomi databricks-WORKSPACE_ID e
databricks-WORKSPACE_ID-system che sono stati
creati da Databricks
potrebbero non essere eliminati se i bucket Cloud Storage non sono vuoti. Dopo
l'eliminazione del workspace, puoi eliminare manualmente questi oggetti nella
Google Cloud console per il tuo progetto.
Passaggi successivi
Questa sezione fornisce un elenco di documenti e tutorial aggiuntivi:
- Scopri di più sui dettagli della prova senza costi di Databricks.
- Scopri di più su Databricks su Google Cloud.
- Scopri di più su Databricks BigQuery.
- Leggi l'annuncio del blog sul supporto di BigQuery per Databricks.
- Scopri di più sui notebook di esempio di BigQuery.
- Scopri di più sul provider Terraform per Databricks su Google Cloud.
- Leggi il blog di Databr1cks, incluse ulteriori informazioni su argomenti di data science e set di dati.