Strumenti di analisi programmatica
Questo documento descrive diversi modi per scrivere ed eseguire codice per analizzare i dati gestiti in BigQuery.
Sebbene SQL sia un linguaggio di query potente, i linguaggi di programmazione come Python, Java o R forniscono sintassi e un'ampia gamma di funzioni statistiche integrate che gli analisti di dati potrebbero trovare più espressive e più facili da manipolare per determinati tipi di analisi dei dati.
Allo stesso modo, sebbene i fogli di lavoro siano ampiamente utilizzati, altri ambienti di programmazione come i notebook a volte possono fornire un ambiente più flessibile per eseguire analisi ed esplorazioni di dati complesse.
Notebook Colab Enterprise
Puoi utilizzare i notebook Colab Enterprise in BigQuery per completare i workflow di analisi e machine learning (ML) utilizzando SQL, Python e altri pacchetti e API comuni. Notebooks offrono una migliore collaborazione e gestione con le seguenti opzioni:
- Condividi i notebook con utenti e gruppi specifici utilizzando Identity and Access Management (IAM).
- Esamina la cronologia delle versioni dei notebook.
- Ripristina o crea un ramo dalle versioni precedenti del notebook.
Notebooks sono asset di codice di BigQuery Studio basati su Dataform, anche se non sono visibili in Dataform. Anche le query salvate sono asset di codice. Tutti gli asset di codice vengono archiviati in una regione predefinita . L'aggiornamento della regione predefinita modifica la regione per tutti gli asset di codice creati dopo questo punto.
Le funzionalità dei notebook sono disponibili solo nella Google Cloud console.
Notebooks in BigQuery offrono i seguenti vantaggi:
- BigQuery DataFrames è integrato nei notebook, non è richiesta alcuna configurazione. BigQuery DataFrames è un'API Python che puoi utilizzare per analizzare i dati BigQuery su larga scala utilizzando le API pandas DataFrame e scikit-learn.
- Sviluppo di codice assistito basato sull'AI generativa di Gemini.
- Completamento automatico delle istruzioni SQL, come nell'editor BigQuery.
- Possibilità di salvare, condividere e gestire le versioni dei notebook.
- Possibilità di utilizzare matplotlib, seaborn e altre librerie comuni per visualizzare i dati in qualsiasi punto del workflow.
- Possibilità di scrivere ed eseguire SQL in una cella che può fare riferimento alle variabili Python del notebook.
- Visualizzazione interattiva di DataFrame che supporta l'aggregazione e la personalizzazione.
Per iniziare a utilizzare i notebook, puoi utilizzare i modelli della galleria dei notebook. Per ulteriori informazioni, consulta Creare un notebook utilizzando la galleria dei notebook.
BigQuery DataFrames
BigQuery DataFrames è un insieme di librerie Python open source che ti consentono di sfruttare l'elaborazione dei dati BigQuery utilizzando le API Python che conosci. BigQuery DataFrames implementa le API pandas e scikit-learn eseguendo l'elaborazione in BigQuery tramite la conversione SQL. Questo design ti consente di utilizzare BigQuery per esplorare ed elaborare terabyte di dati, nonché per addestrare modelli di ML, il tutto con le API Python.
BigQuery DataFrames offre i seguenti vantaggi:
- Più di 750 API pandas e scikit-learn implementate tramite la conversione SQL trasparente in API BigQuery e BigQuery ML.
- Esecuzione differita delle query per migliorare le prestazioni.
- Estensione delle trasformazioni dei dati con funzioni Python definite dall'utente per consentirti di elaborare i dati nel cloud. Queste funzioni vengono eseguite automaticamente come funzioni remotedi BigQuery .
- Integrazione con Gemini Enterprise Agent Platform per consentirti di utilizzare i modelli Gemini per la generazione di testo.
Altre soluzioni di analisi programmatica
In BigQuery sono disponibili anche le seguenti soluzioni di analisi programmatica.
Notebook Jupyter
Jupyter è un'applicazione web open source per la pubblicazione di notebook che contengono codice live, descrizioni testuali e visualizzazioni. I data scientist, gli specialisti di machine learning e gli studenti utilizzano comunemente questa piattaforma per attività come la pulizia e la trasformazione dei dati, la simulazione numerica, la modellazione statistica, la visualizzazione dei dati e l'ML.
I notebook Jupyter sono basati sul kernel IPython , una shell interattiva potente che può interagire direttamente con BigQuery utilizzando IPython Magics per BigQuery. In alternativa, puoi anche accedere a BigQuery dalle istanze dei notebook Jupyter installando una delle librerie client BigQuery disponibili. Puoi visualizzare i dati BigQuery GIS con i notebook Jupyter tramite l'estensione GeoJSON. Per ulteriori dettagli sull'integrazione di BigQuery, consulta il tutorial Visualizzare i dati di BigQuery in un notebook Jupyter.
JupyterLab è un'interfaccia utente basata sul web per la gestione di documenti e attività come notebook Jupyter, editor di testo, terminali e componenti personalizzati. Con JupyterLab, puoi disporre più documenti e attività affiancati nell'area di lavoro utilizzando schede e divisori.
Puoi eseguire il deployment di notebook Jupyter e ambienti JupyterLab su Google Cloud utilizzando uno dei seguenti prodotti:
- Istanze di Vertex AI Workbench, un servizio che offre un ambiente JupyterLab integrato in cui gli sviluppatori di machine learning e i data scientist possono utilizzare alcuni dei più recenti framework di data science e machine learning. Vertex AI Workbench è integrato con altri Google Cloud prodotti di dati come BigQuery, semplificando il passaggio dall'importazione dati ai processi di pre-elaborazione ed esplorazione, fino ad arrivare all'addestramento e al deployment dei modelli. Per saperne di più, consulta Introduzione alle istanze di Vertex AI Workbench.
- Managed Service for Apache Spark, un servizio completamente gestito, veloce e facile da utilizzare per l'esecuzione dei cluster Apache Spark e Apache Hadoop in modo semplice ed economico. Puoi installare i notebook Jupyter e JupyterLab su un cluster Managed Service for Apache Spark utilizzando il componente facoltativo Jupyter. Il componente fornisce un kernel Python per eseguire PySpark. Per impostazione predefinita, Managed Service for Apache Spark configura automaticamente i notebook in modo che vengano salvati in Cloud Storage, rendendo gli stessi file di notebook accessibili ad altri cluster. Quando esegui la migrazione dei notebook esistenti a Managed Service for Apache Spark, verifica che le dipendenze dei notebook siano coperte dalle versioni di Managed Service for Apache Spark supportate. Se devi installare software personalizzato, valuta la possibilità di creare la tua immagine di Managed Service for Apache Spark, scrivere le tue azioni di inizializzazione, o specificare i requisiti dei pacchetti Python personalizzati. Per iniziare, consulta il tutorial su come installare ed eseguire un notebook Jupyter su un cluster Managed Service for Apache Spark.
Apache Zeppelin
Apache Zeppelin
è un progetto open source che offre notebook basati sul web per l'analisi dei dati.
Puoi eseguire il deployment di un'istanza di Apache Zeppelin su
Managed Service for Apache Spark
installando il
componente facoltativo Zeppelin.
Per impostazione predefinita, i notebook vengono salvati in Cloud Storage nel bucket gestione temporanea di Managed Service for Apache Spark, specificato dall'utente o creato automaticamente quando viene creato il cluster. Puoi modificare la posizione del notebook aggiungendo la proprietà zeppelin:zeppelin.notebook.gcs.dir quando crei il cluster. Per ulteriori informazioni sull'installazione e la configurazione di Apache Zeppelin,
consulta la
guida ai componenti di Zeppelin.
Per un esempio, consulta
Analizzare i set di dati BigQuery utilizzando l'interprete BigQuery per Apache Zeppelin.
Apache Hadoop, Apache Spark e Apache Hive
Nell'ambito della migrazione della pipeline di analisi dei dati, potresti voler eseguire la migrazione di alcuni job legacy Apache Hadoop, Apache Spark, o Apache Hive che devono elaborare direttamente i dati dal data warehouse. Ad esempio, potresti estrarre le funzionalità per i carichi di lavoro di machine learning.
Managed Service for Apache Spark consente di eseguire il deployment di cluster Hadoop e Spark completamente gestiti in modo efficiente ed economico. Managed Service for Apache Spark si integra con i connettori BigQuery open source. Questi connettori utilizzano l'API BigQuery Storage, che trasmette i dati in parallelo direttamente da BigQuery tramite gRPC.
Quando esegui la migrazione dei carichi di lavoro Hadoop e Spark esistenti a Managed Service for Apache Spark, puoi verificare che le dipendenze dei carichi di lavoro siano coperte dalle versioni di Managed Service for Apache Spark supportate. Se devi installare software personalizzato, valuta la possibilità di creare la tua immagine di Managed Service for Apache Spark, scrivere le tue azioni di inizializzazione, o specificare i requisiti dei pacchetti Python personalizzati.
Per iniziare, consulta le guide rapide di Managed Service for Apache Spark e gli esempi di codice del connettore BigQuery.
Apache Beam
Apache Beam è un framework open source che fornisce un set all'avanguardia di primitive per windowing e analisi delle sessioni, nonché un ecosistema di connettori di origine e sink, incluso un connettore per BigQuery. Apache Beam consente di trasformare e arricchire i dati in modalità flusso (in tempo reale) e batch (storici) con affidabilità ed espressività garantite.
Dataflow è un servizio completamente gestito per l'esecuzione di job Apache Beam su larga scala. L'approccio serverless di Dataflow elimina i problemi di overhead operativo in quanto prestazioni, scalabilità, disponibilità, sicurezza e conformità vengono gestite automaticamente. In questo modo puoi concentrarti sulla programmazione invece che sulla gestione dei cluster di server.
Puoi inviare job Dataflow in diversi modi, tramite l' interfaccia a riga di comando, l' SDK Java, o l' SDK Python.
Se vuoi eseguire la migrazione delle query e delle pipeline di dati da altri framework a Apache Beam e Dataflow, leggi il modello di programmazione Apache Beam ed esplora la documentazione ufficiale di Dataflow.
Altre risorse
BigQuery offre un'ampia gamma di librerie client in più linguaggi di programmazione come Java, Go, Python, JavaScript, PHP e Ruby. Alcuni framework di analisi dei dati come pandas forniscono plug-in che interagiscono direttamente con BigQuery. Per alcuni esempi pratici, consulta il tutorial Visualizzare i dati di BigQuery in un notebook Jupyter.
Infine, se preferisci scrivere programmi in un ambiente shell, puoi utilizzare lo strumento a riga di comando bq.