BigQuery erklärt: Ein Überblick

Google BigQuery wurde 2011 veröffentlicht und hat sich seitdem als ein einzigartiger analytischer Datenspeicherdienst positioniert. Mit seiner serverlosen Architektur ist er in der Lage, schnell und skalierbar zu arbeiten und bietet die Möglichkeit, schnelle SQL-Analysen für große Datensätze durchzuführen. Seit der Einführung wurden viele Verbesserungen durchgeführt, um die Leistung, Sicherheit und Zuverlässigkeit zu steigern und den Nutzern das Erzielen von Erkenntnissen zu erleichtern.

Wie trägt ein Data Warehouse zu Geschäftsentscheidungen bei?

Ein Data Warehouse sammelt und analysiert Daten aus verschiedenen Quellen, um wertvolle Erkenntnisse für das Geschäft zu liefern. Seit zwanzig Jahren sind sie wichtige Aufbewahrer von Geschäftsdaten im Unternehmen. In der zunehmend datengesteuerten Welt spielen Data Warehouses eine immer wichtigere Rolle bei der digitalen Transformation von Unternehmen. Die Verwendungen von Data Warehouses sind vielseitiger als nur für herkömmliche Betriebsberichte. Firmen müssen heute:

  • Einen 360⁰-Blick auf ihr Geschäft haben: Daten sind wertvoll. Da die Kosten für die Speicherung und Verarbeitung von Daten sinken, wollen Unternehmen alle relevanten Datensätze, sowohl intern als auch extern, verarbeiten, speichern und analysieren.
  • Situationsbezogenes Erkennen von und Reagieren auf Geschäftsereignisse in Echtzeit: Unternehmen müssen Erkenntnisse aus Echtzeitereignissen gewinnen und nicht Tage oder Wochen auf die Analyse von Daten warten. Das Data Warehouse muss jederzeit den aktuellen Stand des Unternehmens widerspiegeln.
  • Verkürzung der Zeit bis zu den Erkenntnissen: Unternehmen müssen schnell einsatzbereit sein und nicht Tage oder Monate warten, bis Hardware oder Software installiert oder konfiguriert sind.
  • Bereitstellung von Erkenntnissen für Geschäftsanwender, um eine datengesteuerte Entscheidungsfindung im gesamten Unternehmen zu ermöglichen: Um eine datengesteuerte Kultur zu etablieren, müssen Unternehmen den Zugang zu Daten demokratisieren.
  • Sichern Sie Ihre Daten und regeln Sie deren Nutzung: Die Daten müssen sicher und für die richtigen Interessengruppen innerhalb und außerhalb des Unternehmens zugänglich sein.

Wenn Unternehmen ihre Nutzung traditioneller Data Warehouses auf wachsende Datenmengen ausweiten möchten, stoßen sie auf große Herausforderungen, da die Kosten aufgrund höherer Gesamtbetriebskosten (TCO) immer weiter steigen. Herkömmliche Data Warehouses wurden nicht für das enorme Datenwachstum und die neuen Datenverarbeitungsmuster entwickelt.

BigQuery – Cloud Data Warehouse

Google BigQuery ist ein Cloud-natives Data Warehouse, das speziell für datengesteuerte Unternehmen in einer Cloud-First-Welt entwickelt wurde.

BigQuery ist das serverlose, hoch skalierbare und kosteneffiziente Cloud Data Warehouse von GCP. Es ermöglicht superschnelle Abfragen im Petabyte-Maßstab unter Nutzung der Verarbeitungsleistung der Google-Infrastruktur. Da die Kunden keine technische Ausrüstung verwalten müssen, können sie sich mittels verständlichem SQL auf bedeutungsvolle Erkenntnisse fokussieren, ohne auf einen Datenbankadministrator angewiesen zu sein. Darüber hinaus ist es preisgünstig, da nur die benutzte Kapazität für Bearbeitung und Speicherung abgerechnet wird.

Wo passt BigQuery in den Datenlebenszyklus?

BigQuery ist Teil der umfassenden Datenanalyseplattform von Google Cloud, die die gesamte Analyse-Wertschöpfungskette abdeckt, einschließlich der Aufnahme, Verarbeitung und Speicherung von Daten, gefolgt von erweiterten Analysen und Zusammenarbeit. BigQuery ist tief in die Analyse- und Datenverarbeitungsangebote von GCP integriert und ermöglicht es Kunden, ein unternehmensfähiges Cloud-natives Data Warehouse einzurichten.

In jeder Phase des Datenlebenszyklus bietet GCP mehrere Services zur Datenverwaltung an. Das bedeutet, dass Kunden eine Reihe von Services auswählen können, die auf ihre Daten und Arbeitsabläufe zugeschnitten sind.

BigQuery-Architektur

Die serverlose Architektur von BigQuery entkoppelt Speicher und Rechenleistung und ermöglicht deren unabhängige Skalierung nach Bedarf. Diese Struktur bietet den Kunden sowohl enorme Flexibilität als auch Kostenkontrolle, da sie ihre teuren Rechenressourcen nicht ständig aufrechterhalten müssen. Dies ist ein großer Unterschied zu herkömmlichen knotenbasierten Cloud-Data-Warehouse-Lösungen oder On-Premise-Systemen für massiv parallele Verarbeitung (MPP). Dieser Ansatz ermöglicht es Kunden jeder Größe, ihre Daten in das Data Warehouse einzubringen und mit der Analyse ihrer Daten unter Verwendung von Standard-SQL zu beginnen, ohne sich um Datenbankoperationen und Systemtechnik kümmern zu müssen.

Standard-SQL

BigQuery unterstützt zwei SQL-Dialekte: Standard-SQL und Legacy-SQL. Standard-SQL wird für die Abfrage von in BigQuery gespeicherten Daten bevorzugt, da es mit dem ANSI SQL 2011-Standard konform ist. Es bietet weitere Vorteile gegenüber Legacy-SQL, z. B. automatisches Prädikat-Pushdown für JOIN-Operationen und Unterstützung für korrelierte Unterabfragen.

Wenn Sie eine SQL-Abfrage in BigQuery ausführen, wird automatisch ein Abfrageauftrag erstellt, eingeplant und ausgeführt. BigQuery führt Abfrageaufträge in zwei Modi aus: interaktiv (Standard) und Batch.

  • Interaktive (On-Demand-)Abfragen werden so schnell wie möglich ausgeführt, und diese Abfragen werden auf das Limit für die gleichzeitige Rate und das Tageslimit angerechnet.
  • Batch-Abfragen werden in eine Warteschlange gestellt und gestartet, sobald freie Ressourcen im gemeinsamen BigQuery-Ressourcenpool verfügbar sind, was in der Regel innerhalb weniger Minuten der Fall ist. Wenn BigQuery die Abfrage nicht innerhalb von 24 Stunden gestartet hat, wird die Auftragspriorität auf interaktiv geändert. Batch-Abfragen werden nicht auf das Limit für gleichzeitige Abfragen angerechnet. Sie verwenden die gleichen Ressourcen wie interaktive Abfragen.

BigQuery-Tabellentypen

Jede Tabelle in BigQuery wird durch ein Schema definiert, das die Spaltennamen, Datentypen und andere Metadaten beschreibt. BigQuery unterstützt die folgenden Tabellentypen:

  • Manages Tables
  • External Tables
  • Standard View
  • Materialized Views

BigQuery-Schemata

Beispiel-Schema von Google Analytics Daten aus Big Query

In BigQuery werden Schemata auf Tabellenebene definiert und strukturieren die Daten. Das Schema beschreibt die Spaltendefinitionen mit ihrem Namen, Datentyp, ihrer Beschreibung und ihrem Modus.

Bei den Datentypen kann es sich um einfache Datentypen handeln, z. B. Ganzzahlen, oder um komplexere Typen wie ARRAY und STRUCT für verschachtelte und wiederholte Werte.

Der Spaltenmodus kann NULLABLE, REQUIRED oder REPEATED sein.

Das Tabellenschema wird beim Laden von Daten in die Tabelle oder beim Erstellen einer leeren Tabelle angegeben. Alternativ dazu können Sie beim Laden von Daten die automatische Schemaerkennung für selbstbeschreibende Quelldatenformate wie Avro-, Parquet-, ORC-, Cloud Firestore- oder Cloud Datastore-Exportdateien verwenden.

Wie speichert BigQuery Daten?

BigQuery speichert Daten in einem spaltenförmigen Format – Capacitor (ein Nachfolger von ColumnarIO). BigQuery erreicht eine sehr hohe Komprimierungsrate und einen hohen Scan-Durchsatz. Im Gegensatz zu ColumnarIO können Sie in BigQuery direkt mit komprimierten Daten arbeiten, ohne sie zu dekomprimieren.

Columnar-Storage hat die folgenden Vorteile:

  • Minimierung des Datenverkehrs – Wenn Sie eine Abfrage einreichen, werden die erforderlichen Spaltenwerte für jede Abfrage gescannt und nur diese werden bei der Ausführung der Abfrage übertragen. Zum Beispiel würde eine Abfrage `SELECT title FROM Collection` nur auf die Werte der Titelspalte zugreifen.
  • Höheres Komprimierungsverhältnis – Bei der spaltenbasierten Speicherung kann ein Komprimierungsverhältnis von 1:10 erreicht werden, während bei der gewöhnlichen zeilenbasierten Speicherung eine Komprimierung von etwa 1:3 möglich ist.

Laden von Daten in BigQuery

Es gibt mehrere Möglichkeiten, Daten in BigQuery zu laden, je nach Datenquellen, Datenformaten, Lademethoden und Anwendungsfällen wie Batch, Streaming oder Datenübertragung. Nachfolgend finden Sie eine Übersicht über die Möglichkeiten, wie Sie Daten in BigQuery laden können:

  • Batch-Ingestion
  • Streaming-Ingestion
  • Data Transfer Service (DTS)
  • Query Materialization
  • Partner-Integrationen

Batch-Ingestion

Bei der Batch-Ingestion werden große, begrenzte Datensätze geladen, die nicht in Echtzeit verarbeitet werden müssen. Sie werden in der Regel in bestimmten regelmäßigen Abständen eingespeist, wobei alle Daten auf einmal oder gar nicht eintreffen. Die eingelesenen Daten werden dann für die Erstellung von Berichten abgefragt oder mit anderen Quellen, auch in Echtzeit, kombiniert.

BigQuery-Batch-Ladeaufträge sind kostenlos. Sie zahlen nur für die Speicherung und Abfrage der Daten, nicht aber für das Laden der Daten.

Für Batch-Anwendungsfälle wird empfohlen, die eingehenden Daten in der Cloud zu speichern. Es handelt sich um einen dauerhaften, hochverfügbaren und kostengünstigen Objektspeicherdienst. Das Laden von Cloud Storage in BigQuery unterstützt mehrere Dateiformate – CSV, JSON, Avro, Parquet und ORC.

Streaming-Ingestion

Streaming Ingestion unterstützt Anwendungsfälle, die die Analyse großer Mengen kontinuierlich ankommender Daten mit Dashboards und Abfragen nahezu in Echtzeit erfordern. Die Verfolgung von Ereignissen in mobilen Anwendungen ist ein Beispiel für dieses Muster. Die App selbst oder die Server, die ihr Backend unterstützen, könnten Benutzerinteraktionen in einem Event-Ingestion-System wie Cloud Pub/Sub aufzeichnen und sie mithilfe von Datenpipeline-Tools wie Cloud Dataflow in BigQuery streamen, oder Sie können mit Cloud Functions für Ereignisse mit geringem Volumen serverlos arbeiten. Sie können diese Daten dann analysieren, um allgemeine Trends zu ermitteln, z. B. Bereiche mit hoher Interaktion oder Problemen, und Fehlerbedingungen in Echtzeit überwachen.

Mit der Streaming-Ingestion von BigQuery können Sie Ihre Daten mit der Methode tabledata.insertAll datensatzweise in BigQuery einspeisen. Die API ermöglicht unkoordinierte Einfügungen von mehreren Produzenten. Die aufgenommenen Daten sind innerhalb weniger Sekunden nach der ersten Streaming-Einfügung sofort für Abfragen aus dem Streaming-Puffer verfügbar. Es kann jedoch bis zu 90 Minuten dauern, bis die Daten für Kopier- und Exportvorgänge zur Verfügung stehen. Weitere Informationen finden Sie in unserem Blogbeitrag über die Funktionsweise von Streaming Insert und in unseren Dokumenten.

Eines der häufigsten Muster für die Aufnahme von Echtzeitdaten auf der Google Cloud Platform ist das Lesen von Nachrichten aus dem Cloud Pub/Sub-Thema mithilfe der Cloud Dataflow-Pipeline, die im Streaming-Modus ausgeführt wird und in BigQuery-Tabellen schreibt, nachdem die erforderliche Verarbeitung abgeschlossen ist. Das Beste an der Cloud Dataflow-Pipeline ist, dass Sie denselben Code sowohl für die Streaming- als auch für die Batch-Verarbeitung wiederverwenden können und Google die Arbeit des Startens, Ausführens und Stoppens von Rechenressourcen verwaltet, um Ihre Pipeline parallel zu verarbeiten. In dieser Referenzarchitektur wird der Anwendungsfall sehr ausführlich behandelt.

Bitte beachten Sie, dass Sie über Cloud Dataflow hinaus weitere Optionen für das Streaming von Daten zu BigQuery haben. Sie können zum Beispiel Streaming-Pipelines in Apache Spark schreiben und auf einem Hadoop-Cluster wie Cloud Dataproc unter Verwendung des Apache Spark BigQuery Connector ausführen. Sie können auch die Streaming-API in einer beliebigen Client-Bibliothek aufrufen, um Daten an BigQuery zu streamen.

Data Transfer Service

Der BigQuery Data Transfer Service (DTS) ist ein vollständig verwalteter Service zum Einlesen von Daten aus Google SaaS-Anwendungen wie Google Ads, externen Cloud-Speicheranbietern wie Amazon S3 und zur Übertragung von Daten aus Data Warehouse-Technologien wie Teradata und Amazon Redshift. DTS automatisiert die Datenübertragung in BigQuery auf einer geplanten und verwalteten Basis. DTS kann für Daten-Backfills verwendet werden, um Ausfälle oder Lücken auszugleichen.

Stellen Sie sich den Data Transfer Service als einen mühelosen Datenbereitstellungsdienst für den Import von Daten aus Anwendungen in BigQuery vor.

Query Materialization

Wenn Sie Abfragen in BigQuery ausführen, können ihre Ergebnismengen materialisiert werden, um neue Tabellen zu erstellen.

Die Materialisierung von Abfrageergebnissen ist eine großartige Möglichkeit zur Vereinfachung von ETL- (Extract, Transform and Load) oder ELT-Mustern (Extract, Load and Transform) in BigQuery. Wenn Sie z. B. explorative Arbeiten oder Prototyping an Dateien durchführen, die im Cloud-Speicher bereitgestellt werden, und dabei föderierte Abfragen in BigQuery verwenden, können Sie diese Analyseergebnisse in BigQuery persistieren, um daraus Erkenntnisse abzuleiten. Bitte beachten Sie, dass Ihnen die Anzahl der von der Abfrage gelesenen Bytes und die Anzahl der nach dem Schreiben der Tabellen im BigQuery-Speicher gespeicherten Bytes in Rechnung gestellt werden.

Partner-Integrationen

Neben den Lösungen, die nativ in BigQuery verfügbar sind, können Sie auch Datenintegrationsoptionen von Google Cloud-Partnern prüfen, die ihre branchenführenden Tools in BigQuery integriert haben.