Data Warehouse e BI – Parte II

Posted on setembro 15, 2010

4


Pessoal, boa noite!

Bem dando continuidade aos post’s de Data Warehouse…

No Ambiente de BI (Business Intelligence), temos alguns termos que usamos com frequência, segue alguns.

Retrieves Data (Recuperação de Dados)

A recuperação de dados significa de onde os dados serão extraídos, de onde os dados serão recolhidos, aonde os dados serão encontrados para a análise e tratamento dessas informações. Podemos falar que a recuperação de dados é representada pela nossa rotina de ETL (Extract, Transform, Load), ou seja extração, transformação e carga dos dados. Essa rotina é uma das mais importante em todo o processo da construção de um Data Warehouse. Essas transformações dos dados podem ser utilizadas para avaliação dos dados, transformação de campos, validação dos dados, limpeza dos dados e dentre vários outros processos que temos em uma construção de BI. A parte de “Limpeza dos dados” é de extrema importância para a realização de um bom trabalho, nessa parte do processo de construção de nossa estrutura, temos que ter bastante paciência e saber analisar bem todos os dados, porque é a partir da análise dos dados que poderemos fazer um bom trabalho de DATA CLEANSING (Limpeza de dados) no qual esse processo está ligado ao tópico de DQ (Data Quality) ou Qualidade de Dados, que será bem explicada posteriormente.

Consolidates Data (Consolidação dos Dados)

Nessa parte passamos a entender bem o conceito de união, junção dos dados. Os dados de várias fontes de dados como banco de dados transacionais, planilhas em excel, arquivos em txt, arquivos em access e dentre outros passam a ser consolidados. A consolidação nos traz os benefícios de unificação dos dados, transparência dos dados, melhor visualização dos mesmos e nos traz  tambêm alguns conceitos como: Disponibilidade dos Dados, Periodicidade dos dados, definições dos dados, conversão dos dados para a unificação do mesmo e consolidação.

Dimensional Data Store ou DDS (Armazén de Dados Dimensional)

O DDS é uma sistema que recupera os dados de fonte de dados e coloca os dados em Armazenamento Dimensional ou normalizado. O DDS é um dos banco de dados contendo uma coleção de DATA MARTS.

DATA MART = É um grupo de tabelas de FATOS e suas DIMENSÕES correspondentes que contém medidas de BI. Um DDS pode ser representado de algumas formas, nos caso quando dizemos isso, estámos nos referenciando ao modo de construção física do nosso projeto. Em um banco de dados relacional temos o MER (Modelo Entidade Relacionamento) que nos mostra a forma que devemos moldar o banco de dados fisicamente. Como explicado anteriormente  a base de dados relacional está em um ambiente OLTP(Online Transactional Processing). Para entrarmos em dimensões e em sistema aonde temos a facilidade de termos consultas mais otimizadas, grupamento de dados mais sofisticados, entramos em um sistema OLAP (Online Analytical Processing) ou seja dentro do nosso sistema temos alguns tipos de modelagem específicos.

Os dois mais importantes são: Star Schema (Esquema Estrela) e Snowflake Schema (Esquema Floco de Neves).

Star Schema = É um modelo aonde temos uma facilidade maior para realizar a construção, mais em contrapartida temos  redundãncia de dados.

Snowflake Schema = É um modelo aonde não temos tanta redundância dos dados mais depedendo da quantidade dos dados teremos perda de performance.

Mais na frente explicarei bem a diferença deles.

Segue foto dos dois modelos.

Star Schema.

Snowflake Schema.

Com a visualização dos dois modelos conseguimos ver uma boa diferença entre as estruturas!

History (Histórico)

Esse tópico é super interresante de se escrever, bem vamos lá!

Qual é a grande diferença entre um sistema transacional e um sistema de data warehouse?  A grande diferença entre eles é exatamente a capacidade de armazenamento dos dados históricos. A maioria dos sistemas transacionais guardam alguma parte de histórico dos dados, mais em um sistema de data warehouse armazena-se grandes motantes histórico de dados. Por exemplos, em relação a tabela de clientes, devemos guardar sempre a tabela de pedidos, em um sistema de data warehouse, dependendo do ambiente como um todo, conseguimos guardar 10 a 15 anos de informação dos dados, aonde em um sistema transacional depois de algum tempo, temos que realizar o Purge of Data, ou seja expurgar os dados.

Como o data warehouse já é moldado para o armazenamento de dados históricos as tabelas tem o costume de serem muito grandes.

Vamos ha um exemplo: vamos imaginar uma cadeia de supermercados com 100 filiais. Cada filial apresenta 1.000 clientes por dia, que realiza 10 compras cada um. Isso significa 100 (clientes) x 1000(Filiais) x 10(itens) = 1 Milhão de registros de vendas por dia. Só para termos um idéia, em um ano temos 365 Milhões de registros, e ainda vamos mais longe, se armazenarmos 10 anos de dados temos “somente” 3.65 Bilhões de registros. Será que é um grande volume de dados?! rs

Muito importante tambêm falar dá atualização dos dados, consulta e backup de todos os dados. Temos alguns recursos para a disponibilidade dos dados como Partitioning (Particionamento) dos dados, ou seja temos como colocar o data warehouse em vários arquivos, fazendo com que ele tenha um maior performance, temos tambem o Parallel (Paralelo) um processo aonde uma consulta pode ser divididas em várias pequenas consultas para assim poder ter um melhor tempo de reposta.

Query (Consulta)

A parte de consulta é o processo de obter os dados de um local de armazenamento de dados, satisfazendo um critério especificado.

Geralmente os armazenamentos de dados são sistemaas transacionais que são usados por vários usuários. Um dos grandes recursos de um sistema transacional é a capacidade de ter vários usuários atualizando e selecionando os dados no mesmo tempo. Sendo assim o sistema tem que apresentar um grande controle de transações. já se você armazenar os dados em somente um local, todo esse processo fica bem mais simples, não temos que realizar todo esse processo em pedaços, o que dificulta muito para manter a consistência dos dados.

Updated in Batches (Atualização em Lotes)

Um sistema de data warehouse é usualmente um sistema de somente leitura, aonde os usuários não estão aptos a atualizar ou deletar os dados. Somente quem realiza a atualização e composição dos dados para um sistema de data warehouse é o processo de ETL (Extração, Tranformação e Carga)  que traz os dados de um sistema OLTP. A razão de não permitir os usuário atualizarem o data warehouse é manter a consistência dos dados.  E a grande razão de um sistema de data warehouse somente atualizar seus dados em Lotes é para manter a estabilidade do sistema.

Bem pessoal por hojé é só, como disse no post anterior, realmente a parte de conceitos é um pouco cansativa, mais temos que estar com ela bem estrutura na cabeça para podermos realizar um bom projeto.

Att,

Luan Moreno M. Maciel

MCTS SQL Server 2005.

Marcado:
Posted in: Data Warehouse