Data Mining: Batch-Import vs. Hook-basierte Erfassung

Ist Batch-Import oder Hook-basierte Erfassung für Ihre Data Mining-Strategie am besten geeignet?

Beim Mining von Daten aus externen Quellen kann die Methodik entweder als "Batch" oder "Hook" -basiert identifiziert werden. Diese sind sehr unterschiedlich und haben ihre eigenen Vorzüge. Verwenden wir ein Beispiel, um dies etwas zu vereinfachen. In unserem Beispiel handelt es sich bei den Informationen um Flugdaten, die sich jederzeit auf den Standort eines Flugzeugs beziehen. Daher sollten wir die folgenden wichtigen Informationen haben:

  1. Bewegungszustand (stationär oder in Bewegung)
  2. Breite
  3. Längengrad
  4. Höhe
  5. Herkunft (des aktuellen oder nächsten Fluges)
  6. Ziel (des aktuellen oder nächsten Fluges)
  7. Zeit (Millisekundengenauigkeit)

In diesem Beispiel sollten wir in der Lage sein, die meisten Informationen in Bezug auf das Flugzeug unter Verwendung der oben genannten Daten zu extrapolieren. Analysieren wir die beiden Methoden zum Importieren von Daten.

Batch-Import

Ein Stapelimport basiert auf Zeitplänen und ruft in regelmäßigen Abständen Informationen aus einer Quelle ab. In unserem obigen Beispiel für Flugdaten könnte dies folgendermaßen implementiert werden:

  1. Wir importieren stündlich alle Flugaufzeichnungen, die sich auf dieses Flugzeug seit der letzten Instanz beziehen. Wir nennen dies die Batch-Zeit, die 10: 00: 00.000 (10 Uhr morgens, millisekundengenau) betragen kann.
  2. Dieser Server verarbeitet diese Daten (erfolgreich importiert).
  3. Wir aktualisieren die Stapelzeit auf die Zeit des letzten Datensatzes. Obwohl die Stapelzeit in Schritt 1 10: 00.000 war, wird dies die neue Stapelzeit, wenn der letzte Datensatz 9: 59: 52.915 war.

Warum implementieren wir das Batch-Timing auf diese Weise?

  1. Wir aktualisieren die Batch-Zeit, da ein stündlicher Batch fehlschlagen kann. Dies gibt uns die Gewissheit, dass wir auch dann, wenn ein Stapel ausfällt, alle Informationen seit dem letzten Stapel importieren.
  2. Wir speichern die Batch-Zeit auch auf den Zeitpunkt des letzten Flugdatensatzes, da ein winziger Zeitunterschied zwischen den Servern dazu führen kann, dass einige Daten in der nächsten Instanz nicht importiert werden. Das anders zu erklären; Wenn unser Server 5 Sekunden vor dem Zeitpunkt liegt, an dem die Flugdaten bereitgestellt wurden, und wir die letzte Batch-Zeit als Serverzeit speichern wollten, gehen diese 5 Sekunden beim nächsten Import verloren. Stattdessen verwenden wir die zuletzt aufgezeichnete Zeit der Flugdaten, um sicherzustellen, dass Chargen alle Daten erfassen.

Hakenbasierter Import

Ein Hook-basierter Import ist eine reine Echtzeitmethode zum Erfassen von Daten. Ein "Hook" in der Datenverarbeitung bezieht sich auf einen Prozess, bei dem ein externes System (z. B. die Flugdatenlösung) eine Nachricht (mit Daten) an Ihren Server sendet, wenn ein Ereignis eintritt. Ein Beispiel für einen Hook-basierten Import könnte wie folgt ausgeführt werden:

  1. Auf dem Flugdatenserver wird ein neuer Datensatz mit allen Informationen (Bewegungsstatus, Breitengrad, Längengrad, Höhe usw.) gespeichert.
  2. Es wird ein "Hook" ausgelöst, der die Daten automatisch an Ihren Server sendet.
  3. Ihr Server verarbeitet diese Daten (erfolgreich importiert).

Fazit

Hook-basierte Importmethoden werden zwar aus Sicht der Echtzeit bevorzugt, sie bieten jedoch zwei Hauptrisiken:

  1. Sie müssen den Zugriff auf Ihren Server von einem externen Standort aus offen legen. Dies schafft ein Cybersicherheitsrisiko, selbst wenn es richtig gemacht wird.
  2. Wenn die Daten eines Hooks nicht übermittelt werden (z. B. wenn Ihr Server nicht erreichbar war), ist es unglaublich mühsam, diese Daten abzurufen, ohne auf die Integrität der externen Plattform angewiesen zu sein.

Um dies zu vermeiden, verwenden wir nach Möglichkeit den Batch-Import. Für aktuellere Informationen werden kürzere „Intervalle“ benötigt.