rasdaman (" gestor de datos ráster ") es un DBMS de matriz , es decir: un sistema de gestión de bases de datos que añade capacidades para el almacenamiento y la recuperación de matrices multidimensionales masivas , como datos de sensores, imágenes, simulaciones y estadísticas. [ 3 ]
Un sinónimo frecuentemente utilizado para matrices es datos ráster , como en gráficos ráster 2D ; esto, de hecho, motivó el nombre rasdaman . Sin embargo, rasdaman no tiene limitación en el número de dimensiones: puede servir, por ejemplo, para datos de medición 1D, imágenes satelitales 2D, series temporales de imágenes 3D x/y/t y datos de exploración x/y/z, datos oceánicos y climáticos 4D, e incluso más allá de las dimensiones espaciotemporales. [ 3 ]
Historia
En 1989, Peter Baumann comenzó a investigar el soporte de bases de datos para imágenes en el Instituto Fraunhofer de Gráficos por Computadora . Tras una investigación exhaustiva sobre formalizaciones de datos rasterizados en imágenes, en particular el Álgebra de Imágenes AFATL, estableció un modelo de base de datos para matrices multidimensionales, que incluía un modelo de datos y un lenguaje de consulta declarativo . [ 4 ] Fue pionero en el campo de las bases de datos de matrices . Hoy en día, las matrices multidimensionales también se conocen como cubos de datos . [ 5 ]
En la Universidad Técnica de Múnich , en el marco del proyecto de investigación básica RasDaMan , financiado por la UE , se estableció un primer prototipo sobre el sistema de gestión de bases de datos orientado a objetos O2 , que se probó en aplicaciones de ciencias de la Tierra y de la vida. [ 6 ] Mediante otros proyectos financiados por la UE, este sistema se completó y se amplió para admitir sistemas de gestión de bases de datos relacionales. Se creó una empresa derivada de investigación, rasdaman GmbH, [ 7 ] para brindar apoyo comercial, además de la investigación que posteriormente se ha continuado en la Universidad Jacobs . [ 8 ] Desde entonces, ambas entidades colaboran en el desarrollo y uso de la tecnología rasdaman. [ 9 ]
Conceptos
Modelo de datos
Basándose en un álgebra de matrices [ 10 ] desarrollada específicamente para bases de datos , rasdaman añade un nuevo tipo de atributo, la matriz, al modelo relacional. Dado que esta definición de matriz está parametrizada, constituye una construcción o plantilla de segundo orden ; este hecho se refleja en los funcionales de segundo orden del álgebra y del lenguaje de consulta.
Por razones históricas, las tablas se denominan colecciones , ya que el diseño inicial priorizaba su integración en el estándar de bases de datos orientadas a objetos, ODMG . Anticipando una integración completa con SQL, las colecciones de rasdaman representan una relación binaria donde el primer atributo es un identificador de objeto y el segundo es el array. Esto permite establecer referencias de clave externa entre arrays y tuplas relacionales regulares .
Lenguaje de consulta ráster
El lenguaje de consulta rasdaman, rasql, se integra en SQL estándar y su procesamiento orientado a conjuntos. Para el nuevo tipo de atributo, los arreglos multidimensionales, se proporciona un conjunto de operaciones adicionales basadas en un conjunto mínimo de operadores básicos definidos algebraicamente, un constructor de arreglos (que crea un nuevo arreglo y lo llena con valores) y un condensador de arreglos (que, de forma similar a las agregaciones SQL, obtiene información de resumen escalar de un arreglo). El lenguaje de consulta es declarativo (y, por lo tanto, optimizable) y seguro en su evaluación; es decir, se garantiza que cada consulta devolverá un resultado después de un número finito de pasos de procesamiento.
La guía de consultas de rasql [ 11 ] proporciona detalles; aquí algunos ejemplos pueden ilustrar su uso:
- "A partir de todos los cubos de datos de simulación climática 4D x/y/z/t, se extrae un recorte que contiene todos los datos en x, ay entre 100 y 200, todos los disponibles a lo largo de z, y una sección en la posición 42 (lo que resulta efectivamente en un cubo 3D x/y/z)":
seleccione c [ * : * , 100 : 200 , * : * , 42 ] de ClimateSimulations como c- "En todas las imágenes satelitales Landsat, suprima todas las áreas que no sean verdes":
seleccionar img * ( img . green > 130 ) de LandsatArchive como imgNota: Este ejemplo ilustra un enfoque básico; el análisis práctico de la vegetación suele emplear la fórmula NDVI , el enmascaramiento de nubes y técnicas de procesamiento adicionales.
- "Todas las imágenes de resonancia magnética en las que, en alguna región definida por las máscaras de bits, la intensidad supera un umbral de 250":
seleccionar img de MRI como img , Masks como m donde some_cells ( img > 250 y m )- "Una sección transversal 2D x/y de todos los cubos de datos de simulación climática 4D, cada uno codificado en formato PNG":
seleccione png ( c [ * : * , * : * , 100 , 42 ] ) de ClimateSimulations como cArquitectura
Gestión de almacenamiento

Los objetos ráster se particionan en mosaicos . [ 12 ] Además de una subdivisión regular, es posible cualquier partición generada por el usuario o el sistema. Dado que los mosaicos forman la unidad de acceso al disco, es importante que el patrón de mosaico se ajuste a los patrones de acceso a las consultas; varias estrategias de mosaico ayudan a establecer un mosaico de buen rendimiento. Se emplea un índice geográfico para determinar rápidamente los mosaicos afectados por una consulta. Opcionalmente, los mosaicos se comprimen utilizando una de varias opciones, [ 13 ] incluyendo algoritmos sin pérdida y con pérdida (wavelet); independientemente de eso, los resultados de la consulta se pueden comprimir para transferirlos al cliente. Tanto la estrategia de mosaico como la compresión comprenden parámetros de ajuste de la base de datos.
Los mosaicos y el índice de mosaicos se almacenan en disco en la base de datos rasdaman, [ 14 ] junto con el diccionario de datos necesario para el sistema de tipos dinámicos de rasdaman. Para matrices mayores que el espacio en disco, se ha desarrollado soporte para la gestión de almacenamiento jerárquico (HSM). [ 15 ]
Procesamiento de consultas
La ejecución de consultas se basa en la transmisión de bloques. [ 16 ] La ejecución sigue un paradigma de transmisión de bloques : siempre que sea posible, los bloques de la matriz a los que apunta una consulta se obtienen secuencialmente, y cada bloque se descarta después de su procesamiento. Esto da como resultado una arquitectura escalable a volúmenes de datos que superan la memoria principal del servidor en varios órdenes de magnitud.
Las consultas se someten a una optimización intensiva. [ 17 ] El servidor aplica reglas de optimización algebraica (heurística) al árbol de consultas cuando corresponde; de las 150 reglas de reescritura algebraica, 110 se utilizan para optimizar, mientras que las otras 40 transforman la consulta a su forma canónica. Además, se aplica una optimización basada en costos. El análisis sintáctico y la optimización en conjunto tardan menos de un milisegundo en una computadora portátil.
Además, las consultas se paralelizan. [ 18 ] Rasdaman ofrece paralelismo entre consultas (un despachador programa las solicitudes en un grupo de procesos de servidor sobre la base de cada transacción) y paralelismo dentro de la consulta (distribución transparente de subárboles de consulta entre los núcleos, GPU o nodos de nube disponibles).
API de cliente
La interfaz principal de rasdaman es el lenguaje de consulta. Las integraciones en las API de C++ y Java permiten invocar consultas, así como funciones de conveniencia del lado del cliente para el manejo de matrices. Las matrices se entregan en el formato de memoria principal del lenguaje del cliente y la arquitectura del procesador, listas para su posterior procesamiento. Los códecs de formato de datos permiten recuperar matrices en formatos ráster comunes, como CSV , PNG y NetCDF .
Se proporciona un kit de herramientas de diseño web, raswct, que facilita la creación de interfaces de consulta web, incluyendo widgets gráficos para el manejo de consultas parametrizadas, como controles deslizantes para umbrales en las consultas.
Servicios web geográficos
Petascope , un servlet Java que se ejecuta como cliente rasdaman, ofrece interfaces de servicio web específicas para el acceso, procesamiento y filtrado de datos geográficos. Se admiten los siguientes estándares OGC : WMS , WCS , WCPS y WPS .
Para WCS y WCPS , rasdaman es la implementación de referencia .
Modelo de estado y licencia
Actualmente, rasdaman es una implementación completa que ofrece funcionalidades de consulta de matrices para seleccionar, insertar, actualizar y eliminar elementos. Se utiliza tanto en instalaciones de investigación como comerciales.
En una colaboración entre el propietario del código original, rasdaman GmbH [ 7 ], y la Universidad Jacobs , se realizó una división del código entre 2008 y 2009, dando como resultado rasdaman community [ 19 ] , una rama de código abierto , y rasdaman enterprise , la rama comercial. Desde entonces, rasdaman community es mantenida por la Universidad Jacobs, mientras que rasdaman enterprise sigue siendo propiedad de rasdaman GmbH. La diferencia entre ambas variantes radica principalmente en optimizaciones de rendimiento (como técnicas de optimización específicas) destinadas a soportar bases de datos, número de usuarios y consultas particularmente grandes; los detalles están disponibles en el sitio web de rasdaman community [ 20 ] .
La licencia comunitaria rasdaman distribuye el servidor bajo la licencia GPL y todas las partes del cliente bajo la licencia LGPL , lo que permite el uso del sistema en cualquier tipo de entorno de licencia.
Impacto
Siendo el primer sistema de gestión de bases de datos ( DBMS) basado en matrices lanzado al mercado (el primer prototipo estuvo disponible en 1996), rasdaman ha marcado un hito en este campo de investigación reciente sobre bases de datos. Los conceptos del modelo de datos y de consulta (declaratividad, a veces elección de operadores) se encuentran presentes en enfoques más recientes. La Research Data Alliance realizó una comparación exhaustiva de los DBMS basados en matrices y tecnologías relacionadas en 2018. [ 21 ]
Estándares
En 2008, el Open Geospatial Consortium publicó el estándar Web Coverage Processing Service , que define un lenguaje de consulta ráster (a menudo llamado "cubo de datos") basado en el concepto de cobertura . La semántica de los operadores [ 22 ] está influenciada por el álgebra de matrices rasdaman.
En 2016, INSPIRE (Marco Legal para la Información Espacial en Europa [ 23 ] ) adoptó WCPS como componente opcional de INSPIRE-WCS. [ 24 ]
En 2023, la norma WCPS fue adoptada por ISO TC211 como ISO 19123-3:2023. [ 25 ]
En 2024, OGC adoptó la misma especificación como Abstract Topic 6.3. [ 26 ]
En 2019, ISO adoptó el lenguaje de consulta de matrices rasql como [ 27 ] para el estándar SQL , con solo pequeños ajustes sintácticos a SQL.
Uso del proyecto
Dos proyectos seleccionados pueden ilustrar el uso de rasdaman en servicios geográficos.
El entorno abierto Earth Datacube Playground [ 28 ] es una plataforma para el análisis de geodatacubos procesables, que ofrece casos de uso de acceso a datos ráster y procesamiento ad hoc desde una dimensión hasta cuatro dimensiones. Esta plataforma está construida con rasdaman.
EarthServer [ 29 ] es una federación global de proveedores independientes de cubos de datos. Las ofertas combinadas de cubos de datos se ponen a disposición como un único espacio de cubos de datos homogeneizado. El acceso es totalmente transparente a la ubicación: cualquier nodo puede recibir una consulta y responderla, independientemente de en qué nodo de la federación se encuentren los datos; esto incluye la fusión automática de datos distribuidos. La participación es gratuita para los colaboradores de cubos de datos.
Referencias
- ↑ "El proyecto de código abierto rasdaman en Open Hub" . Open Hub . Black Duck Software . Consultado el 14 de enero de 2020 .
- ↑ "Licencia Rasdaman" . rasdaman.org . Consultado el 1 de agosto de 2016 .
- ^ Antonijević , Ognjen (2019). "Rasdaman como plataforma para ofrecer datos ráster espacio-temporales" . Tehnika . 74 (2): 198– 202. doi : 10.5937/tehnika1902198a . ISSN 0040-2176 .
- ↑ Baumann, P.: Sobre la gestión de datos discretos multidimensionales . VLDB Journal 4(3)1994, Número especial sobre sistemas de bases de datos espaciales, págs. 401-444
- ^ Antonijević, Ognjen (2019). "Rasdaman como plataforma para ofrecer datos ráster espacio-temporales" . Tehnika . 74 (2): 198– 202. doi : 10.5937/tehnika1902198a . ISSN 0040-2176 .
- ↑ "Gestión de datos ráster en bases de datos" . Servicio de Información para la Investigación y el Desarrollo Comunitario (CORDIS) .
- 1 2 "rasdaman, el servidor de análisis de Big Data" . Rasdaman.com . Consultado el 11 de septiembre de 2022 .
- ↑ "Rasdaman - el motor de análisis de matrices ágiles" . www.rasdaman.com . Archivado del original el 24 de septiembre de 2015. Consultado el 15 de enero de 2022 .
- ^ Antonijević, Ognjen (2019). "Rasdaman como plataforma para ofrecer datos ráster espacio-temporales" . Tehnika . 74 (2): 198– 202. doi : 10.5937/tehnika1902198a . ISSN 0040-2176 .
- ↑ Baumann, P.: Un álgebra de matrices de bases de datos para datos espaciotemporales y más allá . Actas de NGITS'99, LNCS 1649, Springer 1999, págs. 76-93.
- ↑ nn: Guía del lenguaje de consulta de Rasdaman
- ↑ Furtado, P., Baumann, P.: Almacenamiento de matrices multidimensionales basado en teselado arbitrario . Actas de ICDE'99, 23-26 de marzo de 1999, Sídney, Australia, págs. 328-336.
- ↑ A. Dehmel: Un motor de compresión para sistemas de bases de datos de matrices multidimensionales. Tesis doctoral, TU Munich, 2001
- ↑ P. Furtado: Gestión del almacenamiento de matrices multidimensionales en sistemas de gestión de bases de datos. Tesis doctoral, TU Munich, 2000
- ↑ B. Reiner et al: Soporte y gestión de almacenamiento jerárquico para sistemas de gestión de bases de datos de matrices multidimensionales a gran escala. Actas de DEXA, Aix-en-Provence, Francia, 2-6 de septiembre de 2002, Springer LNCS 2453, pp. 689-700, doi: 10.1007/3-540-46146-9_68
- ↑ N. Widmann: Ejecución eficiente de operaciones en datos de matrices multidimensionales. Tesis doctoral, TU Munich, 1999.
- ↑ R. Ritsch: Optimización y evaluación de consultas de matrices en sistemas de gestión de bases de datos. Tesis doctoral, TU Munich, 1999.
- ↑ K. Hahn: Parallele Anfrageverarbeitung in multidimensionalen Array-Datenbanksystemen. Tesis doctoral, TU Munich, 2003
- ↑ "rasdaman" . rasdaman. 28-02-2022 . Consultado el 11-09-2022 .
- ↑ modelo de licencia rasdaman
- ↑ Baumann, P.: Bases de datos de matrices: conceptos, estándares e implementaciones . Research Data Alliance, Grupo de trabajo de evaluación de bases de datos de matrices, DOI: https://dx.doi.org/10.15497/RDA00024
- ↑ Baumann, P.: El estándar del Servicio de Procesamiento de Cobertura Web (WCPS) de la OGC . Geoinformatica, 14(4)2010, pp. 447-479
- ↑ «UE INSPIRA» . UE. 2022-02-28 . Consultado el 18 de julio de 2024 .
- ↑ "Guía técnica para la implementación de los servicios de descarga de INSPIRE mediante los servicios de cobertura web (WCS)" . 16 de diciembre de 2016.
- ↑ "ISO 19123-3:2023: Información geográfica - Esquema para la geometría y las funciones de cobertura - Parte 3: Fundamentos del procesamiento" . 21/06/2023.
- ↑ "2024-07-05" (PDF) . 2024-07-05.
- ↑ "ISO 9075-15:2023: Tecnología de la información – Lenguajes de bases de datos – SQL – Parte 15: Matrices multidimensionales (MDA)" . 1 de junio de 2023.
- ↑ "Earth Datacube Playground" . rasdaman . Consultado el 18 de julio de 2024 .
- ↑ "EarthServer" . Earthserver.eu . Consultado el 11 de septiembre de 2022 .
- Sistemas de gestión de bases de datos gratuitos
- Sistemas de gestión de bases de datos propietarios
- NoSQL
- Lenguajes de consulta