archivio , ottimizzato per l'archiviazione di array multidimensionali e dati utilizzati nei calcoli scientifici. Tra i casi d'uso di TileDB sono menzionati diversi sistemi di elaborazione delle informazioni genetiche, dati spaziali e finanziari, ovvero sistemi che operano o con array multidimensionali riempiti in modo continuo. TileDB offre una libreria C++ per astrazioni trasparenti nell'accesso a dati e metadati nelle applicazioni, occupandosi dell'intero lavoro di organizzazione a basso livello per un'archiviazione efficiente. Il codice del progetto è scritto in C++ ed è sotto licenza MIT. Supporta il funzionamento su Linux, macOS e Windows.
Caratteristiche principali di TileDB:
- Metodi efficienti per l'archiviazione di array sparsi, nei quali i dati non seguono un ordine continuo, l'array è riempito a frammenti e la maggior parte degli elementi rimane vuota o assume lo stesso valore.
- Possibilità di accesso ai dati in formato chiave-valore o set di colonne ();
- Supporto per integrazione con archivi cloud AWS S3, Google Cloud Storage e Azure Blob Storage;
- Supporto per array a mosaico (bloccati);
- Possibilità di utilizzare diversi algoritmi di compressione e crittografia dei dati;
- Supporto per la verifica dell'integrità tramite checksum;
- Funzionamento in modalità multi-threading con parallelizzazione dell'input/output;
- Supporto per la versioning dei dati archiviati, incluso il recupero dello stato in un dato momento del passato o aggiornamenti atomici per interi set di dati.
- Possibilità di associare metadati;
- Supporto per la raggruppamento dei dati;
- Moduli di integrazione per l'uso come motore di archiviazione a basso livello in Spark, Dask, MariaDB, GDAL, PDAL, Rasterio, gVCF e PrestoDB;
- Librerie di binding sopra l'API C++ per i linguaggi Python, R, Java e Go.
La versione 2.0 è notevole per il supporto della concezione di «DataFrame», che consente di memorizzare i dati sotto forma di colonne di valori di lunghezza variabile, legati a determinati attributi. Il sistema di archiviazione è anche ottimizzato per la gestione di array sparsi di dimensioni eterogenee (nelle celle possono essere memorizzati dati di tipi diversi e si possono eseguire operazioni di unione tra colonne di diversi tipi, ad esempio, quelle che contengono titolo, tempo e prezzo). È stato aggiunto il supporto per colonne con dati testuali. Sono stati aggiunti moduli per l'integrazione con Google Cloud Storage e Azure Blob Storage. L'API per il linguaggio R è stata rielaborata.
Fonte: opennet.ru
