Alguns Conceitos - FTP da PUC

Propaganda
Alguns Conceitos
Data Warehouse
Deter um enorme volume de dados na sua empresa não quer dizer nada. Você
precisa transformar dados brutos em informação.
OLAP
Analisar uma mesma informação de diferentes formas pode ajudar na tomada
exata de uma decisão. Ferramentas OLAP nos auxiliam nessa função.
Data Mining
Data Mining (ou mineração de dados) é o processo de extrair informação
válida, previamente desconhecida e de máxima abrangência a partir de
grandes bases de dados, usando-as para efetuar decisões cruciais.
Data Mart
Agregar a informacao por setores, além de melhorar a performace torna o
acesso mais simples para o usuario final. Os Data Marts nos auxiliam nisso.
Business Intelligence
Business Intelligence é um conjunto de conceitos e metodologias que,
fazendo uso de acontecimentos (fatos) e sistemas baseados nos mesmos,
apóia atomada de decisões em negócios.
Metadados
Sabemos que no Data Warehouse documentar tudo é vital para a
sobrevivência do projeto, pois o DW pode ser um projeto gigantesco e se
não houver uma documentação eficiente ninguém conseguirá entender nada.
Ferramentas de Back End
Por Eliane Martins de Sousa, pós-graduada em Sistemas de Informações Inteligentes pelo CRRM - Université AixMarseille III, (Fr) e Analista de Sistemas da Caixa Econômica Federal
As ferramentas de back end são as responsáveis pelo processo de extração, limpeza,
carga e restauração dos dados utilizados num sistema de Data Warehouse (DW). Essa
etapa é também denominada de ETL - Extração, Limpeza, Transformação e Carga dos
Dados.
Embora tenhamos hoje em dia ferramentas que auxiliam na execução do trabalho,
ainda assim é um processo trabalhoso, complexo e também muito detalhado. As
ferramentas de extração de dados são caras, deve-se adquirir, se for o caso, após a
definição dos requisitos de extração e transformação.
Se a equipe de projetista do DW optar por desenvolver um software, o sistema de
gerenciamento deverá executar, pelo menos, 11 processos ou a maior parte deles,
para que seja possível extrair os dados de um banco de dados de produção e enviá-los
para o DW. O conjunto desses processos é chamado, por Ralph Kimball, de Sistema de
Extração de Dados de Produção - SEDP, os processos são:




Extração primária;
Identificação dos registros modificados;
Generalização de chaves para dimensões em modificações;
Transformação em imagens de registro de carga;







Migração do sistema legado para o sistema DDW;
Classificação e construção de agregados;
Generalização de chaves para agregados;
Carregamento;
Processamento de exceções;
Garantia de qualidade e,
Publicação.
Apesar de existirem ferramentas de ETL como o Data Stage (Ardent/Informix), o
DTS (Microsoft) e o Sagent (da própria Sagent), às vezes é necessário criar rotinas de
carga para atender determinadas situações que poderão ocorrer. Todos tem os seus
diferenciais e cada um poderá ser utilizado dependendo do caso de cada empresa. O
mais importante é que uma ferramenta de ETL tem grande valia, principalmente se os
sistemas fontes (Legado, OLTP e/ou transacionais) que alimentarão o DW forem
muitos, uma vez que essas ferramentas são uma poderosa fonte de geração de
metadados e contribuirão muito para a produtividade da equipe.
Podemos citar cinco operações principais realizadas pelas ferramentas back end:
1.
2.
3.
4.
5.
Extração dos dados de fontes internas e externas;
Limpeza dos dados extraídos;
Transformação;
Carga no DW e,
Atualizações (refresh).
1. EXTRAÇÃO DE DADOS
A extração de dados de fontes externas geralmente é feita através de gateways e
interfaces padrão do tipo ODBC (padrão para acesso a banco de dados do SQL Access
Group Consortium adotado pela Microsoft) ou outras, com diversos produtos já
existentes no mercado.
Para os dados de produção mantidos em um sistema de banco de dados relacional
orientado para transação, várias ferramentas e aplicações utilizando SQL extraem os
dados para um arquivo ou envia-os (um registro por vez) para um aplicativo de
solicitação. Entretanto, se os dados de produção estiverem armazenados em um
sistema proprietário, tal como o pacote de entrada de pedidos de cartões de crédito de
um fornecedor, o formato dos arquivos talvez não seja de conhecimento público,
impossibilitando, às vezes, a leitura direta dos dados, para contornar o problema é
necessário gerar um relatório ou criar um arquivo para descarregar os dados do
sistema de produção.
A catalogação dos sistemas de produção que alimentam o DW é recomendável para
identificação precisa da extração primária dos dados.
2. LIMPEZA DOS DADOS
De uma maneira geral, podemos dizer que o processo de limpeza e transformação
dos dados que serão carregados num sistema de DW serve para corrigir algumas
imperfeições contidas na base de dados transacional, a fim de fornecer ao usuário do
sistema analítico dados concisos e com uma qualidade que permita uma tomada de
decisão baseada em valores mais próximos dos reais.
Idealmente, poderíamos imaginar que os dados deveriam apenas ser convertidos
para padronização de medidas, porém sabe-se que podem existir valores incorretos
numa base de dados transacional, os quais não podem ser propagados, principalmente
no momento em que serão analisados estes dados, muitas vezes comparativamente.
Além disso a limpeza é necessária porque os dados normalmente advém de uma
fonte muitas vezes desconhecida nossa, concebida há muito tempo, contendo muito
lixo e inconsistência. Por exemplo: se a empresa for de cartão de crédito, o vendedor
está mais preocupado em vender o produto (cartão) do que na qualidade de dados que
está inserindo. Se o cliente não tiver o número do RG na hora da venda, o vendedor
cadastrará um número qualquer para agilizar a venda. Se for feita uma consulta
posterior, levando-se em conta o número do RG dos clientes, no mínimo informações
estranhas aparecerão (algo como RG número 99999999-99).
Por isso, nessa fase do DW, faz-se a limpeza desses dados, para haver
compatibilidade entre eles. O processo de limpeza não estará completo sem que se
possa livrar os dados de problemas que, por algum motivo, passaram despercebidos
nos sistemas de origem, tais como: código inválidos e preenchimento de vários
campos com valores incompatíveis entre si. A própria modelagem do sistema OLTP
pode conter "pontos fracos" que permitam, por assim dizer, a existência de dados
inconsistentes, os quais podem e devem ser filtrados antes da carga no DW, podemos
encontrar bases de dados com os seguintes problemas:





Diferenças de unidades: podemos ter campos de idade dos clientes em anos ou
em meses, sendo necessário converter todas as medidas para qualquer uma
das duas (ou todas em anos, ou todas em meses);
Diferenças de precisão: alguns valores de preços de produtos podem estar
representados com duas casas decimais em uma tabela e com quatro casas
decimais em outra tabela, cabendo ao administrador do DW definir qual a
precisão desejada;
Diferenças de códigos ou expressões: em campos que são codificados nos
sistemas transacionais a fim de reduzir o espaço de armazenamento, agilizar e
padronizar a entrada de dados, devemos ter atenção para que não sejam
utilizados atributos para cidade como "RJ" para Rio de Janeiro e noutra base de
dados fonte com o mesmo conteúdo "RJ" representando Roberto Justus. Se o
sistema transacional fonte dos dados for o mesmo, muito dificilmente esta
duplicidade poderia ocorrer;
Diferenças de granularidade: é o caso de um campo que totalize as horas
despendidas para realizar uma determinada tarefa, como reuniões realizadas
num mês que pode ser confundido com outro campo que totalize as horas
gastas com reuniões numa semana, não sendo possível utilizar estes campos
para realizar comparações ou totalizações sem as devidas conversões;
Diferenças de abstração: no caso do campo de telefone ser armazenado com o
DDD separado dos números normais em uma fonte enquanto que noutra fonte
estarem estes números combinados num só campo.
Normalmente as ações de correção das anomalias encontradas não se dá
automaticamente com uma rotina específica, até porque isto poderia ter sido feito já
na própria base transacional. O que se encontra em sistemas deste tipo são rotinas
que listam estes dados para que uma pessoa responsável procure solucionar as
pendências caso a caso, corrigindo inclusive a base original.
O desenvolvimento de rotinas de limpeza e integração de dados a serem carregados
em um DW requer uma série de cuidados e pode tornar-se bastante trabalhosa para
técnicos especializados. Na maioria das vezes é preferível utilizar ferramentas que
foram desenvolvidas para este fim. Neste ponto também pode ser interessante que a
equipe de desenvolvimento do sistema transacional que serviu de fonte para o DW
indique os pontos principais de possível ocorrência de distorções, agilizando o
processo.
Uma ferramenta interessante a ser desenvolvida é aquela que percorre as tuplas de
uma tabela da base transacional e realiza a totalização de ocorrências de cada tipo de
informação, como o atributo de sexo, por exemplo, onde poderiam ser encontradas.
As ferramentas de data auditing servem para localizar e apresentar registros
gravados onde os relacionamentos estejam deteriorados, ou seja, numa relação de
muitos para um, por exemplo, podem existir diversas tuplas de uma tabela
relacionadas a uma tupla que foi excluída em outra tabela, sendo que estas
informações estariam "perdidas" na base de dados pela quebra da relação de
paternidade.
Caso existam tuplas de determinadas tabelas que representem uma mesma
informação mas que estejam definidas com diferentes IDs, pode-se ter uma mesma
cidade com duas siglas diferentes, por exemplo, Brasília com as siglas "BR" e "BSB".
Isto levaria o sistema de extração a concluir que são cidades diferentes, porém o que
ocorreu foi um cadastro duplicado e o ideal seria excluir uma das duas e migrar os
relacionamentos da excluída para a que permaneceria no sistema.
Outro tipo de redundância pode ser encontrado no caso de cadastros de clientes no
sistema de aplicações e outro cadastro de devedores no sistema de empréstimos. A
integração destas duas tabelas deve ser feita a fim de conferir uma maior consistência
ao sistema de DW.
3. TRANSFORMAÇÃO DOS DADOS
O processo de transformação de dados no DW ocorre, dentre outras situações,
devido ao desenvolvimento de sistemas que não levaram em consideração o
compartilhamento de processos e dados quando do surgimento dos sistemas legados.
Uma vez que a origem dos dados podem ser de sistemas diferentes, às vezes é
necessário padronizar os diferentes formatos. Por exemplo: em alguns sistemas a
informação sobre o sexo do cliente pode estar armazenada no seguinte formato : "M"
para Masculino e "F" para Feminino. Porém, em algum outro sistema pode estar
armazenado como "H" para Masculino e "M" para Feminino e assim sucessivamente.
Quando levamos esses dados para o DW, deve-se ter uma padronização deles, ou
seja, quando o usuário for consultar o DW, ele não pode ver informações iguais em
formatos diferentes. Portanto, fazemos o processo de ETL, transformamos esses dados
e deixamos num formato uniforme normalmente sugerido pelo próprio usuário.
Outra situação de transformação de dados, bem comum, enfrentada pelo analista
responsável pela Aquisição de Dados do DW ao examinar um determinado campo de
uma tabela, onde somente são permitidos os valores 1 ou 2, vir uma ocorrência com
um valor 0 (zero) para o atributo. O módulo de transformação deverá mostrar que o
padrão é o valor 1, neste caso, deverá ser substituído de maneira que as regras
definidas no escopo do sistema sejam cumpridas; deve-se transformar estes dados a
fim de que os mesmos obedeçam a um padrão que permitirá futuras comparações sem
que haja a necessidade de executar operações de conversão durante a realização das
consultas, o que possivelmente tornaria o processo de pesquisa extremamente lento e
trabalhoso em alguns casos.
4. CARGA DOS DADOS
O processo de carga do Data Warehouse é uma operação efetuada por processo de
carga/inserção específicos de cada DBMS ou por processos independentes de carga
rápida (Fastload) - é a tecnologia que consegue tempos de carga significativamente
mais rápidos através do pré-processamento dos dados e de dispensa das operações de
verificação de integridade dos dados e de registro das operações efetuadas. Esta
tecnologia substitui uma função especifica de carga do DBMS.
A carga dos dados será feita a partir de um sistema de banco de dados temporário,
no qual os dados devem já ter passado por um processo de limpeza e integração
(transformação). As tabelas que serão atualizadas no sistema de DW devem ser
montadas utilizando-se agregações, sumarizações e ordenações dos dados.
Caso estejamos trabalhando num ambiente distribuído e as tabelas construídas nos
passos anteriores estejam em outro servidor que não seja o do DW devemos então
fazer a migração destas tabelas para este último. Uma vez feita a migração das
tabelas passamos então para a carga propriamente dita.
Alguém poderia imaginar que, a fim de reduzir o tempo total do processo, seria
interessante já realizar a carga durante a migração das tabelas entre os servidores.
Esta operação não é recomendável uma vez que qualquer problema ocorrido durante a
migração teria influências diretas no DW como um todo e tornaria a correção das
falhas muito mais trabalhosa para o administrador do sistema.
Após os dados serem carregados fisicamente no servidor, passamos então para a
carga propriamente dita. Quando utilizamos ferramentas de bulk load oferecidos pelos
SGBDs relacionais, a recuperação dos dados em caso de falha é perfeitamente possível
a qualquer momento. Esta característica confere ao sistema a segurança necessária,
uma vez que problemas podem ocorrer e a consistência do DW deve ser mantida.
A velocidade de carga influencia de forma drástica na performance do sistema. Muitas
vezes são excluídos os índices de ordenação das tabelas a fim de reduzir a quantidade
de controles a serem monitorados pelo BD (Banco de Dados), reconstruindo-as
posteriormente após a conclusão da carga.
4.1 Carregamento de Dados segundo Kimball
Ralph Kimball sugere, em seu livro Data Warehouse toolkit (1998) que a equipe de
projetistas do DW construa um sistema de extração de dados de produção,
normalmente, leva-se de 3 a 5 meses para construção, que deve ser configurado de
forma a minimizar o tempo de manutenção durante o carregamento. Um meio para
fazer isso é espelhar o DW, conforme mostra a figura 1.
Embora o espelhamento esteja associado ao processamento de transações, no DW
ela fornece um alto nível de segurança em casos de falha de uma unidade de disco.
Adicionalmente, em muitos sistemas operacionais, a configuração espelhada executa
praticamente todas as operações de disco cerca de 2 vezes mais rápido do que as
configurações não espelhadas, isto acontece porque o sistema pode optar pelo espelho
capaz de fornecer os dados primeiros durante a realização de uma consulta
(geralmente as consultas são realizadas durante o dia). Essa capacidade está no nível
inferior (na estrutura) do sistema operacional e dos sistema de arquivos e não faz
parte do DBMS (Sistema Gerenciador de Banco de Dados) ou da lógica da aplicação.
À noite, durante a carga de dados, o espelhamento é deliberadamente interrompido.
Se a máquina do DBMS for um multiprocessador (tanto SMP - Multiprocessador
Simétrico, quanto MMP - Processador Massivamente Paralelo), uma fração dos
processadores poderá dar continuidade às consultas em um dos espelhos cujos dados
permanecem inalterados, enquanto os outros processadores iniciam a carga dos dados
que serão modificados. Isso permite que a máquina fique disponível para consulta
praticamente 24 horas, além de possibilitar que um ciclo de carregamento extenso e
complexo de dados e índices seja completado.
Ao final da fase de carregamento, há uma verificação da qualidade dos dados do
espelho que foi modificado. Se a qualidade dos dados for assegurada, o primeiro
espelho será mantido off line para que seja realizada uma transferência de dados do
tipo todo-disco-para-todo-disco. Mesmo em um sistema de grande porte, esse
processo pode ser executado em menos de uma hora. Após a conclusão da
transferência, o espelhamento é restabelecido e o sistema retorna para on line.
Se não for possível garantir a qualidade dos dados, toda a transferência todo-discopara-todo-disco poderá ser feita no sentido inverso, restaurando dessa forma a
configuração exata do dia anterior.
Para o carregamento de tabelas muito grandes é necessário criar um índice de tabela
de fatos segmentável. Como a maioria dos carregamentos noturnos (semanais ou
mensais) anexa dados ao final de uma seqüência de tempo, será extremamente útil se
pudermos dar um drop no índice mestre da tabela de fatos apenas para o período de
tempo mais recentes, em vez de fazê-lo para a tabela toda. Isso permite que a carga
dos períodos de tempo mais recentes seja executada com maior rapidez do que se o
índice permanecer no local, e permite que a parte do índice em que foi dado um drop
seja reconstruída rapidamente quando o carregamento estiver concluído. Vários dos
sistemas gerenciadores de banco de dados possuem índices segmentáveis.
5. ATUALIZAÇÃO DOS DADOS (REFRESH)
A todo momento são realizadas alterações na base de dados transacional. Estas
modificações, inclusões de novas tuplas, cadastros de novos dados, devem ser
atualizados para o DW (Data Warehouse) a fim de que este esteja condizente com a
atualidade das fontes de origem.
Existem sistemas que são programados para detectar automaticamente a ocorrência
de mudanças significativas nas fontes, tornando o processo de atualização ou refresh
mais transparente para o usuário e também para o administrador do DW. Em muitos
casos não existe esta característica nos sistemas transacionais. Podemos, então,
adotar três alternativas na tentativa de detecção e extração destas modificações:
a) Alterar a aplicação que gerencia a fonte de informação a fim de enviar notificações
destas alterações para o DW. Isto somente é possível quando se tem o código-fonte
dos sistemas e ainda quando se dispõe de tempo para realizar estas mudanças neste
código;
b) Analisar o arquivo de log do sistema procurando por modificações significativas. Isto
existe no sistema Data Propagator da IBM. O problema desta solução reside no fato de
que os administradores normalmente não aceitam fornecer permissões de acesso ao
sistema uma vez que isto coloca em risco a segurança do mesmo;
c) As modificações são detectadas através da comparação do dump corrente da fonte
com um dump emitido anteriormente. À medida que os dados das fontes aumentam, o
número de comparações deve aumentar, o que acaba por inviabilizar o processo.
Em ambientes onde existem DMs (Data Marts) departamentais ou funcionais além do
DW, tem-se a necessidade de definir uma política de entrega de novos dados a todos
os bancos. Muitos projetos contemplam a utilização de um servidor de replicação na
arquitetura de distribuição dos dados. Um Servidor de Replicação consiste numa
aplicação sofisticada que seleciona e particiona dados para distribuição a cada um dos
DMs, aplicando restrições de segurança, transmitindo uma cópia dos dados para os
locais adequados e criando um log de todas as transmissões.
A cada etapa final do processo de carga de produção diária a comunidade de
usuários deve ser informada sobre a consistência da carga, a totalização da carga do
dia anterior e as áreas a serem usadas ou evitadas. Isso deve tornar-se uma fonte de
referência de rotina para os usuários.
CONCLUSÃO
A etapa de ETL é uma das mais críticas de um projeto de DW, pois uma informação
carregada erroneamente trará conseqüências imprevisíveis nas fases posteriores. O
objetivo desta fase é fazer a integração de informações de fontes múltiplas e
complexas.
A utilização de Ferramentas Back End adquiridas ou desenvolvidas, de acordo com a
opção da empresa, agiliza os processos e minimizam os eventuais prejuízos advindos
das experiências do tipo "tentativa e erro", além de reduzir o tempo de realização
desta etapa do DW, que, geralmente, costuma ser subestimado pelos projetistas,
variando entre 7 a 9 meses e, em alguns casos, até 1 ano.
A complexidade de tarefas necessárias para se desenvolver um sistema de extração
de dados e mantê-lo funcionando exige novas funções na área de informática, tais
como:









Analista de extração - responsável pelas especificações funcionais e análise de
requisito;
Programador de extração - programa a extração dos dados de produção,
identifica os registros modificados, atribui novas chaves e prepara imagens de
registros de carga para a migração para o DW;
Mediador de extração - avalia o extrato diário, define quais modificações de
atributos de dimensão devem ser rastreadas com chaves de dimensão de
modificação lenta e negocia com o pessoal da produção os prazos necessários
para transmissão dos dados e para a modificação de alterações de dados e de
formatos;
Gerente da tabela de dimensão mestra - mantém as dimensões mestras
corporativas, tais como: produto, cliente, campanhas, equipe de vendas e
demais dimensões centrais ou administrativas semelhantes, cria e atribui
chaves, incluindo a manipulação de chaves de dimensão de modificação lenta e
chaves de agregados;
Programador de garantia de qualidade de tabelas de dimensão - responsável
pelo preenchimento de atributos textuais em tabelas de dimensão e pela
correção dos erros e de pequenas variações;
Gerente de monitoramento de agregados - monitora as estatísticas do
navegador de agregados e constrói novos agregados e as divulga aos usuários
do DW a fim de tornar as consultas anteriormente longas, cada vez mais
rápidas;
Gerente de garantia de qualidade de carga de dados - avalia o carregamento
diário do DW, define se é adequado liberar nova carga de dados para os
usuários e informar aos usuários sobre o status do data warehouse;
Gerente de backup e recuperação do DW - responsável pelo cópia dos arquivos
e pela recuperação da transação de cada dia contendo milhões de registros;
Gerente de metadados do DW - fornece espaço e suporte a todos os tipos de
metadados associados à carga de dados da produção, do navegador de
agregados e das ferramentas de consulta (Front End) e geração de relatórios.
Isto inclui tabelas de comparação para localizar registros modificados nos
sistemas de produção, assim como o status da chave atual para permitir a
formulação de novas chaves de dimensão.
Download