Este artículo incluye contenido que está escrito como un anuncio . ( Noviembre de 2018 ) |
Es posible que este artículo deba reescribirse para cumplir con los estándares de calidad de Wikipedia . ( Enero de 2020 ) |
En informática , el procesamiento en memoria es una tecnología emergente [ cita requerida ] para el procesamiento de datos almacenados en una base de datos en memoria . Los sistemas más antiguos se han basado en el almacenamiento en disco y las bases de datos relacionales que utilizan el lenguaje de consulta SQL , pero estos se consideran cada vez más inadecuados para satisfacer las necesidades de inteligencia empresarial (BI). Debido a que se accede a los datos almacenados mucho más rápidamente cuando se colocan en la memoria de acceso aleatorio (RAM) o en la memoria flash , el procesamiento en memoria permite que los datos se analicen en tiempo real, lo que permite una generación de informes y una toma de decisiones más rápidas en los negocios. [1] [2]
Con la tecnología basada en disco, los datos se cargan en el disco duro de la computadora en forma de múltiples tablas y estructuras multidimensionales contra las cuales se ejecutan las consultas. Las tecnologías basadas en disco son sistemas de administración de bases de datos relacionales (RDBMS), a menudo basados en el lenguaje de consulta estructurado ( SQL ), como SQL Server , MySQL , Oracle y muchos otros. Los RDBMS están diseñados para los requisitos del procesamiento transaccional . Usar una base de datos que admita inserciones y actualizaciones, así como realizar agregaciones, uniones(típico en las soluciones de BI) suelen ser muy lentos. Otro inconveniente es que SQL está diseñado para obtener filas de datos de manera eficiente, mientras que las consultas de BI generalmente implican la búsqueda de filas parciales de datos que implican cálculos pesados.
Para mejorar el rendimiento de las consultas, se construyen bases de datos multidimensionales o cubos OLAP , también llamados procesamiento analítico multidimensional en línea (MOLAP). Diseñar un cubo es un proceso largo y elaborado, y cambiar la estructura del cubo para adaptarse a las necesidades comerciales que cambian dinámicamente puede resultar engorroso. Los cubos se rellenan previamente con datos para responder consultas específicas y, aunque aumentan el rendimiento, todavía no son adecuados para responder consultas ad-hoc. [3]
El personal de tecnología de la información (TI) dedica mucho tiempo de desarrollo a optimizar bases de datos, construir índices y agregados , diseñar cubos y esquemas en estrella , modelar datos y analizar consultas. [4]
La lectura de datos del disco duro es mucho más lenta (posiblemente cientos de veces) en comparación con la lectura de los mismos datos de la RAM. Especialmente cuando se analizan grandes volúmenes de datos, el rendimiento se degrada gravemente. Aunque SQL es una herramienta muy poderosa, las consultas complejas tardan un tiempo relativamente largo en ejecutarse y, a menudo, reducen el rendimiento del procesamiento transaccional. Con el fin de obtener resultados dentro de un tiempo de respuesta aceptable, muchos almacenes de datos se han diseñado para precalcular resúmenes y responder solo consultas específicas. Se necesitan algoritmos de agregación optimizados para aumentar el rendimiento.
El procesamiento de la memoria se puede realizar a través de bases de datos tradicionales como Oracle , DB2 o Microsoft SQL Server o mediante ofertas NoSQL como cuadrículas de datos en memoria como Hazelcast , Infinispan , Oracle Coherence o ScaleOut Software. Tanto con la base de datos en memoria como con la cuadrícula de datos , toda la información se carga inicialmente en la memoria RAM o en la memoria flash en lugar de en los discos duros . Con una cuadrícula de datos, el procesamiento ocurre en tres órdenes de magnitud más rápido que las bases de datos relacionales que tienen una funcionalidad avanzada como ACIDque degradan el rendimiento en compensación por la funcionalidad adicional. La llegada de bases de datos centradas en columnas , que almacenan información similar en conjunto, permite que los datos se almacenen de manera más eficiente y con mayores ratios de compresión . Esto permite almacenar grandes cantidades de datos en el mismo espacio físico, lo que reduce la cantidad de memoria necesaria para realizar una consulta y aumenta la velocidad de procesamiento. Muchos usuarios y proveedores de software han integrado memoria flash en sus sistemas para permitir que los sistemas escalen a conjuntos de datos más grandes de manera más económica. Oracle ha estado integrando memoria flash en los productos Oracle Exadata para un mayor rendimiento. El software Microsoft SQL Server 2012 BI / Data Warehousing se ha combinado conMatrices de memoria flash Violin Memory para permitir el procesamiento en memoria de conjuntos de datos de más de 20 TB. [5]
Los usuarios consultan los datos cargados en la memoria del sistema, evitando así un acceso más lento a la base de datos y cuellos de botella de rendimiento. Esto se diferencia del almacenamiento en caché , un método muy utilizado para acelerar el rendimiento de las consultas, en que los cachés son subconjuntos de datos organizados predefinidos muy específicos. Con las herramientas en memoria, los datos disponibles para el análisis pueden ser tan grandes como un data mart o un pequeño almacén de datos que está completamente en la memoria. Varios usuarios o aplicaciones concurrentes pueden acceder rápidamente a este a un nivel detallado y ofrece el potencial para análisis mejorados y para escalar y aumentar la velocidad de una aplicación. En teoría, la mejora en la velocidad de acceso a los datos es de 10.000 a 1.000.000 veces en comparación con el disco. [ cita requerida ] También minimiza la necesidad de ajustar el rendimiento por parte del personal de TI y proporciona un servicio más rápido para los usuarios finales.
Ciertos desarrollos en tecnología informática y necesidades comerciales han tendido a incrementar las ventajas relativas de la tecnología en memoria. [6]
Una gama de productos en memoria ofrece la posibilidad de conectarse a fuentes de datos existentes y acceder a paneles interactivos visualmente ricos. Esto permite que los analistas de negocios y los usuarios finales creen informes y consultas personalizados sin mucha capacitación o experiencia. La navegación fácil y la capacidad de modificar consultas sobre la marcha son beneficiosas para muchos usuarios. Dado que estos paneles se pueden completar con datos nuevos, los usuarios tienen acceso a datos en tiempo real y pueden crear informes en cuestión de minutos. El procesamiento en memoria puede resultar especialmente beneficioso en los centros de llamadas y la gestión de almacenes. [8]
Con el procesamiento en memoria, la base de datos de origen se consulta solo una vez en lugar de acceder a la base de datos cada vez que se ejecuta una consulta, lo que elimina el procesamiento repetitivo y reduce la carga en los servidores de bases de datos. Al programar para llenar la base de datos en memoria durante la noche, los servidores de la base de datos se pueden usar con fines operativos durante las horas pico.
Con una gran cantidad de usuarios, se necesita una gran cantidad de RAM para una configuración en memoria, lo que a su vez afecta los costos de hardware. Es más probable que la inversión sea adecuada en situaciones en las que la velocidad de respuesta a las consultas es una prioridad alta, y donde hay un crecimiento significativo en el volumen de datos y un aumento en la demanda de instalaciones de informes; puede que aún no sea rentable cuando la información no está sujeta a cambios rápidos. La seguridad es otra consideración, ya que las herramientas en memoria exponen grandes cantidades de datos a los usuarios finales. Los fabricantes aconsejan asegurarse de que solo los usuarios autorizados tengan acceso a los datos. [9]