Por Kai Yu , Joel Perez
& Sebastián D'Alessandro (OCE)
Publicado en Agosto 2015
Introducción:
Mediante la incorporación de la funcionalidad “In-Memory columnar store”, la recientemente lanzada opción de “In-Memory database”, todo ello apunta a mejorar significativamente el rendimiento de consultas en aplicaciones OLAP. Este artículo explorará cómo aprovechar esta funcionalidad de “In-Memory” en un ambiente de Oracle OBIEE “Analytics”. Utilizaremos como caso de estudio, un proyecto de análisis financiero para poder profundizar sobre las mejores prácticas, lecciones aprendidas, estudios de rendimiento de la aplicación con “In-Memory database” en aplicaciones analíticas de negocio.
Oracle 12c “In-Memory Option”
“Oracle 12c Database” introduce la opción de “In-Memory database”. Esta opción apunta a acelerar las operaciones de “analytics” y también darle velocidad al procesamiento de carga de trabajo mixta OLAP/OLTP. Esta característica tiene también la particularidad de ser transparente para las aplicaciones.
La opción “In-Memory” de “Oracle Database 12c” introduce un nuevo formato dual de arquitectura que consiste en:
Se puede ver el formato de la Arquitectura dual ilustrado en la Figura 1:
Figura 1: Arquitectura de Memoria en Formato Dual
Echemos un vistazo entonces a “In-Memory Column Store”. Como hemos mencionado, este nuevo componente se encuentra alojado en la SGA en un area denominada “In-Memory Area”. Para activar esta opción, es necesario establecer el parámetro de inicialización: “inmemory_size”. Dado que este parámetro no es dinámico, primero debe ser configurado en el spfile mediante la sentencia:
SQL> alter system set inmemory_size=100G scope=spfile;
Y luego debemos reiniciar la instancia de base de datos para que el cambio tenga efecto.
Al reiniciar la instancia, durante el proceso de “startup” se mostrará el tamaño asignado al área deIN-Memory como podemos observarlo aquí:
Ya estamos en condiciones de poblar el “In-Memory column store” especificándole esta opción a los objetos. Esto podemos realizarlo de diferentes formas:
A nivel tablespace: Se cargarán todos los objetos del tablespace en el área de In-Memory al aplicar la siguiente sentencia :
SQL> alter tablespace data MEMORY;
A nivel table: De esta manera la tabla se cargará en el área de IN-Memory.
SQL> alter table sales INMEMORY PRIORITY CRITICAL;
También se le puede especificar a las tablas diferentes niveles de prioridad de carga, esto se hace utilizando palabras clave como por ejemplo: “CRITICAL”.
Otra opción es excluir ciertas columnas específicas al cargar la tabla en el área de In-Memory indicándolo explícitamente en la sentencia, he acá un ejemplo:
SQL> alter table sales INMEMORY NO INMEMORY(prod_id);
La instancia Oracle de base de datos cuenta con un conjunto de proceso en segundo plano (“Background processes”) para poblar el área de “In-Memory store”. En la siguiente lista se muestra un grupo de estos procesos, los cuales pueden identificarse mediante el formato de su denominación ora-wxxx_instance_name:
Oracle 12c proporciona varias nuevas características para acelerar la ejecución de consultas aprovechando la opción “In-Memory”. Estas son:
Otra gran ventaja de la opción In-Memory es que resulta ser transparente para las aplicaciones. No hay necesidad de modificar la aplicación para sacar provecho de esta funcionalidad. El analizador de consultas de Oracle seleccionará automáticamente el nuevo plan de ejecución si la tabla está en el “In-Memory Store”. Podemos verificar si la opción “IN-MEMORY” está siendo utilizada, buscando la palabra clave INMEMORY en plan de ejecución como podemos apreciarlo aquí:
Oracle Business Intelligence Enterprise Edition 11g
Oracle Business Intelligence Enterprise Edition (OBIEE) es una plataforma e infraestructura común de Business intelligence y Analytics para reportes, scorecards, dashboards, analysis ad-hoc, Analysis OLAP.
Esta basada en lo siguiente:
El producto puede ser instalado tanto en sistemas operativos Windows como Linux.
A continuación podemos ver la interface GUI del OBIEE:
Figura 2: OBIEE GUI
Oracle Exalytics In-Memory Machine
En compaginacion con la nueva característica “In-Memory”, tenemos en el Mercado la disponibilidad de un sistema de ingeniería para análisis extremo “Oracle Engineered System for Extreme Analytic”.
El mismo esta diseñado para ofrecer un rendimiento extremo en contexto “in-memory analytics”.
El mismo esta conformado de 2 componentes trabajando en conjunto:
Caracteristica de maquina “Oracle Exalytics In-Memory Machine”. La misma esta compuesta de los siguientes componentes de software y hardware :
La gente pudiese confundirse con estos dos tipos de bases de datos In-Memory: TimesTen In-Memory Database and Oracle 12c In-Memory. En realidad se trata de dos productos diferentes. “Oracle TimesTen In-Memory Database for Exalystics” es una base de datos “full memory” diseñada para correr Analytics. Por lo general esta se ejecuta en el mismo servidor que OBIEE para establecer en modo “Cache” todos los datos de negocio que utiliza “Analytics”. Por otro lado, 12c In-Memory es una funcionalidad sumada al manejador de base de datos Oracle, que puede trabajar tanto con carga OLAP como OLTP de manera mixta. Oracle OBIEE por lo general corre en una maquina diferente a la que se ejecuta la base de datos. OBIEE se conecta a la base de datos Oracle utilizando ODBC o JDBC a travésde SQL*Net sobre la red. Es común que Oracle Exalytics In-Memory Machine, que ejecuta tanto Oracle Business Intelligence Foundation Suite and Oracle TimesTen In-Memory Database for Exalystics, tenga como “backend” una base de datos Oracle para mantener la persistencia de los datos.
Puede continuar la lectura de este artículo en la siguiente entrega de este articulo donde llevaremos a cabo propiamente el ejemplo de un caso sencillo del uso de “In-memory” a través de OBIEE:
Kai Yu es un arquitecto y líder de los laboratorios de soluciones de Ingeniera Oracle de la afamada compañía "Dell", desde el año 2006. Parte del rol de Kai es prestar ayuda constantemente a los clientes en procesos y proyectos de implantación. La pericia profesional de Kai esta basada en soluciones Oracle tales como: Oracle RAC, Oracle Grid, Oracle E-Business Suite y Oracle VM. Kai fue un "Senior Oracle DBA" y "Oracle Applications DBA" para "Dell IT" y otras compañías en anos comprendidos del 1995 al 2006. Kai ha publicado mas de 10 "White-papers" e impartido presentaciones técnicas en el altamente reconocido evento Oracle "Oracle Open World" desde el ano 2006 a la fecha y en "Collaborate" desde el 2008 a la fecha, asi como también numerosos "Webcasts". Kai es presidente del "IOUG Oracle RAC SIG", parte del comité del "IOUG Collaborate 09 conference" y líder del "IOUG Oracle RAC Tuning BootCamp 2010".
Joel Pérez es un experto DBA (Oracle ACE Director, OCM Cloud Admin. & OCM11g) con más de 15 años de experiencia real en el mundo de tecnología Oracle, especializado en diseño e implementación de soluciones de: Cloud, Alta disponibilidad, Recuperación contra desastres, Upgrades, Replicación y toda área relacionada con bases de datos Oracle. Consultor Internacional con trabajos, conferencias y actividades relacionadas en más de 50 países alrededor del mundo. Habitual Orador en eventos Oracle alrededor del mundo como: OTN LAD, OTN MENA, OTN APAC y más. Joel se ha caracterizado siempre por ser un pionero en materia de tecnología Oracle desde los inicios de su carrera siendo el primer latinoamericano en ser nombrado "OTN Expert" en el año 2003, uno de los primeros Oracle ACE en el programa ACE en el año 2004, unos de los primeros OCP Cloud en el mercado global en el año 2013 y como uno de los mayores logros de su carrera, recientemente en el 2014 fue honorificado como uno de los primeros "OCM Database Cloud Administrator" del mundo. En la actualidad Joel Pérez esta radicado en el continente de Asia con base en Beijing, China llevando a cabo operaciones profesionales como "Chief Technologist & MAA, HA Arquitect" para Yunhe Enmo (Beijing) Technology Co. Ltd. Perfil OCM Joel Pérez: http://education.oracle.com/education/otn/JoelPerez.htm
Sebastián D'Alessandro es un Senior DBA con más de 12 años de experiencia en tecnología Oracle, focalizado principalmente en seguridad de base de datos, soluciones de alta disponibilidad, disaster recovery y virtualización. Actualmente desarrolla su actividad como consultor e instructor de manera independiente.
Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.