Uso de ROLLUP y CUBE para Análisis de...

10
Página 1 5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12 PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected] Newsletter – Diciembre 2012 5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 Email.[email protected] Uso de ROLLUP y CUBE para Análisis de Información Por Ing. Karlo Espinoza [email protected] El análisis de información es de suma importancia en diferentes actividades estratégicas de la empresa. Uno de los conceptos claves en sistemas de soporte a decisiones es el análisis multidimensional, que permite analizar los resultados desde diferentes puntos de vista, o por combinación de los mismos. Como puntos de vista podríamos mencionar (si tomamos como ejemplo una empresa comercializadora) tiempo, departamentos, canales de distribución, geografía y productos, por citar algunos, los cuales pueden verse incrementados dependiendo de las necesidades de análisis de la empresa. Por medio de extensiones de SQL se pueden generar reportes que muestran información de totales y subtotales sin tener que definir formalmente un esquema multidimensional. Para realizar conteos o sumatorias se utiliza la cláusula GROUP BY, que opera sobre el total de las filas que se vean afectadas por las condiciones de las consultas. Para poder generar otro tipo de resultados (subtotales, totales, combinaciones) utilizamos las extensiones que se agregan a la cláusula GROUP BY. A continuación se muestran ejemplos de consultas utilizando extensiones SQL de la cláusula GROUP BY. Para mostrar los ejemplos utilizaremos una tabla con información generada aleatoriamente. La estructura de la tabla y su información es la siguiente: Contenido Página: 1 Uso de ROLLUP y CUBE para Análisis de Información. 4 Integración de SQL Server con Oracle Grid Control. 8 ¿Por qué Migrarse a Oracle Database 11g? Editores Generales Deiby Mauricio Gómez Alejandro Lau Debbie Morán Autores Contribuyentes Karlo Espinoza Emilio Méndez Deiby Gómez

Transcript of Uso de ROLLUP y CUBE para Análisis de...

Página 1

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

Newsletter – Diciembre 2012

5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torre II, Nivel 12

Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Pagina 1/10

Uso de ROLLUP y CUBE para Análisis de Información

Por Ing. Karlo Espinoza [email protected] El análisis de información es de suma importancia en diferentes actividades estratégicas de la empresa. Uno de los conceptos claves en sistemas de soporte a decisiones es el análisis multidimensional, que permite analizar los resultados desde diferentes puntos de vista, o por combinación de los mismos. Como puntos de vista podríamos mencionar (si tomamos como ejemplo una empresa comercializadora) tiempo, departamentos, canales de distribución, geografía y productos, por citar algunos, los cuales pueden verse incrementados dependiendo de las necesidades de análisis de la empresa. Por medio de extensiones de SQL se pueden generar reportes que muestran información de totales y subtotales sin tener que definir formalmente un esquema multidimensional. Para realizar conteos o sumatorias se utiliza la cláusula GROUP BY, que opera sobre el total de las filas que se vean afectadas por las condiciones de las consultas. Para poder generar otro tipo de resultados (subtotales, totales, combinaciones) utilizamos las extensiones que se agregan a la cláusula GROUP BY. A continuación se muestran ejemplos de consultas utilizando extensiones SQL de la cláusula GROUP BY. Para mostrar los ejemplos utilizaremos una tabla con información generada aleatoriamente. La estructura de la tabla y su información es la siguiente:

Contenido Página: 1 Uso de ROLLUP y CUBE

para Análisis de Información. 4 Integración de SQL Server con Oracle Grid Control. 8 ¿Por qué Migrarse a Oracle Database 11g? Editores Generales

Deiby Mauricio Gómez Alejandro Lau Debbie Morán

Autores

Contribuyentes

Karlo Espinoza Emilio Méndez Deiby Gómez

Página 2

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

Extensión ROLLUP La extensión ROLLUP permite generar subtotales de las columnas por las cuales se realiza la agrupación. Dichas columnas pueden considerarse los diferentes puntos de vista desde los cuales se desea realizar el análisis. Asumiendo que las columnas dimensión_1_id y dimension_2_id son los puntos de vista, y la columna valor_hechos es el valor cuantitativo que se desea analizar, podemos ejecutar el siguiente comando para obtener sub totales.

Al observar la consulta podemos notar la cláusula GROUP BY ROLLUP dentro de la cual se colocan las columnas que se encuentran en el SELECT y no son afectadas por funciones de agregación, para este caso las columnas dimension_1_id y dimension_2_id sobre las cuales se calculan las sumatorias y los subtotales. La columna sumatoria contiene las sumatorias que quedan en los grupos resultantes de las combinaciones de los valores de la columna comision_1_id y comision_2_id. Además contiene valores subtotales y un gran total. El valor 25440.92 es el subtotal para el valor 1 de dimension_1_id, el valor 24542.34 es el subtotal para el valor 2 de dimension_2_id. Por lo tanto se puede ver que los subtotales se calculan en el orden que se especifican las columnas en el SELECT y dentro del ROLLUP. El comando ROLLUP también genera un gran total para los todos los valores, es el caso del valor 49983.26 que no corresponde a ningún valor para dimension_1_id y dimension_2_id sino que es la sumatoria total.

Página 3

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

Extensión CUBE Además de los subtotales que se pueden generar con la extensión ROLLUP, se pueden generar subtotales no solo en el orden en que se definen las columnas en el SELECT y el ROLLUP, sino que para la combinación de valores de las diferentes columnas. Veamos un ejemplo.

Observando el resultado de sustituir ROLLUP por CUBE en la consulta anterior, obtenemos el mismo resultado que el ROLLUP, pero adicionalmente aparecen los subtotales de la combinación de la columna que se colocó en segunda posición en el SELECT y en el CUBE. Estos son los valores que aparecen en sumatoria y que tienen nulo en la columna dimension_1_id, pero tienen los distintos valores en la columna dimension_2_id, significa que son los subtotales para cada valor de dimension_2_id. De igual forma aparece al final un gran total. En este caso es necesario utilizar el ORDER BY, debido a que la extensión CUBE no garantiza que la información retorne ordenada. Por lo tanto estas extensiones nos permiten realizar reportes con agregaciones más allá de lo que la cláusula GROUP BY nos permite. Hay mas funciones y aplicaciones que pueden hacerse con las mencionadas extensiones, para este caso se muestra el uso básico.

Página 4

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

Integración de SQL Server con Oracle Grid Control

Por Ing. Emilio Méndez [email protected] Oracle Grid Control 11g es una solución integrada y completa para administrar todos los componentes relacionados con el Grid de Oracle, así como todas las aplicaciones que pueden correr sobre el mismo. En otras palabras, Oracle Grid Control es una herramienta que puede monitorear bases de datos, servidores web, clusters, entre otros, de forma centralizada. El éxito de Oracle Grid Control se debe a su arquitectura, ya que únicamente se instala un Management Agent en cada servidor a monitorear. La función de este agente es enviar datos recolectados al Oracle Management Service (OMS). Los datos son recolectados de todos los componentes registrados en el host donde está instalado, por medio de archivos XML, los cuales son cargados constantemente en un repositorio.

Figura 1. Arquitectura de Oracle Enterprise Manager 11g. http://docs.oracle.com/cd/E11857_01/em.111/e11982.pdf

Página 5

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

Microsoft SQL Server Plugin Oracle Grid Control ofrece varios plugins para monitorear bases de datos de terceros, como MS SQL Server, IBM DB2, MySQL, Sybase, entre otros. En este artículo se explicará cómo instalar el agente de Oracle para recolectar información de bases de datos Microsoft SQL Server. Como se mencionó anteriormente, se debe instalar el plugin de Oracle para que el agente sea capaz de monitorear instancias SQL Server, obtener información de la configuración así como rastrear cambios en dicha configuración. Además, se pueden implementar alertas y políticas, basadas en límites configurados por el usuario. También provee reportes al usuario con la información obtenida. Hay que tomar en cuenta las versiones soportadas por el plugin para Microsoft SQL Server:

Enterprise Manager 10g, 11g o superior. Ediciones de Bases de datos Standard, Enterprise y Workgroup de Microsoft SQL Server,

como se listan a continuación: o Microsoft SQL Server 2000 (32-bit) o Microsoft SQL Server 2005 (32-bit) o Microsoft SQL Server 2005 (64-bit) o Microsoft SQL Server 2008 R2 (32-bit) o Microsoft SQL Server 2008 R2 (64-bit)

Cluster Microsoft SQL Server 2008 R2

Instalación del Plugin para Microsoft SQL Server El primer paso es descargar el plugin en la siguiente página: http://www.oracle.com/technetwork/oem/grid-control/downloads/devlic-099348.html. Luego, en la opción “Setup” -> “Management Plug-ins” -> “Import” seleccionamos el plugin previamente descargado. Luego indicará que el plugin ya está instalado en Grid Control, como se muestra en la siguiente imagen:

Página 6

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

Ahora bien, por cada servidor SQL Server en la red se debe instalar un agente de Oracle y especificar credenciales de sistema operativo. La instalación del agente debe hacerse con un usuario que tenga rol sysadm. Para especificar las credenciales se debe ir a “Preferences” -> “Preferred Credentials” -> “Agent” -> “Set Credentials”.

En la siguiente página web se especifican las credenciales del host en “Target Credentials”. Después, se realiza la instalación del agente en “Setup” -> “Management Plug-ins” y luego pulsar el botón “Deploy” para el plugin de SQL Server. Se agregan los agentes que se quieran instalar utilizando el botón “Add Agents”. Luego “Next” y aparecerá la siguiente pantalla. Para concluir la instalación pulsar “Finish”.

Al concluir la instalación, la operación regresará a la página de “Management Plug-ins”. En la parte donde está especificado el plugin, se puede observar el número de “Deployed Agents”, que en este caso es 1.

Página 7

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

El siguiente paso es configurar la instancia de SQL Server, esto se hace en “Setup” -> “Agents” -> “Management Agents”. En esta página aparecerán todos los agentes que estén asociados al Grid Control, así que se selecciona el agente que se desee configurar. Luego despliega una página con la configuración del agente seleccionado, así como los componentes monitoreados. Acá hay una sección para agregar targets (“Add”), se selecciona la opción “Microsoft SQL Server” y luego pulsar el botón “Go”.

Tip técnico del día: Carácter de escape: Como ya bien sabemos % y _ son caracteres de escape que sirven para generar patrones. % equivale a 0 o N caracteres _ equivale a 0 o 1 carácter Nos podemos encontrar en situaciones en las que en el WHERE de una consulta necesitamos buscar caracteres que contengan _ o % por lo que necesitaremos un caracter de escape que le diga a Oracle que esos dos caracteres no son caracteres especiales. Se hace de esta forma: SELECT name FROM emp WHERE id LIKE '%\%%' ESCAPE '\'; Por Ing. Deiby Gómez [email protected]

Página 8

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

¿Por qué Migrarse a Oracle Database 11g?

Por Ing. Deiby Gómez [email protected] En la actualidad hay muchas instalaciones de Oracle Database 10g, 9i, e incluso 8i. Las razones principales para no haber migrado a una versión más reciente son: problemas del aplicativo, presupuesto, hardware, entre otros. Sin embargo, es necesario tomar en cuenta que mientras más avance el tiempo más difícil será mantener versiones anteriores. Para hacer conciencia al respecto veamos lo siguientes datos interesantes: Oracle ya no brinda Soporte Premier de bases de datos 9.2 desde julio de 2007. Para la misma versión 9.2, el Soporte Extendido finalizó en julio de 2008. Para Oracle Database 10.1, el Soporte Premier finalizó en enero de 2009. Para Oracle Database 10.2, el Soporte Premier finalizó en julio de 2010. Estos datos nos dicen que conforme pase el tiempo, se hará más difícil encontrar soporte para problemas en versiones anteriores. Esto implica más costo o vulnerabilidades al permanecer con problemas técnicos debidos a no encontrar soporte. Problemas para encontrar parches, mal rendimiento, dificultad para innovar los productos, dificultad al adoptar cambios en el mercado. Cuando se está considerando la migración de una base de datos, la característica más atractiva es la adopción de nuevas capacidades que la nueva versión proporciona. Es éste el objetivo del presente artículo, darle a conocer algunas características importantes con las que cuenta Oracle Database 11g, que puedan proporcionarle a su empresa mayor eficiencia. Las nuevas capacidades de Oracle Database 11g que trataremos en este artículo son: Nuevas capacidades que favorecen el cambio. Necesidades reducidas de almacenamiento. Fuerte aseguramiento de los datos. Mejor rendimiento. Mayor disponibilidad. Capacidades que mejoran la administración de la base de datos. Fácil proceso de migración. Nuevas capacidades que favorecen el cambio: La empresa constantemente está presionada por nuevos cambios que exige el negocio, constantemente se están realizando parchados de aplicaciones, comprando nuevo hardware y/o software para mejorar el rendimiento pues la carga de trabajo aumenta, se tienen más clientes, más transacciones, más volúmenes de datos, etc. Esto conlleva a que el área de IT constantemente esté probando estas aplicaciones parchadas, hardware o software, antes de poder trasladar o adoptar dichos cambios en producción. Sin embargo, aunque se realicen pruebas intensas, se detectan pocos errores. La mayoría de errores son finalmente enfrentados de manera reactiva cuando se encuentra en producción, cuando se tiene la carga de trabajo real. Esto tiene como consecuencia mantenimientos no planificados, mal rendimiento o incluso ventanas de tiempo sin servicio para poder corregir estos errores. Todo esto se traduce en perdida en la inversión que se realizó para adquirir dichos cambios. Oracle Real Application Testing combina capturas de carga de trabajo en producción para replicarla con un analizador de rendimiento SQL para ayudar a evaluar de manera más acercada a la realidad todos esos cambios que la empresa constantemente está haciendo para poder tener un

Página 9

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

enfoque competitivo ante el mercado. De esta manera, el tiempo de pruebas se reduce y se aumenta la calidad del resultado obtenido. Necesidades reducidas de almacenamiento: En la actualidad, adquirir más capacidad de almacenamiento se ha hecho mucho más fácil y su precio ha disminuido considerablemente. Sin embargo, con el tiempo la empresa necesita requiere mayores volúmenes de datos. Paralelamente a este crecimiento en datos debe de ir la escalabilidad y el rendimiento de las aplicaciones, pues mientras más volúmenes de datos, menor rendimiento. Oracle Advanced Compression ofrece un conjunto de capacidades de compresión de datos que pueden ayudar a la empresa a enfrentar este crecimiento inevitable en los datos, reduciendo los costos en la adquisición de almacenamiento pues lo datos ocuparán menos espacio. La compresión de datos también favorece el rendimiento, los datos serán gestionados mejor en memoria debido a que están en un formato compreso, la red tendrá menos carga y se reducirán las lecturas/escrituras. Oracle puede comprimir los datos hasta un 75% (o más) de su tamaño original. Fuerte aseguramiento de los datos: La empresa frecuentemente se enfrenta a la necesidad de tener asegurados los datos que se transfieren por la red, los respaldos que se realizan o dentro de la bases de datos para accesos no autorizados. Oracle Advanced Security provee una solución fácil con la cual se protege toda comunicación entre la base de datos y quien la acceda, proveyendo métodos de encriptación nativos y encriptación basada en SSL. Oracle Database Vault controla quién, cuándo y dónde se accede a los datos. Con esto la empresa está protegida de problemas de seguridad que frecuentemente afectan la información que se maneja, como lo son usuarios internos maliciosos o software malicioso. Mejor rendimiento: Oracle Database 11g ha tenido avances radicales en el tema de rendimiento, gestionando mejor la memoria, caches, la comunicación con la aplicación cliente y ha mejorado la ejecución de sentencias SQL hasta en un 25%. PL/SQL ha sido mejorado de una manera más dramática y puede mejorar hasta en un 50% y java hasta 11 veces más rápido. Oracle Real Application Cluster (RAC) también ha incorporado muchas capacidades que mejoran el rendimiento. La recolección de estadísticas se ha hecho hasta 50% más rápida y más exacta. Se ha incorporado nuevos métodos de particionamiento que buscan mejorar el acceso a los datos. La memoria ahora puede ser gestionada totalmente de manera automática, incluyendo SGA y PGA, aliviando el trabajo de administración que realizan los DBAs. Mayor disponibilidad: La creación de ambientes de contingencia para hacer frente a los problemas que puedan producirse en las bases de datos de producción se vuelve cada vez más común. El ambiente de contingencia también puede aliviar carga a la base de datos de producción sirviendo como ambiente para reportería, consultas y respaldos. Oracle Activa Data Guard tiene la capacidad de poder crear sitios de contingencia que pueden estar sincronizando datos con la base de datos abierta para lecturas y escrituras. De esta manera los datos estarán actualizados. Esta mejora es un híbrido entre una Physical Standby y una Logical Standby que fueron incluidas en la versión 10g. En la versión 10g se presentaba el problema que una Logical Standby podía ser abierta mientras estaba sincronizando sus datos, sin embargo, no se soportaban todos los tipos de datos, en la versión 11g este problema está solucionado. Capacidades que mejoran la gestión de la base de datos: Administrar una base de datos requiere un trabajo intenso y continuo de sus administradores. En Oracle Database 11g se ha tratado de realizar la mayoría de tareas automáticamente, reduciendo la carga de los administradores y aumentando así su eficiencia y su calidad de trabajo.

Página 10

5a Av. 5-55 Zona14, Europlaza World Business Center, Torre II, Nivel 12

PBX (502) 2364-5300 Fax (502) 2364-5311 [email protected]

Algunas de las características en 11g son las siguientes: Diagnóstico de monitoreo y diagnóstico de rendimiento automático: Al realizar los diagnósticos

de sistemas que están presenciando problemas de rendimiento se invierten muchas horas de trabajo intenso tratando de identificar la causa raíz. Existen muchas herramientas que ayudan al administrador proporcionándole gráficas y datos importantes, sin embargo, no dan soluciones puntuales. Oracle Diagnostics Pack 11g realiza un diagnóstico de los eventos que actualmente están influyendo en el mal rendimiento de un sistema y proporciona recomendaciones listas para ser ejecutadas.

Afinación de sentencias SQL: Ayuda a identificar sentencias SQL que están teniendo un mal desempeño y proporciona recomendaciones para mejorarlas, como reestructuración de la sentencia, creación de vistas, índices, etc.

Enterprise Manager Database Console: Esta herramienta está capacitada en esta nueva versión 11g con más funcionalidades, las cuales tienen como objetivo reducir el trabajo del DBA.

Fácil proceso de Migración: Oracle ha trabajado intensamente en simplificar la operación de migración, mejorando radicalmente la herramienta recomendada por excelencia: Database Upgrade Assistant (DBUA). DBUA es una herramienta gráfica que guía al administrador en todo el proceso de migración, proporcionándole sugerencias, corrección de problemas, automatizando ejecución de scripts, entre otros. Se pueden migrar bases de datos simples (single instance), Real Application Clusters (RAC) y Automatic Storage Management (ASM). Además, existen otros métodos de migración, cuya elección depende de variables como: sistema operativo origen y destino, tiempo aceptable sin sistema, versión de base de datos origen y destino, tamaño de la base de datos, entre otros. A continuación, algunos de estos métodos adicionales: Export-import (herramientas antiguas). Export-import Data Pump SQL Apply (Data Guard) Oracle Golden Gate Recovery Manager (RMAN) Conclusión: Tener una versión actualizada de nuestra base de datos no solo proporciona ventajas en rendimiento, soporte, costos, manejabilidad, escalabilidad, disponibilidad, sino que también ayuda a alcanzar al enfoque competitivo que una empresa necesita para poder hacerle frente a las exigencias del mercado.