| Incrementando a performance do DW no Brasil |
| Escrito por W.H. Inmon | |
|
Publicado no site www.billinmon.com Sempre que um sistema amadurece e a performance começa a se tornar um problema, uma atividade chamada "ajuste do sistema" começa a ganhar importância. Quando um sistema é ajustado, sua performance melhora, sem que ele sofra alterações amplas e drásticas. Ajustar o sistema é uma atividade consagrada na administração de sistemas desde que se construiu o primeiro sistema de informação.
AJUSTE OPERACIONAL VS. AJUSTE DO DATA WAREHOUSE
O significado e a importância do ajuste do sistema são diferentes no ambiente de data warehouse/ SAD e no ambiente operacional clássico. A primeira razão desta diferença é que a essência do ambiente de data warehouse é o desenvolvimento iterativo.
Ao contrário do ambiente operacional, onde os requisitos do sistema são conhecidos antes da sua construção, no ambiente de data warehouse o desenvolvedor freqüentemente não sabe quais serão os requisitos, até que o sistema esteja construído. Somente quando a primeira iteração do data warehouse está implementada é que o desenvolvedor sabe ao certo o que se passa dentro do sistema. Como esta incerteza é uma parte essencial do ambiente de data warehouse/ SAD, ajustar o sistema após sua construção inicial é absolutamente obrigatório.
Uma segunda diferença entre os ambientes operacional e de data warehouse/ SAD, em termos de ajuste, é a natureza fundamental das transações. As transações operacionais são de missão crítica e requerem um tempo fixo de resposta de dois a três segundos. Elas exigem um alto grau de disponibilidade e cada transação utiliza apenas uma pequena parcela dos recursos do sistema. Já as transações de data warehouse/ SAD não costumam ser de missão crítica e, freqüentemente, utilizam uma enorme quantidade de recursos. É normal um tempo de resposta de cinco minutos (ou mais!) para muitos tipos de transações de SAD. Ademais, considerando que as transações de SAD são empregadas no planejamento de longo prazo e não nas decisões de negócios imediatas, não há um forte argumento de negócios a favor de um tempo de resposta muito rápido. Portanto, a minúcia requerida na engenharia do software para as transações operacionais, simplesmente, não é necessária para as transações de data warehouse/ SAD. Neste sentido, ajustar o ambiente de data warehouse/ SAD não é, de forma alguma, tão crítico quanto ajustar o ambiente operacional.
Um terceiro fator relevante para o ajuste, em ambos os ambientes, é o volume de dados encontrado em cada um deles. O ambiente de data warehouse/ SAD contém uma a duas ordens de magnitude a mais de dados do que o ambiente operacional. Esta notável diferença entre os volumes de dados exige do administrador de data warehouse sofisticadas habilidades de gerenciamento, das quais o ajuste é um componente importante.
O QUE É O AJUSTE DO DATA WAREHOUSE?
No âmbito deste artigo, entendem-se por ajuste do ambiente de data warehouse/ SAD todas as atividades para incremento da performance que não compreendam seja reescrever e reconstruir amplamente o data warehouse, seja uma remoção do data warehouse de uma plataforma de hardware para outra.
O ajuste do data warehouse começa pelo monitoramento da atividade e dos dados que fluem através dos ambientes de data warehouse e de SAD. Se não há monitoramento do ambiente, então o DWA (Data Warehouse Administrator - administrador do data warehouse) está trabalhando no escuro. O DWA tem de saber o que está acontecendo dentro do sistema para ser capaz de ajustar o ambiente. Se não for assim, o ajuste é meramente um exercício de adivinhação. Um monitor não apenas informa ao DWA o se passa dentro do sistema, mas também qual a eficácia das tentativas de ajuste uma vez que o DWA comece a fazer alterações dentro do data warehouse. Portanto é essencial que a atividade e os dados sejam monitorados tanto antes quanto durante o processo de ajuste.
ATIVIDADES DE AJUSTE
A ação de ajuste mais simples consiste em acrescentar índices aos dados, baseado no acesso e na análise que está ocorrendo. Adequadamente empregados, os índices podem reduzir enormemente a parcela dos recursos do sistema necessária à localização dos dados. Contudo há um preço a pagar. Uma vez especificado o índice, deve-se considerar a manutenção necessária toda vez em que se adicionam dados ao data warehouse. Além disso, os índices demandam seu próprio espaço. Mas, no caso de dados freqüentemente acessados pelo mesmo caminho, os índices podem economizar recursos de processamento muito além do seu custo.
CRIAÇÃO DE DATA MARTS
Criar data marts é uma maneira poderosa de incrementar a performance. Com um data mart, o usuário final especifica e extrai um subconjunto seletivo de dados do data warehouse que é customizado para atender às suas necessidades departamentais particulares. Com um data mart, pode-se reduzir tremendamente o volume dos dados, e eles podem ser sumarizados e customizados. Todos esses fatores levam a uma performance muito superior do ponto de vista do usuário final.
Além disso, os dados são isolados numa máquina dedicada às necessidades individuais de um departamento. Com este isolamento, o departamento consegue alavancar a sua performance tanto quanto esteja disposto a pagar. E o custo das máquinas utilizadas no nível de data mart é significativamente menor do que o correspondente no nível de data warehouse. Estas razões fazem dos data marts uma abordagem popular para ganhar performance.
TABELAS DE RESUMO
Uma alternativa aos data marts é a criação de tabelas de resumo em nível organizacional. As tabelas de resumo são abertas e disponíveis para qualquer usuário final do data warehouse, não apenas para o usuário do data mart. Os dados de resumo são acessados muito mais rapidamente do que os dados-base detalhados, que têm de ser recalculados a cada vez em se deseja o resumo. É claro que os dados de resumo requerem espaço. E, para toda unidade de dados de resumo, há um processo de sumarização. Este processo de sumarização é convertido em informações de "metaprocesso", necessárias para descrever a natureza básica dos dados de resumo em si.
REMOÇÃO DOS DADOS DORMENTES
Os dados dormentes são dados que residem no data warehouse sem estarem sendo acessados. Remover os dados dormentes amplia muitíssimo as perspectivas da performance. Os dados dormentes tomam espaço e atrapalham as análises sérias de SAD. Se os dados não estão sendo utilizados, eles não têm cabimento no ambiente de data warehouse/SAD. O efeito dos dados dormentes (na verdade, a presença dos dados dormentes) não costuma ser sentido até o data warehouse ficar razoavelmente grande e maduro. No início de um data warehouse, é quase certo que todos os dados estejam sendo utilizados. Mesmo que haja dados sem utilização, o pequeno volume dos dados iniciais permite aos dados dormentes ficarem ocultos sem efeitos adversos. Porém, conforme o data warehouse cresce, a porcentagem dos dados que não estão sendo utilizados aumenta dramaticamente. Quando um data warehouse contém mais do que 50% de dados dormentes, é hora de expurgá-lo desses dados não utilizados.
SEPARAÇÃO ENTRE FARMERS E EXPLORERS
Uma das classificações úteis dos usuários no ambiente de data warehouse/ SAD é a que os divide entre explorers e farmers. Os explorers são as pessoas que não sabem o que querem, mas saberão quando o encontrarem. Os farmers são os que acessam os dados regularmente e com uma idéia razoável do que querem. Ambos os tipos de usuário são válidos e normais no ambiente de data warehouse/ SAD.
Separar os farmers dos explorers é uma das maneiras mais fáceis e eficazes de incrementar a performance.
Os farmers submetem pequenas solicitações, que acessam uma quantidade uniforme e limitada de dados. Ademais, possuem um padrão de acesso constante. Os farmers descobrem pequenos grãos de ouro regularmente, mas é raro encontrarem pepitas. Eles quase sempre encontram o que estão procurando. Já os explorers não sabem o que estão procurando e submetem solicitações num ritmo bastante irregular. Os explorers examinam imensas quantidades de dados e, muitas vezes, não encontram nada. Ocasionalmente, um explorer descobre uma enorme pepita de ouro. Os padrões de utilização de dados e de sistema criados pelos farmers e pelos explorers são muito diferentes. Estes padrões estão eternamente em conflito um com o outro em termos da utilização do sistema.
O DWA pode incrementar a performance para todos, ao separar as transações submetidas por cada comunidade. As transações dos explorers são executadas após o expediente, enquanto as transações submetidas pelos farmers são executadas durante o dia. Com esta prática, a carga de trabalho começa a ganhar algum grau de previsibilidade.
STAR JOINS/ ESTRUTURAS SNOWFLAKE
Outra técnica muito útil para incrementar a performance é criar star joins. Os star joins (ou seus análogos em maior escala - as estruturas snowflake) são úteis para simplificar o processamento. Num star join, há uma tabela de fato e várias tabelas de dimensão. A tabela de fato é pré-vinculada (prejoin) às tabelas de dimensão, para acomodar o acesso aos dados. Conquanto as tabelas de fato possam incrementar a performance, elas têm de ser utilizadas com cautela. O primeiro problema dos star joins é que eles requerem um conhecimento prévio de como os dados serão utilizados. Caso exista esse conhecimento, então as tabelas de fato e de dimensões fazem muito sentido. Mas, quando não se sabe como os dados serão utilizados, nada garante que o star join vá alavancar a performance. Um segundo problema é que pode haver dois grupos com padrões de utilização definidos porém diferentes. O star join consegue otimizar o acesso baseado em apenas um padrão de acesso. Por esta razão, os star joins estão melhor empregados na otimização da performance de grandes data marts, onde é mais provável haver uma utilização homogênea dos dados.
PARTICIONAMENTO DE DADOS
Outra técnica básica para melhorar a performance dos dados é fazer o seu particionamento fino. O particionamento fino dos dados pode permitir que se obtenha um grau mais elevado de paralelização no seu processamento.
ELIMINAÇÃO DE "PONTOS QUENTES"
É claro que, quando os dados residem numa arquitetura de hardware paralela, identificar e remover os "pontos quentes" pode resultar em grandes ganhos de performance. Obviamente, mesmo quando é possível localizar os pontos quentes, nada garante que eles vão reaparecer. Contudo, ser capaz de identificar a existência de pontos quentes constitui uma informação valiosa para o DWA encarregado de obter uma performance ótima.
RESUMO
Ajustar o data warehouse difere fundamentalmente de ajustar um ambiente operacional. Há muitas técnicas para eliminar os dados desnecessários ou o processamento desnecessário dos dados no âmbito do processamento de SAD. Essas técnicas compreendem:
|