almacenamiento , optimizado para el almacenamiento de arrays multidimensionales y datos utilizados en cálculos científicos. Las áreas de aplicación de TileDB incluyen diversos sistemas de procesamiento de información genética, datos espaciales y financieros, es decir, sistemas que operan o mediante arrays multidimensionales continuamente llenos. TileDB ofrece una biblioteca en C++ para abstraer el acceso a datos y metadatos en aplicaciones, encargándose de toda la organización a bajo nivel para un almacenamiento efectivo. El código del proyecto está escrito en C++ y bajo la licencia MIT. Está soportado en Linux, macOS y Windows.
Principales características de TileDB:
- Métodos de almacenamiento eficientes para arrays dispersos, donde los datos no siguen de manera continua, el array se llena por fragmentos y la mayoría de los elementos permanecen vacíos o toman el mismo valor.
- Posibilidad de acceder a datos en formato clave-valor o conjuntos de columnas ();
- Soporte para integración con almacenamiento en la nube AWS S3, Google Cloud Storage y Azure Blob Storage;
- Soporte para arrays mosaicos (de bloques);
- Posibilidad de utilizar diferentes algoritmos de compresión y cifrado de datos;
- Soporte para verificación de integridad mediante sumas de verificación;
- Funciona en modo multihilo con paralelización de entrada/salida;
- Soporte para versionado de datos almacenados, incluyendo la recuperación de estado en un momento específico del pasado o actualizaciones atómicas completas de grandes conjuntos.
- Posibilidad de vinculación de metadatos;
- Soporte para agrupación de datos;
- Módulos de integración para uso como motor de almacenamiento de bajo nivel en Spark, Dask, MariaDB, GDAL, PDAL, Rasterio, gVCF y PrestoDB;
- Bibliotecas de envoltura sobre C++ API para los lenguajes Python, R, Java y Go.
La versión 2.0 es notable por el soporte del concepto 'DataFrame', que permite almacenar datos en forma de columnas de valores de longitud variable, vinculadas a atributos específicos. El almacenamiento también está optimizado para manejar arrays dispersos de tamaños heterogéneos (en las celdas pueden almacenarse datos de distintos tipos y se pueden realizar operaciones de fusión de columnas de diferentes tipos, por ejemplo, que contengan nombre, tiempo y precio). Se agregó soporte para columnas con datos de tipo cadena. Se añadieron módulos para integrar con Google Cloud Storage y Azure Blob Storage. API para el lenguaje R rediseñada.
Fuente: opennet.ru
