Von Philipp Hirsbrunner
15 Januar 2021Die beiden Softwarehersteller Alteryx und Snowflake haben diese Woche ihre gemeinsame Partnerschaft bekanntgegeben. Dies ist für uns Grund genug, die neuen Möglichkeiten gleich mal auszuprobieren und zu schauen, welche Vorteile es mit sich bringt.
Als Test Case wollen wir Verkaufsdaten in unsere Snowflake-DB auf Azure laden und mit diesen dann dort entsprechend arbeiten. Zu diesem Zweck laden wir ein Alteryx-DB-File (yxdb) mit 32 Millionen Zeilen per Bulk Load nach Snowflake.
Die ODBC-Connection ist ruckzuck konfiguriert und so lädt Alteryx bereits die Daten in unsere Snowflake.
Alteryx zerteilt das riesen DB-File in kleine CSV-Files und lädt diese auf die Snowflake. Dieser Prozess läuft vollautomatisch ab und verbessert die Performance wesentlich. Diese wiederum integriert diese Files in die zuvor definierte Stage - in unserem Fall ebenfalls auf der Snowflake (unten zu sehen). Die Stage könnte aber auch bspw. auf Amazon sein (aktuell wird von Alteryx nur Amazon oder Snowflake unterstützt). Übrigens: nicht zu verwechseln mit einer DWH-Stage. Bei Snowflake ist eine Stage ein Speicherort für Files, welche dann in die relationale DB integriert werden.
Das Ganze dauert eine Weile: Unsere 33 Millionen Zeilen (21 GB) haben mit einem XL-Warehouse etwas mehr als 29 Minuten gebraucht. Dabei ist anzumerken, dass einer der Bottlenecks sicher auch unsere Internetverbindung war.
Die Convenience der Anbindung - in diesem Fall Upload - zeigt aber bereits einen Vorteil wie Snowflake nahtlos in Alteryx, und somit bestehende Workflows, integriert werden kann. Das Ganze gilt natürlich auch wenn Daten aus der Snowflake gelesen werden sollen.
Sobald der Upload fertig ist, beginnt die Snowflake mit der Integration der entsprechenden gepackten CSV Files. Der Workflow in Alteryx bleibt dabei im Status "running" - bis Snowflake die fertige Integration zurückmeldet.
Nach rund 45 Minuten hat Snowflake alle 32 Millionen Zeilen integriert und die entsprechenden Quellfiles aus der Stage entfernt.
Nun wollen wir mal schauen wie wir mit den Daten direkt aus Alteryx In-DB auch arbeiten können.
Ein grosser Mehrwert der Kombination dieser zweier Tools soll vor allem bei der Anwendung von Data Science und ML-Workflows zum tragen kommen. Nachfolgend ein Beispiel wie die Daten in Snowflake aufbereitet und dann mit Hilfe der ML-Technologie von Alteryx verarbeitet werden.
32 Millionen Zeilen wurden aus Snowflake innert weniger Sekunden geladen und gemäss meiner Anforderung in Alteryx vorbereitet. Die Verarbeitung auf meiner lokalen Maschine dauerte dann etwas länger - rund 90 Minuten (Alteryx musste das Sample etwas reduzieren, da nach 10 GB mein Arbeitsspeicher voll war). Dabei wurden die Verkaufsdaten mit Hilfe des Assisted Modeling analysiert und in für eine geeignete ML-Anlyse aufbereitet. Im konkreten Fall wurde eine Decision Tree Regression angewendet. Dieses vereinfachte Beispiel soll lediglich eine Möglichkeit des Zusammenspiels zwischen Snowflake und Alteryx aufzeigen. Um das Modell trainieren und testen zu können, würden auch wesentlich weniger Daten ausreichen, was sich natürlich positiv auf die Verarbeitung auswirken würde. Zudem könnten wir noch mehr Aktivitäten bereits in Snowflake prozessieren, dadurch könnten wir zusätzlich von der dortigen Performance und gleichzeitig von der graphischen "Programmierung" in Alteryx profitieren.
Fazit: Die Integration in Alteryx ist kinderleicht und funktioniert auf anhieb. Sie bringt enorme Vorteile in der Verarbeitung von grossen Datenmengen und ermöglicht die Nutzung der Snwoflake-USPs (Warehouse-Scaling, Data Integration, MPP, Data Sharing etc.) direkt aus Alteryx. Wir sind gespannt wie die Integration fortgeführt wird und die Welten noch stärker verknüpft werden.
Bilder-Gallery