Herkunft auf Feldebene, von der Dashboard-Kachel bis zur Warehouse-Spalte
Herkunft auf Tabellenebene sagt Ihnen, dass ein Dashboard eine Tabelle berührt. Herkunft auf Spaltenebene sagt Ihnen, welche Dashboards brechen, wenn Sie eine Spalte löschen. Hier steht der Unterschied, warum der letzte Sprung schwer ist, und wie man eine Karte liest, ohne darin zu ertrinken.
Eine Spalte soll gelöscht, umtypisiert oder umbenannt werden. Zwei Fragen klingen in diesem Moment gleich. Die eine lautet: Welche Dashboards berühren diese Tabelle. Die andere lautet: Welche Dashboards brechen.
Herkunft auf Tabellenebene beantwortet die erste. Bei einer breiten Tabelle liefert sie vierzig Dashboards. Zwei davon nutzen die Spalte, und jemand muss jetzt vierzig Arbeitsmappen öffnen, um diese zwei zu finden. Der Bericht ist richtig, und nahezu nutzlos.
Herkunft auf Spaltenebene beantwortet die zweite, und deshalb lohnt sich die zusätzliche Arbeit, diese Granularität zu erreichen.
Die Kette, Sprung für Sprung
Eine Dashboard-Kachel zeigt ein Arbeitsblatt, und das Arbeitsblatt nutzt Felder.
Jedes Feld ist entweder eine Berechnung oder eine direkte Verbindung in eine Datenquelle.
Eine Berechnung nutzt andere Felder, manchmal mehrere Ebenen tief, manchmal über Datenquellen hinweg.
Ein Datenquellenfeld wird auf eine Spalte in einer physischen Tabelle abgebildet.
Diese Tabelle hat vorgelagerte Tabellen, über Views und Transformationen, zurück bis dorthin, wo die Daten zuerst gelandet sind.
Jeder Sprung überquert eine Systemgrenze. Jedes System hat seine eigene Vorstellung davon, was ein Name ist. Dort lebt der Ärger, und nicht im Zeichnen des Graphen.
Der letzte Sprung
Zwei Probleme tauchen hier auf. Beide wurden beim Sondieren echter Warehouses gefunden, nicht beim Lesen darüber.
Namen kommen dialektgequotet an. Eine Metadaten-API liefert den vollen Namen so gequotet, wie ihr eigener Dialekt quotet. Das ist keine Zeichenkette, die eine andere Engine so nimmt, wie sie ist.
Gross- und Kleinschreibung zählt. Snowflake-Bindungen unterscheiden Gross- und Kleinschreibung, und ein ungequoteter Name wird in Grossbuchstaben umgewandelt. Binden Sie einen Namen roh, und er trifft null Zeilen.
Eine stille Null ist der schlimmste Fehler in der Herkunft. Ein leeres Ergebnis sieht genauso aus wie eine saubere Antwort. Eine Verbindung, die steht, richtig eingerichtet ist und nichts trifft, liest sich wie eine Umgebung ohne jede Abhängigkeit.
Die Lösung ist, vor jeder Warehouse-Abfrage zu normalisieren, nicht am Ende. Ungequotete Snowflake-Segmente werden in Grossbuchstaben umgewandelt. Databricks-Namen werden im SQL selbst entquotet und in Kleinbuchstaben gesetzt. Der volle Name wird in Segmente zerlegt, statt mit einer Zeichenkettensuche auseinandergenommen zu werden.
Woher Spaltenkanten kommen
Snowflake
Die eigene Herkunftsfunktion des Kontos, mit begrenzter Distanz, damit ein tiefer Graph nicht davonläuft. Ein Rückgriff auf Account Usage deckt ältere Konten ab, in denen diese Funktion fehlt.
Databricks
system.access.column_lineage. Echte Herkunft von Spalte zu Spalte, von der Plattform selbst geführt, und damit der stärkste Beleg, der zu haben ist.
Palantir AIP
Link-Typen, von jedem Objekttyp der Reihe nach gelesen. Sie sind der eigene Join-Graph der Ontology, und die Richtung, in der sie laufen, ist die, die die Plattform deklariert, nicht eine aus Namen erschlossene.
Tableau
Die Metadata API. Sie antwortet auf Spaltenebene, wenn der Katalog so weit indexiert hat, und auf Tabellenebene, wenn nicht. Dieser Fall muss behandelt werden, nicht wegdefiniert.
Namensabgleich
Eine Brücke von einem Datenquellenfeld zu einer Warehouse-Spalte über den Namen. Nur genutzt, wo der Treffer eindeutig ist, und immer als abgeglichen gekennzeichnet.
Die vierte verdient einen harten Blick, und das Produkt gibt ihn ihr. Eine per Namen abgeglichene Brücke wird als abgeglichen gekennzeichnet und nie als Katalogdaten gezeigt. Eine Vermutung, die als Vermutung gekennzeichnet ist, ist nützlich. Eine Vermutung, die still zur Tatsache befördert wird, ruiniert die ganze Karte, einschliesslich der Teile, die richtig waren.
Sagen Sie, welche Granularität Sie erreicht haben
Eine Herkunftskarte sollte die Granularität nennen, die sie erreicht hat, und benennen, was sie vervollständigt hat. Der Katalog antwortet vielleicht auf Tabellenebene. Aus dem Warehouse gezogene Spaltenlisten erledigen dann den Rest, und die Karte sagt genau das.
Das klingt wie eine kleine Frage der Höflichkeit. Es ist der Unterschied zwischen einer Karte, aus der Sie entscheiden können, und einer Karte, die Sie von Hand prüfen müssen. Eine Karte, die immer Spaltengranularität behauptet, wird hin und wieder falsch liegen, und sie wird nie sagen, welche Male das waren.
Eine Karte lesen, ohne zu ertrinken
Ein vollständiger Graph auf Spaltenebene einer echten Umgebung ist auf einmal schwer zu lesen. Tausende Knoten sind keine Karte. Sie sind eine Textur.
Der erste Ladevorgang zeigt das Rückgrat auf Tabellenebene. Klicken Sie eine Karte an, und nur die eigene Granularität dieser Karte öffnet sich: ihre Spalten und die Felder, die aus ihnen fliessen. Das ist ein Sprung, nicht der ganze Abschluss. Das Layout passt sich dann an, sodass das Geöffnete im Blick landet.
Dieses Verhalten kam aus zwei Runden echter Nutzung, in beide Richtungen. Alles zu zeigen wurde zuerst versucht, und es war unbrauchbar. Die Antwort war ein lokales Öffnen statt eines kleineren Graphen: eine andere Idee, und eine bessere.
Wofür Sie es nutzen
Auswirkungsarbeit vor einer Schemaänderung. Sie bekommen die echte Liste der getroffenen Dashboards, nicht die breite.
Eine Zahl zu ihrer Quelle zurückverfolgen, wenn zwei Dashboards sich widersprechen und beide Autoren sicher sind.
Herausfinden, welche Dashboards sich auf eine Tabelle stützen, zu der sich niemand als Eigentümer bekennt.
Jemandem eine eigenständige Karte übergeben, durch die er sich klicken kann, exportiert als eine HTML-Datei. Sie funktioniert ohne Server und ohne Internet.
Der Export ist es wert, bekannt zu sein. Governance-Gespräche finden mit Menschen statt, die kein Login haben und keines bekommen werden. Eine Datei, die sie öffnen können, schlägt eine Einladung, die sie nicht annehmen werden.
Eine semantische Schicht gibt einer Kennzahl ein einziges Zuhause. Jedes Tool, das die Kennzahl ausrechnet, liest dieses eine Zuhause. Alle bekommen dieselbe Zahl. Hier steht, was das in der Praxis bedeutet, und was sich ändert, wenn Sie mehr als ein Warehouse betreiben.
Vier Dinge werden Governance genannt: Zertifizierung, Eigentum, veraltete Inhalte und Änderungskontrolle. Hier ist jedes als Prüfung geschrieben, die Sie ausführen können, nicht als Ziel, das Sie formulieren können. Es geht auch um die eine Änderung, die eine Sichtprüfung besteht und trotzdem falsch ist.
Eine Behauptung ist ein Satz. Ein Beleg ist etwas, das eine zweite Person prüfen kann, ohne Sie zu fragen. Was ein Audit-Trail enthalten muss, was ein Hash wirklich beweist, und was Sie von jedem Tool verlangen sollten, das behauptet, einen zu erzeugen.