archiviazione , ottimizzato per l'archiviazione di array multidimensionali e dati utilizzati nei calcoli scientifici. Le aree di applicazione di TileDB includono vari sistemi di elaborazione delle informazioni genetiche, dati spaziali e finanziari, cioè sistemi che gestiscono o array multidimensionali riempiti continuamente. TileDB offre una libreria C++ per un'astrazione trasparente dell'accesso ai dati e ai metadati nelle applicazioni, occupandosi di tutta l'organizzazione a basso livello per una memorizzazione 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 di memorizzazione efficienti per array sparsi, in cui i dati non seguono in modo continuo, l'array viene 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 l'integrazione con i servizi di archiviazione cloud AWS S3, Google Cloud Storage e Azure Blob Storage;
- Supporto per array mosaico (bloccati);
- Possibilità di utilizzare diversi algoritmi di compressione e crittografia dei dati;
- Supporto per la verifica dell'integrità tramite checksum;
- Funzionamento in modalità multithreading con parallelizzazione delle operazioni di I/O;
- Supporto per la versioning dei dati memorizzati, inclusa la possibilità di recuperare lo stato in un determinato momento del passato o di eseguire aggiornamenti atomici su grandi insiemi di dati.
- Possibilità di associare metadati;
- Supporto per la raggruppamento dei dati;
- Moduli di integrazione per l'uso come engine 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 del concetto di «DataFrame», che consente di memorizzare dati sotto forma di colonne di valori di lunghezza arbitraria, associate a specifici attributi. Il datastore è inoltre ottimizzato per la gestione di array sparsi di dimensioni eterogenee (nelle celle possono essere memorizzati dati di tipo diverso e possono essere eseguite operazioni di fusione tra colonne di tipologie differenti, ad esempio, contenenti nomi, tempi e prezzi). È stato aggiunto il supporto per colonne con dati di tipo stringa. Sono stati aggiunti moduli per l'integrazione con Google Cloud Storage e Azure Blob Storage. L'API per il linguaggio R è stata riprogettata.
Fonte: opennet.ru
