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:

quarta-feira, 20 de junho de 2012

O que é Business Intelligence parte III - Data Warehouse



Olá pessoal, espero que estejam todos bem!
Hoje vou dar continuidade ao post da semana passada. Vou falar, um pouco mais a fundo, sobre Data Warehouse ou DW.
O Data Warehouse é um sistema de computação que inclui um banco de dados de super-capacidade de armazenamento, de Tera Bytes. Projetado para o processamento de sistema OLAP ele pode armazenar anos e anos de dados que são sumarizados, consolidados, periodicamente atualizados e descritivos. Esses dados não sofrem alteração, pois utilizam um sistema OLAP que como o próprio nome diz, é analítico e as transações de inserção ou exclusão de dados não são possíveis deixando-os somente para leitura.
O DW possibilita o a análise de um grande volume de dados retirados ou importados de um sistema transacional (OLTP).
O armazenamento dos dados é feito em um repositório único e de rápido acesso. Esse repositório pode armazenar dados históricos em sistemas como ERPs (http://pt.wikipedia.org/wiki/ERP) ou CRMs(http://pt.wikipedia.org/wiki/Customer_relationship_management). Quanto mais dados do histórico das operações da empresa, melhor para que a analise das informações reflita o momento da empresa.
A figura abaixo ilustra o ambiente do DW:



Uma parte muito importante de um DW são os metadados, são descritos como “dados sobre dados”. Metadados são informações adicionais necessárias para que os dados se tornem úteis, um conjunto de características sobre os dados que não estão normalmente incluídas nos dados.
Os metadados possuem três diferentes camadas:
·         Operacionais
·         Centrais
·         Nível de Usuário
E três diferentes componentes:
·         Mapeamento que descreve como os dados dos sistemas operacionais são transformados antes de entrarem no DW.
·         Histórico que descreva as regras a serem utilizadas nos dados corrigindo-os quando as regras de negócio mudam.
·         Algoritmos de Sumarização que mostram a relação entre diferentes níveis de detalhes dos dados, indicando também qual nível de sumarização é mais indicado para um dado objeto.
As fontes de metadados podem ser Repositórios de Ferramentas CASE, Documentação de Desenvolvimento de Sistemas Operacionais, Código Fonte do Sistema Operacional, Entrevistas e até o próprio Data Warehouse em informações como frequência de acesso ou tempo de resposta de cada consulta.

Característica de um Data Warehouse:

·         Orientação por Assunto
·         Integração
·         Variação no Tempo
·         Não volátil

Orientação por Assunto:
Um DW sempre armazena as informações de acordo com um assunto ou tema para que cada setor da empresa possa consultá-lo obtendo somente as informações importantes para aquele determinado negócio.
Por exemplo, se uma empresa trabalha com vendas de produtos e deseja saber o perfil dos compradores ou clientes, então o DW será voltado para quem compra e não para seus produtos em si.
Integração:
A integração deve ser feita para evitarmos que um mesmo elemento em tabelas diferentes tenha nomes distintos. No DW esses dados precisam estar na mesma escala, ou nomenclatura.




Variação no Tempo:
Os dados em um DW dizem respeito a um período específico no tempo e não podem ser alterados. De fato caso haja algum dado que necessite de alteração é feita uma nova entrada de dados para que a alteração, que foi efetuada no banco de dados fonte operacional, seja registrada.
Não volatilidade:
Após a integração, transformação e inserção dos dados o DW os organiza em blocos para facilitar o acesso.



Arquitetura de um Data Warehouse:
O DW possui algumas arquiteturas e camadas das quais fazem parte as seguintes:
A camada de aquisição de informação é responsável por reunir, refinar, limpar e agregar os dados dos sistemas de produção. O dado deve estar correto e prover um único significado para a tomada de decisão, a camada de armazenamento da informação provê o armazém da informação enquanto a camada de disponibilização da informação suporta o conjunto de ferramentas de apresentação e analise.


Existe uma arquitetura, de Cahaudhuri, que possui dois componentes o Componente de Back End e o Componente de Front End.

·         Componente de Back End: É o conjunto de aplicações responsáveis por extrair, filtrar, transformar, integrar e carregar os dados de diferentes origens.
·         Componente de Fronte End: É o conjunto de aplicações responsável por disponibilizar aos usuários finais acesso ao DW.


Fluxo mais comum:



E é isso, o básico sobre um DW. Obrigado por visitarem o blog e até o próximo post.

Bibliografia: 


quarta-feira, 13 de junho de 2012

O que é business intelligence parte II - OLTP X OLAP


Olá, pessoal.

Vamos continuar desvendando os conceitos básicos do BI.

Hoje falaremos sobre duas ferramentas utilizadas em banco de dados e suas diferenças.
OLTP X OLAP

Vamos começar com o OLTP.
O que é OLTP:
OLTP (On- line Transactional Processing) é um sistema utilizado como base de SGBD (Sistema Gerenciador de Banco de Dados) transacionais ele permite que a realização de comandos básicos como insert, update e delete.  É utilizado pela maior parte das empresas em pequenas transações em tempo real e de forma rápida, como não salvam histórico de dados não são ideais para utilização em suporte a tomada de decisão.
O Ambiente:
O ambiente OLTP é operacional, para leitura e gravação de dados. O acesso aos dados é atômico, ou seja, não é possível maior detalhamento de dados do que ele já apresenta e estes são normalizados.
Seus principais pontos fortes são:
·         Eficiência: A possibilidade da redução de documentos e maior velocidade na resposta dos cálculos de despesas ou retornos são exemplos de como esse sistema pode beneficiar a empresa que o tem como base de seu SGBD.

·         Simplicidade: Ele permite que o acesso aos dados seja mais fácil, rápido e organizado, fazendo com que sua utilização aperfeiçoe processos.

Segue modelo OLTP:


O que é OLAP:
On- line Analytical Processing é um SGBD relacional.
Funciona de forma dedicada à tomada de decisão, possui varias dimensões visualizáveis, hierarquizadas em várias granularidades e segue um modelo lógico multidimensional. São geralmente desenvolvidas para trabalhar em bancos de dados não normalizados.
Os dados presentes neste sistema não podem ser alterados, já que o sistema permite update dos dados, mas não manipulações com exclusão ou modificação direta dos dados.



Sua principal característica é a visão multidimensional, são consultas que fornecem informações sobre os dados presentes em uma ou mais dimensões, mas para entender esse conceito vamos falar sobre outras características:

·         Cubo: É uma estrutura que armazena os dados de negócio em formato multidimensional, tornando-os mais fácil de analisar.
·         Dimensão: É uma unidade de análise que agrupa dados de negócio relacionados. As dimensões se tornam cabeçalho de colunas e linhas, como exemplo linhas de produto, regiões de venda ou períodos de tempo.
·         Hierarquia: É composta por todos os níveis de uma dimensão, podendo ser balanceada ou não. Na hierarquia balanceada os níveis mais baixo são equivalentes, porém, isto não ocorre nas hierarquias não balanceadas onde a equivalência hierárquica não existe. Por exemplo, em uma dimensão geográfica o nível país não possui o subnível Estado para um determinado membro e possui para outro.
·         Membro: é um subconjunto de uma dimensão. Cada nível hierárquico tem membros apropriados aquele nível. Por exemplo, em uma dimensão geográfica existe o nível e seus membros.
·         Medida: É uma dimensão especial utilizada para realizar comparações. Ela inclui membros tais como: custos, lucros ou taxas.




Certo, visto esses conceitos básicos vamos falar sobre os operadores OLAP para navegação.
São eles:
·         Roll-up
·         Drill-down
·         Drill-through
·         Drill-cross
·         Slice
·         Dice
·         Pivot
·         Rank
Vamos começar falando sobre os operadores de navegação ao longo das hierarquias.
·         Roll-up: Abstrai detalhes, navega entre as hierarquias diminuindo nível do detalhe. Ex: Região -> País
·         Drill-down: Aumento o detalhamento dos dados, navegar entre as hierarquias buscando detalhamentos não visualizados. Ex: Região -> Estado
·         Drill-through: Detalha os valores, ao longo de uma dimensão dada além do nível mais baixo do cubo.
·         Drill-across: Detalha vários cubos com dimensões compartilhadas.

Passemos então ao operador retículo de cubos.
·         Slice: Extrai um sub-cubo das células verificando restrições ao longo de uma dimensão.
·         Dice: Extrai um sub-cubo das células verificando restrições ao longo de várias dimensões.

E finalmente os operadores de visualização de resultados.
·         Pivot: O pivot permite diferenciar as visualizações através de trocas de colunas por linhas ou alterando eixos das tabelas.
·         Rank: O rank permite ordenar os dados de uma dimensão de acordo com a medida corrente e serve também como filtro com ordenar os valores de vendas por ordem de data ou do maior para o menor valor.



O OLAP pode ser composto por alguns modelos físicos de dados dos quais os principais são o ROLAP e o MOLAP.

MOLAP:

O modelo MOLAP(Multidimensional On-Line Analytical Processing) armazena os dados de forma multidimensional, sua implementação é frequentemente feita em banco de dados relacional, porém não normalizado na 3ª forma. Seu acesso acontece diretamente no servidor multidimensional e não atinge a granularidade mínima.

ROLAP:
O modelo ROLAP(Relational On-line Analytical Processing) armazena os dados das tabelas relacionais, apresenta dados somente de forma multidimensional e por serem também relacionais apresentam maior compatibilidade com os sistemas, fontes, OLTP. Porém necessita de remodelagem prévia em esquemas especializados que serão modelados em star schema ou snow flake.

Modelo de dados Star Schema(Estrela):

O modelo de dados Star Schema possui uma tabela Fato contendo no mínimo uma coluna por medida agregada e uma coluna por chave de dimensão. Tabelas de dimensão contendo uma coluna para cada atributo descrevendo a dimensão e geralmente uma coluna por hierarquia.
Não se preocupe com redundâncias, pois haverá já que o modelo não possui normalização.



Modelo Snow Flake(Floco de Neve):

O modelo Snow Flake é parecido como o Star Schema. A diferença principal está na normalização das tabelas dimensões. Isso facilita a evolução das dimensões e ajuda a desocupar algum espaço antes utilizado pelas próprias, porém como passa a existir a necessidade de junções para acessar dados normalizados o tempo de resposta acaba ficando maior e talvez até mesmo pela velocidade e facilidade o modelo Estrela seja mais popular.



O DW é utilizado para armazenar informações e o OLAP para recuperá-las, ambos são
especializados para exercer suas funções de forma eficiente. As duas tecnologias são
complementares de modo que um bom DW é planejado com produção de relatórios em mente.
Desta forma, para explorar o DW completamente é necessário o OLAP que irá extrair e
alavancar totalmente as informações nele contidas.

O OLAP e Data Mining são partes integrantes de todo e qualquer processo de suporte à
decisão. Ainda, nos dias de hoje, a maioria dos sistemas de OLAP tem o foco no provimento de
acesso aos dados multidimensionais, enquanto os sistemas de DM lidam com a análise de
influência para os dados de uma única dimensão. As grandes empresas como a IBM, Oracle
estão liberando versões de seus RDBMS que possuem ferramentas de OLAP e DM. Quando os
usuários possuem ferramentas de OLAP e não de mineração de dados, eles gastam boa parte de
seu tempo fazendo as tarefas pertinentes a um DM, como classificações e predições das
informações recebidas.

Bibliografia: 






É isso aí galera, por enquanto. Espero ter conseguido satisfazer curiosidades.

Obrigado pela visita e até o próximo post.


quarta-feira, 6 de junho de 2012

O que é Business Intellingence parte I - Overview


Olá, pessoal espero que estejam evoluindo.
Bom para o post de hoje eu resolvi falar um pouco sobre o conceito de BI (Business Intelligence).

Então, o que é BI?

Inteligência do negócio hoje é uma ferramenta empresarial, mas historicamente remete a tempos imemoriais.  BI nada mais é do que o ato de cruzar informações para obter melhores condições de tomar a decisão mais correta.
Povos antigos já utilizaram dessa “tecnologia”, Persas, Egípcios e outros povos precisaram reunir informações para decidir a melhor época de plantio ou colheita, saber se e quando iria chover ou qual inimigo atacar e quando.
Voltando aos tempos de hoje, o BI é uma “arma” empresarial estratégica para que gestores possam tomar decisões e não dar tiros às cegas utilizando-se de “achismos” infundados. Ele surge na década de 70 em uma época em que não havia bancos de dados ou softwares com interfaces em desktop.  Antes chamado de OLAP ou DW foi renomeado de Business Intelligence por Gideon Gartner , também criador da Gartner Group(http://www.gartner.com/technology/home.jsp).

 Como o BI pode alcançar seu objetivo?

Através da tecnologia vigente, deve-se extrair e integrar os dados de múltiplas fontes. Múltiplas por que algumas empresas possuem um sistema de armazenamento de dados para cada setor. Feito isso esses dados são armazenados no repositório de uma tecnologia chamada Data Warehouse (falaremos sobre ele depois). Essa tecnologia possui um super banco de dados e é orientado a assunto o que facilita a analise para tomada de decisão. Então, analisando os dados contextualizados, analisando causa e efeito, com anos de informações armazenadas em uma fonte uniforme, o gestor pode chegar a uma decisão melhor embasada.


O BI funciona através de algumas tecnologias, são elas:

  Data Warehouse
·         ETL (extract, transform, load)
·         Data Mining
·         OLAP


O Data Warehouse

Segundo:

·         Imon(http://en.wikipedia.org/wiki/Bill_Inmon) – “É uma coleção de dados orientados a assuntos, integrados, variáveis com tempo e não voláteis, para dar suporte ao processo de tomada de decisão.”

·         Kimball(http://pt.wikipedia.org/wiki/Ralph_Kimball) – “É o conjunto de ferramentas técnicas de projeto, que quando aplicadas as necessidades especificadas dos usuários e aos bancos de dados específicos permitirá que planejem e construam um data warehouse.”

O Data Warehouse é um sistema de computação que inclui um banco de dados de super capacidade de armazenamento de Terabytes. Projetado para o processamento de sistema OLAP ele pode armazenar anos e anos de dados que são sumarizados, consolidados, periodicamente atualizados e descritivos. Esses dados não sofrem alteração, são históricos e como veremos o sistema analítico não permite essas transações como inserção ou exclusão de dados.

O ETL:

O ETL é um processo, seu significado é Extract, Transform, Load, pois é exatamente isso.  Através de ferramentas como ODI(Oracle Data Integrator) ou IS(Integration Services) é feita a extração dos dados do banco de dados relacional, a transformação desses dados divergentes  em um padrão e o carregamento dos dados no data warehouse.
É claro este processo não é tão simples, existem alguns procedimentos:
·         Limpeza de dados: Os dados devem ser analisados visando evitar o carregamento de dados contraditórios e para que a extração ocorra somente nos dados que terão importância para o negócio. 
·         Integração dos dados: Faz com que as diferentes fontes de dados possam "conversar" entre si.
·         Carga dos dados: É a cópia ou transferências dos dados para o data warehouse.
·         Atualização dos dados: Claro, como estamos falando de um sistema de tomada de decisão, os dados devem ser atualizados, caso contrário teríamos um sistema obsoleto por defasagem.

O OLAP:

On line Analitical Processing é um SGBDM (Sistema Gerenciador de Banco de Dados Multidimensional).
Funciona de forma dedicada à tomada de decisão, possui varias dimensões visualizáveis, hierarquizadas em várias granularidades e segue um modelo lógico multidimensional. São geralmente desenvolvidas para trabalhar em bancos de dados de-normalizados.
O OLAP é um sistema analítico diferente do OLTP que é transacional. A diferença entre eles está no quadro a seguir:




O Data Mining:

Ou mineração de dados é a utilização dos recursos de BI para a obtensão de dados e geração de relatórios visando auxiliar na tomada de decisão. Faz-se a pesquisa dos dados relacionados a determinado assunto e seu cruzamento fazendo com que as informações importantes sejam identificadas para posterior analise dos dados.

Bom, por enquanto é só, espero ter ajudado a elucidar um pouco do mundo do BI.

Segue os links da bibliografia:

Curiosidades sobre o mercado: