Strumenti di analisi programmatica

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

Sebbene SQL sia un linguaggio di query molto potente, i linguaggi di programmazione come Python, Java o R forniscono sintassi e un ampio array di dati statistici integrati funzioni che gli analisti di dati potrebbero trovare più espressive e più facili da manipolare per alcuni tipi di analisi dei dati.

Allo stesso modo, mentre i fogli di lavoro sono ampiamente utilizzati, altri ambienti di programmazione come i blocchi note, a volte possono offrire un ambiente più flessibile analisi ed esplorazione di dati complessi.

Blocchi note Jupyter

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

I blocchi note Jupyter si basano su IPython una potente shell interattiva, che può interagire direttamente BigQuery utilizzando IPython Magics per BigQuery. In alternativa, puoi anche accedere a BigQuery dal tuo account di blocchi note installando una delle istanze Librerie client di BigQuery. Puoi visualizzare GIS di BigQuery con i blocchi note Jupyter Estensione GeoJSON. Per ulteriori dettagli sull'integrazione di BigQuery, guarda 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à quali blocchi note, editor di testo, terminali e componenti personalizzati Jupyter. Con JupyterLab, puoi organizzare più documenti e attività uno accanto all'altro nell'area di lavoro usando schede e separatori.

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 Dataproc installando Componente facoltativo di Zeppelin. Per impostazione predefinita, i blocchi note vengono salvati in Cloud Storage nella Bucket gestione temporanea Dataproc, specificato dall'utente oppure vengono creati automaticamente quando viene creato il cluster. Puoi modificare la posizione del blocco note aggiungendo la proprietà zeppelin:zeppelin.notebook.gcs.dir quando crei in un cluster Kubernetes. Per ulteriori informazioni sull'installazione e la configurazione di Apache Zeppelin, vedi il Guida ai componenti di Zeppelin. Per un esempio, vedi Analisi dei set di dati BigQuery utilizzando BigQuery Interpreter per Apache Zeppelin.

Analisi SQL dei dati della tabella, mostrata in Zeppelin.

Apache Hadoop, Apache Spark e Apache Hive

Per parte della migrazione della pipeline di analisi dei dati, ti consigliamo di eseguire un po' di legacy Apache Hadoop, Apache Spark, o Apache Hive job che devono elaborare direttamente i dati dal tuo 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 e conveniente. Dataproc si integra con connettori BigQuery open source. Questi connettori utilizzano l'API BigQuery Storage, che invia i flussi di dati in parallelo direttamente da BigQuery attraverso e gRPC.

Quando esegui la migrazione dei carichi di lavoro Hadoop e Spark esistenti Dataproc, puoi verificare che i tuoi carichi di lavoro le dipendenze sono coperta dal modello Versioni di Dataproc. Se devi installare software personalizzato, valuta creando una tua immagine Dataproc, scrivendo la tua azioni di inizializzazione, o specificando i requisiti del pacchetto Python personalizzato.

Per iniziare, consulta Guide rapide per Dataproc e ai Esempi di codice del connettore BigQuery.

Apache Beam

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

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à automaticamente in modo che tu possa concentrarti sulla programmazione anziché sulla gestione cluster.

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 il interfaccia a riga di comando, il SDK Java, o il SDK Python.

Se vuoi eseguire la migrazione di query sui dati e pipeline da altri framework a Apache Beam e Dataflow, scopri di più Modello di programmazione Apache Beam e sfoglia la scheda Documentazione di Dataflow.

RStudio

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

RStudio Server Pro è un prodotto integrato on demand con licenza commerciale di sviluppo software (IDE). Offre le funzionalità offerte IDE open source RStudio più comodità, sicurezza avanzata, capacità per gestire più versioni R e sessioni e altro ancora.

Puoi eseguire il deployment RStudio Server Pro per Google Cloud di Cloud Marketplace. Questa versione è identica a RStudio Server Pro, ma con maggiore praticità per i data scientist, tra cui preinstallazione di più versioni di R e delle librerie di sistema comuni. Inoltre, include bigrquery, il pacchetto BigQuery per R, che fornisce DBI e dplyr che ti consentono di interagire con BigQuery utilizzando verbi SQL o Dplyr di alto livello. Questo pacchetto semplifica l'utilizzo dei dati archiviati in BigQuery, consentendoti di eseguire query le tabelle BigQuery e recuperare i metadati sui tuoi progetti, set di dati, tabelle e job. Per ulteriori informazioni, consulta la guida ufficiale su Introduzione a RStudio Server Pro per Google Cloud e ai Domande frequenti su RStudio Server Pro per Google Cloud.

Puoi anche installare la versione open source Server RStudio su un cluster Dataproc. Un vantaggio di RStudio su Dataproc è che puoi adottare vantaggio di Scalabilità automatica di Dataproc. Con la scalabilità automatica, puoi avere una dimensione minima del cluster durante lo sviluppo la logica SparkR. Dopo aver inviato il job per l'elaborazione su larga scala, dover fare qualcosa di diverso o preoccuparti di modificare il server. Dopo invia il tuo job SparkR a RStudio, il cluster Dataproc scalare per soddisfare le esigenze del tuo job entro gli intervalli impostati. Per ulteriori informazioni sull'integrazione di RStudio con Dataproc, consulta le annuncio ufficiale.

Altre risorse

BigQuery offre un'ampia gamma di librerie client in più linguaggi di programmazione come Java, Go, Python, JavaScript, PHP Ruby. Alcuni framework di analisi dei dati, come panda fornire plug-in che interagiscono direttamente con BigQuery. Per alcuni suggerimenti pratici vedi gli esempi Visualizzare i dati di BigQuery in un blocco note Jupyter durante il tutorial.

Infine, se preferisci scrivere programmi in un ambiente shell, puoi utilizzare il comando strumento a riga di comando bq.