• Nenhum resultado encontrado

Materialização de Vistas em Cubos de Dados

A Preponderância das Estruturas Multidimensionais de Dados 2.1 A Origem das Estruturas Multidimensionais de Dados

2.6. Materialização de Vistas em Cubos de Dados

Nas secções anteriores, já foi discutido, por diversas vezes, o problema da necessidade de materialização do cubo, sendo irrealista o processamento de todos os cubóides que podem ser gerados dentro de um cubo de dados (ou através das relações base) em situações reais. Nesta secção será aprofundado este tema. A materialização de vistas é uma técnica de optimização que visa melhorar o desempenho do processamento das interrogação multidimensionais, solicitadas ao sistema OLAP, pelos agentes de decisão. Baseia-se no conceito de previsão do cálculo (total ou parcial) das interrogações, de modo a diminuir o impacto que os seus tempos de resposta poderão ter no desempenho do sistema de processamento analítico. A optimização das interrogações efectuadas utilizando a técnica de materialização de subcubos divide-se, essencialmente, em três áreas de actuação: a selecção de vistas a materializar; a utilização das vistas materializadas e a sua manutenção (actualização) [Gupta, 1995], [Chirkova et al., 2001]. Antes de analisar cada uma das áreas, veja-se as opções a ter em consideração para materialização de vistas, dado um cubo de dados, tendo em consideração que a escolha deve incidir sempre sobre o trade-off espaço e tempo:

• Sem materialização – Não existe o pré-processamento de nenhum dos subcubos de dados. Esta situação conduz a um elevado custo no processamento das agregações multidimensionais, e pode tornar-se extremamente lento.

• Materialização integral – É efectuado o pré-processamento de todos os subcubos. O

lattice de dependências de cada subcubo calculado traduz-se no processamento global

do cubo de dados. Esta opção tipicamente conduz à necessidade de grandes quantidades de espaço de armazenamento, já que é indispensável guardar todos os dados materializados.

38 

• Materialização parcial – É efectuado o pré-processamento apenas de um conjunto seleccionado de subcubos considerados mais adequados, do universo de cubóides disponíveis. Em alternativa, é possível também calcular um subconjunto do cubo que contenha apenas as células que satisfazem um determinado critério especificado pelo utilizador, tal como definir um limite mínimo para se considerar a contagem dos tuplos do cubóide (designados por iceberg cubes [Fang et al., 1997], o tema central deste trabalho, a ver em detalhe no capítulo 3). A materialização parcial representa uma harmonização interessante entre o tempo de resposta e o espaço ocupado em memória, pelo que os tópicos seguintes serão baseados nesta selecção.

Materializar uma vista sobre uma estrutura de dados multidimensional significa armazenar os tuplos resultantes do processamento da sua geração, numa tabela. A esta tabela dá-se o nome de vista materializada, ou seja, tornar reais as agregações de um determinado cubóide resultantes das interrogações efectuadas ao lattice de dependências de um cubo de dados. Em princípio, se o subcubo de resposta a uma determinada interrogação for previamente armazenado numa tabela, à partida, a disponibilização do resultado ficará somente condicionado ao período de leitura dos tuplos da mesma. Por isso, qualquer cenário cuja janela de execução seja limitada, pode ter ganhos consideráveis ao utilizarem-se estas estruturas. O mesmo acontece quando são processadas interrogações complexas que envolvem grandes quantidades de dados. Isto leva a querer que o ideal seria mesmo guardar as respostas para todas as interrogações possíveis, contudo, essa acção levanta dois problemas fundamentais, já falados anteriormente: o espaço em disco e o tempo de processamento. Neste contexto, surge um dos desafios que se coloca à utilização de vistas materializadas: Quais as vistas mais indicadas para serem materializadas tendo em conta a minimização do tempo de processamento das interrogações, dadas determinadas restrições de espaço e tempo? (referindo-se ao problema de selecção de vistas materializadas, que será objecto de discussão mais detalhada na próxima secção deste trabalho).

A utilização de vistas materializadas é outra área de investigação que importa referir. Os decisores ao analisarem os dados, lançam interrogações escritas em termos de base de dados,

39 

isto porque desconhecem a existência de vistas materializadas ou porque o dinamismo do sistema pode obrigar a uma constante actualização do conhecimento relativamente ao conjunto de vistas em utilização. O principio fundamental é manter a utilização de vistas materializadas totalmente transparente para o utilizador, de modo a agilizar o seu processo de actualização e adaptação. Ou seja, as interrogações que são lançadas na base de dados têm de ser reformuladas em termos de vistas disponíveis sempre que tal seja possível de modo a contribuir para a optimização do desempenho do sistema de processamento analítico. À parte da sua utilização, outro domínio de extrema importância tem de ser considerado: a sua manutenção. Veja-se o seguinte: as tabelas base, sobre as quais se definem as vistas, sofrem várias alterações (inserções, actualizações, remoções, etc.) ao longo do tempo. Qualquer alteração nos dados base deve ser reflectida nas vistas materializadas de maneira a manter a sua consistência com as tabelas base. A incoerência dos dados entre estas estruturas resultam num custo elevado no processamento das interrogações. Isto porque a resposta a uma determina consulta tem de ser a mesma (sejam as interrogações efectuadas no esquema da base de dados ou sobre vistas materializadas).

Na verdade, a optimização das interrogações lançadas no sistema de processamento analítico recorrendo à técnica de materialização de vistas (ou subcubos) deve ser considerada como uma mais-valia, na medida em que pode originar ganhos consideráveis nos tempos de resposta das interrogações e, com isso, melhorar consideravelmente o desempenho global do sistema analítico. Contudo, é uma prática que consome certos recursos em termos de espaço de armazenamento e tempo de cálculo. Por isso, torna-se necessário encontrar um ponto de equilíbrio que coadune os ganhos e os custos de utilização, não esquecendo que é fundamental considerar as actualizações que vão ocorrendo ao longo do tempo, já que as relações base são alteradas em resultado das transacções e eventos ocorridos no mundo real, sendo necessário que essas modificações sejam reflectidas por toda a hierarquia das agregações, de forma a manter-se a coerência dos dados e evitar-se a utilização de informação desactualizada. Técnicas de paralelismo e actualizações incrementais devem ser exploradas na reconciliação de dados [Gupta, A. et al., 1993], [Griffin & Likkin, 1995], [Zhuge et al., 1995].

40 

Veja-se agora a natureza dos custos envolvidos na materialização de vistas, já mencionados nesta secção: o espaço para a sua efectivação; o tempo de materialização (inicial ou reconstrução); o tempo de actualização (refrescamento). O primeiro é de natureza monótona: mais agregações implicam sempre um maior espaço de armazenamento. Cada nova alteração implica não só novos tuplos nas relações base, mas também muitos outros nos subcubos materializados, já que a dimensão tempo tem um carácter eminente, excepto se a granularidade não for considerada muito pequena (ex. mês). Os restantes custos são não monótonos [Bauer & Lehner, 2003], ou seja, a adição de uma nova agregação a um conjunto X prévio pode significar uma diminuição dos custos. Suponha-se a situação mostrada na figura 16. Para simplificar, considere-se que a manutenção é efectuada por geração integral dos subcubos a materializar. Atente no cálculo do custo de cada distribuição X e X’ (que correspondem aos cenários 1 e 2, respectivamente). O custo de materialização de X é de: 18000 (subcubo 1) + 3 x 6000 (subcubos 2, 3 e 4) + 12 (subcubo 5) = 36012; enquanto que o custo de materialização X’ é de: 18000 (subcubo 1) + 2 x 6000 (subcubos 2 e 4) + 2 x 600 (subcubos 3 e 5) + 12 (subcubo 6) = 31212 é menor, apesar de X’=X+(p-m).

41 

É visível neste exemplo que o custo de materialização é nitidamente não monótono. Essa situação é equivalente ao custo de manutenção por reconstrução dos subcubos a materializar, denominada manutenção integral, onde se podem aplicar as técnicas de actualização ou manutenção incremental (através da identificação dos deltas [Mumick et al., 1997]) para alteração das vistas materializadas, sempre que as relações base são modificadas, fruto da actualização dos sistemas transaccionais ou outras fontes externas, decorrentes dos eventos ocorridos no ambiente de negócio. Em regra, os custos de manutenção incremental são menores do que os custos de actualização integral dos subcubos. A razão é simples: as alterações têm um impacto limitado em muito dos subcubos materializados. Esta análise de custo benefício sobre os vários factores intervenientes, mostra que, de facto, o problema de materialização de vista é de natureza complexa. Resumindo: a natureza de I determina a utilidade das agregações do subcubo M; sendo C o custo, Ci(I, M) é monótono em M; Cm(M) é não monótono com M. Dessa forma, dados os custos e o seu comportamento, interessa na natureza de I, seleccionar as agregações M cuja existência se revelar ser mas benéfica, o denominado problema de selecção de vistas ou subcubos a materializar.

Para além da materialização de vistas, a existência de uma politica consolidada de utilização de estruturas auxiliares de indexação contribui também para um acesso eficiente aos dados armazenados nas estruturas multidimensionais [Roussopoulos, 1982], [Harinarayan et al., 1996], [Gupta, H. et al., 1997]. O processamento de querys OLAP pode, de facto, ser optimizado com a utilização de técnicas de indexação, das quais se distinguem: bitmap

indexing, onde cada atributo tem a sua própria tabela de indexação e auxiliam na tradução e

redução das operações do tipo join, comparação e agregação em lógica binária (0,1); join

indexing, que permite registar as linhas de junção de duas ou mais relações de uma base de

dados relacional, reduzindo o custo das operações de agregação OLAP; bitmapped join

indexing, que combina os dois métodos anteriores de modo a acelerar, em alguns casos, ainda

mais o processamento de querys OLAP [Valduriez, 1987], [O'Neil & Graefe, 1995]. Reconciliando a materialização de vistas com uma politica consistente de indexação, é possível aumentar o processamento das interrogações que são lançadas no cubo de dados. Efectuada a materialização dos subcubos, o processamento das interrogações deve ser sempre

42 

efectuado tendo em consideração as operações OLAP que vão ser efectuadas nos subcubos disponíveis (envolve a transformação das condições especificadas numa interrogação de selecção, projecção ou group by em operações do tipo OLAP) e a determinação de quais os subcubos materializados que são importantes para a concretização dessas operações (envolve a identificação dos todos os cubóides materializados, potenciais para responder às interrogações efectuadas, aplicando um filtro - pruning - a esse universo, utilizando o conhecimento de todas as relações dominantes do lattice de dependências). Desta forma, é possível estimar custos tendo em conta os restantes cubóides materializados e seleccionar aqueles cujo preço de cálculo seja menor.