Fundament für KI-Applikationen

Wie sammelt man Rohdaten im Data Lake?

Eine Voraussetzung bei der Entwicklung von industriellen KI-Anwendungen sind ausreichende Daten. Diese sind jedoch nicht immer in der benötigten Menge, Qualität oder Struktur vorhanden. Anhand eines konkreten Beispiels erläutert dieser Beitrag, wie sich ein Data Lake anlegen und mit Daten füllen lässt, bis er ein Fundament für quasi beliebige KI-Applikationen bildet.

Von der Datenerfassung zur KI-Applikation. (Bild: AIM - Agile IT Management GmbH)
Von der Datenerfassung zur KI-Applikation. (Bild: AIM – Agile IT Management GmbH)

Die AIM Agile IT Management hat sich darauf spezialisiert, Data Lakes zur Sammlung von historischen und Rohdaten anzulegen und in Betrieb zu nehmen, wie sie zur Entwicklung von industriellen KI-Anwendungen benötigt werden. Ein Data Lake hat die Aufgabe, Daten aus einer Datenquelle unstrukturiert und ohne eine Transformation zu speichern. So wird jede Änderung an Datensätzen roh abgelegt. Im späteren Verlauf entsteht eine Datenbasis, die sich zur Lösung von Problemstellungen analysiert lässt. Das illustriert folgendes Beispiel. Für die Softwarefirma MediFox sollte mit industrieller KI eine Anwendung erstellt werden, die die Kündigungswahrscheinlichkeit ihrer Kunden vorhersagen kann. Mit Hilfe einer solchen Vorhersage (Churn Prediction) sollte auf ein eventuelles Kündigungsrisiko reagiert werden können. Die Churn Prediction sollte aufgrund der vorhandenen Daten des Kundeninformationssystems (KIS), des Customer-Relationship-Management-Systems (CRM) und des Servicedesks des Kunden realisiert werden. Im Fall einer Churn-Prediction-Anwendung kann man durch eine nachträgliche Transformation auf die notwendigen Daten zugreifen:

  • • Wann hat sich ein Ansprechpartner beim Endkunden geändert?
  • • Wann hat der Endkunde neue Lizenzen erworben bzw. wann wurde eine Lizenz verändert oder abbestellt?
  • • Wie ist die Zahlungsmoral des Kunden über die Zeit hinweg?
  • • Hierzu werden die Rohdaten aus drei verschiedenen Systemen benötigt:
  • • Endkundeninformationen aus dem Kundeninformationssystem (KIS)
  • • Rohdaten zu Service Requests und Incidents aus dem Jira Servicedesk
  • • Lizenzinformationen aus einer Lizenzdatenbank.

Asynchrone Datenverarbeitung

Zunächst werden die Rohdaten aus den Systemen extrahiert. Dazu muss für jedes System eine geeignete Schnittstelle identifiziert werden. Generell können Daten aus Systemen per Push- oder Pull-Mechanismus extrahiert werden und werden dann mithilfe eines Service in einen Kafka Topic geschrieben. Nun können die Daten asynchron verarbeitet werden, somit wird auch das eventuelle Risiko eines Rückstaus bei der Extraktion minimiert. Gleichzeitig stellt Kafka sicher, dass ein transaktionaler Kontext die Konsistenz aller zu speichernden Daten sicherstellt. Die zu speichernden Daten können ebenso binäre Formate enthalten, da die Transformation in weiterführende Daten bei der Ablage noch keine Rolle spielt. „Da wir in einer privaten Cloud beginnen und später in eine AWS- oder Microsoft-Azure- basierte Umgebung zur Speicherung der Daten im Data Lake wechseln können müssen, nutzen wir MinIO als Abstraktion des Dateisystems. MinIO stellt aus Sicht der Applikation immer einen S3-Bucket zur Verfügung. Auf diese Weise sind auch hybride Umgebungen oder Umzüge der Datenbasis kein Problem für den Data Lake“, sagt Carsten Hilber, AIM Co-Founder & DevOps Engineer.