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 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.

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. Notebooks migliorano la collaborazione e la gestione con le seguenti opzioni:

  • Condividi i notebook con utenti e gruppi specifici utilizzando Identity and Access Management (IAM).
  • Esamina la cronologia delle versioni del blocco note.
  • Ripristinare o eseguire il branching da versioni precedenti del notebook.

Notebooks sono BigQuery Studio asset di codice basati su Dataform. Anche le query salvate sono asset di codice. Tutti gli asset di codice vengono archiviati in una regione predefinita. Aggiornamento delle modifiche alla regione predefinita in corso... la regione per tutti gli asset di codice creati successivamente.

Le funzionalità di blocco note 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 modello Python che puoi utilizzare per analizzare i dati BigQuery su larga scala utilizzando i panda DataFrame e le API 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 altri video popolari librerie per visualizzare i dati in qualsiasi momento 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 ML, il tutto con le API Python.

BigQuery DataFrames offre i seguenti vantaggi:

  • Più di 750 API panda e scikit-learn implementate tramite la conversione SQL trasparente in BigQuery le API di BigQuery ML.
  • Esecuzione differita delle query per migliorare le prestazioni.
  • Estendere le 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 il testo di classificazione.

Altre soluzioni di analisi programmatica

Le seguenti soluzioni di analisi programmatica sono disponibili anche 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 la pulizia e la trasformazione dei dati, la simulazione numerica, la modellazione statistica, la visualizzazione dei dati e il machine learning.

I blocchi note Jupyter sono basati su IPython una potente shell interattiva, che può interagire direttamente BigQuery utilizzando IPython Magics per BigQuery. In alternativa, puoi anche accedere a BigQuery dalle istanze Jupyter Notebook installando una delle librerie client 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.

Grafico a blocchi Jupyter che mostra una visualizzazione dei dati GIS di BigQuery.

JupyterLab è un'interfaccia utente basata su 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à uno accanto all'altro nell'area di lavoro usando schede e separatori.

JupyterLab: utilizza schede e separatori per disporre più documenti e attività affiancati 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 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.

Analisi SQL dei dati della tabella, mostrata 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 di Apache Hadoop, Apache Spark o Apache Hive che devono elaborare direttamente i dati del tuo data warehouse. Ad esempio: potresti estrarre caratteristiche per i 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 i tuoi carichi di lavoro le dipendenze sono coperta dal modello Versioni di Dataproc. 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 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 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.

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 la interfaccia a riga di comando, l'SDK Java o l'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 utilizzano spesso il linguaggio di programmazione R per creare strumenti di analisi dei dati e app statistiche. RStudio sviluppa strumenti aperti e gratuiti per R e prodotti professionali 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 forniscono strumenti efficaci per la pubblicazione e la condivisione.

RStudio Server Pro è un prodotto integrato on demand e con licenza commerciale di sviluppo software (IDE). Offre le funzionalità del popolare IDE open source RStudio, oltre alla praticità del modello chiavi in mano, una maggiore sicurezza, la possibilità di gestire più versioni e sessioni di R 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 è più comoda per i data scientist, in quanto include la preinstallazione di più versioni di R e 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 il lavoro con i dati memorizzati 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 su come iniziare a utilizzare RStudio Server Pro per Google Cloud e le domande frequenti su RStudio Server Pro per Google Cloud.

Puoi anche installare la versione open source di RStudio Server 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 maggiori dettagli sull'integrazione di RStudio con Dataproc, consulta l'annuncio ufficiale.

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 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.