Tilores und Snowflake lösen das Entity-Resolution-Problem
Daten in Echtzeit verknüpfen und deduplizieren – für die eine verlässliche Datenbasis
Daten in Snowflake zu verwalten kann anspruchsvoll sein, besonders wenn es darum geht, doppelte oder verwandte Entitäten innerhalb eines Datenbestands zu erkennen und aufzulösen. Für Genauigkeit und Vollständigkeit der Daten ist das entscheidend – ohne die richtige Software aber ein komplexer und zeitraubender Prozess.
Genau hier kommt Tilores ins Spiel. Tilores ist eine speziell dafür gebaute Plattform, die Daten in Echtzeit und im großen Maßstab ohne manuellen Aufwand abgleicht. Sie integriert sich nahtlos in Snowflake und führt Entity Resolution auf Snowflake-Daten aus.
In diesem Beitrag sehen wir uns genauer an, wie Tilores sich mit Snowflake verbindet, um die Herausforderungen der Entity Resolution zu lösen, und wie sich damit die Datenqualität verbessern und das Datenmanagement verschlanken lässt.
Eine Datenbank in Snowflake anlegen
Beginnen wir damit, in Snowflake eine neue Datenbank anzulegen.
Öffnen Sie ein Worksheet, um eine neue Tabelle Orders zu erstellen und einige Beispieldaten hineinzuschreiben.
Beachten Sie: John ist in zwei verschiedenen Schreibweisen erfasst und hat zwei verschiedene E-Mail-Adressen.
Außerdem legen wir eine Tabelle für Newsletter-Abonnements an und fügen dort ein paar Zeilen hinzu.
Schema und Regeln in Tilores anlegen
Nun registrieren wir uns bei Tilores unter https://app.tilores.io. Nach der Anmeldung richten wir unsere erste Instanz von Grund auf ein und erstellen das initiale Schema.

Wir können einfach einige Zeilen aus Snowflake als CSV-Datei exportieren.

Laden Sie die CSV-Datei in den Data Schema Wizard hoch. Tilores erzeugt daraus das Schema.
Das entstehende Schema dient sowohl der einfacheren Regelkonfiguration als auch jedem Zugriff über die GraphQL-API.

Matching-Konfiguration
Als Nächstes konfigurieren wir eine einfache Regel, die zwei Datensätze anhand der exakt gleichen E-Mail-Adresse abgleicht.
Wir gehen zu Extract / Transform, ziehen den Knoten Extract in den Arbeitsbereich und wählen email als Pfad. Wir verbinden ihn mit dem Knoten Source (vom Knoten Source zum Knoten Extract). Anschließend ziehen wir den Knoten Output in den Arbeitsbereich, nennen ihn Email und verbinden ihn mit dem Knoten Extract.
Nun gehen wir zu Matchers und legen einen Matcher für das zuvor erstellte Output Email an.

Wir wechseln in der Navigation nach oben zu Rules und legen eine neue Regel an, die auf Basis unseres Matchers Email abgleichen soll.
Um die Regel zu aktivieren, müssen wir sie der Rule Set Configuration hinzufügen.

Sie können beliebig viele Regeln anlegen.
Sobald mindestens eine Regel greift, gelten die beiden Datensätze als übereinstimmend und werden miteinander verknüpft.
Die Konfiguration können wir mit der eingebauten rule simulation testen. Wir geben zwei Datensätze ein, einen links und einen rechts, und klicken auf simulate. Das Ergebnis zeigt uns, welche Regeln zwischen beiden Datensätzen gegriffen haben.
Die zweite Regel, die wir anlegen, greift, wenn der Name ähnlich ist.
Dazu fügen wir zunächst die verschiedenen Namensfelder zu einem einzigen Wert zusammen und vergleichen die Werte anschließend über phonetische Token-Gleichheit.
Gehen Sie erneut zu Extract / Transform und ziehen Sie den Knoten Extract dreimal hinein, für die Pfade name, last_name und first_name. Deaktivieren Sie in diesem Beispiel bitte Must Exist für alle drei Namensknoten, da es hier nicht benötigt wird.

Ziehen Sie dann den Knoten Join mit der Join Strategy Concatenate Texts hinein und verwenden Sie ein Leerzeichen als Separator.

Verbinden Sie als Nächstes einen Knoten Output mit dem Knoten Join und nennen Sie ihn Name. Das sollte so aussehen:

Nun müssen der Matcher und das erweiterte Textmatching konfiguriert werden. Gehen Sie zu Tokenization und legen Sie einen neuen Tokenizer vom Typ Word-Based an.

Gehen Sie dann zu Text Comparison und legen Sie einen neuen Comparer mit dem Algorithmus Metaphone an.

Nun gehen wir zu Matchers und legen einen neuen Matcher an, der den Tokenizer und den phonetischen Ähnlichkeitsabgleich nutzt. Wählen Sie Advanced Text Matching, verwenden Sie Name als Transformation Output, die zuvor erstellte Word-Based Tokenization und den Comparer Metaphone. Als Token Strategy wählen Sie Token Ratio mit einer Ratio von 0.5.
Mit dieser Konfiguration können wir ähnliche Zeichenketten in den Namensfeldern abgleichen.

Um diesen Matcher nutzen zu können, müssen wir eine neue Regel anlegen, die wir Similar_Name nennen. Wir fügen den Matcher Similar Name hinzu, indem wir auf das Pluszeichen klicken und den Matcher Similar Name auswählen.

Zuletzt muss die Regel dem Rule Set hinzugefügt werden, damit sie beim Matching verwendet wird.

Zum Testen der Konfiguration fügen wir dieses JSON in das erste Feld des Rule Simulator ein.
und dieses in das zweite Feld
Wenn Sie auf Simulate klicken, sehen Sie, dass die Regel Similar_Name greift.

Um nun alle Änderungen zu übernehmen, müssen wir die Konfiguration zunächst speichern und anschließend in die Produktion ausrollen. Klicken Sie bitte auf save now und navigieren Sie dann zu Advanced Settings. Klicken Sie dort auf Deploy. Damit wird Ihre Tilores-Instanz erzeugt, auf die Snowflake zugreifen kann.
Snowflake und Tilores verbinden
Sobald die Instanz ausgerollt ist, können wir die Snowflake-Integration in Snowflake einrichten.
Gehen Sie zu Integration - Snowflake, kopieren Sie den Code aus 2. in Ihren Snowflake-Arbeitsbereich und führen Sie ihn dort aus. Damit wird die API-Integration erstellt.
Der resultierende Status sollte Integration API_INTEGRATION_TILORES successfully created. lauten.
Kopieren Sie als Nächstes 3. nach Snowflake und führen Sie es aus. Damit werden die External Functions erzeugt, die für die Kommunikation mit Tilores nötig sind. Der Status sollte Function TILORES_MATCH successfully created. lauten.
Kopieren Sie 4., passen Sie es bei Bedarf an und führen Sie es in Snowflake aus. Damit werden die nötigen Zugriffsrechte erzeugt. Der Status sollte Statement executed successfully. lauten.
Kopieren Sie schließlich 5. und führen Sie es in Snowflake aus. Kopieren Sie anschließend den Wert API_AWS_IAM_USER_ARN aus Snowflake und fügen Sie ihn in Tilores in das Feld User ARN ein. Verfahren Sie ebenso mit API_AWS_EXTERNAL_ID und klicken Sie dann auf Update, um die Verbindung zu aktivieren.
Daraufhin sollte dieses Banner erscheinen:

Snowflake und Tilores sind nun verbunden.
Daten von Snowflake nach Tilores übernehmen
Wir können nun die Daten aus den Tabellen für Bestellungen und Newsletter-Abonnements aus Snowflake in Tilores laden.
Tilores über Snowflake External Functions abfragen
Über External Functions stehen uns die vollen Abfragemöglichkeiten von Snowflake zur Verfügung.
Die entstandenen Entitäten können wir beispielsweise über die Funktion Tilores entity by record ID abfragen. Sie liefert uns ein Objekt zurück, das eine Entitäts-ID, alle Datensätze dieser Entität und die Verknüpfungen zwischen diesen Datensätzen enthält.

Die Ausgabe lässt sich mit dem Lateral Join von Snowflake und der Tabellenfunktion Flatten weiter verbessern.

So lassen sich auch gezielt nur die Werte einer Entität abfragen, die uns interessieren. Mit der Suche von Tilores können wir zu beliebigen Daten die passenden Entitäten abfragen.
Snowflake-Daten intelligent mit den Matching-Fähigkeiten von Tilores verknüpfen – und daraus Erkenntnisse gewinnen
Beim falsch geschriebenen John Smiith können wir beispielsweise einen Zahlungsausfall unter dem Namen Robert Smith erkennen, weil die Information über das Newsletter-Abonnement vorliegt.

Wir wissen, dass diese beiden Bestellungen tatsächlich zur selben Person gehören.
Fazit – Entity Resolution in Snowflake mit Tilores
Die Anwendungsfälle für Entity Resolution mit Tilores auf Snowflake-Daten beschränken sich nicht auf Daten über Personen. Jede Art von Daten in Snowflake lässt sich mit Tilores deduplizieren und verknüpfen, etwa Produkt- oder Firmendaten.
Die Stärken von Snowflake im Data Warehousing mit den Echtzeit-Fähigkeiten von Tilores in der Entity Resolution zu kombinieren, führt zu
-
sauberen Daten
-
vereinheitlichten Kundenkonten
-
unschätzbaren Erkenntnissen aus den Daten
-
eingesparten Kosten
-
weniger Betrug
Durch die einzigartige Integration beider Systeme können Datenanalysten ihre gewohnten Werkzeuge innerhalb von Snowflake nutzen, um die Daten zu analysieren und mit ihnen zu arbeiten.
Sehen Sie, was aufgelöste Entitätsdaten für Ihr Unternehmen — und Ihre KI — leisten.