Strumenti di analisi programmatica

Questo documento descrive i vari modi per scrivere ed eseguire codice per analizzare i dati gestiti in BigQuery.

Sebbene SQL sia un potente linguaggio di query, i linguaggi di programmazione come Python, Java o R forniscono sintassi e un ampio array di funzioni statistiche integrate che gli analisti di dati potrebbero trovare più espressivi e 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 possono fornire un ambiente più flessibile per l'analisi e l'esplorazione di dati complessi.

Blocchi note Jupyter

Jupyter è un'applicazione open source basata sul web per la pubblicazione di blocchi note contenenti codice in tempo reale, descrizioni e visualizzazioni testuali. Questa piattaforma viene comunemente utilizzata da data scientist, esperti di machine learning e studenti per pulizia e trasformazione dei dati, simulazione numerica, modellazione statistica, visualizzazione dei dati, 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 anche accedere a BigQuery dalle tue istanze di blocco note Jupyter installando una delle librerie client di 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 a blocchi 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 disporre più documenti e attività affiancati nell'area di lavoro utilizzando schede e suddivisioni.

JupyterLab: utilizzo di schede e suddivisioni 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 di Zeppelin. Per impostazione predefinita, i blocchi note vengono salvati in Cloud Storage nel bucket gestione temporanea Dataproc, specificato dall'utente o creati 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 Zeppelin. Per un esempio, consulta Analisi dei set di dati BigQuery con BigQuery Interpreter per Apache Zeppelin.

Analisi SQL dei dati della tabella, mostrata in Zeppelin.

Apache Hadoop, Apache Spark e Apache Hive

Come parte della migrazione della tua pipeline di analisi dei dati, potresti voler eseguire la migrazione di alcuni job Apache Hadoop, Apache Spark o Apache Hive che devono elaborare direttamente i dati dal data warehouse. Ad esempio, potresti estrarre caratteristiche per i 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 invia i flussi di dati 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 un software personalizzato, puoi creare una tua immagine Dataproc, scrivere le tue azioni di inizializzazione o specificare i requisiti dei 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 pari 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 con prestazioni, scalabilità, disponibilità, sicurezza e conformità gestiti automaticamente, 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 sottotrasformazione che crea l'input aggiuntivo (CreateDataflowView) è selezionata e le metriche di input laterale vengono mostrate nella scheda Passaggio.

Puoi inviare job Dataflow in diversi modi: tramite l'interfaccia a riga di comando, l'SDK Java o l'SDK Python.

Se desideri 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 R e di livello enterprise per consentire ai team di scalare e condividere il lavoro. I prodotti 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 e con licenza commerciale. Offre le funzionalità presenti nel famoso IDE open source RStudio, oltre a comodità e sicurezza pronta all'uso, sicurezza avanzata, 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 una maggiore praticità per i data scientist, tra cui la preinstallazione di più versioni di R e delle librerie di sistema comuni. Include inoltre bigrquery, il pacchetto BigQuery per R, che fornisce backend DBI e dplyr che ti consentono di interagire con BigQuery utilizzando SQL di basso livello o verbi dplyr 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 ulteriori informazioni, consulta la guida ufficiale su 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 dell'esecuzione di RStudio su Dataproc è la possibilità di sfruttare la scalabilità automatica di Dataproc. Con la scalabilità automatica, puoi avere una dimensione minima del cluster mentre sviluppi la logica SparkR. Dopo aver inviato il job per l'elaborazione su larga scala, non devi fare nulla di diverso e non devi preoccuparti di modificare il server. Dopo aver inviato il job SparkR a RStudio, il cluster Dataproc scala per soddisfare le esigenze del tuo job entro gli intervalli impostati. Per ulteriori dettagli sull'integrazione di RStudio con Dataproc, consulta l'annuncio ufficiale.

Altre risorse

BigQuery offre un ampio array di librerie client in diversi 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, vedi 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.