Programmatische Analysetools

In diesem Dokument werden mehrere Möglichkeiten zum Schreiben und Ausführen von Code zum Analysieren von in BigQuery verwalteten Daten beschrieben.

Obwohl SQL eine leistungsstarke Abfragesprache ist, bieten Programmiersprachen wie Python, Java oder R Syntaxen und eine Vielzahl integrierter statistischer Funktionen, die für Datenanalysten für bestimmte Arten der Datenanalyse möglicherweise aussagekräftiger und einfacher zu bearbeiten sind.

Tabellenkalkulationen sind zwar weit verbreitet, jedoch bieten andere Programmierumgebungen wie Notebooks manchmal eine flexiblere Umgebung für die Durchführung einer komplexen Datenanalyse und -exploration.

Jupyter Notebooks

Jupyter ist eine webbasierte Open Source-Anwendung zum Veröffentlichen von Notebooks, die Live-Code, Textbeschreibungen und Visualisierungen enthalten. Diese Plattform wird häufig von Data Scientists, Spezialisten für maschinelles Lernen und Studenten für die Datenbereinigung und -transformation, numerische Simulation, statistische Modellierung, Datenvisualisierung, maschinelles Lernen und mehr verwendet.

Jupyter-Notebooks basieren auf dem IPython-Kernel, einer leistungsstarken interaktiven Shell, die mithilfe von magischen IPython-Befehlen für BigQuery direkt mit BigQuery interagieren kann. Alternativ können Sie auch von Ihren Jupyter-Notebooks-Instanzen aus auf BigQuery zugreifen, indem Sie eine der verfügbaren BigQuery-Clientbibliotheken installieren. Sie können mit Jupyter-Notebooks BigQuery GIS-Daten über die GeoJSON-Erweiterung visualisieren. Weitere Informationen zur BigQuery-Integration finden Sie in der Anleitung BigQuery-Daten in einem Jupyter-Notebook visualisieren.

Jupyter-Notebook-Diagramm mit einer Visualisierung der BigQuery-GIS-Daten.

JupyterLab ist eine webbasierte Benutzeroberfläche zum Verwalten von Dokumenten und Aktivitäten wie Jupyter-Notebooks, Texteditoren, Terminals und benutzerdefinierten Komponenten. Mit JupyterLab können Sie mithilfe von Tabs und Aufteilungen mehrere Dokumente und Aktivitäten nebeneinander im Arbeitsbereich anordnen.

JupyterLab: Mithilfe von Tabs und Aufteilungen mehrere Dokumente und Aktivitäten nebeneinander im Arbeitsbereich anordnen.

Sie können Jupyter-Notebooks und JupyterLab-Umgebungen in Google Cloud mit einem der folgenden Produkte bereitstellen:

Apache Zeppelin

Apache Zeppelin ist ein Open Source-Projekt, das webbasierte Notebooks für die Datenanalyse anbietet. Zum Bereitstellen einer Instanz von Apache Zeppelin auf Dataproc können Sie die optionale Zeppelin-Komponente installieren. Notebooks werden standardmäßig im Dataproc-Staging-Bucket in Cloud Storage gespeichert. Dieser Bucket wird vom Nutzer festgelegt oder beim Erstellen des Clusters automatisch generiert. Sie können den Speicherort des Notebooks ändern, indem Sie beim Erstellen des Clusters das Attribut zeppelin:zeppelin.notebook.gcs.dir hinzufügen. Weitere Informationen zum Installieren und Konfigurieren von Apache Zeppelin finden Sie im Zeppelin-Komponentenleitfaden. Ein Beispiel finden Sie unter BigQuery-Datasets mit BigQuery Interpreter für Apache Zeppelin analysieren.

SQL-Analyse der in Zeppelin gezeigten Tabellendaten.

Apache Hadoop und Apache Spark

Für einen Teil Ihrer Datenanalyse-Pipeline-Migration können Sie ältere Apache Hadoop-Jobs und Apache Spark-Jobs migrieren, die Daten aus Ihrem Data Warehouse direkt verarbeiten müssen. Sie können beispielsweise Features für Ihre ML-Arbeitslasten extrahieren.

Mit Dataproc können Sie vollständig verwaltete Hadoop- und Spark-Cluster effizient und kostengünstig bereitstellen. Dataproc ist in den BigQuery-Connector eingebunden. Dieser ist eine Java-Bibliothek, über die Hadoop und Spark Daten aus BigQuery mithilfe abstrahierter Versionen der Apache Hadoop-Klassen InputFormat und OutputFormat direkt verarbeiten können. Alternativ können Sie den Apache Spark SQL Connector für Google BigQuery (Beta) installieren, um Daten von BigQuery zu lesen. Dieser Connector verwendet die BigQuery Storage API (Beta), die Daten direkt von BigQuery über gRPC parallel überträgt.

Wenn Sie Ihre vorhandenen Hadoop- und Spark-Arbeitslasten zu Dataproc migrieren, können Sie prüfen, ob die Abhängigkeiten Ihrer Arbeitslasten von den unterstützten Dataproc-Versionen abgedeckt werden. Falls Sie benutzerdefinierte Software installieren müssen, können Sie ein eigenes Dataproc-Image erstellen, eigene Initialisierungsaktionen schreiben oder benutzerdefinierte Python-Paketanforderungen festlegen.

Sehen Sie sich als Erstes die Dataproc-Kurzanleitungen und die Codebeispiele für den BigQuery-Connector an.

apache beam

Apache Beam ist ein Open-Source-Framework, das zahlreiche Windowing- und Sitzungsanalyse-Primitive sowie ein System von Quell- und Senk-Connectors bietet, einschließlich eines Connectors für BigQuery. Mit Apache Beam können Sie Daten sowohl im Stream-Modus (Echtzeitdaten) als auch im Batch-Modus (Verlaufsdaten) mit gleicher Zuverlässigkeit und Ausdruckskraft transformieren und anreichern.

Dataflow ist ein vollständig verwalteter Dienst zum Ausführen umfangreicher Apache Beam-Jobs. Dank des serverlosen Ansatzes von Dataflow entfällt der operative Aufwand, da Aspekte wie Leistung, Skalierung, Verfügbarkeit, Sicherheit und Compliance automatisch berücksichtigt werden. So können Sie sich auf die Programmierung statt auf die Verwaltung von Serverclustern konzentrieren.

Ausführungsgrafik mit einer erweiterten zusammengesetzten Transformation (MakeMapView). Die Untertransformation, durch die die Nebeneingabe (CreateDataflowView) erstellt wird, ist markiert und die Messwerte zu Nebeneingaben werden im Tab "Step" angezeigt.

Sie können Cloud Dataflow-Jobs entweder über die Befehlszeile, das Java SDK oder das Python SDK senden.

Wenn Sie Ihre Datenabfragen und Pipelines von anderen Frameworks zu Apache Beam und Dataflow migrieren möchten, lesen Sie die Informationen zum Programmiermodell für Apache Beam und die offizielle Dataflow-Dokumentation.

RStudio

Data Scientists verwenden häufig die Programmiersprache R, um Datenanalysetools und statistische Anwendungen zu erstellen. RStudio entwickelt kostenlose und offene Tools für R und professionelle Produkte auf Unternehmensniveau, mit denen Teams ihre Arbeit skalieren und teilen können. Produkte von RStudio wie RStudio Server Pro vereinfachen die Datenanalyse mit R und bieten leistungsstarke Tools zum Veröffentlichen und Freigeben.

RStudio Server Pro ist eine auf On-Demand erhältliche, kommerziell lizenzierte integrierte Entwicklungsumgebung (IDE). Es bietet die Funktionen der beliebten Open-Source-IDE von RStudio wie einsteigerfreundlichen Komfort, verbesserte Sicherheit, die Möglichkeit, mehrere R-Versionen und -Sitzungen zu verwalten und vieles mehr.

Sie können die Komponente RStudio Server Pro for Google Cloud aus Cloud Marketplace bereitstellen. Diese Version ist mit RStudio Server Pro identisch, bietet jedoch für Data Scientists mehr Komfort, einschließlich der Vorinstallation mehrerer Versionen von R und gängigen Systembibliotheken. Sie enthält auch bigrquery, das BigQuery-Paket für R, das DBI- und dplyr-Backends bietet. Das ermöglicht Ihnen, über Low-Level-SQL- oder High-Level-dplyr-Verben mit BigQuery zu interagieren. Dieses Paket vereinfacht die Arbeit mit in BigQuery gespeicherten Daten, da Sie BigQuery-Tabellen abfragen und Metadaten zu Ihren Projekten, Datasets, Tabellen und Jobs abrufen können. Weitere Informationen finden Sie in der offiziellen Anleitung zum Einstieg in RStudio Server Pro for Google Cloud und in den FAQ zu RStudio Server Pro for Google Cloud.

Sie können auch die Open-Source-Version von RStudio Server auf einem Dataproc-Cluster installieren. Ein Vorteil von RStudio auf Dataproc besteht darin, dass Sie Dataproc-Autoscaling nutzen können. Mit Autoscaling können Sie bei der Entwicklung Ihrer SparkR-Logik eine minimale Clustergröße festlegen. Nachdem Sie Ihren Auftrag für eine Massenverarbeitung übergeben haben, müssen Sie keine weiteren Schritte ausführen oder sich Gedanken über die Änderung Ihres Servers machen. Nachdem Sie den SparkR-Job an RStudio gesendet haben, wird der Dataproc-Cluster innerhalb der von Ihnen festgelegten Intervalle skaliert, um die Anforderungen Ihres Jobs zu erfüllen. Weitere Informationen zur RStudio-Einbindung in Dataproc finden Sie in der offiziellen Bekanntgabe.

Andere Ressourcen

BigQuery bietet eine Vielzahl von Client-Bibliotheken in verschiedenen Programmiersprachen wie Java, Go, Python, JavaScript, PHP und Ruby. Einige Datenanalyse-Frameworks, z. B. pandas, bieten Plug-ins, die direkt mit BigQuery interagieren. Einige praktische Beispiele finden Sie in den Anleitungen Benutzerdefinierte interaktive Dashboards mit Bokeh und BigQuery erstellen und BigQuery-Daten in einem Jupyter-Notebook visualisieren.

Wenn Sie lieber Programme in einer Shell-Umgebung schreiben möchten, können Sie das bq-Befehlszeilentool verwenden.