quarta-feira, 27 de junho de 2012

O que é business intelligence parte IV - ETL


Olá, pessoal. Espero que eu esteja ajudando vocês nesse início de aprendizado sobre o BI.
Já vimos definição de BI e um básico sobre OLAP e DW. Hoje vou falar sobre ETL.
O ETL (Extract, Transform and Load) é um processo destinado à extração transformação e carga de dados vindos de um banco transacional para um DW.
Nesse processo são obrigatórias às fazes de extração e carga já que se os dados estiverem no mesmo formato ou linguagem do destino não será necessário a faze de transformação.

O que é ETL:
O processo de ETL é o mais longo e trabalhoso da faze de construção de um BI, pois é a extração dos dados de uma base transacional de origem, transformação, limpeza desses dados e carregamento no DW.


Extração:
Segundo Inmon é normal que aproximadamente 80% dos esforços de um BI sejam concentrados neste processo, já que para o funcionamento correto do BI proporcionando análises confiáveis os dados devem refletir a pura verdade e nada mais, o que faz do ETL um processo que deve ser pensado e realizado com cuidado.
Esta etapa do processo deve se basear na busca das informações mais importantes em sistemas fontes ou externos e que estejam em conformidade com a modelagem do DW. Essa busca, na maioria, é dificultada pelo fato de as informações estarem armazenadas em fontes distintas de dados. Num primeiro momento é normal que a carga inicial seja feita para que todos os dados do sistema origem sejam transferidos para uma área do DW chamada de Stage e posteriormente passada para a área chamada ODS, também no DW. Após isso as demais cargas serão incrementais que segundo Kimball é a mais eficiente e carrega somente os registros que foram alterados ou inseridos na base origem.

Transformação:
A etapa seguinte à extração é a transformação, nesta fase faz-se também a limpeza dos dados. Verificam-se erros de digitação, restrições de permissão dos bancos (quando o há alguma restrição do tipo o usuário não pode inserir no DW), padronizam-se as abreviações, etc.
Para garantir a qualidade dos dados o devemos observar o seguinte:
·         Unicidade: Evitar duplicações de informação.
·         Precisão: Os dados não devem perder suas características originais assim que são carregados no DW.
·         Completude: Não deve gerar dados parciais dos dados importantes para a análise.
·         Consistência: Os dados devem ser coerentes com os dados das dimensões, devem ter forma homogênea para a carga no DW.
Enquanto busca-se a homogeneidade dos dados podem ocorrer dois tipos de conflitos:
Semânticos: São aqueles que envolvem a palavra ou o nome associado às estruturas de modelagem, como ter o mesmo nome para entidades distintas.
Estruturais: São os que dizem respeito à própria estrutura da modelagem e os mais típicos são:
·         Diferenças de unidades: Quando as unidades utilizadas diferem, embora forneçam a mesma informação. Como uma distância em metros ou em quilômetros.
·         Diferenças de precisão: Quando a precisão escolhida varia de um ambiente para outro. Se um valor monetário é armazenado (10,2) dez casas antes da vírgula e duas depois ou (10,6) dez casa antes da vírgula e seis depois.
·         Diferenças em códigos ou expressões: Quando o código utilizado difere um do outro. Por exemplo, quando o sexo é definido com código M(masculino) e F(feminino) ou (1) masculino e (2) feminino.
·         Diferenças de abstração: quando a forma de estruturar uma mesma informação segue critérios diferentes. Quando um endereço está armazenado em uma coluna ou em várias separado em nome da rua, número, complemento, etc.
 Depois de termos identificado os conflitos criamos regras de conversão que visam exatamente corrigi-los. Essas regras podem ser criadas através de ferramentas de integração
Após essas observações pode-se iniciar o processo de carga.

Carga:
Nesse momento são carregados os dados das Dimensões e da Fato. Este processo pode ser bastante demorado e requerer muito recurso de processamento, procura-se torná-lo mais curto, pois o DW será utilizado constantemente. Por isso devemos tomar alguns cuidados. Como:
·         Desligamento de índices e referências de integridade (isso pode prejudicar a validade dos dados, pois não são validados no momento da inserção).
·         Utilização de comando tipo TRUNCATE ao invés de DELETE já que nos sistemas atuais esse recurso não gera armazenamento de informações em áreas de recuperação de dados.
·         Ter consciência de que alguns dados podem não ser carregados no momento da carga e assim devemos verificar os motivos para que possamos solucionar o problema.
 Após as dimensões estarem corretamente carregadas, já é possível iniciar a carga da fato, que depois de modelados para conter apenas os dados de importância para a empresa, direcionam quais regras serão utilizadas como, por exemplo, filtros do que serão inserido ou somas a serem realizadas, provocando o aparecimento de regras que passaram despercebidas no início da modelagem.
No entanto, a fato demanda cuidados na sua carga, como o uso das chaves artificiais das dimensões para que se tenha uma integridade referencial, controle de valores nulos obtidos no momento da transação para que não gerem a falta de integridade referencial como datas que, estando nulas, invalidarão o histórico do fato. Técnicas para amenizar o processo devido ao grande volume de dados podem ser usadas, como a carga incremental da fato, que irá carregar apenas dados novos ou alterados, execução do processo em paralelo e em momentos de pouco ou nenhum uso do SGBD e a utilização de tabelas auxiliares que serão renomeadas como definitivas ao fim da carga.

A figura abaixo mostra o ciclo do ETL em um DW


Para nós do BI o ETL aplica-se na construção do DW, porém pode-se usa-lo em qualquer tipo de trabalho envolvendo importação, transformação e carga de dados.

Este é o básico sobre ETL, este conceito é um pouco difícil de digerir sem um exemplo real, mas como sempre a base também é importante para identificarmos os passo em nosso dia-a-dia. Obrigado pela visita ao blog e até o próximo post.

Bibliografia:

Nenhum comentário:

Postar um comentário