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 potente linguaggio di query, linguaggi di programmazione come Python, Java o R forniscono sintassi e una vasta gamma di funzioni statistiche integrate che gli analisti dei dati potrebbero trovare più espressive e facili da manipolare per determinati tipi di analisi dei dati.
Analogamente, sebbene i fogli di lavoro siano ampiamente utilizzati, a volte altri ambienti di programmazione come i notebook possono offrire un ambiente più flessibile per eseguire analisi ed esplorazioni di dati complessi.
Notebook Colab Enterprise
Puoi utilizzare i notebook di Colab Enterprise in BigQuery per completare i flussi di lavoro di analisi e machine learning (ML) utilizzando SQL, Python e altri pacchetti e API comuni. I notebook offrono una collaborazione e una gestione migliorate con le seguenti opzioni:
- Condividi i blocchi note con utenti e gruppi specifici utilizzando Identity and Access Management (IAM).
- Esamina la cronologia delle versioni del notebook.
- Ripristinare o eseguire il branching da versioni precedenti del notebook.
I blocchi note sono asset di codice BigQuery Studio basati su 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 in seguito.
Le funzionalità dei notebook sono disponibili solo nella console Google Cloud.
I notebook in BigQuery offrono i seguenti vantaggi:
- BigQuery DataFrames è integrato nei notebook e non richiede configurazione. BigQuery DataFrames è un'API Python che puoi utilizzare per analizzare i dati di BigQuery su larga scala utilizzando le API Pandas DataFrame e scikit-learn.
- Sviluppo di codice di assistenza basato sull'IA generativa di Gemini.
- La possibilità di salvare, condividere e gestire le versioni dei notebook.
- La possibilità di utilizzare matplotlib, seaborn e altre librerie di uso comune per visualizzare i dati in qualsiasi punto del flusso di lavoro.
BigQuery DataFrames
BigQuery DataFrames è un insieme di librerie Python open source che ti consente di sfruttare l'elaborazione dei dati di BigQuery utilizzando API Python familiari. BigQuery DataFrames implementa le API pandas e scikit-learn spingendo 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 BigQuery e nelle API 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 remote di BigQuery.
- Integrazione con Vertex AI per consentirti di utilizzare i modelli Gemini per la generazione di testo.
Altre soluzioni di analisi programmatica
Anche le seguenti soluzioni di analisi programmatica sono disponibili in BigQuery.
Blocchi note Jupyter
Jupyter è un'applicazione web open source per la pubblicazione di notebook contenenti codice in tempo reale, descrizioni testuali e visualizzazioni. Data scientist, esperti di machine learning e studenti solitamente utilizzano questa piattaforma per attività come pulizia e trasformazione dei dati, simulazione numerica, modellazione statistica, visualizzazione dei dati e ML.
I Jupyter Notebook sono basati sul kernel IPython, una potente shell interattiva che può interagire direttamente con BigQuery utilizzando le magiche IPython per BigQuery. In alternativa, puoi anche accedere a BigQuery dalle istanze Jupyter Notebook installando una delle librerie client di BigQuery disponibili. Puoi visualizzare i dati di BigQuery GIS con i Jupyter Notebook tramite la estensione GeoJSON. Per ulteriori dettagli sull'integrazione di BigQuery, consulta il tutorial Visualizzazione dei dati di BigQuery in un blocco note Jupyter.
JupyterLab è un'interfaccia utente basata su 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 ed ambienti JupyterLab su Google Cloud utilizzando uno dei seguenti prodotti:
- Istanze 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 dei 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.
- Dataproc, un servizio completamente gestito, veloce e facile da utilizzare per eseguire i cluster Apache Spark e Apache Hadoop in modo semplice ed economico. Puoi installare i notebook Jupyter e JupyterLab su un cluster Dataproc utilizzando il componente facoltativo Jupyter. Il componente fornisce un kernel Python per eseguire il codice PySpark. Per impostazione predefinita, Dataproc configura automaticamente i blocchi note in modo che vengano salvati in Cloud Storage, rendendo gli stessi file dei blocchi note accessibili ad altri cluster. Quando esegui la migrazione dei notebook esistenti a Dataproc, verifica che le dipendenze dei notebook siano coperte dalle versioni di Dataproc supportate. Se devi installare software personalizzato, ti consigliamo di creare la tua immagine Dataproc, di scrivere le tue azioni di inizializzazione o di specificare i requisiti dei pacchetti Python personalizzati. Per iniziare, consulta il tutorial sull'installazione ed esecuzione di un notebook Jupyter su un cluster Dataproc.
Apache Zeppelin
Apache Zeppelin
è un progetto open source che offre notebook basati su web per l'analisi dei dati.
Puoi eseguire il deployment di un'istanza di Apache Zeppelin su
Dataproc
installando il
componente facoltativo Zeppelin.
Per impostazione predefinita, i blocchi note vengono salvati in Cloud Storage nel bucket temporaneo Dataproc, specificato dall'utente o creati automaticamente al momento della creazione del 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 sulla configurazione di Apache Zeppelin, consulta la guida ai componenti di Zeppelin.
Per un esempio, consulta
Analisi dei set di dati BigQuery utilizzando BigQuery Interpreter per Apache Zeppelin.
Apache Hadoop, Apache Spark e Apache Hive
Per una parte della migrazione della pipeline di analisi dei dati, potresti voler eseguire la migrazione di alcuni job legacy di Apache Hadoop, Apache Spark o Apache Hive che devono elaborare direttamente i dati del tuo data warehouse. Ad esempio, potresti estrarre funzionalità per i tuoi carichi di lavoro di machine learning.
Dataproc ti consente di eseguire il deployment di cluster Hadoop e Spark completamente gestiti in modo efficiente ed economico. Dataproc si integra con i connettori BigQuery open source. Questi connettori utilizzano l'API BigQuery Storage, che trasmette i dati in streaming in parallelo direttamente da BigQuery tramite gRPC.
Quando esegui la migrazione dei carichi di lavoro Hadoop e Spark esistenti a Dataproc, puoi verificare che le dipendenze dei carichi di lavoro siano coperte dalle versioni di Dataproc supportate. Se devi installare software personalizzato, ti consigliamo di creare la tua immagine Dataproc, di scrivere le tue azioni di inizializzazione o di specificare i requisiti dei pacchetti Python personalizzati.
Per iniziare, consulta le guide di avvio rapido di Dataproc e gli esempi di codice del connettore BigQuery.
Apache Beam
Apache Beam è un framework open source che fornisce un ampio insieme di primitive per il windowing e l'analisi delle sessioni, nonché un ecosistema di connettori di origine e sink, tra cui un connettore per BigQuery. Apache Beam ti consente di trasformare e arricchire i dati sia in modalità flusso (in tempo reale) che in modalità batch (storica) con uguale affidabilità ed espressività.
Dataflow è un servizio completamente gestito per l'esecuzione di job Apache Beam su larga scala. L'approccio serverless di Dataflow rimuove l'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 la 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 ad Apache Beam e Dataflow, consulta il modello di programmazione Apache Beam e la documentazione ufficiale di Dataflow.
Altre risorse
BigQuery offre una vasta 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 blocco note Jupyter.
Infine, se preferisci scrivere programmi in un ambiente shell, puoi utilizzare lo strumento a riga di comando bq.