Pensando o desempenho no data warehouse

 

O mercado competitivo levou, nas últimas décadas, o investimento de muitas organizações em soluções capazes de transformar seus dados em um ativo capaz de prover inteligência ao seu negócio; as soluções de Business Intelligence – doravante BI.

 

Neste cenário, com o aprimoramento das ferramentas e a evolução na capacidade analítica dos gestores, tornaram essas soluções populares dentro das organizações. Essa situação, entretanto, pressiona as mesmas organizações por um melhor desempenho de suas soluções de BI que se dilatam em volume de dados para atender a um público igualmente crescente e, em algumas situações, de perfil antagônico.

 

Como componente principal dessas soluções, o Data Warehouse – doravante DW – tem recebido vultosos investimentos, na forma de monitores de desempenho e mão-de-obra especializada, na busca do “elixir” capaz de incrementar seu o desempenho. Contudo, esses e outros recursos, aplicados pontualmente com base em um mosaico de conhecimentos sobre a organização, conduzem a resultados de curto prazo, mas não perenes e que podem ainda exaurir seu ambiente computacional.

 

Tal fato reflete o desconhecimento, por parte de muitas organizações, da dimensão que envolve o desempenho do DW. A seguir, discute-se essa questão cujo sucesso – enquanto quesito de qualidade – depende de uma preocupação e atuação contínuas e ordenadas, pautadas em insumos mutáveis ao longo do tempo.

 

Desempenho: uma questão de ação constante

 

Pensar no desempenho do DW tem início na modelagem física e perdura durante toda a sua operação dentro de uma organização. Desta maneira, faz-se necessário um conjunto de ações coordenadas e institucionalizadas cujo objetivo é sustentar um patamar de desempenho adequado para a organização suportar seus os processos de tomada de decisão.

 

Por envolver diferentes conhecimentos técnicos e do negócio, essas ações devem ser devotadas a uma equipe multidisciplinar – projetistas do DW, responsáveis pelo Capacity Planning da infra-estrutura que suporta o DW, entre outros –, que, inclusive, propicia sua institucionalização – suporte econômico – e facilita seu gerenciamento por parte da organização.

 

A atuação dessa equipe perpassa os processos de Desenvolvimento, de Manutenção e de Administração necessários para uma organização assegurar a efetividade da evolução de seu DW. Neste último processo, foca-se o monitoramento da utilização, enquanto nos demais, têm-se o acompanhamento da modelagem física.

 

Os insumos para o pensar em Desempenho

 

As ações supracitadas devem ser balizadas por um conjunto de informações, conforme apresentado na figura 1.

O DW, além dos dados estruturados, evoluiu para acomodar também dados semi-estruturados e textuais. Disponibilizá-los com um ponto de vista histórico e integrado, bem como estruturados de forma a propiciar sua evolução incremental, o projeto do DW requer a aplicação das técnicas de Modelagens Conceitual, Lógica e Física.

 

As duas primeiras preocupam-se com a compreensão do negócio e sua representação implementável em um SGBD, respectivamente. Já modelagem física, por sua vez, parte desse conhecimento para, aplicando recursos de otimização e limitações de ordem prática, conceber um modelo final que atenda a expectativa de desempenho.

Figura 1 – Insumos utilizados na Otimização do DW

17-10-2007pic01.JPG 

  

A expectativa de desempenho descreve o nível de serviço formalmente definido pelas áreas usuárias quanto a tempo de resposta e disponibilidade de informações. Complementam-na as descrições das transações ou consultas a serem realizadas, estudos de crescimento volumétrico de dados e usuários e a própria estratégia de BI traçada pela organização.

 

Os vários recursos empregados na otimização – ver Tabela 1 – apresentam especificidades que impactam o DW de modo desigual. Posto isso, conhecer essas particularidades torna-se essencial à medida que possibilita à equipe, com foco em desempenho,  ponderar os prós e contras de cada recurso – inclusive no quesito financeiro – frente à expectativa do desempenho delineada.

Tabela 1 – Visão geral dos recursos aplicados na Otimização do DW

Recursos

Características Gerais

Compressão de Dados

Consiste em utilizar recursos – em alguns casos do próprio SGBD utilizado – de compressão dos dados de tabelas ou índices.

Configuração do SGBD

Consiste em parametrizar os vários elementos que compõe o SGBD de forma que sua operação esteja alinhada às características de um ambiente de suporte à decisão.

Derivação de Dados

Consiste em deixar pronto para o consumo dados originados de expressões aritméticas ou operações complexas cujo uso é intenso como resultado ou condição em instruções SQL.

Desnormalização

Consiste em simplificar a estruturação de tabelas, transgredindo os esquemas propostos pelas Formas Normais, com o objetivo de reduzir o número de relacionamentos, porém, introduzindo a redundância de dados.

Estratégia de Indexação

Consiste em identificar os pontos do sistema com transações e acessos críticos e avaliar os recursos de indexação adequados à situação, contrapondo os respectivos benefícios e custos – de CPU, de I/O e consumo de discos.

Estruturação Multidimensional de Dados

Consiste em modelar as informações – métricas –, representando as diferentes perspectivas – dimensões – pelas quais essas são analisadas. Essa estruturação possibilita acesso direto às métricas críticas ao negócio e, geralmente, é aplicada conjuntamente a estrutura normalizada de forma a garantir a geração de novas métricas que esta última propicia.

Expansão do Ambiente Computacional

Consiste em avaliar quais componentes ou tecnologias são mais adequadas para a aplicação no hardware e/ou Sistema Operacional que dão suporte ao DW. Essa avaliação pode considerar o uso de tecnologias de Processamento Paralelo, Multi-threading, Computação em Grade, Near Line Storage, entre outros.

Otimização do SQL

Consiste em identificar instruções SQL cujo desempenho é inadequado ou suspeito, averiguando se isso se deve a sua construção inadequada ou é influenciado por outros fatores como, por exemplo, índices ineficientes.

Particionamento Horizontal de Tabelas

Consiste em identificar a freqüência de uso das linhas de uma tabela, separando aquelas mais utilizadas daquelas com uso menos freqüente. As últimas são acomodadas em uma nova tabela.

Particionamento Vertical de Tabelas

Consiste em identificar a freqüência de uso das colunas de uma tabela e gerar uma nova com aquelas pouco utilizadas.

Separação de Dados Dormentes

Consiste em secionar dados dormentes ou pouco utilizados dos dispositivos de armazenamento de alto desempenho, colocando-os em dispositivos mais lentos e baratos que ainda podem ser acessados por meio de consultas utilizando a tecnologia Near Line Storage.

Sumarização de Dados

Consiste em criar tabelas com informações agregadas, regularmente utilizadas, reduzindo o esforço de montagem de Data Marts ou Relatórios, por exemplo. Essas agregações, geralmente, referem-se a conceitos do negócio frequentemente utilizados como: Faturas de Clientes, Contratos de Clientes, entre outros.

 

Conclusão

 

Pensar em desempenho constitui em um exercício complexo de equilíbrio entre recursos e desejos naturalmente antagônicos. Esse “pensar”, então, não se configura por uma reação a momentos cujo desempenho beira o inaceitável, mas sim por ações pró-ativas e coesas de análise, planejamento e monitoramento.

 

No cenário atual das soluções de BI, seus responsáveis são demandados por suprir, em ciclos cada vez mais reduzidos, as informações indispensáveis aos processos de gestão empresarial. Historicamente, essa situação impacta negativamente as atividades que tratam de quesitos alicerces do DW, como o desempenho. Subestimá-lo, porém, pode levar a organização a experimentar reestruturações profundas no seu DW – como o modelo físico de dados – comprometendo recursos escassos e o atendimento das áreas usuárias.