Kennzahlverträge in der Praxis, von der festgelegten Definition zur laufenden Abfrage
Ein Kennzahlvertrag ist das, was eine semantische Schicht ist, sobald etwas sie tatsächlich durchsetzt. Wie eine Definition festgelegt wird, was mit einer Frage passiert, die Felder aus zwei Warehouses nennt, und warum die Bezeichner, die das SQL erreichen, aus dem Vertrag selbst kommen.
Von einer veröffentlichten Definition zu einer festgelegten
Eine Definition, die veröffentlicht wurde, und eine Definition, die festgelegt wurde, sehen in einem Katalog-Browser identisch aus. Beide tragen einen Namen, einen Ausdruck und einen Eigentümer. Der Unterschied zeigt sich in dem Moment, in dem jemand eine Frage stellt.
Festlegen ist das, was passiert, wenn die Schicht das eigene Vertragsobjekt der Plattform einmal liest und speichert, was sie gefunden hat: die Mitglieder, ihre Ausdrücke und das Objekt, aus dem sie stammen. Jede Frage danach wird gegen die gespeicherte Kopie aufgelöst, nicht gegen das, was der Fragende getippt hat.
Die gespeicherte Kopie hält Namen und Ausdrücke, nie Zeilen. Sie wird bei jeder Synchronisation neu gelernt: Eine Kennzahl, die am Dienstag im Warehouse hinzugefügt wird, kommt mit der Synchronisation vom Dienstag an, und niemand muss daran denken, sie neu zu tippen.
Was ein Vertrag enthält
Ein gelernter Vertrag ist ein kurzes, langweiliges Dokument, und die Langeweile ist die Eigenschaft.
Das Objekt, aus dem er gelernt wurde: ein semantisches Modell, eine Semantic View oder eine Metric View, vollständig benannt.
Dimensionen, jede mit der Entität, zu der sie gehört, und dem Feld darunter.
Kennzahlen, jede mit ihrer Aggregation und ihrem Feld.
Die Synonyme, die die Plattform veröffentlicht hat, denn so findet ein Geschäftswort das Mitglied dahinter.
Ein Vertrag ist Beschreibung und Erlaubnisliste zugleich. Das Dokument, das einer Person sagt, was existiert, ist das Dokument, das dem Abfrage-Builder sagt, was laufen darf. Es gibt nie eine zweite Kopie, die man synchron halten müsste.
Die Namen, nach denen Sie fragen können
Alle vier Plattformen lassen Sie dasselbe definieren, und alle vier haben ihre eigene Vorstellung davon, wie ein Mitglied heisst. Das Vokabular lohnt sich vor der ersten Abfrage zu klären, denn die ersten paar Fehlschläge sind fast immer Namensfehler, keine Modellierungsfehler.
Salesforce Data 360
Mitglieder werden nach Entität und Name verschlüsselt und so geschrieben. Ein Kurzname löst aus Höflichkeit trotzdem auf, wenn genau ein Mitglied ihn trägt.
Snowflake
Mitglieder müssen nach Entität qualifiziert sein. Ein blosser Name, der auf mehr als eines passt, kommt mit den qualifizierten Kandidaten zurück.
Databricks
Mitglieder sind die eigenen Dimensions- und Kennzahlnamen der Metric View, aus der Definition genommen, mit der die View erstellt wurde.
Palantir AIP
Mitglieder werden nach Objekttyp und Name verschlüsselt. Eine Kennzahl wird nur aus einer Function gelesen, deren deklarierte Ausgabe numerisch ist, denn eine Ontology veröffentlicht typisierte Eigenschaften und deklariert keine eigenen Kennzahlen.
Die Verschlüsselung erfolgt nach Entität und Name zusammen statt nach dem Namen allein, und das kam aus dem Lauf gegen ein echtes Konto, nicht aus dem Lesen von Dokumentation. Fünf Semantic Views dort definierten jeweils denselben Dimensionsnamen auf zwei Entitäten, eine auf Dokumentebene und eine auf Abschnittsebene. Ein Wörterbuch, das nur nach dem Namen verschlüsselt war, verschmolz die Zwillinge zu einem einzigen Eintrag, der zu keinem von beiden gehörte. Nichts warf einen Fehler, und jede darauf gebaute Antwort wäre auf eine Weise falsch gewesen, die niemand sehen konnte.
Eine Frage, ein Warehouse
Eine Frage, die Felder aus zwei verschiedenen Warehouses nennt, ist etwas, das man vernünftigerweise will, und etwas, das man unvernünftigerweise ausführt. Zwei Verträge gehören zu zwei Engines, und unter beiden gibt es keine dritte.
Die Schicht erledigt zwei Aufgaben mit denselben Objekten und hält sie auseinander. Für das Inventar wird dasselbe Schema und dieselbe Tabelle, die in mehreren Warehouses gesehen wird, zu einem logischen Objekt, das sich an jede Quelle erinnert, aus der es kam, und das ist es, was einen Vergleichsbericht überhaupt möglich macht. Für die Ausführung gehört ein Vertrag zu dem Warehouse, aus dem er gelernt wurde, und die Abfrage wird dorthin geleitet. Eine Frage, die zwei Verträge mischt, kommt zurück und nennt, was gemischt wurde, und wird nie still zu dem Vertrag aufgelöst, der zufällig zuerst aufgelistet war.
Innerhalb eines einzelnen Warehouses erscheint dieselbe Form eine Ebene tiefer. Ein Modell, das keine Beziehung zwischen zwei Entitäten deklariert, kann eine Frage über beide hinweg nicht beantworten, und das Warehouse sagt das mit eigenen Worten. Das ist eine Modellierungsantwort, die es zu lesen lohnt: Sie sagt Ihnen, dass der Join, den alle für vorhanden hielten, nie deklariert wurde.
Über Warehouses hinweg vergleichen und innerhalb eines Warehouses rechnen sind verschiedene Aufgaben. Sie getrennt zu halten ist es, was dieselbe Tabelle einmal in einem Governance-Bericht erscheinen und trotzdem in genau einer Engine gerechnet werden lässt.
Warum die Bezeichner aus dem Vertrag kommen
Wenn eine Frage zu einer Anweisung wird, sind die Zeichenketten, die in diese Anweisung gesetzt werden, die eigenen Kopien des Vertrags. Was der Aufrufer getippt hat, wird genutzt, um ein Mitglied nachzuschlagen. Was das SQL erreicht, ist das, was die Synchronisation gespeichert hat.
Es ist ein kleiner Unterschied, und er klärt drei Dinge auf einmal.
Ein Name, der im Vertrag fehlt, hat überhaupt keinen Weg zu einem Warehouse. Eine governte Kennzahl hat durch dieses Produkt genau einen Weg, gerechnet zu werden.
Bezeichner werden beim Lernen auf einen Zeichensatz begrenzt und beim Bauen der Anweisung erneut geprüft, sodass ein manipulierter gespeicherter Vertrag beim Zusammensetzen der Anweisung scheitert und nicht erst, während sie läuft.
Ergebnisse sind auf eine Zeilenzahl begrenzt, was eine governte Frage eine Frage bleiben lässt und keinen Export mit Umwegen.
Die Eigenschaft ist architektonisch, nicht instruktiv. Einem Modell kann man sagen, es solle nur genehmigte Namen verwenden, und ein hinreichend seltsames Gespräch wird es irgendwann davon abbringen. Ein Codepfad, der nie geschrieben wurde, hat nichts, wovon man ihn abbringen könnte.
Die Antwort lesen, wenn ein Name ausserhalb des Vertrags liegt
Eine Frage, die der Vertrag nicht beantworten kann, kommt zurück und nennt das Problem, und diese Antwort ist die nützlichere Hälfte der Funktion. Drei Formen decken fast alles ab, was Ihnen begegnen wird.
Ausserhalb des Vertrags
Der Name fehlt im gespeicherten Vertrag. Entweder war er nie im Modell, oder das Modell hat ihn nach Ihrer letzten Synchronisation bekommen. Synchronisieren Sie und fragen Sie erneut, bevor Sie etwas schliessen.
Mehrdeutig
Der Kurzname passt auf Mitglieder auf mehr als einer Entität. Die qualifizierten Kandidaten kommen mit der Meldung.
Entitäten nicht verknüpft
Das Warehouse selbst meldet, dass die beiden Entitäten keine deklarierte Beziehung tragen. Das gehört zu dem, der das Modell besitzt, nicht zu dem, der die Frage gestellt hat.
Diese Meldungen kommen wörtlich vom Warehouse, nicht zu einem Statuscode geglättet. Ein Compiler, der seine eigene Antwort beschreibt, ist fast immer genauer als eine Paraphrase davon, und die Paraphrase ist es, die jemanden losschickt, einen Host zu debuggen, der die ganze Zeit in Ordnung war.
Wo Sie auf Ihrer eigenen Site nachsehen
Die semantische Konsole zeigt, was synchronisiert wurde, pro Warehouse, mit Zählern und Paritäts-Chips, und rendert den Vertrag, den jedes Backend gelernt hat.
Ein Vertrag wird bei jeder Synchronisation neu gelernt. Die schnellste Antwort auf ein fehlendes Mitglied ist meist eine weitere Synchronisation.
Jede governte Abfrage wird festgehalten, die beantworteten wie die abgewiesenen, mit behaltener Zeilenzahl und ohne dass eine zurückgegebene Zelle aufgeschrieben wird.
Der letzte Punkt lohnt einen zweiten Blick. Die Form eines Ergebnisses zu behalten und seinen Inhalt zu verwerfen ist das, was einen Audit-Trail über Jahre sicher aufbewahrbar macht, und Jahre sind die einzige nützliche Länge für einen Audit-Trail.
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.
Der Zugriff, den eine Governance-Schicht braucht, ist eng, spezifisch und es wert, genau benannt zu werden. Was aus einem Katalog gelesen wird, was nur lesend bedeutet, wenn es strukturell ist und nicht versprochen, warum Ihre eigene Warehouse-Rolle die Grenze bleibt, und was das Erben eines Katalogs Ihnen bringt.
Die Regel der Freigabe vor Ausführung, in schlichten Worten. Der Assistent liest, erklärt und schlägt vor, und ein Mensch besitzt den Schreibpfad. Was das kostet, was es bringt, und drei Fragen an jede KI-Funktion.