rasdaman ("administrador de datos raster") es un DBMS de matriz , es decir: un sistema de gestión de base de datos que agrega capacidades para el almacenamiento y recuperación de matrices multidimensionales masivas , como datos de sensores, imágenes, simulación y estadísticas. Un sinónimo de matrices que se utiliza con frecuencia son los datos ráster , como en los gráficos ráster 2D ; esto en realidad ha motivado el nombre rasdaman . Sin embargo, rasdaman no tiene limitación en el número de dimensiones: puede servir, por ejemplo, datos de medición 1-D, imágenes satelitales 2-D, series de tiempo de imágenes 3-D x / y / t y datos de exploración x / y / z , Datos oceánicos y climáticos 4-D, e incluso más allá de las dimensiones espacio-temporales.
Autor (es) original (es) | Peter Baumann |
---|---|
Desarrollador (es) | rasdaman GmbH |
Lanzamiento estable | rasdaman v9.8.1 / 26 de julio de 2019 |
Repositorio | |
Escrito en | C ++ [1] |
Sistema operativo | la mayoría de los sistemas operativos similares a Unix |
Tipo | Array DBMS |
Licencia | GPL v3 (servidor) / LGPL v3 (cliente) o propietario [2] |
Sitio web | rasdaman |
Historia
En 1989, Peter Baumann inició una investigación sobre el soporte de bases de datos para imágenes, luego en el Fraunhofer Computer Graphics Institute . Tras una investigación en profundidad sobre las formalizaciones de datos ráster en imágenes, en particular AFATL Image Algebra, estableció un modelo de base de datos para matrices multidimensionales, incluido un modelo de datos y un lenguaje de consulta declarativo. [3] 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 .
En TU Munich , en el proyecto de investigación básica RasDaMan financiado por la UE , se estableció un primer prototipo, además del DBMS orientado a objetos O2 , y se probó en aplicaciones de ciencias de la vida y de la Tierra. [4] En otros proyectos financiados por la UE, este sistema se completó y amplió para admitir DBMS relacionales. Se estableció una empresa derivada de investigación dedicada, rasdaman GmbH, [5] para brindar apoyo comercial además de la investigación que posteriormente se ha continuado en la Universidad Jacobs . [6] Desde entonces, ambas entidades colaboran en el desarrollo y uso de la tecnología rasdaman.
Conceptos
Modelo de datos
Basado en un álgebra de matrices [7] desarrollada específicamente para propósitos de bases de datos, rasdaman agrega un nuevo tipo de atributo, matriz, al modelo relacional. Como 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 en el álgebra y el lenguaje de consulta.
Por razones históricas, las tablas se denominan colecciones , ya que el diseño inicial enfatizó una incrustación en el estándar de base de datos orientado a objetos, ODMG . Anticipando una integración completa con SQL, las colecciones rasdaman representan una relación binaria con el primer atributo como un identificador de objeto y el segundo como la matriz. Esto permite el establecimiento de referencias de claves foráneas entre matrices 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. En el nuevo tipo de atributo, matrices multidimensionales, se proporciona un conjunto de operaciones adicionales que se basan en un conjunto mínimo de operadores centrales definidos algebraicamente, un constructor de matriz (que establece una nueva matriz y la llena con valores) y una matriz. condensador (que, de manera similar a los agregados SQL, deriva información de resumen escalar de una matriz). El lenguaje de consulta es declarativo (y, por lo tanto, optimizable) y seguro en la evaluación, es decir: se garantiza que cada consulta regresará después de un número finito de pasos de procesamiento.
La guía de consulta rasql [8] proporciona detalles, aquí algunos ejemplos pueden ilustrar su uso:
- "De todos los cubos de datos de simulación climática 4-D x / y / z / t, un corte que contiene todo en x, un extracto de ay entre 100 y 200, todos disponibles a lo largo de z, y un corte en la posición 42 (resultando efectivamente en un 3 -D x / y / z cubo) ":
seleccione c [ * : * , 100 : 200 , * : * , 42 ] de ClimateSimulations como c
- "En todas las imágenes de satélite Landsat, suprima todas las áreas no verdes":
seleccione img * ( img . verde > 130 ) de LandsatArchive como img
Nota: esta es una redacción muy ingenua de la búsqueda de vegetación; en la práctica, se usaría la fórmula NDVI , se usarían valores nulos para el enmascaramiento de nubes y varias técnicas más.
- "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":
seleccione img de resonancia magnética como img , máscaras como m donde some_cells ( img > 250 y m )
- "Una porción 2-D x / y de todos los cubos de datos de simulación climática 4-D, cada uno codificado en formato PNG":
seleccione png ( c [ * : * , * : * , 100 , 42 ] ) de ClimateSimulations como c
Arquitectura
Administración de almacenamiento
Los objetos ráster se mantienen en una base de datos relacional estándar, basada en la partición de un objeto ráster en mosaicos . [9] Aparte de una subdivisión normal, cualquier partición generada por el sistema o el usuario es posible. Dado que los mosaicos forman la unidad de acceso al disco, es de vital importancia que el patrón de ordenamiento en mosaico se ajuste a los patrones de acceso a la consulta; 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 usando una de varias opciones, incluidos los 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 ordenamiento en teselas como la compresión comprenden parámetros de ajuste de la base de datos.
Los mosaicos y el índice de mosaicos se almacenan como BLOB en una base de datos relacional que también contiene el diccionario de datos que necesita el sistema de tipos dinámicos de rasdaman. Hay adaptadores disponibles para varios sistemas relacionales, entre ellos PostgreSQL de código abierto . Para matrices más grandes que el espacio en disco, se ha desarrollado la compatibilidad con la gestión de almacenamiento jerárquico (HSM).
Procesamiento de consultas
Las consultas se analizan, optimizan y ejecutan en el servidor rasdaman. El analizador recibe la cadena de consulta y genera el árbol de operaciones. Además, aplica reglas de optimización algebraicas al árbol de consultas cuando corresponda; de las 150 reglas de reescritura algebraica, 110 en realidad están optimizando, mientras que las otras 40 sirven para transformar la consulta en forma canónica. El análisis y la optimización juntos toman menos de un milisegundo en una computadora portátil.
La ejecución sigue un paradigma de transmisión de mosaicos : siempre que sea posible, los mosaicos de matriz abordados por una consulta se obtienen secuencialmente y cada mosaico se descarta después del procesamiento. Esto conduce a una arquitectura escalable a volúmenes de datos que exceden la memoria principal del servidor en órdenes de magnitud.
La ejecución de consultas está paralela. Primero, rasdaman ofrece paralelismo entre consultas: un despachador programa las solicitudes en un grupo de procesos de servidor por transacción. El paralelismo intraconsulta distribuye de forma transparente los 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 incrustaciones en las API de C ++ y Java permiten la invocación de consultas, así como funciones de conveniencia del lado del cliente para el manejo de matrices. Las matrices en sí se entregan en el formato de memoria principal del idioma del cliente y la arquitectura del procesador, listas para su procesamiento posterior. Los códecs de formato de datos permiten recuperar matrices en formatos ráster comunes, como CSV , PNG y NetCDF .
Se proporciona un conjunto de herramientas de diseño web, raswct, que facilita la creación de interfaces de consultas web, incluidos widgets gráficos para el manejo de consultas parametrizado, como controles deslizantes para umbrales en consultas.
Servicios web geo
Un servlet Java , petascope , que se ejecuta como un cliente rasdaman ofrece interfaces de servicios web específicamente 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 .
Estado y modelo de licencia
Hoy en día, rasdaman es una implementación completa que ofrece la funcionalidad de consulta de matriz de selección / inserción / actualización / eliminación. Se utiliza tanto en instalaciones comerciales como de investigación.
En una colaboración del propietario del código original, rasdaman GmbH [5] y la Universidad Jacobs , se realizó una división de código en 2008-2009 que dio como resultado la comunidad rasdaman , [10] una rama de código abierto , y la empresa rasdaman , la rama comercial. Desde entonces, la comunidad de rasdaman está siendo mantenida por la Universidad Jacobs, mientras que la empresa rasdaman sigue siendo propiedad de rasdaman GmbH. La diferencia entre ambas variantes consiste principalmente en potenciadores de rendimiento (como técnicas de optimización específicas) destinados a admitir bases de datos particularmente grandes, números de usuarios y consultas complejas; Los detalles están disponibles en el sitio web de la comunidad rasdaman . [11]
La licencia comunitaria rasdaman libera el servidor en GPL y todas las partes del cliente en LGPL , lo que permite el uso del sistema en cualquier tipo de entorno de licencia.
Impacto y uso
Siendo el primer Array DBMS enviado (primer prototipo disponible en 1996), rasdaman ha dado forma a este dominio de investigación de bases de datos reciente. Los conceptos del modelo de datos y consultas (declaratividad, a veces elección de operadores) se encuentran en enfoques más recientes.
En 2008, el Consorcio Geoespacial Abierto lanzó el estándar del Servicio de Procesamiento de Cobertura Web que define un lenguaje de consulta ráster basado en el concepto de cobertura . La semántica del operador [12] está influenciada por el álgebra de matrices rasdaman.
EarthLook [13] es un escaparate de los estándares de cobertura OGC en acción, que ofrece casos de uso 1-D a 4-D de acceso a datos ráster y procesamiento ad-hoc. EarthLook se basa en rasdaman.
Un gran proyecto de muestra en el que rasdaman se está utilizando para servicios a gran escala en todas las ciencias de la Tierra es EarthServer, [14] se han configurado seis servicios con un volumen de al menos 100 terabytes cada uno para la recuperación integrada de datos / metadatos y el procesamiento de consultas distribuidas. .
Referencias
- ^ "El proyecto de código abierto rasdaman en Open Hub" . Abrir Hub . Software Black Duck . Consultado el 14 de enero de 2020 .
- ^ "Licencia Rasdaman" . rasdaman.org . Consultado el 1 de agosto de 2016 .
- ^ 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
- ^ http://cordis.europa.eu/result/rcn/20754_en.html
- ^ a b http://www.rasdaman.com
- ^ https://web.archive.org/web/20150924084739/http://www.rasdaman.com/News/archive.php
- ^ Baumann, P .: Un álgebra de matriz de base de datos para datos espacio-temporales y más allá . Proc. NGITS'99, LNCS 1649, Springer 1999, páginas 76-93
- ^ nn: Guía del lenguaje de consulta Rasdaman
- ^ Furtado, P., Baumann, P .: Almacenamiento de matrices multidimensionales basadas en mosaico arbitrario . Proc. ICDE'99, 23-26 de marzo de 1999, Sydney, Australia, págs. 328-336
- ^ http://www.rasdaman.org
- ^ modelo de licencia rasdaman
- ^ Baumann, P .: Estándar del servicio de procesamiento de cobertura web (WCPS) de OGC . Geoinformática, 14 (4) 2010, págs. 447-479
- ^ http://standards.rasdaman.com/
- ^ http://www.earthserver.eu