So funktioniert ArcticDB: Vom Dataframe zur Hochleistungsdatenbank
Für riesige Datenmengen braucht man andere Lösungen als klassische Datenbanken. Wir erklären, wie ArcticDB effizient Datenreihen in Python speichert.
- Dr. Fabian Deitelhoff
Data-Scientists sind häufig mit enormen Mengen an Zeitreihendaten konfrontiert, beispielsweise bei der quantitativen Analyse. Um diese Herausforderung zu meistern, entwickelte die Man Group, ein britischer Finanzdienstleister, eine eigene, Dataframe-zentrierte Datenbank: ArcticDB. Das Besondere: Das System speichert pandas-Dataframes spaltenorientiert und stellt jede Änderung als neue Version bereit. Durch diese Art der Speicherung, unveränderliche (immutable) Versionierung und native pandas-Integration erleichtert ArcticDB den Umgang mit riesigen Datensätzen.
- Klassische Datenbanken und Dateiformate stoĂźen beim Verarbeiten riesiger Datenmengen an ihre Grenzen.
- Die Open-Source-Datenbank ArcticDB ist speziell fĂĽr Big Data und High-Performance Computing konzipiert: Sie speichert spaltenbasiert statt zeilenweise, nutzt Versionierung sowie Append-Streaming und integriert pandas nativ.
- Alternative Produkte wie ClickHouse, TimescaleDB und InfluxDB oder Formate und Techniken wie Apache Parquet und Delta Lake haben eine andere Ausrichtung. Sie verwenden SQL und klassische Time-Series-Konzepte.
Herkömmliche Dateiformate und Data-Warehouse-Systeme reichen nicht immer aus, um Dataframes mit Milliarden Zeilen effizient zu verarbeiten. Das Konzept von ArcticDB stellt Dataframes in den Mittelpunkt des Datenmodells (siehe Artikel „Our Journey Creating ArcticDB: Solving the Challenge of Dataframes at Scale“ von William Dealtry, einem der Hauptentwickler von ArcticDB). Zwei Ideen sind dabei zentral: günstiger Cloud-Speicher und Immutabilität. Statt Daten nachträglich zu ändern, erzeugt ArcticDB bei jeder Schreiboperation eine neue Version, was Skalierung und Zeitreisen ermöglicht. Daraus leiten sich die Kerneigenschaften des Datenbanksystems ab:
- pandas in, pandas out: Die Python-API arbeitet direkt mit Dataframes und verzichtet auf SQL.
- Serverlos und unveränderlich: ArcticDB läuft als Embedded-Engine auf dem Client, nutzt Objektspeicher (S3, LMDB) und speichert Daten als unveränderliche Versionen.
- Spaltenorientiert und leistungsfähig: Die Datenbank nutzt spaltenbasierte, komprimierte Segmente, um sehr große Dataframes schnell zu lesen und zu schreiben. Persistente Strukturen schützen ältere Versionen vor Beschädigung.
Die genannten Prinzipien bestimmen Architektur, API und Anwendungsfälle.
Das war die Leseprobe unseres heise-Plus-Artikels "So funktioniert ArcticDB: Vom Dataframe zur Hochleistungsdatenbank". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.