Modo Híbrido para Processamento Analítico Rápido

O processador de cálculo e consulta do modo híbrido do Oracle Essbase permite que você execute análises em tempo real usando cálculos processuais e modelagem de leitura e gravação. O modo híbrido é o mecanismo padrão para análise de dependência dinâmica para consulta de armazenamento em blocos. Ele não é o padrão para scripts de cálculo (é possível ativá-lo).

Se você tiver trabalhado com o Essbase 11g Local, provavelmente estará familiarizado com um ou mais desses modos de design de cubo, adaptados para fins específicos:

  • Armazenamento em blocos: melhor utilizado quando existem dimensões grandes e dispersas. Os cubos nesse modo são armazenados e pré-agregados para obter um bom desempenho da consulta. Inclui um rico conjunto de funções de cálculo para análise.
  • Armazenamento agregado: mais usado para cubos com um grande número de dimensões e muitas agregações de nível superior. As fórmulas de membro podem ser especificadas usando o MDX.
  • Modo híbrido: bloqueia o modo de armazenamento aprimorado com os benefícios do armazenamento agregado.

Modo híbrido é o mecanismo padrão de consulta para análise de dependência dinâmica para consultas, em cubos de armazenamento em blocos no Essbase 21c e no Essbase 19c. Modo híbrido fornece análise de dependência robusta e agregação rápida. É excelente para lidar com a complexidade de consultar membros que têm dependências em membros dinâmicos.

Em seus aplicativos analíticos, a Oracle recomenda o uso de dependências dinâmicas, incluindo agregações esparsas. Você não está limitado a implementar o Cálculo Dinâmico seletivamente em dimensões esparsas, como foi o caso do Essbase 11g On-Premise. Em particular, agregações dinâmicas dispersas são possíveis e recomendadas, sujeitas a diretrizes e testes de ajuste de desempenho.

Embora o modo híbrido seja o processador de consulta padrão para cubos de armazenamento em blocos, ele não é o mecanismo padrão para executar scripts de cálculo. Se seus scripts de cálculo contiverem muitas dependências dinâmicas, a Oracle recomenda que você ative o modo híbrido também para scripts de cálculo. A maneira de fazer isso é ativar a definição de configuração HYBRIDBSOINCALCSCRIPT em suas propriedades de configuração de aplicativo (ou usar o comando SET HYBRIDBSOINCALCSCRIPT para controlá-lo por cálculo).

A maioria das funções de cálculo do Essbase operará no modo híbrido. Para ver uma lista e uma sintaxe de todas as funções do cálculo suportadas pelo modo híbrido, bem como as poucas exceções, consulte Funções Suportadas no Modo Híbrido. O cálculo paralelo usando FIXPARALLEL é suportado no modo híbrido, mas não o cálculo paralelo usando CALCPARALLEL.

Consulte ASODYNAMICAGGINBSO para ver a sintaxe que determina o modo híbrido além das definições padrão ou para desativá-la.

Tópicos desta seção:

Benefícios do Modo Híbrido

Os cubos de modo híbrido do Essbase permitem que você se beneficie da agregação rápida mesmo entre dimensões dispersas, tamanho de cubo menor, volume de memória otimizado, cálculos em lote flexíveis e análise robusta de dependência de fórmula.

O modo híbrido combina cálculo de procedimento de armazenamento em blocos (BSO) e funcionalidade de write-back com desempenho de agregação de armazenamento agregado (ASO). O Modo híbrido oferece o benefício de desempenho rápido, eliminando a necessidade de armazenar agregações dispersas. Isso, por sua vez, reduz o tamanho do banco de dados e o volume de memória e acelera os tempos de cálculo em batch. As considerações de implantação são simplificadas, pois você não precisa mais considerar o uso de armazenamento em blocos para uso pesado de cálculos de nível 0, versus armazenamento agregado para muitas agregações de nível superior, em vez de projetar modelos particionados nos quais o cubo é dividido ao longo de linhas dimensionais para facilitar o desempenho do cálculo.

A seguir, são apresentados alguns cenários em que o modo híbrido provavelmente melhora o desempenho do cálculo:

  • Um banco de dados de armazenamento em blocos possui membros dispersos que não estão no nível 0 e são calculados de acordo com a hierarquia (e não por scripts de cálculo).

  • Um membro principal de Cálculo Dinâmico disperso tem mais de 100 membros secundários.

  • Você está usando uma partição transparente entre um destino de armazenamento agregado vazio e uma origem de armazenamento em bloco. Se as fórmulas no destino de armazenamento agregado forem simples e traduzíveis para o idioma da fórmula de armazenamento em bloco, você poderá obter resultados rápidos no armazenamento em blocos usando o modo híbrido.

  • Você estiver usando uma partição transparente entre dois bancos de dados de armazenamento em bloco, e o desempenho do cálculo será uma preocupação.

Outro benefício do modo híbrido é que não há dependência de ordem de outlines. Você pode personalizar facilmente a ordem de solução em vez de reorganizar a ordem dimensional.

O modo híbrido também permite que você use o gerenciamento de cenários para testar e modelar dados hipotéticos usando um formato de fluxo de trabalho sem adicionar requisitos de armazenamento.

Comparação de Modo Híbrido, Armazenamento em Blocos e Armazenamento Agregado

Sem o modo híbrido, o algoritmo de armazenamento em blocos para membros do Cálculo Dinâmico tem limitações quando usado com dimensões dispersas grandes. O modo híbrido (e armazenamento agregado) é mais otimizado para análise de dependência dinâmica. Leia sobre as principais diferenças para ajudá-lo a escolher o melhor tipo de processador de consulta para um aplicativo Essbase .

Sem o modo híbrido, dimensões grandes e dispersas nos bancos de dados de armazenamento em blocos devem ser armazenadas; torná-las dinâmicas resultaria em muita Entrada/Saída de bloco no momento da consulta ou do cálculo, afetando o desempenho. Dimensões dispersas armazenadas muito grandes podem levar a longos tempos de agregação de lotes, bem como tamanhos grandes de banco de dados que crescem em relação ao número e tamanho das dimensões dispersas. Mesmo com essas desvantagens, o armazenamento em blocos é amplamente utilizado por sua avançada funcionalidade.

O armazenamento agregado foi projetado especificamente para permitir bancos de dados grandes com dimensões cada vez maiores. Ao contrário do armazenamento em blocos, ele não requer que grandes dimensões dispersas sejam pré-agregadas para obter um bom desempenho da consulta. A chave está no kernel do banco de dados de armazenamento agregado, que facilita a rápida agregação dinâmica em grande dimensionalidade.

Para obter todos os benefícios que o armazenamento agregado oferece, no entanto, existem muitos usos que são mais adequados para armazenamento em blocos, como a capacidade de carregar dados em qualquer granularidade, executar frequentemente alocações em batch complexas ou implementar conversão de moeda para mercados financeiros globais. Nesses casos e em muitos outros, o modo híbrido pode ser a solução. O Modo híbrido é uma combinação dos melhores recursos de armazenamento em blocos e armazenamento agregado. No modo híbrido, Essbase

  • Permite flexibilidade total de cálculo processual, mesmo quando os cálculos dependem de agregações dispersas e dinâmicas.

  • Usa o mecanismo híbrido para consultas que acessam membros dispersos dinâmicos. Para a pequena porcentagem de consultas que não podem ser processadas dessa maneira, o Essbase usa o fluxo de cálculo do armazenamento em blocos para atender à solicitação.

  • Oferece esses benefícios, se você marcar membros dispersos como dinâmicos:

    • Elimina a necessidade de pré-agregação
    • Melhora o desempenho da reestruturação

    • Melhora o desempenho do backup

    • Reduz requisitos de espaço em disco

  • Como o modo híbrido envolve cálculos dinâmicos, você pode sequenciar os cálculos usando a ordem de solução.

Observação:

Os cálculos híbridos, realizados por consultas ou scripts de cálculo, são executados no espaço de memória temporário, utilizando um cache de fórmula e o cache de armazenamento agregado.

Principais Diferenças

As principais diferenças a seguir podem ajudá-lo a escolher o melhor tipo de processador de consulta para seu aplicativo.

Requisito Armazenamento Agregado (ASO) Armazenamento em Blocos (BSO) Modo Híbrido

Otimizado para agregação rápida em muitas dimensões esparsas

Sim

No

Sim

Otimizado para uso mínimo de espaço em disco e tempo de backup reduzido

Sim

No

Sim

Otimizado para aplicativos financeiros

No

Sim

Sim

Capacidade de executar alocações

Sim

Sim

Sim

Capacidade de executar cálculos em batch

No

Sim

Sim

Fórmulas do membro suportadas

Sim, expresso como MDX

Sim, expresso como Funções de Cálculo do Essbase

Sim, expresso como Funções de Cálculo do Essbase

Otimizado para referências diretas em fórmulas de membros

No

No

Sim

Capacidade de personalizar a ordem de resolução de cálculos/agregações

Sim

No

Sim

Ordem de Resolução no Modo Híbrido

Capacidade de especificar a execução de consulta ascendente para análise de dependência mais rápida de conjuntos de dados de entrada menores

No

No

Sim

Definição da consulta QUERYBOTTOMUP

Função de cálculo @QUERYBOTTOMUP

Capacidade de rastrear e executar a execução da consulta

Sim

QUERYTRACE

No

Sim

QUERYTRACE

Capacidade de limitar o uso de memória permitido para uma consulta

Sim

MAXFORMULACACHESIZE

No

Sim

MAXFORMULACACHESIZE

Suporte a cálculo em duas etapas

No

Sim

No

Capacidade de carregar dados em qualquer nível

Não. Somente células de nível 0, sem dependências de fórmula, podem ser carregadas

Sim

Sim, para níveis armazenados

Não, para níveis dinâmicos

Capacidade para carregar dados, incrementalmente, usando buffers

Sim

No

No

A avaliação de fórmulas em dimensões esparsas pode ter resultados diferentes das mesmas fórmulas em dimensões densas

N/D

Sim. No armazenamento em blocos sem modo híbrido, os scripts de cálculo do Essbase podem ser gravados iterativamente com o objetivo de resolver dependências sobre blocos dispersos. Se você alterar o tipo de dimensão de esparso para denso ou vice-versa, poderá obter resultados distintos para as mesmas fórmulas.

Não. As dependências de fórmulas são calculadas da mesma forma sem levar em conta a dispersão ou densidade.

No modo híbrido, o Essbase usa um algoritmo para resolver dependências dinâmicas. Em alguns casos, os dados derivados de um script de cálculo podem ser diferentes no modo híbrido do que seriam no modo de armazenamento em blocos sem ser híbrido.

Iniciar no Modo Híbrido

Para começar a executar seus aplicativos do Essbase no modo híbrido, inicie em um ambiente de teste, torne as dimensões grandes e esparsas dinâmicas e estude o log do aplicativo.

Para iniciar no modo híbrido, siga essas diretrizes:

  • Configurar um ambiente de desenvolvimento e migrar o armazenamento de blocos existente para ele. O Modo híbrido é ativado, por padrão, para cubos do armazenamento em blocos.

  • Sempre que possível, torne dinâmicas as dimensões dispersas maiores.

  • Execute consultas de teste e examine o log do aplicativo, antes e depois de ativar o modo híbrido. Esta atividade pode revelar até que ponto o processador de consulta de armazenamento agregado foi usado e os benefícios do modo híbrido que foi obtido. Para cada consulta, o log do aplicativo informa Hybrid aggregation mode enabled ou Hybrid aggregation mode disabled.

  • Se muitas consultas forem registradas no modo híbrido desativado, entre em contato com o Suporte Oracle.

Otimizar o Cubo para o Modo Híbrido

Para usar o modo híbrido de forma mais eficaz:

  • Evite usar o cálculo de dois passos no modo híbrido. Em vez disso, use solucionar pedido.

  • Converta membros armazenados diferentes do nível 0 para Cálculo Dinâmico sempre que isso for viável.

  • Se a conversão em membros do Calc. Dinâmico afetar a ordem de resolução para fórmulas dependentes, pode ser necessário ajustar a ordem de dimensões do outline para alinhar a ordem de resolução com a ordem de cálculo em batch anterior e as configurações de cálculo de dois passos.

    A ordem de resolução padrão para os cubos do modo híbrido é semelhante à ordem de cálculo dos cubos de armazenamento em bloco, com alguns aprimoramentos. Se quiser usar uma ordem de resolução não padrão, pode definir uma ordem de resolução personalizada para dimensões e membros.

  • Uma fórmula calculada dinamicamente processada na ordem de resolução errada pode fazer com que muitas fórmulas sejam executadas por uma consulta, degradando o desempenho. Quando possível, uma fórmula esparsa calculada dinamicamente deve ter uma ordem de resolução superior às dimensões esparsas agregadas hierarquicamente.

    Em alguns aplicativos isso não é possível, pois outra ordem de resolução é necessária para obter os resultados corretos da fórmula. Por exemplo, um aplicativo com unidades e preços precisa ter um valor de vendas executado antes das agregações esparsas, para obter o valor de vendas correto em níveis superiores.

  • Pode ser necessário ajustar as configurações densa ou dispersa das dimensões (aplica-se apenas à utilização do mecanismo de armazenamento em blocos nos casos em que o mecanismo híbrido não pode ser usado).

  • Minimize o tamanho dos blocos, se possível.

Os administradores do Essbase podem usar as seguintes ferramentas para monitorar e otimizar o desempenho da consulta no modo híbrido:

  • Para limitar a quantidade de memória que pode ser consumida por qualquer consulta única, use a definição de configuração MAXFORMULACACHESIZE.

  • Caso seu cubo tenha fórmulas de membro complexas com operadores interdimensionais e várias instruções IF/ELSE, poderá haver questões de desempenho relacionadas à execução da fórmula. Se isso for suspeito, você poderá ativar o processamento de consulta ascendente para cálculo de fórmula. Isso otimiza os tempos de consulta identificando as interseções obrigatórias para cálculo, tornando o tempo de consulta proporcional ao tamanho dos dados de entrada.

    Para fazer essas otimizações de consulta para a Release 21C, use a definição de configuração QUERYBOTTOMUP, bem como a função de cálculo @QUERYBOTTOMUP. Na Release 19C, use a definição de configuração IGNORECONSTANTS com a sintaxe BOTTOMUP, bem como a função de cálculo @NONEMPTYTUPLE.

  • Use o rastreamento de consulta para monitorar e depurar o desempenho da consulta. Várias definições de configuração no nível do aplicativo estão disponíveis, dependendo do seu caso de uso. Use QUERYTRACE para depuração de curto prazo de uma única consulta que você acha que pode ser problemática. Use TRACE_REPORT para coleta de estatísticas sobre consultas em execução simultânea (ideal para depuração em um ambiente do desenvolvimento). Use LONGQUERYTIMETHRESHOLD em ambientes de produção para imprimir estatísticas ao arquivo do log do aplicativo sobre qualquer consulta executada por mais de um tempo definido.

Limitações e Exceções para Modo Híbrido

Em alguns casos, uma consulta não seria executada de maneira ideal no modo híbrido. O Essbase detecta quando essas condições estão presentes e as agrega no modo de armazenamento em bloco. Se uma consulta combinar os tipos de cálculo do modo híbrido, o Essbase será padronizado para bloquear a execução do cálculo de armazenamento.

Se ativado, o modo híbrido fica em vigor para fórmulas de membros usando as funções suportadas. Para obter uma lista de funções suportadas e não compatíveis, consulte Funções Suportadas no Modo Híbrido.

Os seguintes tipos de consultas não são executados no modo híbrido:

  • Membros do Calc Dinâmicos com fórmulas que são alvo de partições transparentes

  • Consultas nas quais o membro compartilhado está fora da definição de partição de destino e seu membro de protótipo está dentro, ou o inverso

  • XOLAP

  • Medidas de texto/listas de texto

Os cálculos de atributos serão executados no modo híbrido, somente para Soma.

Se os membros dependentes tiverem uma ordem de solução maior que o membro da fórmula, a seguinte advertência será exibida:

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

Resolver Problema no Modo Híbrido

A ordem de resolução no Essbase determina a ordem na qual o cálculo dinâmico é executado no modo híbrido. É possível personalizar a ordem de resolução ou aceitar o padrão, que é otimizado para alto desempenho e análise de dependência.

O conceito de ordem de resolução se aplica à execução dinâmica de cálculo, iniciada por uma fórmula de membro dinâmico ou por uma dependência dinâmica em um script de cálculo. Quando uma célula é avaliada em uma consulta multidimensional, a ordem na qual os cálculos devem ser resolvidos pode ser ambígua, a menos que a ordem de resolução seja especificada para indicar a prioridade de cálculo necessária.

Você pode definir a ordem de resolução para dimensões ou membros ou pode usar a ordem de resolução padrão do Essbase. A ordem de resolução mínima que você pode definir é 0 e o máximo é 127. Uma ordem de resolução mais alta significa que o membro é calculado posteriormente; por exemplo, um membro com uma ordem de resolução 1 é resolvido antes de um membro com uma ordem de resolução 2.

Quando o modo híbrido está ativado, a ordem de resolução padrão (também conhecida como ordem de cálculo) corresponde à dos bancos de dados de armazenamento em bloco:

Tipo de Dimensão/Membro Valor da Ordem de Resolução Padrão
Membros armazenados 0
Membros da Dimensão Esparsa 10
Membros da dimensão de Conta densa 30
Membros da dimensão de Tempo densa 40
Membros da dimensão regular densa 50
Membros da dimensão de atributo 90
Membros dinâmicos em dois passos 100
Membros ou conjuntos nomeados calculados MDX (definidos em MDX Com) 120

Em resumo, a ordem de resolução padrão no modo híbrido determina que os membros armazenados são calculados antes dos membros dinâmicos do cálculo e as dimensões dispersas são calculadas antes das dimensões densas, na ordem em que aparecem no outline (de cima para baixo).

Membros dinâmicos (com ou sem fórmulas) que não possuem uma ordem de resolução especificada herdam a ordem de resolução de sua dimensão, a menos que sejam marcados como dois passos.

O cálculo de dois passos é uma configuração que você pode aplicar, no modo de armazenamento em blocos, a membros com fórmulas que devem ser calculadas duas vezes para produzir o valor correto.

Observação:

Não use cálculo em duas etapas com cubos de modo híbrido. Use apenas a ordem de solução.

O cálculo de dois passos não é aplicável no modo híbrido, e quaisquer membros marcados como dois passos são calculados por último, depois dos atributos. No modo híbrido, você deve implementar uma ordem de resolução personalizada, em vez de dois passos, se a ordem de resolução padrão não atender aos seus requisitos.

A ordem de resolução padrão no modo híbrido é otimizada para esses cenários:

  • Encaminhar referências, nas quais uma fórmula de membro dinâmico faz referência a um membro que vem posteriormente na ordem de estrutura de tópicos. Não há dependência da ordem de tópicos no modo híbrido.

  • A agregação de valores filho com base na ordem do outline corresponde mais à agregação usando fórmulas equivalentes.

  • Membros densos dinâmicos como dependências em fórmulas dispersas. No modo híbrido, se uma fórmula dispersa fizer referência a um membro dinâmico denso, a referência será ignorada, porque as dimensões dispersas são calculadas primeiro. Para alterar isso, atribua uma ordem de resolução à dimensão dispersa que seja maior que a ordem de resolução da dimensão densa (calculada posteriormente a).

Personalizando a Ordem de Resolução

Caso precise ajustar o comportamento de cálculos dinâmicos no modo híbrido, personalizar a ordem de resolução de dimensões e membros o ajudará a fazer isso sem fazer grandes alterações na estrutura de tópicos.

Se você implementar uma ordem de resolução personalizada, ela substituirá a ordem de resolução padrão. Se os membros ou dimensões tiverem a mesma ordem de resolução, a ordem em que aparecem no outline (de cima para baixo) resolverá o conflito.

A não ser que você personalize uma ordem de resolução para determinados membros, a ordem de resolução do membro da dimensão superior se aplica a todos os membros dinâmicos na dimensão.

Para alterar a ordem de solução, use o editor de tópicos na Interface Web do Essbase ou use o Smart View (consulte Alterando a Ordem de Resolução de um PDV Selecionado).

A ordem de resolução mínima que você pode definir é 0 e o máximo é 127. Uma ordem de resolução mais alta significa que o membro será calculado posteriormente.

Para explorar os casos de uso da ordem de resolução, consulte os modelos Ordem de Resolução na seção Técnica da galeria da pasta de trabalho do aplicativo, que você pode encontrar no catálogo de arquivos no Essbase.

Observações sobre a Ordem de Resolução no Modo Não híbrido

Nos cubos de armazenamento agregado,

  • A ordem de resolução é definida como 0 para todas as dimensões.

  • A agregação é executada na ordem da estrutura, exceto:

    • Os membros de hierarquia armazenados são processados primeiro.
    • Em seguida, os membros da hierarquia dinâmica são processados.

Em cubos de armazenamento de blocos não híbridos, a ordem de resolução padrão é

  • dispersa antes de densa

  • contas antes de hora

  • últimos atributos

Observação:

Se a ordem de resolução dos membros das Contas for definida manualmente para ser maior que a ordem de resolução dos membros do Tempo, as Contas serão avaliadas após os membros da Série de Tempo Dinâmica.