kentoh - Fotolia
Open-Source-Datenbanken: Cassandra, Hive, CouchDB und Co.
Die Apache Software Foundation stellt zahlreiche Datenbank- und Datenmanagementlösungen zur Verfügung, mit denen sich strukturierte und unstrukturierte Daten speichern lassen.
Die Apache Software Foundation stellt verschiedene Datenbanklösungen zur Verfügung, mit denen sich strukturierte und unstrukturierte Daten speichern lassen. Wir stellen in diesem Beitrag einen Überblick zur Verfügung.
Im Beitrag Big-Data-Analysen mit Tools der Apache Software Foundation haben wir bereits Apache-Lösungen vorgestellt, mit denen sich Big Data analysieren lässt. Einige dieser Lösungen dienen ebenfalls der Datenspeicherung, darunter Accumulo, Beam, Drill, Flink oder Calcite.
Apache Daffodil
Bei Daffodil handelt es sich um eine Open-Source-Implementierung der Data Format Description Language (DFDL). Diese kann verschiedene Datenformate beschreiben, einschließlich textueller und binärer, wissenschaftlicher und numerischer, datensatzorientierter, industrieller und militärischer Standards. Die verwendete Sprache ist Teil des W3C XML-Schemas, um das logische Format der Daten zu beschreiben.
Das ermöglicht das Parsen von Daten in festen Formaten über ein Infoset. Hier besteht die Möglichkeit, die Daten in XML oder JSON zu konvertieren. Zusätzlich kann Daffodil Daten serialisieren und wieder in das Quellformat umwandeln. Datenverarbeitungs-Frameworks ermöglichen das Konvertieren in Datenstrukturen bei gleichzeitiger Umgehung des XML/JSON-Overheads.
Apache Flume
Apache Flume ist vor allem ein System zum Sammeln, Aggregieren und Verschieben großer Datenmengen. Hierfür kann die Lösung Daten aus verschiedenen Quellen in einen gemeinsamen Datenspeicher überführen.
Mit Flume führen Anwender Daten zusammen und analysieren diese. Dabei kann es sich auch um unstrukturierte Daten handeln, zum Beispiel aus sozialen Medien oder Videos. ProSiebenSat1 nutzt Flume zum Beispiel für das Aggregieren von Daten.
Hierbei ist eine enge Verknüpfung mit Hadoop und anderen Big-Data-Lösungen gegeben. Das System kann außerdem E-Mails aus verschiedenen Datenquellen importieren, verarbeiten und an Hadoop beziehungsweise HDFS weitersenden. Seit Version 1.5 lassen sich die Daten mit Dataset Sinks auf Basis der Kite API in HDFS beziehungsweise HBase übertragen.
Apache CouchDB
Mit CouchDB lassen sich dokumentenorientierte Datenbankstrukturen aufbauen. Die Daten lassen sich zum Beispiel auf Basis von JSON-Dokumenten abspeichern. Der Zugriff auf die Dokumente kann unter anderem per HTTPS erfolgen. Hinzu kommt die Möglichkeit, Dokumente mit JavaScript zu transformieren. Einer der Vorteile von CouchDB ist es, Daten per Replikation auf verschiedene Knoten zu verteilen.
Apache DataFu
Bei Apache DataFu handelt es sich um eine Sammlung von Tools, die bei der Analyse von Daten mit Apache Pig helfen. Pig kann wiederum Abfragen für MapReduce erstellen und ausführen. Apache DataFu besteht vor allem aus zwei Bibliotheken. Neben der Bibliothek für Pig, kann Apache DataFu Hourglass für die inkrementelle Verarbeitung von Daten mit MapReduce zum Einsatz kommen.
Apache Airavata
Airvata ist keine Datenbank, sondern ein Java-Framework, mit dem sich Ressourcen über verschiedene Computer, Cloud-Umgebungen, Netzwerke oder Grids verteilen lassen. Die Software kann daher als Middleware zum Einsatz kommen und bietet Schnittstellen für Anwendungen, Workflows und verteilte Rechenressourcen.
Apache CarbonData
CarbonData ist ein Dateiformat, mit dem sich interaktive Abfragen erstellen lassen. Zum Einsatz kommen spaltenbasierte Speichertechnologien, um die Recheneffizienz zu verbessern. Dadurch lassen sich große Datenmengen im Petabereich abfragen.
Apache BookKeeper
Das Projekt BookKeeper ist ein hochverfügbarer Dienst zum Replizieren von Daten. Durch das Hinzufügen weiterer Knoten kann die Datenmenge nahezu unbegrenzt skaliert werden. Aufgrund seiner Möglichkeiten lässt sich BookKeper als skalierbarer, fehlertoleranter und latenzarmer Speicherdienst verwenden. Die Echtzeitverarbeitung von Daten stellt für den Dienst ebenfalls kein Problem dar.
Apache Camel
Mit Apache Camel erhalten Unternehmen ein Integrations-Framework, mit dem sich Datenverarbeitungs- oder Datenspeicherungssysteme aus mehreren Quellen integrieren und anbinden lassen. Camel erlaub das Erstellen und Vervollständigen von Routing-Regeln sowie den Einsatz von Messaging-Modellen, zum Beispiel HTTP, ActiveMQ, JMS, JBI, SCA, MINA oder CXF. Apache Camel bietet Unterstützung für Bean Binding und die Integration mit gängigen Frameworks, zum Beispiel CDI und Spring.
Apache Ambari
Apache Ambari ist ein Tool, dass vor allem bei großen Datenmengen zum Einsatz kommt. Mit Ambari lassen sich Hadoop-Cluster aufbauen und verwalten. Zudem lässt es sich mit Oozie, Zookeeper und Hive einsetzen. Es handelt sich daher um keine Datenbank im eigentlichen Sinn, sondern um eine Managementlösung für die Verarbeitung großer Datenmengen auf Basis von Hadoop.
Apache Avro
Bei Apache Avro handelt es sich um ein System für die Serialisierung von Daten. Auch dieses Projekt ist für den Big-Data-Bereich gedacht, da hier eine Serialisierung von Daten häufig vorkommt. Das Projekt nutzt JSON, um Datentypen und Protokolle zu definieren und später mit Hadoop zu verarbeiten.
Apache Bigtop
Apache Bigtop ist ein Projekt, mit dem sich vor allem Hadoop-Projekte und deren Daten paketieren lassen. Beispiele dafür ist das Paketieren von RPMs und DEBs. Hinzu kommt die Möglichkeit, Vagrant-, Rohdaten- oder Docker-Images zu erstellen und zu verwalten.