Apache Hop – Ein Produktivitäts-Sprung in der Datenintegration?

Moderne Datenverarbeitung erfordert leistungsfähige, flexible und einfach zu bedienende Werkzeuge. Apache Hop ist ein solches Datenverarbeitungswerkzeug. Ich habe es wiederentdeckt, nachdem sein Vorgänger, Pentaho Data Integration, auf ein proprietäres Lizenzmodell umgestellt wurde. Hop eignet sich besonders für Datenaufbereitung, Datenbereinigung, Datenintegration und Datenanreicherung auch von grossen Datenmengen.

Der Name „HOP“ steht für „Hop Orchestration Platform“. Die Software ist leicht zu bedienen. Dank einer grafischen Benutzeroberfläche ermöglicht Hop ein einfaches Arbeiten mit Daten - ohne Code schreiben zu müssen.

Hop ist ähnlich wie Talend oder FME, aber Open Source. Hop ist in Java geschrieben und unterstützt die Betriebssysteme Windows 7 oder höher, Linux und macOS.

Daten-Workflows und Daten-Pipelines werden über eine grafische Benutzeroberfläche (GUI) bearbeitet und verwaltet. Der Kern von Hop ist die Hop Engine. Darauf bauen die Softwarekomponenten Hop GUI (Desktop), Hop Run und Hop Server auf. Die Standardinstallation wird mit über 250 so genannten „Transformationen“ ausgeliefert. Diese ermöglichen das Lesen und Schreiben auf einer Vielzahl von Quell- und Zielsystemen, von Dateien (CSV, Excel) über relationale Datenbanksysteme wie PostgreSQL bis hin zu NoSQL-Datenbanken und Cloud Stores. Hinzu kommen die eigentlichen Transformationen zur Verarbeitung. Es ist auch möglich, JavaScript-Code zu schreiben und eigene Erweiterungen (Plugins) in Java zu entwickeln. Es gibt sogar ein GIS-Plugin, das von Dritten entwickelt wurde.

Hop ermöglicht es Entwicklern, sich auf das „Was“ statt auf das „Wie“ der Implementierung von Datenintegrationsprozessen zu konzentrieren und könnte einen grossen Sprung (engl. hop) in der Produktivität bedeuten.

Wer sich ein eigenes Bild machen möchte, dem empfehle ich das neuste Tutorial auf OpenSchoolMaps mit dem Titel „Daten sichten, bereinigen und integrieren mit Apache Hop“, das soeben veröffentlicht wurde (Link).

Wer Interesse hat, Apache Hop näher kennen zu lernen oder Beratung bei der Anwendung sucht, kann mich gerne kontaktieren.

Mir fehlt da Airflow auf der Liste der derzeit gehypten Integrationstools.
Wie würdest du das hier differenzieren?

was bei Hop etwas weh tut und spontan nicht grad Vertrauen schafft ist das doch recht altertümlich erscheinende Design…

Altertümlich ist gut: meinst du grau statt farbig? Also ich mag das nüchterne GUI von Hop, wobei man es schon aufpeppen könnte.

Airflow kenne ich - aber das ist etwas anderes: Airflow „orchestriert“ Workflows und kann (fremde) „Tasks“ ausführen. Diese müssen in Python geschrieben sein, wo man Pandas verwenden kann (was dann wieder nicht Low-Code ist) - oder aber externe Tools. Eines der Tools ist dbt (für SQL-Transformationen) oder Apache Spark - oder aber Apache Hop (im Batch-Betrieb), für das es ein spezielles Airflow Plugin gibt (vgl. hier).

Ich stelle allgemein fest, dass der Begriff „Workflow“ oft Verwirrung stiftet. Ich spreche daher lieber von 1. Datenflussmanagement und 2. Datenverarbeitung. Beide Begriffe überschneiden sich, werden aber oft unterschiedlich verwendet.

  • Datenflussmanagement (Synonyme Workflow, „Orchestrierung“) ist das übergeordnete Management (Steuerung, Terminierung, Fehlerbehandlung) von Aufgaben (Tasks) und Prozessen.
  • Datenverarbeitung (Synonyme Workflow, Task, Transformation, Pipeline) ist die „inhaltliche Verarbeitung“, die Datentransformation - also die eigentlichen Verarbeitungsschritte, die Daten verändern oder analysieren.

Apache Hop ist ein Werkzeug, das sowohl Datenflussmanagement als auch Datenverarbeitung abdeckt (hybrid). Es sprich von „Workflows/Actions“ wenn es um Datenflussmanagement geht und von „Pipelines/Transformations“ wenn es um Datenverarbeitung geht.

FME ist auch so ein hybrides Low-Code-Werkzeug, aber kommerziell. Unter den Open Source Tools, die ich evaluiert habe, gibt es noch Apache NiFi, das wie Apache Airflow „nur“ Datenflussmanagement macht, aber mit Fokus auf Echtzeitverarbeitung und Monitoring. Schliesslich gibt es noch KNIME, das „nur“ Datenverarbeitung macht mit Fokus auf Machine Learning.