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.

Analogamente, sebbene i fogli di lavoro siano ampiamente utilizzati, altri ambienti di programmazione come i blocchi note a volte offrono un ambiente più flessibile per analisi ed esplorazioni complesse dei dati.

Blocchi note Jupyter

Jupyter è un'applicazione open source basata sul web per la pubblicazione di blocchi note che contengono codice live, descrizioni testuali e visualizzazioni. Questa piattaforma viene comunemente utilizzata da data scientist, specialisti di machine learning e studenti per la pulizia e la trasformazione dei dati, la simulazione numerica, la modellazione statistica, la visualizzazione dei dati, il machine learning e altro ancora.

I blocchi note Jupyter sono basati sul kernel IPython, una potente shell interattiva che può interagire direttamente con BigQuery utilizzando IPython Magics per BigQuery. In alternativa, puoi accedere a BigQuery anche dalle tue istanze Notebooks Jupyter installando una delle librerie client BigQuery disponibili. Puoi visualizzare i dati di BigQuery GIS con i blocchi note Jupyter tramite l'estensione GeoJSON. Per maggiori dettagli sull'integrazione di BigQuery, consulta il tutorial Visualizzazione dei dati di BigQuery in un blocco note Jupyter.

Grafico del blocco note Jupyter che mostra una visualizzazione dei dati GIS di BigQuery.

JupyterLab è un'interfaccia utente basata sul web per la gestione di documenti e attività come blocchi note Jupyter, editor di testo, terminali e componenti personalizzati. Con JupyterLab, puoi organizzare più documenti e attività affiancati nell'area di lavoro utilizzando schede e separatori.

JupyterLab: uso di schede e divisioni per disporre più documenti e attività uno accanto all'altro nell'area di lavoro.

Puoi eseguire il deployment di blocchi note Jupyter e ambienti JupyterLab su Google Cloud utilizzando uno dei seguenti prodotti:

Apache Zeppelin

Apache Zeppelin è un progetto open source che offre blocchi note basati sul 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 gestione temporanea Dataproc, specificato dall'utente o creato automaticamente al momento della creazione del cluster. Puoi modificare la posizione del blocco note 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 con BigQuery Interpreter per Apache Zeppelin.

Analisi SQL dei dati della tabella, mostrati in 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 Apache Hadoop, Apache Spark o Apache Hive che devono elaborare i dati direttamente dal tuo data warehouse. Ad esempio, potresti estrarre caratteristiche per i tuoi carichi di lavoro di machine learning.

Dataproc 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 il flusso di dati in parallelo direttamente da BigQuery attraverso 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, puoi prendere in considerazione l'idea di creare una tua immagine Dataproc, scrivere le tue azioni di inizializzazione o specificare i requisiti per i pacchetti Python personalizzati.

Per iniziare, consulta le guide rapide di Dataproc e gli esempi di codice del connettore BigQuery.

Apache Beam

Apache Beam è un framework open source che fornisce un ricco set di primitive per windowing e analisi delle sessioni, nonché un ecosistema di connettori di origine e sink, tra cui un connettore per BigQuery. Apache Beam consente di trasformare e arricchire i dati sia in modalità flusso (in tempo reale) che batch (storico) con gli stessi livelli di affidabilità ed espressività.

Dataflow è un servizio completamente gestito per l'esecuzione di job Apache Beam su larga scala. L'approccio serverless di Dataflow elimina l'overhead operativo grazie alla gestione automatica di prestazioni, scalabilità, disponibilità, sicurezza e conformità, in modo che tu possa concentrarti sulla programmazione anziché sulla gestione dei cluster di server.

Grafico di esecuzione con una trasformazione composita espansa (MakeMapView). La trasformazione secondaria che crea l'input laterale (CreateDataflowView) è selezionata e le metriche di input laterale vengono mostrate nella scheda Passaggio.

Puoi inviare i 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 tue query sui dati e delle tue pipeline da altri framework ad Apache Beam e Dataflow, leggi informazioni sul modello di programmazione Apache Beam e consulta la documentazione ufficiale di Dataflow.

RStudio

I data scientist spesso usano il linguaggio di programmazione R per creare strumenti di analisi dei dati e app statistiche. RStudio sviluppa strumenti gratuiti e aperti per prodotti professionali di livello R e di livello enterprise per consentire ai team di scalare e condividere il lavoro. I prodotti di RStudio, come RStudio Server Pro, semplificano l'analisi dei dati con R e offrono potenti strumenti per la pubblicazione e la condivisione.

RStudio Server Pro è un ambiente di sviluppo integrato (IDE) on demand con licenza commerciale. Offre le funzionalità disponibili nel famoso IDE open source di RStudio, oltre a comodità chiavi in mano, sicurezza avanzata, la possibilità di gestire più versioni R e sessioni e altro ancora.

Puoi eseguire il deployment del componente RStudio Server Pro per Google Cloud da Cloud Marketplace. Questa versione è identica a RStudio Server Pro, ma offre maggiore praticità per i data scientist, inclusa la preinstallazione di più versioni di R e delle librerie di sistemi comuni. Include inoltre bigrquery, il pacchetto BigQuery per R, che fornisce backend DBI e dplyr che ti consentono di interagire con BigQuery utilizzando verbi dplyr SQL o di alto livello. Questo pacchetto semplifica l'utilizzo dei dati archiviati in BigQuery consentendoti di eseguire query sulle tabelle BigQuery e di recuperare i metadati relativi a progetti, set di dati, tabelle e job. Per saperne di più, consulta la guida ufficiale Introduzione a RStudio Server Pro per Google Cloud e le Domande frequenti per RStudio Server Pro per Google Cloud.

Puoi anche installare la versione open source di RStudio Server su un cluster Dataproc. Un vantaggio nell'esecuzione di RStudio su Dataproc è che puoi sfruttare la scalabilità automatica di Dataproc. Con la scalabilità automatica, puoi avere una dimensione minima del cluster durante lo sviluppo della logica di SparkR. Dopo aver inviato il job per l'elaborazione su larga scala, non devi fare nulla di diverso o preoccuparti di modificare il server. Dopo aver inviato il job SparkR a RStudio, il cluster Dataproc viene scalato per soddisfare le esigenze del job negli intervalli impostati. Per ulteriori dettagli sull'integrazione di RStudio con Dataproc, consulta l'annuncio ufficiale.

Altre risorse

BigQuery offre un'ampia gamma di librerie client in diversi linguaggi di programmazione, come Java, Go, Python, JavaScript, PHP e Ruby. Alcuni framework di analisi dei dati, come panda, 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.