Durch Anklicken „Akzeptieren“, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Seitennavigation zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Sehen Sie sich unsere an Datenschutzrichtlinie für weitere Informationen.
Sep 4, 2024
More

Wie füge ich Primär- und Fremdschlüssel zu einer BigQuery hinzu?

Google beginnt, Funktionen von Systemen wie MySQL hinzuzufügen. Von Alexander Junke

BigQuery ist ein Data Warehouse-Tool zum Speichern und Transformieren großer Datenmengen. Einer der größten Unterschiede zu einer operativen Datenbank besteht darin, dass Sie absichtlich doppelte Informationen in verschiedenen Tabellen verwenden können und keine Beziehungen zwischen den Tabellen erforderlich sind.

Google hat BigQuery jetzt alle Funktionen von Key Constraints hinzugefügt. Sie können während der Tabellenerstellung Schlüssel festlegen, die aktuellen Einschränkungen in einem Datensatz anzeigen und vieles mehr.

Jeder, der an der neuen BigQuery-Funktion interessiert ist, muss diesen Beitrag lesen.

Was sind Primärschlüssel und Fremdschlüssel?

Primärschlüssel und Fremdschlüssel sind normalerweise eines der ersten Dinge, die Sie lernen, wenn Sie mit SQL oder Datenbanken beginnen.

Primärschlüssel:

  • Jede Tabelle kann eine oder mehrere Spalten haben, die als Primärschlüssel gekennzeichnet sind.
  • Die Kombination der Primärschlüsselwerte in einer Zeile muss in der Tabelle eindeutig sein

Fremdschlüssel:

  • Jede Tabelle kann eine oder mehrere Spalten haben, die als Fremdschlüssel gekennzeichnet sind
  • Die Fremdschlüsselspalte muss sich in einer anderen Tabelle im gleichen Format befinden
  • Die Kombination der Fremdschlüsselspalten muss in der Tabelle nicht eindeutig sein

Tabellen mit Primärschlüsseln erstellen

Um eine Tabelle mit einem Primärschlüssel zu erstellen, müssen Sie Folgendes tun:

TABELLE ERSTELLEN key_constraint_tests.planet (

Sonnen-ID INT64,

Position INT64,

Name STRING,

Anzahl_der_Monde INT64,

PRIMÄRSCHLÜSSEL (sun_id, position) WIRD NICHT DURCHGESETZT

);

  • Beginne mit „PRIMARY KEY“
  • in Klammern, welche Spaltenwerte den Primärschlüssel bilden
  • Wählen Sie am Ende, ob der Primärschlüssel erzwungen wird oder nicht
  • Derzeit (22.03.2023) ist die Durchsetzung des Primärschlüssels nicht möglich

Da es keine Durchsetzung gibt, ist es kein Problem, der Tabelle die folgenden Zeilen hinzuzufügen:

KEY_constraint_tests.planet EINFÜGEN (Sonnen-ID, Position, Name, Anzahl_DER_MONS)

WERTE (1, 1, 'Quecksilber', 0),

(1, 1, 'Venus', 0),

(1, 3, 'Erde', 1),

(1, 4, 'März', 2)

In den Daten ist ein Fehler und Merkur und Venus bekommen beide Position 1. Wir haben also zweimal dieselbe Kombination in einem Primärschlüssel.

Tabellen mit Fremdschlüsseln erstellen

Das Erstellen einer Tabelle mit Fremdschlüsseln funktioniert genauso wie für den Primärschlüssel:

TABELLE ERSTELLEN key_constraint_tests.atmospheres (

Sonnen-ID INT64,

Position INT64,

element_1 ZEICHENFOLGE,

element_2 ZEICHENFOLGE,

element_3 ZEICHENFOLGE,

FREMDSCHLÜSSEL (sun_id, position) REFERENZEN key_constraint_tests.planet (sun_id, position) NICHT ERZWUNGEN

);

  • Beginne mit „FOREIGN KEY“
  • welche Spalten dieser Tabelle sind Teil des Schlüssels
  • Weiter mit REFERENZEN
  • Datensatz- und Tabellenname der referenzierenden Tabellen
  • welche Spalten der Referenztabelle die Verbindung aufbauen
  • Wählen Sie zwischen Vollstreckung oder nicht (Auch hier ist vorerst keine Durchsetzung möglich)

Dann können wir der Tabelle auch die folgenden Zeilen hinzufügen:

FÜGEN SIE key_constraint_tests.atmospheres (sun_id, position, element_1, element_2, element_3) EIN

WERTE

(1, 1, 'Wasserstoff', 'Oxid', 'Helium'),

(1, 2, „Kohlendioxid“, „Stickstoff“, „Schwefeldioxid“),

(1, 5, 'Wasserstoff', 'Helium', 'Methan')

Die 3. Einfügung funktioniert auch. In der Originaltabelle gibt es keinen 5. Planeten, aber da die Einstellung „Keine Durchsetzung“ gesetzt wurde, liegt kein Fehler vor.

Schlüssel in einer bereits vorhandenen Tabelle ändern

Sie können Tabellen auch später problemlos Primär- oder Fremdschlüssel hinzufügen.

Mit der ALTER TABLE-Anweisung können Sie einen Primärschlüssel hinzufügen:

TABELLE ÄNDERN key_constraint_tests.planet_without_pk

PRIMÄRSCHLÜSSEL HINZUFÜGEN (sun_id, position_from_sun) NICHT ERZWUNGEN;

Oder du fügst einen Fremdschlüssel hinzu:

TABELLE ÄNDERN key_constraint_tests.atmospheres_without_fk

FREMDSCHLÜSSEL HINZUFÜGEN (sun_id, position_from_sun) REFERENZEN key_constraint_tests.planet (sun_id, position_from_sun) NICHT ERZWUNGEN

Verwenden der Table_Constraints-Ansicht

Wenn Sie Ihre ersten Tabellen mit den Einschränkungen in einem Datensatz haben, können Sie sich mit einer neuen Metadatenansicht einen Überblick über die aktuelle Situation verschaffen.

Die Ansicht ist die table_constraints-Ansicht. Sie können sich die Ergebnisse mit dem folgenden Befehl ansehen:

WÄHLEN SIE *

VON KEY_CONSTRAINT_TESTS.INFORMATION_SCHEMA.TABLE_CONSTRAINTS

Sie müssen nur den Datensatznamen in der obigen Abfrage ändern und Sie erhalten ein gültiges Ergebnis.

Die Informationen, die Sie erhalten, sind ziemlich einfach. Eine Zeile ist eine Einschränkung.

  • Constraint_name: Der Name der Einschränkung, falls es der Standardname ist, der den Namen der Tabelle enthält, dann .pk oder .fk und dann für den Fremdschlüssel die Anzahl der Einschränkungen (z. B. planet.pk$, atmospheres.fk$1)
  • constraint_type: Ist es ein Primärschlüssel oder ein Fremdschlüssel
  • is_deferrable, initially_deferred, erzwungen: Derzeit immer NEIN
Teil der Metadatentabelle

Eine vollständige Liste finden Sie hier.

Fazit

Google hat BigQuery um eine Funktion erweitert, die bereits in operativen Datenbanken wie MySQL, PostgreSQL usw. verfügbar ist. Primär- und Fremdschlüssel sind in diesen Systemen sehr wichtig.

Der aktuelle Status in BigQuery ist nur eine erste Version. Es fehlen noch viele Funktionen, um den Analysten und Ingenieuren einen umfassenden Funktionsumfang zur Verfügung zu stellen. Die wichtigsten fehlenden Funktionen sind:

  • Prüfen Sie, ob eine Tabelle keine doppelten Primärschlüssel enthält
  • Überprüfen Sie, ob die Fremdschlüssel in der referenzierten Tabelle vorhanden sind
  • Besserer Überblick über die aktuellen Einschränkungen in einem Datensatz oder in einer Tabelle (z. B. im Tabellen-Detail-Tab)

Zusammengefasst ist es ein guter und einfacher Ausgangspunkt, aber um ihn in Projekten zu verwenden, fehlen noch viele Funktionen. Derzeit dient es eher dazu, die Verweise zwischen Tabellen anzuzeigen.

Weitere Links

Dieser Beitrag ist Teil der neuen Funktionen in der Google Cloud-Serie von Datenurteil und gibt Ihnen detaillierte Einblicke in eine neue Funktion in BigQuery oder Data Studio.

Folge uns auf LinkedIn für Einblicke in unsere tägliche Arbeit und wichtige Updates zu BigQuery, Data Studio und Marketing Analytics.

Abonniere unseren YouTube-Kanal für Diskussionen zu DWH, BigQuery, Looker Studio und Google Tag Manager.

Wenn Sie BigQuery von Grund auf lernen möchten, erhalten Sie Zugriff auf unsere kostenloser BigQuery-Kurs

Verbessern Sie Ihre Fähigkeiten mit Google Data Studio und BigQuery, indem Sie sich für unser Udemy-Kurs.

Benötigen Sie Hilfe bei der Einrichtung eines modernen, kostengünstigen Data Warehouse oder eines analytischen Dashboards? Senden Sie uns eine E-Mail an hello@datadice.io um einen Anruf zu vereinbaren.