Was ist ein Hub in Data Vault?

Ein Hub bildet ein zentrales Geschäftsobjekt wie Kunde, Produkt oder Konto als Liste seiner Schlüssel ab: jeden Schlüssel, den das Warehouse je gesehen hat, jeden genau einmal. Er speichert Identität, keinen Zustand, und genau diese Beschränkung macht ihn zu dem Punkt, an dem die Silos der Quellsysteme aufgelöst werden.

Was ist ein Hub in Data Vault?

Die Data-Warehouse-Automationsplattform, der Datenteams aus vielen Branchen vertrauen

Kommt Ihnen das bekannt vor?

  • Derselbe Kunde existiert dreimal im Warehouse, einmal pro Quellsystem, und niemand kann sagen, welcher Datensatz der richtige ist.
  • Jede neue Quelle bedeutet, die Schlüssel neu abzustimmen und Joins im ganzen Modell neu zu schreiben.
  • Ein Quellsystem hat seine Datensätze neu nummeriert, und die Hälfte der Historie passt nicht mehr zusammen.

Jedes Data Warehouse muss vor allen anderen eine Frage beantworten: Über welche Dinge spricht dieses Unternehmen, und woran unterscheidet es sie? In Data Vault lautet die Antwort: der Hub.

Was ein Hub ist

Ein Hub bildet ein zentrales Geschäftsobjekt (Core Business Concept) ab: Kunde, Produkt, Konto, Vertrag. Er ist keine Kopie einer Tabelle aus dem Quellsystem. Der Kunden-Hub enthält jeden Kundenschlüssel, den das Warehouse je erhalten hat, aus jeder Quelle, jeden genau einmal.

Ein Hub speichert Identität, keinen Zustand. Er sagt nichts über den Kunden aus: Name, Adresse und Status stehen in Satelliten, und die Aufträge und Verträge des Kunden sind über Links angebunden. Der Hub hält nur fest, dass dieser Schlüssel existiert, wann das Warehouse ihn zum ersten Mal gesehen hat und woher er kam.

Wer die klassische Datenmodellierung kennt, kennt den Hub bereits

Data Vault ersetzt nicht, was Sie über Datenmodellierung gelernt haben. Es nutzt dieses Wissen weiter. Beginnen Sie mit dem konzeptionellen Modell, das Sie ohnehin erstellen würden: den Geschäftsobjekten und ihren Beziehungen zueinander. Jedes Geschäftsobjekt, jede Entität in Ihrem ER-Diagramm, wird zu einem Hub.

Nehmen Sie eine klassische Customer-Tabelle in dritter Normalform:

Klassisches Modell Was es ist In Data Vault
Entität Customer Das Geschäftsobjekt Hub
customer_number (natürlicher Primärschlüssel) Die Identität Business-Key im Hub
name, address, segment Beschreibende Attribute Satellit
store_id (Fremdschlüssel) Eine Beziehung zu einem anderen Geschäftsobjekt Link

Nichts geht verloren, und nichts wird neu erfunden. Die Entität wird entlang von Linien aufgeteilt, die Sie bereits kennen: was sie identifiziert, was sie beschreibt und womit sie in Beziehung steht. Der Hub ist das Erste dieser drei. Deshalb ist die Suche nach Hubs dieselbe Arbeit wie bei jedem guten konzeptionellen Modell: sich auf die Geschäftsobjekte einigen und darauf, wie jedes von ihnen identifiziert wird.

Der Aufbau eines Hubs

Ein Hub hat vier Spalten, nicht mehr:

  • Hash-Schlüssel. Der Primärschlüssel: ein deterministischer Surrogatschlüssel, berechnet als Hash (MD5 oder SHA-256) des Business-Keys, ergänzt um einen optionalen Kollisionscode, wo zwei Quellen denselben Schlüssel für Unterschiedliches verwenden könnten. In Datavault Builder heißt dieser Kollisionscode Business Key Prefix. Jede Tabelle, die auf den Hub verweist, berechnet denselben Wert ohne Lookup.
  • Business-Key. Der Schlüssel, der die Entität in der Geschäftswelt identifiziert: eine Kundennummer, eine Fahrgestellnummer (VIN), eine IBAN. Eine Spalte oder mehrere bei einem zusammengesetzten Schlüssel, etwa Buchungskreis plus Kundennummer.
  • Load Date. Wann der Business-Key zum ersten Mal im Data Vault registriert wurde.
  • Record Source. Welches operative System den Schlüssel zuerst geliefert hat.

Der Business Key Prefix: gleicher Schlüssel, anderer Auftrag

Die Schweizer und die deutsche Tochtergesellschaft betreiben jeweils ihr eigenes ERP-System, und beide haben einen Auftrag 1018. Es sind zwei verschiedene Aufträge von verschiedenen Kunden. Würde nur die Auftragsnummer gehasht, fielen beide in dieselbe Hub-Zeile, und alles, was die beiden Systeme über sie wissen, würde vermischt.

Der Business Key Prefix hält sie auseinander. Jede Quelle stellt ihr Präfix vor den Schlüssel, bevor er gehasht wird, CH|1018 und DE|1018, sodass der Auftrags-Hub zwei Zeilen enthält, wie es sein soll. Setzen Sie ihn nur dort ein, wo derselbe Schlüssel wirklich Unterschiedliches bedeuten kann. Wo zwei Systeme einen Schlüssel mit gleicher Bedeutung teilen, etwa eine konzernweite Kundennummer, sollten sie ohne Präfix derselben Hub-Zeile zugeordnet werden.

Warum wir den Business-Key weder trimmen noch in Großbuchstaben umwandeln

Häufig wird empfohlen, den Business-Key vor dem Hashen zu trimmen und in Großbuchstaben umzuwandeln. Davon raten wir ab. Dadurch werden c-10442 und C-10442 zum selben Kunden, und auch ein Leerzeichen am Ende verschwindet, selbst wenn der Unterschied ein Tippfehler in der Quelle ist. Der Vault führt dann zwei Einträge und ihre Beziehungen zu einem zusammen, ohne dass es jemand bemerkt. Der Hub sollte behalten, was die Quelle geliefert hat. Die Entscheidung, dass zwei Schlüssel dasselbe bedeuten, ist eine Geschäftsregel, und sie gehört an eine sichtbare Stelle, etwa in einen Same-As-Link.

Einmal schreiben, nie aktualisieren

Hubs werden nur ergänzt (append-only). Jeder Ladevorgang vergleicht die eingehenden Schlüssel mit denen, die bereits im Hub stehen, und fügt die neuen ein. Steht ein Business-Key einmal im Hub, bleibt er für immer: keine Updates, keine Deletes.

Diese Regel hat zwei Folgen. Ein Hub-Ladevorgang hängt von nichts anderem im Modell ab, deshalb können alle Hubs parallel geladen werden. Und ein gescheiterter Ladevorgang kann einfach wiederholt werden, weil sich dieselben neuen Schlüssel nicht zweimal einfügen lassen.

Wo die Silos der Quellsysteme aufgelöst werden

Der Hub ist der Integrationspunkt des Modells. Wenn CRM und ERP einen Kunden über denselben realen Business-Key identifizieren, werden beide derselben Hub-Zeile zugeordnet, und alles, was die beiden Systeme über diesen Kunden wissen, kommt dort zusammen.

Deshalb ist der Business-Key die eigentliche Designentscheidung. Ein Schlüssel, den das Unternehmen systemübergreifend verwendet, ist die beste Wahl. Er steht nicht immer in brauchbarer Form zur Verfügung: Eine Quelle führt vielleicht nur ihre eigene technische ID oder einen Schlüssel, der mehrfach vergeben, unterschiedlich formatiert ist oder bei älteren Datensätzen fehlt. Wie man damit umgeht, behandelt ein eigener Artikel dieser Reihe: technische versus fachliche Schlüssel. Wo zwei Systeme für denselben Kunden unterschiedliche Schlüssel verwenden, hält ein Same-as-Link fest, dass sie zusammengehören.

Was nie in einen Hub gehört

  • Beschreibender Kontext. Namen, Adressen, Status und Beträge gehören in Satelliten. Ein Hub, der Attribute sammelt, ist ein verkappter Satellit und ist nicht mehr stabil.
  • Fremdschlüssel. Eine Store_ID im Kunden-Hub ist eine Beziehung, und Beziehungen gehören in Links.
  • Attribute, die als Geschäftsobjekte auftreten. Ein Status, eine Kategorie oder ein Währungscode beschreibt etwas, ist aber kein eigenes Geschäftsobjekt. Bei Transaktionen ist das anders: In Datavault Builder erhält eine Auftragsposition oder eine Zahlung einen eigenen Grain-Hub, was der Artikel über Links erklärt.
  • Ein Hub pro Quelle. Drei Kunden-Hubs, je einer für CRM, ERP und Webshop, bauen genau die Silos wieder auf, die das Warehouse beseitigen sollte.
  • Surrogatschlüssel aus Quellsystemen, wo Sie sie vermeiden können. Ein IDENTITY- oder AUTO_INCREMENT-Wert aus einer Datenbank bedeutet im nächsten System nichts. Lassen Sie ihn deshalb weg, wenn es einen Business-Key gibt. Manchmal ist er jedoch der beste Schlüssel, den es gibt, etwa für die Versionen einer Tabelle, die das Quellsystem bereits historisiert, oder für die feinste Granularität einer Transaktion, auf die nichts anderes verweist. Dort kann er die richtige Wahl sein. Wann das zutrifft, behandelt der Artikel über technische versus fachliche Schlüssel.

Was sich mit Datavault Builder ändert

In Datavault Builder definieren Sie das Geschäftsobjekt einmal und ordnen ihm jede Quelle zu, indem Sie deren Business-Key festlegen. Die Tabelle, die Schlüsselbehandlung und der Ladecode werden daraus generiert und laufen nativ auf Ihrer Datenbank, ob Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle oder PostgreSQL.

  • Der Schlüssel ist eine Modellentscheidung, kein Code-Muster. Sie entscheiden, was einen Kunden identifiziert. Die Hash-Berechnung und die Insert-Logik zu schreiben, gehört nicht zu dieser Entscheidung.
  • Neue Quellen werden demselben Hub zugeordnet. Den Webshop hinzuzufügen heißt, seine Kundennummer dem bestehenden Kunden-Hub zuzuordnen, nicht einen neuen zu bauen.
  • Das Muster ist jedes Mal dasselbe. Ein von Hand geschriebener Hub-Ladevorgang wird mit jeder neuen Quelle kopiert, angepasst und leicht verändert. Ein generierter weicht nicht ab.

Was Sie entscheiden sollten

Listen Sie die fünf bis zehn Geschäftsobjekte auf, um die es in Ihren Berichten tatsächlich geht, und notieren Sie für jedes den Schlüssel, mit dem das Unternehmen es identifiziert. Wo zwei Abteilungen Ihnen unterschiedliche Antworten geben oder eine Quelle gar keinen brauchbaren Schlüssel hat, haben Sie die wertvollste Integrationsarbeit des Projekts gefunden.

Erleben Sie es live mit Ihren eigenen Datenquellen

Buchen Sie eine kostenlose Demo und bringen Sie den Connector mit, der Sie am meisten kostet, an Geld oder an Zeit.

Drei Schritte zum Hub

  1. Das Geschäftsobjekt festlegen

    Benennen Sie das zentrale Geschäftsobjekt, etwa Kunde, Produkt oder Auftrag, und modellieren Sie dafür einen Hub, unabhängig von der Zahl der Quellen.

  2. Die Daten holen

    Binden Sie die Quellsysteme an, die dieses Geschäftsobjekt kennen, und laden Sie ihre Tabellen ins Staging.

  3. Den Business-Key zuordnen

    Ordnen Sie den Schlüssel jeder Quelle dem Hub zu, mit einem Business Key Prefix dort, wo derselbe Schlüssel Unterschiedliches bedeutet. Die Ladeprozesse werden generiert.

Wie Datavault Builder die Reibungsverluste in der Ingestion beseitigt

  • Ingestion ist eingebaut

    Batch-, Delta- und CDC-Ladevorgänge aus Datenbanken, Dateien, REST-APIs, NoSQL und Python-Quellen, mit Streams wie Kafka, die als Micro-Batches ankommen. Dieselbe Plattform, die das Warehouse generiert, keine zweite Rechnung.

  • Ihr Schema, nicht das des Anbieters

    Quelltabellen werden auf ein Data-Vault-2.0-Modell gemappt, das Sie entworfen haben. Eine neue Spalte oder eine umbenannte Tabelle ändert ein Mapping, keine Kette von Skripten nach dem Load.

  • Nur Deltas bewegen sich

    Hubs, Links und Satelliten laden, was sich geändert hat. Vollständige Ladevorgänge bleiben im Staging, statt jede Nacht weiter unten neu verarbeitet zu werden.

  • Historie wird von Haus aus behalten

    Jede Änderung wird so festgehalten, wie sie eintrifft. Historien- und Stichtagsabfragen funktionieren also auch dort, wo die Quelle ihre eigenen Zeilen überschreibt.

  • Code, den Sie nie von Hand schreiben

    Laden, Historisierung und Lineage werden in Echtzeit aus dem Modell generiert und laufen nativ auf Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle oder PostgreSQL.

  • Eine Plattform, bis zu neun Tools weniger

    Modellierung, ETL, CI/CD, Dokumentation und Lineage an einem Ort. Das ist es, was 14,7 Minuten von der Anforderung bis zur Produktion möglich macht.

Ausgezeichnet von BARC im Data Fabric Survey 26

Sprechen Sie mit unserem Experten

Zwanzig Minuten mit unserem Sales Director und eine ehrliche Antwort, ob das zu Ihrem Stack passt.

Matt Collett

Matt Collett

Sales Director

Was suchen Sie?

Mit dem Absenden stimmen Sie unserer Datenschutzerklärung.

Weitere Probleme in dieser Serie

  • Technische Schlüssel vs. Business-Keys

    Technische Schlüssel vs. Business-Keys in Data Vault

    Quellsysteme speichern den Business-Key im Stammdatensatz, doch jede Beziehung läuft über technische Schlüssel. Vier Wege, damit umzugehen, was jeder davon kostet, und das Muster, das wir verwenden: ein PSA-Hub für die technischen Schlüssel, der dem Business-Key-Hub zugeordnet wird.

  • Business-Key

    Was ist ein Business-Key in Data Vault?

    Ein Business-Key ist die Kennung, mit der Ihre Mitarbeitenden und Kunden tatsächlich arbeiten: die Kundennummer, die Rechnungsnummer, die Vertragsnummer. Er ist stabil, wird systemübergreifend verwendet, und auf ihm baut jeder Hub in einem Data Vault auf.

  • Satellit

    Was ist ein Satellit in Data Vault?

    Ein Satellit enthält alles, was einen Hub beschreibt: Namen, Status, Beträge und jede Änderung daran, angefügt und nie aktualisiert. Er ist eine Slowly Changing Dimension Typ 2 ohne UPDATE, und bringt von Haus aus einen vollständigen Audit-Trail mit.

  • Link

    Was ist ein Link in Data Vault?

    Ein Link hält fest, dass Business-Keys zusammengehören: Dieser Auftrag gehört zu diesem Kunden. Datavault Builder deckt den klassischen Data-Vault-Link ab und ergänzt ihn um einen Transaktions-Link, der an einem Grain-Hub verankert ist. Dieser legt die Granularität einer Transaktion fest und ermöglicht Beziehungen zwischen Transaktionen.

Fragen und Antworten