Speicher , optimiert für die Speicherung von mehrdimensionalen Arrays und Daten, die in wissenschaftlichen Berechnungen verwendet werden. Zu den Anwendungsbereichen von TileDB gehören verschiedene Systeme zur Verarbeitung genetischer Informationen, räumlicher und finanzieller Daten, d. h. Systeme, die mit oder kontinuierlich gefüllten mehrdimensionalen Arrays arbeiten. TileDB bietet eine C++-Bibliothek für eine transparente Abstraktion des Zugriffs auf Daten und Metadaten in Anwendungen, übernimmt die gesamte Arbeit der niedrigstufigen Organisation einer effizienten Speicherung. Der Code des Projekts ist in C++ geschrieben und unter der MIT-Lizenz. Es wird die Ausführung unter Linux, macOS und Windows unterstützt.
Die Hauptmerkmale von TileDB:
- Effiziente Speichermethoden für spärliche Arrays, bei denen die Daten nicht kontinuierlich vorliegen, das Array in Fragmenten gefüllt wird und ein Großteil der Elemente leer bleibt oder denselben Wert hat.
- Möglichkeit des Zugriffs auf Daten im Schlüssel-Wert-Format oder als Satz von Spalten ();
- Unterstützung der Integration mit Cloud-Speichern wie AWS S3, Google Cloud Storage und Azure Blob Storage;
- Unterstützung von Mosaik- (Block-) Arrays;
- Möglichkeiten zur Verwendung verschiedener Algorithmen zur Datenkompression und -verschlüsselung;
- Unterstützung der Integritätsprüfung durch Prüfziffern;
- Betrieb im Mehrprozessmodus mit Parallelisierung von Ein-/Ausgabe;
- Unterstützung der Versionierung von gespeicherten Daten, einschließlich der Möglichkeit, den Zustand zu einem bestimmten Zeitpunkt in der Vergangenheit abzurufen oder atomare Aktualisierungen großer Datensätze durchzuführen.
- Möglichkeit zur Verknüpfung von Metadaten;
- Unterstützung der Gruppierung von Daten;
- Integrationsmodule zur Verwendung als Low-Level-Speichermotor in Spark, Dask, MariaDB, GDAL, PDAL, Rasterio, gVCF und PrestoDB;
- Wrapper-Bibliotheken über das C++ API für die Programmiersprachen Python, R, Java und Go.
Die Version 2.0 zeichnet sich durch die Unterstützung des Konzepts "DataFrame" aus, das die Speicherung von Daten in Form von Spalten mit Werten beliebiger Länge ermöglicht, die an bestimmte Attribute gebunden sind. Der Speicher ist zudem für die Verarbeitung von spärlichen Arrays unterschiedlicher Größe optimiert (in den Zellen können Daten unterschiedlicher Typen gespeichert werden, und es können Operationen zum Zusammenführen von Spalten unterschiedlicher Typen durchgeführt werden, z. B. mit Namen, Zeit und Preis). Die Unterstützung für Spalten mit Zeichenfolgendaten wurde hinzugefügt. Module für die Integration mit Google Cloud Storage und Azure Blob Storage wurden hinzugefügt. Die API für die R-Sprache wurde überarbeitet.
Quelle: opennet.ru
