TileDB 2.0, una base de datos para almacenar las matrices y datos científicos
Hace poco fue anunciada la liberación de la nueva versión de TileDB 2.0 en la cual se añade integración para trabajar con diferentes servicios en la nube, capacidad de utilizar diferentes algoritmos, mejoras con los diferentes motores de almacenamiento y otras cosas más.
Para quienes desconocen de TileDB deben saber que esta es base de datos diseñada para ayudar a los equipos de ciencia de datos a realizar descubrimientos más rápidos al brindarles una forma más poderosa de almacenar, actualizar, analizar y compartir grandes conjuntos de datos diversos.
Sobre TileDB
TileDB consta de un nuevo formato de datos de matriz multidimensional, un motor de almacenamiento C++ rápido, integrable y de código abierto con integraciones de herramientas de ciencia de datos y un servicio en la nube para una fácil gestión de datos y cálculos sin servidor.
TileDB está optimizado para almacenar las matrices y los datos utilizados en los cálculos científicos multidimensionales, como por ejemplo varios sistemas para procesar información genética, datos espaciales y financieros, es decir sistemas que operan con matrices multidimensionales dispersas o continuamente llenas.
TileDB ofrece una biblioteca de C ++ independiente e incrustada que se entrega con API en C, C ++, Python, R, Java y Go y tiene acceso directo a las matrices de TileDB.
La biblioteca está integrada con Spark, Dask, PrestoDB, MariaDB, Arrow y bibliotecas geoespaciales como PDAL, GDAL y Rasterio. TileDB empuja la mayor cantidad de cómputo posible al almacenamiento, como las condiciones de filtro de los motores SQL y los cálculos del marco de datos de Dask y Spark.
Junto a la base de datos está TileDB Cloud, un servicio de pago por uso que puede usar para compartir matrices de TileDB en la nube con otros usuarios y realizar cálculos sin servidor en ellos.
De las características clave de TileDB se destacan las siguientes:
- Métodos efectivos para almacenar matrices dispersas, cuyos datos no siguen continuamente, la matriz se llena con fragmentos y la mayoría de los elementos permanecen vacíos o toman el mismo valor.
- Capacidad para acceder a datos en formato de valor clave o conjuntos de columnas (DataFrame);
- Soporte para la integración con AWS S3, Google Cloud Storage y Azure Blob Storage.
- TileDB admite eficientemente el control de versiones de datos integrado de forma nativa en su formato y motor de almacenamiento.
- Cuenta con una variedad de optimizaciones en torno a I/O paralelas en almacenes de objetos en la nube y cálculos de subprocesos múltiples (como clasificación, compresión, etc.).
- Capacidad para utilizar diferentes algoritmos de compresión y cifrado de datos.
- Soporte para la integridad de la suma de verificación.
- Trabaja en modo multihilo con paralelización de entrada/salida.
- Compatibilidad con el control de versiones de los datos almacenados, incluso para recuperar el estado en un cierto punto en el pasado o para actualizaciones atómicas de conjuntos enteros grandes.
- Capacidad para enlazar metadatos.
- Soporte de agrupación de datos.
- Módulos de integración para usar como motor de almacenamiento de bajo nivel en Spark, Dask, MariaDB, GDAL, PDAL, Rasterio, gVCF y PrestoDB.
- Bibliotecas de enlace API C ++ para los lenguajes Python, R, Java y Go.
El código del proyecto está escrito en C ++ y distribuido bajo la licencia MIT y es compatible con Linux, macOS y Windows.
Sobre la version 2.0
La versión 2.0 se destaca por su compatibilidad con el concepto “DataFrame”, que permite almacenar datos en forma de columnas de valores de longitud arbitraria, vinculados a atributos específicos y que la API rediseñada para R.
El almacenamiento también está optimizado para procesar matrices dispersas de tamaño heterogéneo (se pueden almacenar diferentes tipos de datos en celdas y es posible realizar la fusión de diferentes tipos de columnas, por ejemplo, en las que se almacenan el nombre, el tiempo y el precio).
Se agregó soporte para columnas con datos de cadena, así como también se añadieron módulos para la integración con Google Cloud Storage y Azure Blob Storage.
Finalmente si quieres conocer más al respecto sobre esta nueva versión, puedes consultar la nota de lanzamiento en el siguiente enlace.
Y para conocer más al respecto sobre su instalación, implementación y documentación, lo puedes hacer en el siguiente enlace.