Einsteigerleitfaden für GCP BigQuery (Teil 1) | von groovyhoon | Juni 2023

0
30


Während meiner 7-jährigen Karriere im Bereich Knowledge Science bin ich mit einer Reihe unterschiedlicher Datenbanken in Berührung gekommen, unter anderem mit Oracle Database, MS SQL, MySQL, EDW und Apache Hadoop. Und seit dem Aufkommen des Cloud Knowledge Warehouse hatte ich das Glück, in den frühen Phasen der Ära eine gute Bekanntheit auf der Google Cloud Platform zu erlangen, was zu meinem Wettbewerbsvorteil auf diesem wilden Arbeitsmarkt wurde.

Viele von Ihnen, die bereits im Bereich Knowledge Science tätig sind, müssen mit BigQuery und seinen Vorteilen vertraut sein. Dieser Artikel richtet sich an angehende oder Einsteiger in die Datenwissenschaft und -technik, die in die Branche einsteigen möchten und/oder den Bereich der Datenwissenschaft als einen Ihrer zukünftigen Karrierewege erkunden möchten.

Bevor wir uns mit einigen der wichtigsten Funktionen von BigQuery befassen, sehen wir uns die wichtigsten Vorteile von GCP BQ gegenüber herkömmlichen Datenbanksystemen an:

  1. Automatische Skalierung: Mit BigQuery müssen Sie sich keine Gedanken über die Einrichtung von Servern oder die Wartung der Infrastruktur machen. Es skaliert Abfragen automatisch, um Datensätze jeder Größe zu verarbeiten, sodass Sie sich auf die Analyse Ihrer Daten konzentrieren können.
  2. Serverlos: BigQuery ist eine serverlose Lösung, was bedeutet, dass Sie sich keine Gedanken über Kapazitätsplanung, Software program-Updates oder Patches machen müssen.
  3. Kosteneffizient: BigQuery bietet eine kostengünstige Lösung, da Sie nur für die Abfragen und den Speicher bezahlen, die Sie nutzen. Dies macht es für Unternehmen jeder Größe erschwinglich.
  4. Geschwindigkeit: BigQuery bietet eine blitzschnelle Abfrageleistung, sodass Sie Ihre Daten schnell analysieren und auf der Grundlage der gewonnenen Erkenntnisse bessere Entscheidungen treffen können.
  5. Integration: BigQuery lässt sich nahtlos in andere Instruments und Dienste der Google Cloud Platform integrieren, sodass Sie es problemlos zusammen mit anderen Lösungen wie Google Knowledge Studio, Cloud Storage, Vertex AI und mehr verwenden können.

Insgesamt battle meine Erfahrung mit BigQuery äußerst angenehm, da es eine kostengünstige serverlose Lösung bietet, die unvergleichlich schnell ist und sich nahtlos in andere Dienste innerhalb der Google-Plattform integriert.

Kommen wir nun zum Hauptthema des Artikels. Ich wollte kurz einige der in BigQuery verfügbaren Funktionen vorstellen und erklären, wie sie sich voneinander unterscheiden.

Im ersten Teil dieses Artikels wollte ich Tabellen, Ansichten, gespeicherte Prozeduren und materialisierte Ansichten behandeln.

Und als Spoiler werde ich in Teil 2 auf erweiterte Funktionen wie partitionierte Tabellen, geplante Abfragen, Skalarfunktionen und externe Tabellen eingehen.

Die Tabelle in GCP BigQuery ist eine Sammlung von Zeilen und Spalten, die riesige Datenmengen speichern und verwalten kann. Es handelt sich um einen verwalteten, cloudbasierten Dienst, der für die einfache Verarbeitung großer Datenmengen konzipiert ist. Tabellen sind die Hauptmerkmale der BigQuery-Plattform, die herkömmlichen Datenbanken überlegen ist.

Es gibt verschiedene Möglichkeiten, eine Tabelle in BQ zu erstellen, und ich möchte einige davon vorstellen.

Der am häufigsten verwendete Weg (zumindest von mir selbst) ist die Verwendung von DDL-Anweisung wie nachstehend:

CREATE OR REPLACE example_dataset.table_name AS 

SELECT * FROM example_dataset.source_table_name

Eine andere Möglichkeit, eine Tabelle auf ähnliche Weise zu erstellen, jedoch eher unter Verwendung einer grafischen Benutzeroberfläche als rein per Code, ist die Verwendung der Abfrageergebnisse. Sie müssen lediglich a ausführen SELECT-Anweisung und führen Sie dann ERGEBNISSE SPEICHERN → BigQuery-Tabelle aus.

Eine dritte Möglichkeit ist die Nutzung der Integrationsfähigkeit mit GCS Bucket. Es ist so einfach wie das Hochladen einer Datei (vorzugsweise .txt- oder .csv-Datei) in einen Cloud-Speicher und dann die Verwendung einer Funktion zum Erstellen einer Tabelle unter dem Datensatz und das Festlegen dieser einfachen Parameter wie unten.

Es gibt natürlich auch andere Möglichkeiten als die oben aufgeführten. Dies sind jedoch die drei häufigsten Methoden, die ich beim Erstellen von Tabellen in BigQuery verwende. Einige der anderen Möglichkeiten sind das Erstellen einer Tabelle 1) über die Befehlszeile in der Google Cloud Console, 2) über die APIs oder 3) über Vertex AI Workbench. Ich überlasse es Ihnen, diese Methoden selbst zu recherchieren und sich damit vertraut zu machen.

Ansichten in GCP BigQuery sind virtuelle Tabellen, die durch eine SQL-Abfrage definiert werden und die Ergebnisse einer Abfrage anzeigen oder als Foundation für andere Abfragen verwendet werden können. Sie sind keine physischen Tabellen und speichern keine Daten. Stattdessen verweisen sie auf Daten, die in anderen Tabellen gespeichert sind. Das Tolle an Ansichten ist, dass Sie die Ansicht nach dem Erstellen immer noch wie eine Tabelle abfragen können.

Einige der zusätzlichen Merkmale von Ansichten sind:

  1. Ansichten sind nicht materialisiert, d. h. sie speichern keine Daten, sondern stellen eine Abfrage über einer Tabelle dar.
  2. Sie sind schreibgeschützt und können nicht durch DML-Anweisungen geändert werden.
  3. Sie können verwendet werden, um den Zugriff auf die zugrunde liegenden Daten zu kontrollieren.
  4. Sie können verwendet werden, um komplexe Abfragen zu vereinfachen, indem sie in kleinere, besser verwaltbare Teile unterteilt werden.
  5. Sie können verwendet werden, um die zugrunde liegenden Daten von Endbenutzern oder Kunden zu abstrahieren.

Im Gegensatz zu Tabellen werden Ansichten häufig für spezifischere Zwecke erstellt, beispielsweise um den Datenzugriff von Benutzern einzuschränken oder komplexe Abfragen zu segmentieren. Eine intestine gestaltete Datenbank nutzt Ansichten am richtigen Ort und zur richtigen Zeit.

Die gebräuchlichste Methode zum Erstellen einer Ansicht in einem Datensatz ist die von ANSICHT ERSTELLEN DDL-Anweisung und Sie können darauf verweisen die offizielle Dokumentation um weitere Optionen zu erkunden.

CREATE OR REPLACE VIEW example_view_name AS
SELECT identify, e mail, phone_number
FROM example_table_name;

Gespeicherte Prozeduren sind eine Möglichkeit, SQL-Anweisungen in GCP BigQuery zu speichern und auszuführen. Sie können damit einen wiederverwendbaren Code schreiben, der von überall in Ihren Abfragen aufgerufen werden kann. Sie können gespeicherte Prozeduren verwenden, um komplexe ETL-Prozesse abzuwickeln, API-Aufrufe durchzuführen und Datenvalidierungen durchzuführen.

Persönlich sind gespeicherte Prozeduren mein Lieblingsfeature von BigQuery, mit dem man eine Vielzahl von Anwendungsfällen abwickeln kann. Wenn Sie ein Pythonist sind oder sich mit Programmiersprachen auskennen, können Sie sich das als benutzerdefinierte Funktionen vorstellen, bei denen Sie benutzerdefinierte Parameter bereitstellen können, um eine gewünschte Ausgabe zurückzugeben.

In ähnlicher Weise weisen gespeicherte Prozeduren die folgenden Merkmale auf:

  1. Es verwendet SQL als Programmiersprache.
  2. Gespeicherte Prozeduren werden in einem Datensatz in einem bestimmten Projekt gespeichert.
  3. Die Ausführung einer gespeicherten Prozedur kann durch eine Abfrage oder eine benutzerdefinierte Funktion ausgelöst werden.
  4. Es ermöglicht die Parametrisierung von Abfragen, wodurch der Code modularer gestaltet und Redundanzen reduziert werden können.
  5. Sie können in Ihren Prozeduren Logik wie Schleifen, Bedingungen und Ausnahmen verwenden.

Wie Sie sich vorstellen können, gibt es unzählige Anwendungsfälle. Ich werde hier einige auflisten, damit Sie sich einen Überblick verschaffen und möglicherweise beim Brainstorming helfen können.

Datenvalidierung
Mit gespeicherten Prozeduren können Sie Datenfelder, Datentypen und Einschränkungen bei der Dateneingabe validieren, um die Datenqualität aufrechtzuerhalten.

Komplexe Datentransformationen
SPs ermöglichen die Ausführung komplexerer und sich wiederholender Datentransformationen für große Datensätze.

Automatisierte Datenpflege
Durch die Verwendung gespeicherter Prozeduren können sich wiederholende Aufgaben wie die automatisierte Datenarchivierung oder Datenlöschungen in großen Datenbanken einfach geplant werden.

Leistungsverbesserungen
Gespeicherte Prozeduren können die Leistung von Abfragen und Datenbankvorgängen verbessern, indem sie den Netzwerkverkehr und die Latenz reduzieren und Datenabrufmuster optimieren.

Verbesserte Sicherheit
Gespeicherte Prozeduren können verwendet werden, um den Zugriff auf vertrauliche Daten einzuschränken, indem nur authentifizierten Benutzern die Ausführung bestimmter Abfragen und Codes gestattet wird.

Das Erstellen einer gespeicherten Prozedur ist genauso einfach wie das Erstellen einer Tabelle oder einer Ansicht. SPs werden normalerweise mit erstellt VERFAHREN ERSTELLEN Anweisungen und Sie müssen die Ausführungscodes darin verkörpern ANFANG..ENDE Aussagen.

Das folgende Beispiel ist eine Abfrage mit mehreren Anweisungen, die eine Variable festlegt, eine Zieltabelle abschneidet, in eine Tabelle einfügt und dann das Ergebnis in einem Tabellenformat anzeigt. Außerdem akzeptiert die Prozedur eine Ganzzahl als Parameter, die dann zum Festlegen des Variablenwerts verwendet wird (Ja, dieser Schritt ist überflüssig und wurde nur zu Demonstrationszwecken geschrieben.)

CREATE OR REPLACE PROCEDURE sp_example_procedure(val3 INT) 
BEGIN
DECLARE @variable_name INT;
SET @variable_name = val3;

TRUNCATE TABLE example_table_name;

INSERT INTO example_table_name(column1, column2, column3)
VALUES ('value1', 'value2', @variable_name);

SELECT * FROM example_table_name;
END

Eine materialisierte Ansicht in GCP BigQuery ist wie eine Kombination aus einer Tabelle und einer Ansicht. Es speichert die Ergebnisse einer SQL-Abfrage als tabellenartige Struktur in BigQuery, ähnlich wie eine Tabelle Daten speichert. Im Gegensatz zu einer regulären Tabelle aktualisieren Materialized Views ihre gespeicherten Ergebnisdaten jedoch automatisch, nachdem die zugrunde liegenden Tabellen in Echtzeit aktualisiert wurden, ohne dass die Abfrage erneut ausgeführt werden muss.

Stellen Sie sich eine materialisierte Ansicht wie eine Momentaufnahme eines Abfrageergebnisses vor, die als Tabelle gespeichert und jedes Mal aktualisiert wird, wenn die zugrunde liegenden Daten aktualisiert werden. Dies kann bei großen Datenmengen oder Abfragen, deren Ausführung lange dauert, sehr hilfreich sein, da sie für einen schnellen Zugriff in der Materialized-Ansicht vorberechnet werden können.

Hier sind einige Merkmale materialisierter Ansichten in GCP BigQuery:

  1. Sie können verwendet werden, um die Abfrageleistung bei komplexen und zeitaufwändigen Abfragen zu verbessern.
  2. Sie reduzieren die Häufigkeit, mit der eine Abfrage für die zugrunde liegenden Daten ausgeführt werden muss, und sparen so Rechenkosten.
  3. Sie können zum Zwischenspeichern von Abfragen für große Datensätze verwendet werden, die häufig von mehreren Benutzern abgefragt werden.
  4. Sie werden regelmäßig oder bei Bedarf aktualisiert und Sie können die Häufigkeit und den Modus der Aktualisierungen steuern.
  5. Sie unterstützen nicht alle SQL-Operationen wie ORDER BY oder LIMIT, daher ist es wichtig, ihre Einschränkungen zu kennen, bevor Sie sie verwenden.

Im Wesentlichen bieten Materialized Views einen geringen bis gar keinen Wartungsaufwand und geben jedes Mal und bei jeder Abfrage neue Daten zurück, unabhängig davon, wie kürzlich die Basistabellen aktualisiert wurden.

CREATE MATERIALIZED VIEW sample_view AS
SELECT column1, column2, SUM(column3)
FROM sample_table
GROUP BY column1, column2;

In diesem Artikel haben wir einige der wichtigsten Vorteile von BigQuery und seine häufig verwendeten Funktionen behandelt. Viele dieser Konzepte sind Ihnen vielleicht bereits bekannt, aber es könnte auch eine gute Zusammenfassung darüber sein, welche verschiedenen Datenobjekte in BigQuery verfügbar sind und wann welches verwendet werden sollte.

Im nächsten Artikel werde ich die restlichen Schlüsselfunktionen behandeln, die Sie in BigQuery nutzen können und die Ihnen hoffentlich weitere Möglichkeiten zum Aufbau einer Datenbank öffnen, die nicht nur effizient, sondern auch kosteneffektiv ist und genau den Zweck erfüllt, den Sie erreichen wollten.

— Seien Sie gespannt auf Teil 2 —

Verweise: https://cloud.google.com/bigquery/docs/resource-hierarchy



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here