Lanzamiento del motor de almacenamiento TileDB 2.0
Опубликовано repositorio AzulejoDB 2.0, optimizado para almacenar matrices multidimensionales y datos utilizados en cálculos científicos. Como áreas de aplicación de TileDB se mencionan varios sistemas para procesar información genética, datos espaciales y financieros, es decir, sistemas operativos escaso o matrices multidimensionales continuamente llenas. TileDB ofrece una biblioteca C++ para abstraer de forma transparente el acceso a datos y metadatos en aplicaciones, encargándose de todo el trabajo de bajo nivel para un almacenamiento eficiente. El código del proyecto está escrito en C++ y distribuido por bajo licencia MIT. Admite trabajo en Linux, macOS y Windows.
Características principales de TileDB:
Métodos eficientes para almacenar matrices dispersas, cuyos datos no son continuos; la matriz se llena de fragmentos y la mayoría de los elementos permanecen vacíos o toman el mismo valor.
Capacidad para acceder a datos en formato clave-valor o conjuntos de columnas (Marco de datos);
Admite la integración con el almacenamiento en la nube AWS S3, Google Cloud Storage y Azure Blob Storage;
Soporte para matrices en mosaico (bloques);
Capacidad para utilizar diferentes algoritmos de compresión y cifrado de datos;
Soporte para verificación de integridad mediante sumas de verificación;
Trabajar en modo multiproceso con entrada/salida paralela;
Soporte para versionar datos almacenados, incluso para recuperar el estado en un momento determinado en el pasado o actualizaciones atómicas de conjuntos grandes completos.
Capacidad para vincular 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 enlace para la API de C++ para Python, R, Java y Go.
La versión 2.0 se destaca por su soporte para el concepto "DataFrame", que permite almacenar datos en forma de columnas de valores de longitud arbitraria, vinculados a ciertos atributos. El almacenamiento también está optimizado para procesar matrices dispersas de tamaños heterogéneos (las celdas pueden almacenar datos de diferentes tipos y pueden realizar operaciones de fusión en columnas de diferentes tipos, por ejemplo, aquellas que almacenan nombre, hora y precio). Se agregó soporte para columnas con datos de cadena. Se agregaron módulos para la integración con Google Cloud Storage y Azure Blob Storage. Se ha rediseñado la API para el lenguaje R.