Modo híbrido para un procesamiento analítico rápido

El procesador de consultas y cálculo del modo híbrido de Oracle Essbase permite realizar análisis en tiempo real mediante cálculos de procedimiento y modelado de lectura y escritura. El modo híbrido es el motor predeterminado del análisis de dependencias dinámicas para consultas de almacenamiento de bloques. No es la opción predeterminada para los scripts de cálculo (puede activarla).

Si ha trabajado con Essbase 11g local, es probable que esté familiarizado con uno o más de estos modos de diseño de cubo, personalizados para diferentes fines:

  • Almacenamiento de bloques: es mejor utilizarlo cuando hay dimensiones ligeras grandes. En este modo, los cubos se almacenan y se agregan previamente para lograr un buen rendimiento de consulta. Incluye un juego completo de funciones de cálculo para el análisis.
  • Almacenamiento agregado: es mejor utilizarlo para cubos que tienen un gran número de dimensiones y muchas agregaciones de nivel superior. Puede especificar fórmulas de miembro mediante MDX.
  • Modo híbrido: modo de almacenamiento de bloques mejorado con las ventajas del almacenamiento agregado.

El modo híbrido es el motor de consulta predeterminado para llevar a cabo análisis dinámicos de dependencias en cubos de almacenamiento en bloques en Essbase 21c y Essbase 19c. El modo híbrido proporciona un análisis de dependencia robusto y una rápida agregación. Es excelente para la gestión de la complejidad de las consultas de miembros que tienen dependencias en miembros dinámicos.

En sus aplicaciones de análisis, Oracle recomienda utilizar dependencias dinámicas, incluidas las agregaciones ligeras. No está limitado a implementar cálculo dinámico de forma selectiva en las dimensiones ligeras, como sucedía en Essbase 11g On-Premise. En particular, las agregaciones dinámicas ligeras son posibles y se recomiendan en función de las directrices y las pruebas sobre el ajuste del rendimiento.

Aunque el modo híbrido es el procesador de consultas predeterminado para cubos de almacenamiento de bloques, no es la opción predeterminada para ejecutar scripts de cálculo. Si los scripts de cálculo contienen muchas dependencias dinámicas, Oracle recomienda activar el modo híbrido también para los scripts de cálculo. La forma de hacerlo es activar el valor del parámetro de configuración HYBRIDBSOINCALCSCRIPT en la configuración de las propiedades de la aplicación (o utilizar el comando de cálculo SET HYBRIDBSOINCALCSCRIPT para controlarlo según el cálculo).

La mayoría de las funciones de cálculo de Essbase funcionan en el modo híbrido. Para ver una lista y la sintaxis de todas las funciones del modo híbrido soportadas, así como las pocas excepciones, consulte Funciones soportadas en el modo híbrido. El cálculo paralelo con FIXPARALLEL está soportado en el modo híbrido, pero no el cálculo paralelo con CALCPARALLEL.

Consulte en ASODYNAMICAGGINBSO la sintaxis para configurar modo híbrido además de los valores por defecto, o para desactivarlo.

Temas de esta sección:

Ventajas del modo híbrido

Los cubos del modo híbrido de Essbase le permiten beneficiarse de una rápida agregación incluso entre dimensiones ligeras, un tamaño de cubo más pequeño, una huella de memoria optimizada, cálculos por lotes flexibles y análisis de dependencia de fórmula robustos.

El modo híbrido combina el cálculo de procedimiento de almacenamiento de bloques (BSO) y la funcionalidad de reescritura con rendimiento de agregación de almacenamiento agregado (ASO). El modo híbrido ofrece todas las ventajas de un rendimiento rápido, ya que no es necesario almacenar agregaciones ligeras. De hecho, reduce la huella de memoria y el tamaño de base de datos, y acelera los tiempos de cálculo por lotes. Las consideraciones de despliegue son más sencillas, ya que no tiene que plantearse utilizar el almacenamiento de bloques para el uso intensivo de cálculos de nivel 0, frente al almacenamiento agregado para muchas agregaciones de nivel superior, y frente al diseño de modelos particionados en los que el cubo se divide en líneas dimensionales, a fin de facilitar el cálculo del rendimiento.

A continuación, se presentan algunos escenarios en los que es probable que el modo híbrido mejore el cálculo del rendimiento:

  • Una base de datos de almacenamiento de bloques tiene miembros ligeros que no son de nivel 0, y se calculan según la jerarquía (en vez de con scripts de cálculo).

  • Un miembro principal de cálculo dinámico y ligero tiene más de 100 hijos.

  • Va a usar una partición transparente entre un destino de almacenamiento agregado vacío y un origen de almacenamiento de bloques. Si las fórmulas del destino de almacenamiento agregado son sencillas y se pueden traducir al lenguaje de fórmula de almacenamiento de bloques, puede conseguir resultados rápidos en el almacenamiento de bloques gracias al modo híbrido.

  • Va a usar una partición transparente entre dos bases de datos de almacenamiento de bloques y le preocupa el cálculo del rendimiento.

Otra ventaja del modo híbrido es que no hay dependencia del orden de esquema. Puede personalizar fácilmente el orden de resolución en lugar de reorganizar el orden dimensional.

El modo híbrido también permite utilizar la gestión de escenarios para probar y modelar datos hipotéticos mediante un formato de flujo de trabajo sin agregar requisitos de almacenamiento.

Comparación del modo híbrido, el almacenamiento de bloques y el almacenamiento agregado

Sin el modo híbrido, el algoritmo de almacenamiento de bloques para los miembros de cálculo dinámico tiene límites cuando se utiliza con grandes dimensiones ligeras. El modo híbrido y el almacenamiento agregado están más optimizados para los análisis de dependencias dinámicas. Consulte información sobre las diferencias clave para poder elegir el tipo de procesador de consultas más apropiado para una aplicación de Essbase .

Sin el modo híbrido, es necesario almacenar las dimensiones ligeras de gran tamaño en bases de datos de almacenamiento de bloques; hacerlas dinámicas causaría demasiadas E/S de bloques en el momento de la consulta o del cálculo, lo que afectaría al rendimiento. Las dimensiones ligeras almacenadas que son muy grandes pueden provocar tiempos de agregación de lotes extensos y grandes tamaños de bases de datos que crecen en función del número y el tamaño de las dimensiones ligeras. Incluso con estas desventajas, el almacenamiento de bloques se usa ampliamente por su potente funcionalidad.

El almacenamiento agregado se ha diseñado específicamente para permitir bases de datos grandes con más dimensiones y más grandes. A diferencia del almacenamiento de bloques, no requiere que se agreguen previamente dimensiones ligeras grandes para lograr un buen rendimiento de consulta. La clave reside en el núcleo de la base de datos de almacenamiento agregado, el cual facilita una agregación dinámica rápida en una dimensionalidad grande.

A pesar de todas las ventajas que ofrece el almacenamiento agregado, hay muchos usos que son más adecuados para el almacenamiento de bloques, como la capacidad para cargar datos con cualquier granularidad, para ejecutar asignaciones complejas en lote con frecuencia o para implementar conversiones de monedas para las finanzas globales. En estos casos, y en muchos otros, el modo híbrido puede ser la solución. El modo híbrido es una combinación de las mejores funciones del almacenamiento de bloques y el almacenamiento agregado. En el modo híbrido, Essbase:

  • Permite una flexibilidad de cálculo de procedimiento completa, incluso si los cálculos dependen de agregaciones dinámicas ligeras.

  • Utiliza el motor híbrido para las consultas que acceden a miembros ligeros dinámicos. Para el pequeño porcentaje de consultas que no se pueden procesar de esta forma, Essbase emplea el flujo de cálculo de almacenamiento de bloques para satisfacer la solicitud.

  • Ofrece los siguientes beneficios, si marca los miembros ligeros como dinámicos:

    • Elimina la necesidad de una agregación previa.
    • Mejora el rendimiento de la reestructuración.

    • Mejora el rendimiento de la copia de seguridad.

    • Reduce los requisitos de espacio en disco.

  • Debido a que modo híbrido implica cálculos dinámicos, puede secuenciarse los cálculos mediante el uso de solve order.

Note:

Los cálculos híbridos, tanto si están controlados por consultas como por scripts de cálculo, se realizan en un espacio de memoria temporal utilizando una caché de fórmulas y la caché de almacenamiento agregado.

Diferencias clave

Las siguientes diferencias principales pueden ayudarle a elegir el tipo de procesador de consultas más apropiado para su aplicación.

Requisito Almacenamiento agregado (ASO) Almacenamiento de bloques (BSO) Modo híbrido

Optimizado para la agregación en varias dimensiones ligeras

N.º

Optimizado para utilizar el menor espacio de disco posible y el menor tiempo de copia de seguridad

N.º

Optimizado para las aplicaciones financieras

N.º

Capacidad para realizar asignaciones

Capacidad para realizar cálculos por lotes

N.º

Fórmulas de miembro soportadas

Sí, expresado como MDX

Sí, expresado como funciones de cálculo de Essbase

Sí, expresado como funciones de cálculo de Essbase

Optimizado para referencias posteriores en fórmulas de miembros

N.º

N.º

Capacidad para personalizar el orden de resolución de cálculos y agregaciones

N.º

Orden de resolución en el modo híbrido

Capacidad para especificar la ejecución de consultas ascendentes para analizar dependencias de conjuntos de datos de entrada más rápido

N.º

N.º

Valor de configuración QUERYBOTTOMUP

Función de cálculo @QUERYBOTTOMUP

Capacidad para rastrear y depurar la ejecución de consultas

QUERYTRACE

N.º

QUERYTRACE

Capacidad para limitar el uso de la memoria permitido para una consulta

MAXFORMULACACHESIZE

N.º

MAXFORMULACACHESIZE

Soporte para cálculos en dos pasadas

N.º

N.º

Capacidad para cargar datos en cualquier nivel

No. Solo se pueden cargar las celdas de nivel 0 sin dependencias de fórmulas

Sí, en niveles agregados

No en niveles dinámicos

Capacidad para cargar datos de forma incremental mediante buffers

N.º

N.º

La evaluación de fórmulas en dimensiones ligeras puede arrojar diferentes resultados que las mismas fórmulas en dimensiones densas

No disponible

Sí. En el almacenamiento de bloques sin el modo híbrido, los scripts de cálculo de , Essbase se pueden escribir de forma iterativa con la finalidad de resolver dependencias mediante bloques ligeros. Si cambia el tipo de dimensión de ligero a denso o viceversa, puede obtener resultados diferentes de las mismas fórmulas.

No. Las dependencias de fórmulas se calculan igual independientemente de si el tipo es ligero o denso.

En el modo híbrido, Essbase utiliza un algoritmo para resolver las dependencias dinámicas. En algunos casos, los datos derivados de un script de cálculo pueden ser diferentes en el modo híbrido que en el modo de almacenamiento de bloques no híbrido.

Introducción al modo híbrido

Para empezar a ejecutar las aplicaciones de Essbase en el modo híbrido, comience en un entorno de prueba, haga dinámicas las dimensiones grandes y dispersas y estudie el log de la aplicación.

Para empezar a utilizar el modo híbrido, siga estas instrucciones:

  • Configure un entorno de desarrollo y migre aplicaciones de almacenamiento de bloques existentes a él. El modo híbrido está activado por defecto para cubos de almacenamiento de bloques.

  • Siempre que sea posible, haga que las dimensiones de dispersión más grandes sean dinámicas.

  • Ejecute consultas de prueba y examine el log de aplicación, antes y después de activar el modo híbrido. Esta actividad puede revelar en qué medida se utilizaba el procesador de consultas de almacenamiento agregado, y los beneficios obtenidos con el modo híbrido. Para cada consulta, el log de aplicación indica Hybrid aggregation mode enabled o Hybrid aggregation mode disabled.

  • Si se registran demasiadas consultas con el modo híbrido desactivado, póngase en contacto con los Servicios de Soporte Oracle.

Optimización del cubo para el modo híbrido

Para utilizar el modo híbrido de forma más eficaz:

  • Evite utilizar el cálculo en dos pasadas en el modo híbrido. En su lugar, utilice solve order (orden de resolución).

  • Convierta los miembros almacenados que no sean de nivel 0 en cálculo dinámico siempre que sea posible.

  • Si la conversión en miembros de cálculo dinámico afecta al orden de resolución de fórmulas dependientes, puede que sea necesario que ajuste el orden de dimensiones del esquema para alinear el orden de resolución con la configuración anterior de orden de cálculo de lotes y de cálculo en dos pasadas.

    El orden de resolución por defecto para los cubos del modo híbrido es similar al orden de cálculo de los cubos de almacenamiento de bloques, con algunas mejoras. Si prefiere utilizar un orden de resolución que no sea por defecto, puede definir uno personalizado para las dimensiones y los miembros.

  • Una fórmula calculada de manera dinámica procesada en el orden de solución incorrecto puede provocar que una consulta ejecute demasiadas fórmulas, lo que hace que el rendimiento empeore. Cuando sea posible, una fórmula ligera con cálculo dinámico debe tener un orden de resolución superior que las dimensiones ligeras agregadas mediante jerarquía.

    En algunas aplicaciones, esto no es posible ya que se necesita un orden de resolución distinto para obtener el resultado correcto de la fórmula. Por ejemplo, en una aplicación con unidades y precios se debe ejecutar un valor de ventas antes que las agregaciones ligeras para obtener el valor de ventas correcto en los niveles superiores.

  • Puede que tenga que ajustar las configuraciones densas y ligeras de las dimensiones (solamente aplicable a la utilización del motor de almacenamiento de bloques, en los casos en que no pueda utilizarse el motor híbrido).

  • Si es posible, reduzca el tamaño de los bloques.

Los administradores de Essbase pueden usar las siguientes herramientas para supervisar y optimizar el rendimiento de las consultas en el modo híbrido:

  • Para limitar la cantidad de memoria que puede consumir una sola consulta, utilice la opción de configuración MAXFORMULACACHESIZE.

  • Si el cubo tiene fórmulas de miembro complejas con operadores de varias dimensiones y varias sentencias IF/ELSE, los problemas de rendimiento pueden estar relacionados con la ejecución de fórmulas. Si se sospecha que esto puede ocurrir, puede activar el procesamiento de consultas ascendente para el cálculo de fórmulas. Esto optimiza los tiempos de consulta mediante la identificación de las intersecciones necesarias para el cálculo, lo cual hace que el tiempo de consulta sea proporcional al tamaño de los datos de entrada.

    Para realizar estas optimizaciones de consulta para el versión 21C, utilice el valor de configuración QUERYBOTTOMUP, así como la función de cálculo @QUERYBOTTOMUP. En el caso de la versión 19C, utilice el valor de configuración IGNORECONSTANTS con la sintaxis BOTTOMUP, así como la función de cálculo @NONEMPTYTUPLE.

  • Utilice el rastreo de consultas para supervisar y depurar el rendimiento de las consultas. Hay disponibles varias opciones de configuración a nivel de aplicación, en función de cuál sea su caso de uso. Utilice QUERYTRACE para realizar un proceso de depuración a corto plazo de una sola consulta que cree que pueda ser problemática. Utilice TRACE_REPORT para la recopilación de estadísticas sobre consultas que se ejecuten simultáneamente (idóneo para la depuración en un entorno del desarrollo). Utilice LONGQUERYTIMETHRESHOLD en entornos de producción para imprimir estadísticas sobre cualquier consulta que se ejecute durante más tiempo del previsto en el archivo de registro de aplicaciones.

Limitaciones y excepciones del modo híbrido

En algunos casos, una consulta no se ejecuta de forma óptima en el modo híbrido. Essbase detecta cuando están presentes estas condiciones y las agrega en el modo de almacenamiento de bloques. Si una consulta mezcla tipos de cálculo soportados y no soportados del modo híbrido, Essbase se define por defecto en la ejecución del cálculo de almacenamiento en bloques.

Si está activado, el modo híbrido se aplica para las fórmulas de miembro que utilizan funciones soportadas. Para obtener una lista de las funciones soportadas y no admitidas, consulte Funciones soportadas en modo híbrido.

Los siguientes tipos de consulta no se ejecutan en el modo híbrido:

  • Miembros de cálculo dinámico con fórmulas que son el destino de particiones transparentes

  • Consultas en aquellas en las que el miembro compartido está fuera de la Definición de Partición de Destino y su miembro de prototipo está dentro, o al contrario

  • XOLAP

  • Medidas de texto/listas de texto

Los cálculos de atributo se ejecutarán en el modo híbrido, solo para la suma.

Si los miembros dependientes tienen un orden de resolución más alto que el miembro de fórmula, aparecerá la siguiente advertencia:

Solve order conflict - dependent member member_name with higher solve order will not contribute value for formula of member_name

Orden de resolución en el modo híbrido

El orden de resolución de Essbase determina el orden en el que se ejecutan los cálculos dinámicos en el modo híbrido. Puede personalizar el orden de resolución o aceptar el predeterminado, que está optimizado para conseguir un rendimiento y un análisis de dependencia mejores.

El concepto de orden de resolución se aplica a la ejecución de cálculo dinámico, tanto si se ha iniciado por una fórmula de miembro dinámico como por una dependencia dinámica en un script de cálculo. Cuando se evalúa una celda en una consulta multidimensional, el orden en que se deben resolver los cálculos puede ser ambiguo, a menos que se especifique el orden de resolución para indicar la prioridad de cálculo necesaria.

Puede definir el orden de resolución para dimensiones o miembros, o bien puede usar el orden de resolución de Essbase por defecto. El orden de resolución mínimo que puede definir es 0, y el máximo 127. Cuanto mayor sea el número de orden de resolución de un miembro, más tardará en calcularse. Por ejemplo, un miembro con un orden de resolución de 1 se resolverá antes que un miembro con un orden de resolución de 2.

Cuando está activado el modo híbrido, el orden de resolución por defecto (también denominado orden de cálculo) tiene un alto nivel de coincidencia con el de las bases de datos de almacenamiento de bloques:

Tipo de dimensión/miembro Valor de orden de resolución por defecto
Miembros almacenados 0
Miembros de dimensión ligera 10
Miembros de dimensión de cuentas densa 30
Miembros de dimensión de tiempo densa 40
Miembros de dimensión normal densa 50
Miembros de dimensión de atributo 90
Miembros dinámicos en dos pasadas 100
miembros calculados o conjuntos con nombre de MDX (definidos en MDX With) 120

En resumen, el orden de resolución por defecto del modo híbrido dicta que los miembros almacenados se calculen antes de los miembros de cálculo dinámico, mientras que las dimensiones ligeras se calculan antes que las dimensiones densas, en el orden en que aparecen en el esquema (de arriba a abajo).

Los miembros dinámicos (con o sin fórmulas) que no tengan un orden de resolución especificado heredan el orden de resolución de su dimensión, a menos que estén etiquetados como del tipo en dos pasadas.

El cálculo en dos pasadas es una configuración que puede aplicar, en modo de almacenamiento de bloques, a los miembros con fórmulas que se deben calcular dos veces para generar el valor correcto.

Note:

No utilice el cálculo en dos pasadas en cubos del modo híbrido. Use solo solve order (Orden de resolución).

Las dos pasadas no se pueden aplicar en el modo híbrido, y cualquier miembro etiquetado como en dos pasadas se calcula en último lugar, tras los atributos. En el modo híbrido, debe implantar un orden de resolución personalizado, en lugar de dos pasadas, si el orden de resolución por defecto no cumple sus requisitos.

El orden de resolución por defecto en el modo híbrido está optimizado para estos escenarios:

  • Referencias posteriores, en las que una fórmula de miembro dinámica hace referencia a un miembro que vaya detrás en el orden de esquema. No hay ninguna dependencia de orden de esquema en el modo híbrido.

  • La agregación de los valores secundarios basada en el orden de esquema supone un mayor nivel de coincidencia con la agregación mediante fórmulas equivalentes.

  • Miembros densos dinámicos como dependencias dentro de las fórmulas ligeras. En el modo híbrido, si una fórmula ligera hace referencia a un miembro dinámico denso, la referencia se ignora porque las dimensiones ligeras se calculan en primer lugar. Para cambiar esto, asigne un orden de resolución a la dimensión ligera que sea mayor que (se haya calculado después de) el orden de resolución de la dimensión densa.

Personalización del orden de resolución

Si tiene que ajustar el comportamiento del cálculo dinámico en el modo híbrido, personalice el orden de resolución de las dimensiones y los miembros para modificarlo sin hacer cambios importantes en el esquema.

Si implanta un orden de resolución personalizado, este sustituye el orden de resolución por defecto. Si los miembros o las dimensiones tienen el mismo orden de resolución, el orden en que aparecen en el esquema (de arriba a abajo) resuelve el conflicto.

A menos que personalice el orden de resolución para algunos miembros, se aplicará el orden de resolución del miembro principal de la dimensión para todos los miembros dinámicos de la dimensión.

Para cambiar el orden de solución, utilice el editor para esquemas en la interfaz web deEssbase o use Smart View (consulte Cambio del orden de solución de un PDV seleccionado).

El orden de resolución mínimo que puede definir es 0, y el máximo 127. Cuanto mayor sea el orden de resolución, más tarde se calculará el miembro.

Para explorar casos de uso para el orden de resolución, consulte las plantillas Orden de resolución en la sección Técnica de la galería de los libros de trabajo de la aplicación, que puede encontrar en el catálogo de archivos de Essbase.

Notas sobre el orden de resolución en el modo no híbrido

En los cubos de almacenamiento agregado:

  • El orden de resolución está definido en 0 para todas las dimensiones.

  • La agregación se ejecuta según el orden de esquema, excepto si:

    • Los miembros de jerarquías almacenadas se procesan primero.
    • Los miembros de jerarquías dinámicas se procesan a continuación.

En los cubos de almacenamiento de bloques no híbridos, el orden de resolución predeterminado es:

  • ligero antes que denso,

  • cuentas antes que tiempo,

  • los atributos, al final.

Note:

Si el orden de resolución de los miembros de cuentas se define manualmente para que sea superior que el orden de resolución de los miembros de tiempo, las cuentas se evaluarán después de los miembros de la serie de tiempo dinámica.