stringtranslate.com

Base de datos Monetaria

MonetDB es un sistema de gestión de bases de datos relacionales (RDBMS) orientado a columnas de código abierto desarrollado originalmente en el Centrum Wiskunde & Informatica (CWI) en los Países Bajos . Está diseñado para proporcionar un alto rendimiento en consultas complejas en bases de datos grandes, como la combinación de tablas con cientos de columnas y millones de filas. MonetDB se ha aplicado en aplicaciones de alto rendimiento para procesamiento analítico en línea , minería de datos , sistema de información geográfica (GIS), [2] Resource Description Framework (RDF), [3] recuperación de texto y procesamiento de alineación de secuencias . [4]

Historia

Los proyectos de minería de datos de la década de 1990 requerían un mejor soporte de bases de datos analíticas. Esto dio lugar a una empresa derivada de CWI llamada Data Distilleries, que utilizó las primeras implementaciones de MonetDB en su suite analítica. Data Distilleries finalmente se convirtió en una subsidiaria de SPSS en 2003, que a su vez fue adquirida por IBM en 2009. [5]

MonetDB en su forma actual fue creado por primera vez en 2002 por el estudiante de doctorado Peter Boncz y el profesor Martin L. Kersten como parte del proyecto de investigación MAGNUM de la década de 1990 en la Universidad de Ámsterdam . [6] Inicialmente se llamó simplemente Monet, en honor al pintor impresionista francés Claude Monet . La primera versión bajo una licencia de software de código abierto (una versión modificada de la Licencia Pública de Mozilla ) se lanzó el 30 de septiembre de 2004. Cuando se lanzó la versión 4 de MonetDB al dominio de código abierto, el equipo MonetDB/CWI agregó muchas extensiones a la base de código, incluido un nuevo front-end SQL, compatible con el estándar SQL:2003 . [7]

MonetDB introdujo innovaciones en todas las capas del DBMS : un modelo de almacenamiento basado en fragmentación vertical, una moderna arquitectura de ejecución de consultas optimizada por CPU que a menudo le daba a MonetDB una ventaja de velocidad sobre el mismo algoritmo en comparación con un RDBMS típico basado en intérpretes . Fue uno de los primeros sistemas de bases de datos en optimizar las consultas para los cachés de CPU . MonetDB incluye índices automáticos y autoajustables, optimización de consultas en tiempo de ejecución y una arquitectura de software modular. [8] [9]

En 2008, se inició un proyecto de seguimiento denominado X100 (MonetDB/X100), que evolucionó hasta convertirse en la tecnología VectorWise . Actian Corporation adquirió VectorWise , lo integró con la base de datos Ingres y lo vendió como producto comercial. [10] [11]

En 2011 se inició un importante esfuerzo para renovar la base de código de MonetDB. Como parte de ello, se congelaron el código para el núcleo de MonetDB 4 y sus componentes XQuery. En MonetDB 5, se introdujeron partes de la capa SQL en el núcleo. [7] Los cambios resultantes crearon una diferencia en las API internas , ya que pasó del lenguaje de instrucciones de MonetDB (MIL) al lenguaje ensamblador de MonetDB (MAL). También se eliminaron las interfaces de consulta de nivel superior más antiguas que ya no se mantenían. Primero fue XQuery , que dependía de MonetDB 4 y nunca se trasladó a la versión 5. [12] El soporte de la interfaz experimental Jaql se eliminó con la versión de octubre de 2014. [13] Con la versión de julio de 2015, MonetDB obtuvo soporte para fragmentación de datos de solo lectura e índices persistentes. En esta versión, el módulo de transmisión de datos obsoleto DataCell también se eliminó de la base de código principal en un esfuerzo por simplificar el código. [14] Además, la licencia ha sido cambiada a la Licencia Pública Mozilla, versión 2.0 .

Arquitectura

La arquitectura de MonetDB está representada en tres capas, cada una con su propio conjunto de optimizadores. [15] El front-end es la capa superior, que proporciona una interfaz de consulta para SQL , con interfaces SciQL y SPARQL en desarrollo. Las consultas se analizan en representaciones específicas del dominio, como álgebra relacional para SQL, y se optimizan. Los planes de ejecución lógica generados se traducen luego en instrucciones de lenguaje ensamblador (MAL) de MonetDB, que se pasan a la siguiente capa. La capa intermedia o back-end proporciona una serie de optimizadores basados ​​en costos para el MAL. La capa inferior es el núcleo de la base de datos, que proporciona acceso a los datos almacenados en tablas de asociación binaria (BAT). Cada BAT es una tabla que consta de un identificador de objeto y columnas de valor, que representan una sola columna en la base de datos. [15]

La representación de datos internos de MonetDB también se basa en los rangos de direccionamiento de memoria de las CPU contemporáneas que utilizan paginación bajo demanda de archivos mapeados en memoria, alejándose así de los diseños DBMS tradicionales que implican una administración compleja de grandes almacenes de datos en una memoria limitada.

Consulta de reciclaje

El reciclaje de consultas es una arquitectura para reutilizar los subproductos del paradigma de operador por vez en un DBMS de almacenamiento en columnas. El reciclaje hace uso de la idea genérica de almacenar y reutilizar los resultados de cálculos costosos. A diferencia de los cachés de instrucciones de bajo nivel, el reciclaje de consultas utiliza un optimizador para preseleccionar instrucciones para almacenar en caché. La técnica está diseñada para mejorar los tiempos de respuesta y el rendimiento de las consultas, al mismo tiempo que funciona de manera autoorganizada. [16] Los autores del grupo CWI Database Architectures, compuesto por Milena Ivanova, Martin Kersten , Niels Nes y Romulo Goncalves, ganaron el "Best Paper Runner Up" en la conferencia ACM SIGMOD 2009 por su trabajo sobre el reciclaje de consultas. [17] [18]

Cracking de bases de datos

MonetDB fue una de las primeras bases de datos en introducir el método Database Cracking. El método Database Cracking consiste en una indexación y/o clasificación parcial incremental de los datos. Aprovecha directamente la naturaleza columnar de MonetDB. El método Cracking es una técnica que desplaza el coste del mantenimiento del índice de las actualizaciones al procesamiento de consultas. Los optimizadores de la canalización de consultas se utilizan para manipular los planes de consulta para que se descifren y para propagar esta información. La técnica permite mejorar los tiempos de acceso y el comportamiento autoorganizado. [19] Database Cracking recibió el premio J. Gray a la mejor disertación de la ACM SIGMOD 2011. [20]

Componentes

Existen varias extensiones para MonetDB que amplían la funcionalidad del motor de base de datos. Debido a la arquitectura de tres capas, las interfaces de consulta de nivel superior pueden beneficiarse de las optimizaciones realizadas en las capas de backend y kernel.

SQL

MonetDB/SQL es una extensión de nivel superior que proporciona soporte completo para transacciones de conformidad con el estándar SQL:2003 . [15]

SIG

MonetDB/GIS es una extensión de MonetDB/SQL compatible con el estándar Simple Features Access del Open Geospatial Consortium (OGC). [2]

Ciencia QL

SciQL es un lenguaje de consulta basado en SQL para aplicaciones científicas con matrices como ciudadanos de primera clase. SciQL permite que MonetDB funcione de manera efectiva como una base de datos de matrices . SciQL se utiliza en el proyecto PlanetData de la Unión Europea y en el proyecto TELEIOS, junto con la tecnología Data Vault, que proporciona acceso transparente a grandes repositorios de datos científicos. [21] Data Vaults asigna los datos de los repositorios distribuidos a matrices SciQL, lo que permite un mejor manejo de los datos espacio-temporales en MonetDB. [22] SciQL se ampliará aún más para el Proyecto Cerebro Humano . [23]

Bóvedas de datos

Data Vault es un repositorio de archivos externo adjunto a una base de datos para MonetDB, similar al estándar SQL/MED . La tecnología Data Vault permite una integración transparente con repositorios de archivos distribuidos/remotos. Está diseñado para la exploración y minería de datos científicos , específicamente para datos de teledetección . [22] Hay soporte para los formatos GeoTIFF ( observación de la Tierra ), FITS ( astronomía ), MiniSEED ( sismología ) y NetCDF . [22] [24] Los datos se almacenan en el repositorio de archivos en el formato original y se cargan en la base de datos de forma diferida , solo cuando es necesario. El sistema también puede procesar los datos tras la ingestión, si el formato de los datos lo requiere. [25] Como resultado, incluso los repositorios de archivos muy grandes se pueden analizar de manera eficiente, ya que solo se procesan los datos necesarios en la base de datos. Se puede acceder a los datos a través de las interfaces MonetDB SQL o SciQL. La tecnología Data Vault se utilizó en el proyecto TELEIOS de la Unión Europea , que tenía como objetivo construir un observatorio virtual para datos de observación de la Tierra. [24] Los archivos de bóvedas de datos FITS también se han utilizado para procesar datos de estudios astronómicos para el estudio fotométrico H-Alpha del INT (IPHAS) [26] [27]

SAM/BAM

MonetDB tiene un módulo SAM/BAM para el procesamiento eficiente de datos de alineamiento de secuencias . Destinado a la investigación bioinformática , el módulo tiene un cargador de datos SAM/BAM y un conjunto de UDF SQL para trabajar con datos de ADN . [4] El módulo utiliza la popular biblioteca SAMtools . [28]

RDF/SPARQL

MonetDB/RDF es una extensión basada en SPARQL para trabajar con datos vinculados, que agrega compatibilidad con RDF y permite que MonetDB funcione como un almacén triple . En desarrollo para el proyecto Linked Open Data 2. [3]

Integración R

El módulo MonetDB/R permite ejecutar las UDF escritas en R en la capa SQL del sistema. Esto se hace utilizando el soporte nativo de R para ejecutarse integrado en otra aplicación, dentro del RDBMS en este caso. Anteriormente, el conector MonetDB.R permitía utilizar fuentes de datos de MonetDB y procesarlas en una sesión R. La nueva característica de integración de R de MonetDB no requiere que se transfieran datos entre el RDBMS y la sesión R, lo que reduce la sobrecarga y mejora el rendimiento. La característica está destinada a brindar a los usuarios acceso a las funciones del software estadístico R para el análisis en línea de los datos almacenados en el RDBMS. Complementa el soporte existente para las UDF de C y está destinada a usarse para el procesamiento en la base de datos . [29]

Integración de Python

De manera similar a las UDF R integradas en MonetDB, la base de datos ahora tiene soporte para UDF escritas en Python / NumPy . La implementación utiliza matrices Numpy (que son envoltorios de Python para matrices C), por lo que hay una sobrecarga limitada, lo que proporciona una integración funcional de Python con funciones SQL nativas que coinciden con la velocidad. Las funciones Python integradas también admiten operaciones mapeadas, lo que permite al usuario ejecutar funciones Python en paralelo dentro de consultas SQL. El lado práctico de la característica brinda a los usuarios acceso a bibliotecas Python/NumPy/ SciPy , que pueden proporcionar una gran selección de funciones estadísticas/analíticas. [30]

MonetDBLite

Tras el lanzamiento del controlador remoto para R ( MonetDB.R ) y las UDF de R en MonetDB (MonetDB/R), los autores crearon una versión integrada de MonetDB en R llamada MonetDBLite . Se distribuye como un paquete de R, eliminando la necesidad de administrar un servidor de base de datos, requerido para las integraciones de R anteriores. El DBMS se ejecuta dentro del propio proceso de R, eliminando la comunicación de sockets y la sobrecarga de serialización, lo que mejora enormemente la eficiencia. La idea detrás de esto es entregar un paquete similar a SQLite para R, con el rendimiento de un almacén de columnas optimizado en memoria. [31]

Antiguas ampliaciones

Con el tiempo, varias extensiones antiguas se han descontinuado y eliminado de la base de código estable. Algunos ejemplos notables incluyen una extensión XQuery eliminada en la versión 5 de MonetDB, una extensión JAQL y una extensión de transmisión de datos llamada Data Cell . [15] [32] [33]

Véase también

Referencias

  1. ^ "Notas de la versión de MoneyDB".
  2. ^ ab "GeoSpatial - MonetDB". 25 de julio de 2023.
  3. ^ ab "MonetDB - LOD2 - Creación de conocimiento a partir de datos interconectados". 6 de marzo de 2014.
  4. ^ ab "Ciencias de la vida en MonetDB". 25 de julio de 2023.
  5. ^ "Una breve historia sobre nosotros - MonetDB". 6 de marzo de 2014.
  6. ^ Boncz, Peter (mayo de 2002). Monet: un núcleo DBMS de última generación para aplicaciones con uso intensivo de consultas (PDF) (tesis doctoral). Universiteit van Amsterdam. Archivado desde el original (PDF) el 13 de agosto de 2011.
  7. ^ Antecedentes históricos de MonetDB
  8. ^ Stefan Manegold (junio de 2006). "Una evaluación empírica de los procesadores XQuery" (PDF) . Actas del Taller internacional sobre rendimiento y evaluación de sistemas de gestión de datos (ExpDB) . 33 (2). ACM: 203–220. doi :10.1016/j.is.2007.05.004 . Consultado el 11 de diciembre de 2013 .
  9. ^ PA Boncz, T. Grust, M. van Keulen, S. Manegold, J. Rittinger, J. Teubner. MonetDB/XQuery: un procesador XQuery rápido impulsado por un motor relacional Archivado el 19 de mayo de 2008 en Wayback Machine . En Actas de la Conferencia internacional ACM SIGMOD sobre gestión de datos, Chicago, IL, EE. UU., junio de 2006.
  10. ^ Marcin Zukowski; Peter Boncz (20 de mayo de 2012). "From x100 to vectorwise". Actas de la Conferencia Internacional ACM SIGMOD de 2012 sobre Gestión de Datos . ACM. págs. 861–862. doi :10.1145/2213836.2213967. ISBN . 978-1-4503-1247-9.S2CID 9187072  .
  11. ^ Inkster, D.; Zukowski, M.; Boncz, PA (20 de septiembre de 2011). "Integración de VectorWise con Ingres" (PDF) . Registro SIGMOD de la ACM . 40 (3). ACM: 45. CiteSeerX 10.1.1.297.4985 . doi :10.1145/2070736.2070747. S2CID  6372175. 
  12. ^ "XQuery". 12 de diciembre de 2014.
  13. ^ "Notas de la versión de MonetDB de octubre de 2014". 12 de diciembre de 2014.
  14. ^ "Lanzamiento de la versión de julio de 2015 de MonetDB". 31 de agosto de 2015.
  15. ^ abcd Idreos, S.; Groffen, FE; Nes, NJ; Manegold, S.; Mullender, KS; Kersten, ML (marzo de 2012). "MonetDB: dos décadas de investigación en arquitecturas de bases de datos orientadas a columnas" (PDF) . Boletín de ingeniería de datos del IEEE . IEEE: 40–45 . Consultado el 6 de marzo de 2014 .
  16. ^ * Ivanova, Milena G; Kersten, Martin L; Nes, Niels J; Goncalves, Romulo AP (2010). "Una arquitectura para reciclar intermediarios en un almacén de columnas". ACM Transactions on Database Systems . 35 (4). ACM: 24. doi :10.1145/1862919.1862921. S2CID  52811192.
  17. ^ "El equipo de la base de datos de CWI gana el premio al mejor artículo en SIGMOD 2009". CWI Amsterdam . Consultado el 1 de julio de 2009 .
  18. ^ "Premios SIGMOD". ACM SIGMOD . Consultado el 1 de julio de 2014 .
  19. ^ Idreos, Stratos; Kersten, Martin L; Manegold, Stefan (2007). Cracking de bases de datos . Actas del CIDR .
  20. ^ "Premios SIGMOD". ACM SIGMOD . Consultado el 12 de diciembre de 2014 .
  21. ^ Zhang, Y.; Scheers, LHA; Kersten, ML; Ivanova, M.; Nes, NJ (2011). "Procesamiento de datos astronómicos utilizando SciQL, un lenguaje de consulta basado en SQL para datos de matriz". Software y sistemas de análisis de datos astronómicos .
  22. ^ abc Ivanova, Milena; Kersten, Martin; Manegold, Stefan (2012). "Bóvedas de datos: una simbiosis entre la tecnología de bases de datos y los repositorios de archivos científicos". Gestión de bases de datos científicas y estadísticas . SSDBM 20212. Springer Berlin Heidelberg. págs. 485–494.
  23. ^ "SciQL". 4 de marzo de 2014.
  24. ^ ab Ivanova, Milena; Kargin, Yagiz; Kersten, Martin; Manegold, Stefan; Zhang, Ying; Datcu, Mihai; Molina, Daniela Espinoza (2013). "Data Vaults: A Database Welcome to Scientific File Repositories". Actas de la 25.ª Conferencia Internacional sobre Gestión de Bases de Datos Científicas y Estadísticas . SSDBM. ACM. doi :10.1145/2484838.2484876. ISBN . 978-1-4503-1921-8.
  25. ^ Kargin, Yagiz; Ivanova, Milena; Zhang, Ying; Manegold, Stefan; Kersten, Martin (agosto de 2013). "ETL perezoso en acción: la tecnología ETL fecha datos científicos" (PDF) . Actas de la Fundación VLDB . 6 (12): 1286–1289. doi :10.14778/2536274.2536297. ISSN  2150-8097.
  26. ^ "Análisis de datos astronómicos con MonetDB Data Vaults". 2015-09-09.
  27. ^ "Bóvedas de datos". 2015-09-09.
  28. ^ "Instalación SAM/BAM". 24 de noviembre de 2014.
  29. ^ "R integrado en MonetDB". 13 de noviembre de 2014. Archivado desde el original el 13 de noviembre de 2014 . Consultado el 12 de noviembre de 2014 .
  30. ^ "Python/NumPy integrado en MonetDB". 11 de enero de 2015.
  31. ^ "MonetDBLite para R". 25 de noviembre de 2015.
  32. ^ "Xquery (obsoleto)". MonetDB . Consultado el 26 de mayo de 2015 .
  33. ^ "Anuncio: Nueva versión de funciones de la suite MonetDB en octubre de 2014". MonetDB . Consultado el 26 de mayo de 2015 .

Bibliografía

Enlaces externos