Apache Atlas
Apache Atlas ist eine Zusammenstellung von Kerndiensten, welche Möglichkeiten zur Metadatenverwaltung und Governance bietet. Das Projekt wurde 2015 als Apache-Incubator-Projekt ins Leben gerufen. Seither hat das Projekt viele interessante Features erhalten, wie etwa Hochverfügbarkeit und Benachrichtigungen.
Intern verwaltet Apache Atlas Objekte mit Hilfe von JanusGraph. JanusGraph ist eine skalierbare Graphdatenbank, die „pluggable” Datenspeicher unterstützt. Dies ermöglicht es, verschiedene Datenspeicherlösungen zu verwenden, zum Beispiel HBase, Solr, Apache Cassandra oder ElasticSearch. Apache Atlas unterstützt die Abfrage von Metadaten aus einer Vielzahl von Datenquellen. Zudem ist es möglich, andere Datenquellen über die Rest API oder Kafka anzubinden.
Die Dokumentation des Projekts ist lückenhaft, gibt jedoch eine gute Übersicht über die Architektur des Projekts und die enthaltenen Features. Die Erstellung von Modellen und Entities für Metadatenobjekte und der fortschrittliche Autorisierungsmechanismus mit Hilfe von Apache Ranger machen Apache Atlas zu einem Produkt, das sich für den Einsatz im Enterprise eignet.
LinkedIn DataHub
DataHub ist eine Plattform zur Suche und Ermittlung von Metadaten. 2019 hat sie LinkedIn als Open Source freigegeben, nachdem sie zuvor als internes Produkt des Unternehmens im Einsatz war. Im Backend baut DataHub auf der Generalized Metadata Architecture (GMA) auf, welche durch mehrere Dienste vertreten ist. Dank der entkoppelten Architektur erlaubt die Plattform Teams, ihre eigenen Metadatendienste zu verwalten und Daten zu sammeln. DataHub kann mit einer Vielzahl von Datenquellen integriert sein – wie etwa RDBMS, Hive, Kafka über Rest-API-Abrufe oder Kafka Events. Für die Speicherung der Metadaten nutzt die Plattform verschiedene Lösungen wie etwa ElasticSearch und MySQL.
Das Produkt sollte man wegen der vielen interessanten Features wie Data Lineage und Data Lifecycle in Betracht ziehen. Die Dokumentation des Projekts ist sehr kompakt. Aus diesem Grund sollten Teams, die sich für DataHub in ihrem Unternehmen entscheiden, Zeit einplanen, um Informationen zum Deployment und der Nutzung der Plattform direkt im Code zu suchen. DataHub kann man mit Hilfe der Docker Images aus dem GitHub Repository unkompliziert testen.
Lyft Amundsen
Amundsen ist die von dem Ridesharing-Unternehmen Lyft entwickelte Data-Discovery- und Metadatenplattform. Das Unternehmen gab das Projekt 2019 als Open Source frei. Die Plattform konzentriert sich vor allem auf Data Discovery und bietet Features wie Data Ownership und Data Lineage.
Amundsen bietet für das Sammeln von Metadaten mit Hilfe einer Bibliothek namens DataBuilder eine eigene Herangehensweise. DataBuilder hat eine modulare Struktur, die zur Beschreibung von ETL Jobs für Metadatenaufnahme Verwendung finden kann. Die Bibliothek unterstützt eine Reihe von Datenquellen, unter anderem Hive und Kafka. Ein möglicher Anwendungsfall ist die Nutzung von Airflow Pipelines zur Datenaufnahme. Lyft verwendet Airflow, um die internen Metadaten täglich zu erneuern.
Wie auch bei einigen Konkurrenten ist Amundsens Persistence Layer von Neo4j betrieben und verwendet Elasticsearch für die Suche. Die Plattform lässt zu, Apache Atlas als Backend für den Metadatendienst zu verwenden. Einer der Vorteile von Apache Atlas gegenüber Neo4j ist, dass ersterer Plugins anbietet, welche Push-basierte Updates erlauben. Dieser Ansatz ermöglicht es auch Apache-Ranger-Richtlinien zu verwenden, um festzulegen, welche Metadaten zum Betrachten und Bearbeiten verfügbar sind.
Marquez
Marquez ist ein Open-Source-Dienst zum Sammeln, Aggregieren und Visualisieren der Metadaten eines Datenökosystems. 2018 hat WeWork Marquez veröffentlicht und als Open Source freigegeben. Zusätzlich zum eigentlichen Dienst enthält das Projekt eine Vielzahl von Integrationsbibliotheken sowie eine Web-Applikation mit einer einfachen Benutzeroberfläche.
Der Dienst ist zur Nutzung mit einem Workflow Scheduler gedacht und kann auch zur direkten Aufnahme von Metadaten aus Spark oder Flink Jobs Verwendung finden. Die wesentlichen Instanzen von Marquez sind Quellen, Datensätze und Jobs. Sein Metadaten-Repository speichert Daten über alle Jobs und Datensätze, einschließlich einer kompletten Verlaufshistorie von und Statistiken aus Jobs. Die Ausführung eines Jobs ist mit versioniertem Code verbunden und produziert ein oder mehrere versionierte Outputs. Datensätze und Jobs haben Besitzer, welche durch Namensräume definiert sind.
Der Kern von Marquez ist in Java geschrieben, daneben kommen Postgres, Caylay und Elasticsearch zum Einsatz. Momentan sind die möglichen Quellen noch auf MySQL, Postgres, RedShift, Snowflake und Kafka beschränkt. Quellen sind in generischer Weise beschrieben, sodass es kein großer Aufwand sein sollte, neue Quellen hinzuzufügen. Es sei denn, sie passen nicht in das dogmatische Datenmodell von Marquez, welches eine Schwachstelle der Architektur darstellt. Mit Hilfe der Rest API lässt sich Marquez auch mit anderen Plattformen und Bibliotheken wie Amundsen und Dagster integrieren.