SCC0141 - Bancos de Dados e Suas Aplicações Data Warehouse e OLAP Prof. Jose Fernando Rodrigues...

Post on 17-Apr-2015

111 views 1 download

Transcript of SCC0141 - Bancos de Dados e Suas Aplicações Data Warehouse e OLAP Prof. Jose Fernando Rodrigues...

SCC0141 - Bancos de Dados e Suas Aplicações

Data Warehouse e OLAP

Prof. Jose Fernando Rodrigues Junior

1

Introdução

No início, uma única fonte de dados

Exemplo: primeira loja do grupo Casas Bahia.

No início, uma única fonte de dados

Mais tarde

Exemplo: primeira cidade ocupadapelo grupo Casas Bahia.

E assim sucessivamente

Exemplo: primeiros estados ocupadospelo grupo Casas Bahia.

Finalmente

Exemplo: Brasil (primeiro país?)ocupado pelo grupo Casas Bahia.

Até que…

O que está acontecendo nas minhas lojas?

- O que é vendido mais?- Quando?- Por qual loja?- Qual a melhor loja?- Quanto estou faturando?- Qual seria uma boa oferta?- As vendas cresceram ou subiram?- Quais regiões vendem mais?- ...

Até que…

O que está acontecendo nas minhas lojas?

- O que é vendido mais?- Quando?- Por qual loja?- Qual a melhor loja?- Quanto estou faturando?- Qual seria uma boa oferta?- As vendas cresceram ou subiram?- Quais regiões vendem mais?- ...

Soluções:1) Ir até cada uma das lojas e perguntar;

Pouco viável.

Até que…

O que está acontecendo nas minhas lojas?

- O que é vendido mais?- Quando?- Por qual loja?- Qual a melhor loja?- Quanto estou faturando?- Qual seria uma boa oferta?- As vendas cresceram ou subiram?- Quais regiões vendem mais?- ...

Soluções:2) Usar os dados das lojas para analisar o que está acontecendo no meu negócio.

Boa idéia!!!

Até que…

O que está acontecendo nas minhas lojas?

- O que é vendido mais?- Quando?- Por qual loja?- Qual a melhor loja?- Quanto estou faturando?- Qual seria uma boa oferta?- As vendas cresceram ou subiram?- Quais regiões vendem mais?- ...

Soluções:2) Usar os dados das lojas para analisar o que está acontecendo no meu negócio.

Boa idéia!!!

Mas...

Impecilhos ao uso dos dados…

- Diversos sistemas de bancos de dados em uso nas lojas; depende do gerente que o implementou: PostgreSQL, Oracle, DB2, SQLServer, ...

- Cada loja, um controle transacional diferente, de acordo com suas necessidades regionais;

- Esquemas diferentes, tipos de dados diferentes, distribuição geográfica, falta de interconexão.

Impecilhos ao uso dos dados…

- Diversos sistemas de bancos de dados em uso nas lojas; depende do gerente que o implementou: PostgreSQL, Oracle, DB2, SQLServer, ...

- Cada loja, um controle transacional diferente, de acordo com suas necessidades regionais;

- Esquemas diferentes, tipos de dados diferentes, distribuição geográfica, falta de interconexão.

Total falta de conformidade!!!

E muitos, muitos dados!!!

O que fazer?

O que é necessário?

- 1) Recolher (extrair) os dados não importando qual o tipo do sistema de dados;

- 2) Padronizar (transformar) os dados, para terem um significado comum mesmo que, originalmente, codificados de maneira diferente; resolução de dados ausentes e espúrios;

- 3) Unir (carregar) os resultados das duas operações em um único sistema capaz para responder às minhas perguntas.

O que é necessário?

- 1) Recolher (extrair) os dados não importando qual o tipo do sistema de dados;

- 2) Padronizar (transformar) os dados, para terem um significado comum mesmo que, originalmente, codificados de maneira diferente; resolução de dados ausentes e espúrios;

- 3) Unir (carregar) os resultados das duas operações em um único sistema capaz para responder às minhas perguntas.

Complicado.

Como fazer então?

Mas há uma solução

OracleModelagem

x

SQLServerModelagem

z

DB2Modelagem

y

OracleModelagem

u

SQLServerModelagem

w

DB2Modelagem

v...

Loja 1 Loja 2 Loja 3 Loja n-2 Loja n-1 Loja n

Data warehouse

Extrair, transformar, carregar dados

Mas há uma solução

ETL – Extract Transform Load O processo descrito de se extrair

(Extract), transformar (Transform) e carregar (Load) os dados a partir das diversas fontes de dados é denominado ETL

ETL – uma das camadas principais da arquitetura de um data warehouse Consolidação de dados

ETL – Extract Transform Load O processo descrito de se extrair

(Extract), transformar (Transform) e carregar (Load) os dados a partir das diversas fontes de dados é denominado ETL

ETL – uma das camadas principais da arquitetura de um data warehouse Consolidação de dados

Extrair, transformar, carregar dados

ETL – Extract Transform Load

Extração/transformação (Extract/Transform) de dados extração de múltiplas fontes consolidação e integração de dados de múltiplas

fontes limpeza e validação conversão dos dados para o modelo do DW

ETL – Extract Transform Load

Carregamento (Load) de dados armazenamento de acordo com o modelo do DW criação e manutenção de estruturas de dados criação e manutenção de caminhos de acesso tratamento de dados que variam no tempo suporte a atualização

refresh purging (eliminação)

Conceitos

O que é exatamente?

“Data Warehouse é uma coleção de dados orientados por assunto, integrada, não-volátil, variante no tempo, que dá apoio às decisões de administração” (W.H. Inmon, 1992).

Orientados a transações: vendas, operações bancárias, acessos à informação.

24

Introdução

Aplicações empresas de telefonia redes de varejo instituições financeiras instituições governamentais instituições de ensino e pesquisa ….

24

BUSI

NES

S IN

TELL

IGEN

CE!!!

Sistemas OLTP

Extrair, transformar, carregar dados

Data warehouses são, comumente, alimentados por sistemas OLTP independentes.

Sistemas OLTP

Extrair, transformar, carregar dados

Data warehouses são, comumente, alimentados por sistemas OLTP independentes.

Sistemas OLTP

Extrair, transformar, carregar dados

Sistemas OLTP (Online Transaction Processing): gerenciamento de transações;

toda vez que você vai ao mercado, ao banco ou faz uma compra online, você está usando um sistema OLTP

Objetivos Consolidação dos dados de uma empresa

Desempenho na consulta aos dados

Separação entre suporte à decisão e bancos de dados operacionais

Suporte à ferramentas: mineração de dados, visualização e On-line Analytical Processing (OLAP)

Objetivos Os termos Datawarehouse, OLTP e OLAP

não se refererem a software apenas

São termos que englobam software e serviços (muitos serviços – consultoria)

São termos cunhados para a comunidade empresarial não possuindo uma correspondência simples em Ciência da Computação

Relação OLTP e OLAP

Arquitetura de um data warehouse

Arquitetura de um data warehouse Arquitetura definida pelo contexto da

organização

De maneira geral, tem as seguintes camadas:1. Operacional (OLTPs): fornecem dados2. De acesso aos dados: ETL3. Acesso à informação: ferramentas de

acesso a dados, geração de relatórios, e análise (OLAP) Business Intelligence

4. Metadados: detalhamento do conteúdo do data warehouse dicionário de dados

Arquitetura de um data warehouse Arquitetura definida pelo contexto da

organização

De maneira geral, tem as seguintes camadas:1. Operacional (OLTPs): fornecem dados2. De acesso aos dados: ETL3. Acesso à informação: ferramentas de

acesso a dados, geração de relatórios, e análise (OLAP) Business Intelligence

4. Metadados: detalhamento do conteúdo do data warehouse dicionário de dados

Dicionário de dados Descrição dos dados do DW:

origem regras de transformação nomes e aliases formato dos dados histórico de atualizações acesso e segurança responsabilidades sobre os dados

Sem o dicionário, não há sistema

Data warehouse vs Banco de dados operacional

Data warehouse vs Banco de dados operacional

Data warehouse Banco de dados operacional

Orientado a objetivos específicos Orientado a transações

Grande (centenas de GBs até TBs) Pequeno/Médio (MBs até alguns GBs) – distribuído se necessário

Dados históricos Dados correntes

De-normalizado (poucas tabelas com muitas colunas)

Normalizado (muitas tabelas com poucas colunas)

Atualizações em Batch Atualizações contínuas

Otimizado para acesso Otimizado para escrita/atualização

Juntos data warehouse e bancos de dados provém uma solução completa

Bancos de dados

Inserção/Atualização

Data Warehouse

Acesso aos dados

Visão Geral

Extrair, transformar, carregar dados

1. Camada Operacional (OLTPs)2. Camada de acesso aos dados (ETL)3. Camada de acesso à informação: MD, relatórios, OLAP

Business Intelligence

4. Dicionário de dados

Projeto de Data warehouses

Datamarts

Datamart: ambientes de análise de dados de menor magnitude, com fins mais específicos, limitados a subcomunidades de uma organização

Exemplo, uma loja das casas Bahia

Modelagem x

Loja i

Datamarts

Datamart: ambientes de análise de dados de menor magnitude, com fins mais específicos, limitados a subcomunidades de uma organização

Exemplo, uma loja das casas Bahia

Acréscimo de ferramentas de

análise

Modelagem x

Datamarts

Datamart: ambientes de análise de dados de menor magnitude, com fins mais específicos, limitados a subcomunidades de uma organização

Exemplo, uma loja das casas BahiaLoja i

Modelagem x

Datamart i

Bottom-up

Projeto Bottom-up: exemplo, rede das casas Bahia

Datamart 1 Datamart 2 Datamart 3

....

Datamart n

Bottom-up

Projeto Bottom-up: exemplo, rede das casas Bahia

Datamart 1 Datamart 2 Datamart 3

....

Datamart n

Bottom-up

Projeto Bottom-up: exemplo, rede das casas Bahia

Datamart 1 Datamart 2 Datamart 3

....

Datamart n

Data warehouse : conjunto de pequenos sistemas de tratamento eanálise de dados.

Bottom-up

Projeto Bottom-up: exemplo, rede das casas Bahia

Datamart 1 Datamart 2 Datamart 3

....

Datamart n

Data warehouse : conjunto de pequenos sistemas de tratamento eanálise de dados.

Grande esforço de consolidação modelo de dados não universal.

Data warehouse : projeto bem definido.

Top-down

Projeto Top-down

Data warehouse : projeto bem definido.

Top-down

Projeto Top-down

Datamart 1

Data warehouse : projeto bem definido.

Projeto Top-down

Datamart 1 Datamart 2

Top-down

Data warehouse : projeto bem definido.

Top-down

Projeto Top-down

Datamart 1 Datamart 2 Datamart 3

Data warehouse : projeto bem definido.

Top-down

Projeto Top-down

Datamart 1 Datamart 2 Datamart 3

....

Datamart n

Data warehouse : projeto bem definido.

Top-down

Projeto Top-down

Datamart 1 Datamart 2 Datamart 3

....

Datamart n

Esforço reduzido de consolidação modelo de dados universal e bem definido.

Projeto Top-down vs Bottom-up

Bottom-up Top-down

Consistência via manutenção constante

Alta consistência

Expansão custosaExpansão com novos DMs

facilitada

Custo diluído ao longo do tempo

Inicialmente custosa

Natural em organizações Rara em start-ups

Baixa latência Alta latência

Conceitos vistos

Data warehouse OLTP ETL Dicionário de dados DW vs BD Datamart Projeto Bottom-up vs Top-down

OLAP – Online Analytical Processing

OLAP

Definição: uma categoria de tecnologia de software que visa à compreensão de dados

Provê: acesso rápido, consistente e interativo

DW e OLAP, em muitos casos, conceitos indissociáveis

OLAP - FASMI

FASMI: Fast Analysis of Multidimensional Information

Fast: agilidade em responder consultas

Analysis: versatilidade analítica Shared: dados/analistas múltiplos Multidimensional: orientado a

dimensões de dados Information: propósito fim

Cubo de dados OLAP

Cubo de dados

101 110240

190 90150 204

35 8783 90

35 4519 27

Estrutura básica da prática de OLAP Observam-se

As dimensões dos dados As medidas sobre os dados O cubo é orientado a planos (faces) Apesar da complexidade dos sistemas OLAP, seus

objetivos analíticos são básicos: contagem, média, máximo, mínimo, soma, ...

Agregação, rápida e flexível, sobre imensos volumes de dados

Cubo de dados

Cubo de dados - slicing

Pode ser interessante ver o cubo a partir de diferentes perspectivas (planos)

Operações sobre o cubo: slicing, dicing e rotating (pivoting)

Cubo de dados - slicing

• A operação de slicing equivale a fatiar o cubo, definindo um novo plano de apreciação dos dados

• A operação geométrica é apenas uma analogia, o slicing dispara o processamento OLAP para calcular o novo plano

Cubo de dados - slicing

Dados calculados e acessíveis ao analista.

• A operação de slicing equivale a fatiar o cubo, definindo um novo plano de apreciação dos dados

• A operação geométrica é apenas uma analogia, o slicing dispara o processamento OLAP para calcular o novo plano

Exemplo de dado calculado: quantas TVs de plasma foram vendidas em 2002 na região SE?

Cubo de dados - slicing

• A operação de slicing equivale a fatiar o cubo, definindo um novo plano de apreciação dos dados

• A operação geométrica é apenas uma analogia, o slicing dispara o processamento OLAP para calcular o novo plano

Exemplo de dado calculado: quantas TVs de plasma foram vendidas em 2002 na região SE?

Cubo de dados - slicing

• A operação de slicing equivale a fatiar o cubo, definindo um novo plano de apreciação dos dados

• A operação geométrica é apenas uma analogia, o slicing dispara o processamento OLAP para calcular o novo plano

• A operação de dicing é semelhante ao slicing, mas usa dois, ou mais, planos de corte

Dados calculados e acessíveis ao analista.Dicing conseguido com 5 planos de corte.

Cubo de dados - slicing

• A operação de dicing é semelhante ao slicing, mas usa dois, ou mais, planos de corte

Dados calculados e acessíveis ao analista.Dicing conseguido com 5 planos de corte.

Exemplo de dado calculado: quantas Celulares foram vendidas em 2001 na região CO?

Cubo de dados - slicing

• A operação de dicing é semelhante ao slicing, mas usa dois, ou mais, planos de corte

Dados calculados e acessíveis ao analista.Dicing conseguido com 5 planos de corte.

Exemplo de dado calculado: quantas Celulares foram vendidas em 2001 na região CO?

Cubo de dados - slicing

Cubo de dados - rotating

• A operação de rotating muda a perspectica do cubo todo.

Novo plano: Produto x TempoDados calculados e acessíveis ao analista.

Cubo de dados - rotating

• A operação de rotating muda a perspectica do cubo todo.

Novo plano: Produto x TempoDados calculados e acessíveis ao analista.

Obviamente refere-se a cubo apenas para fins didáticos – aplicações de

DW/OLAP geralmente envolvem mais do que 3 dimensões, definindo

hipercubos.

Modelo de dados dimensional

OLAP e DW

OK, mas e o DW, onde entra nisso tudo?

O modelo de dados do DW é orientado a servir a análise baseada em Dimensões de dados

Modelo de dados DW

Banco de dados operacional

Esquema complexo

Data Warehouse

FATOS

Esquemaestrela

Modelo de dados DW

Banco de dados operacional

Esquema complexo

Data Warehouse

FATOS

Esquemaestrela

Banco de dados operacional

Esquema complexo(normalizado)

Esquema floco de neve

(snow flake)

Data Warehouse

Modelo de dados DW

FATOS

Exemplo Estrela:

Tempo

t_chave

Ano

Trimestre

Mes

Produto

p_chave

Tipo

Fabricante

Modelo

Local

l_chave

Regiao

Cidade

Loja

Fatos

t_chave

p_chave

l_chave

Nro_unidades

Valor

Assist_tecnica

Modelo de dados dimensional

Exemplo:

Tempo

t_chave

Ano

Trimestre

Mes

Produto

p_chave

Tipo

Fabricante

Modelo

Local

l_chave

Regiao

Cidade

Loja

Fatos

t_chave

p_chave

l_chave

Nro_unidades

Valor

Assist_tecnica

Modelo de dados dimensional

Exemplo: Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e Região?

SELECT Tempo.Ano, Produto.Tipo, Local.Regiao, Sum(Nro_unidades), Sum(valor)FROM Fatos, Tempo, Produto, LocalWHERE Fatos.t_chave = Tempo.t_chave AND Fatos.p_chave = Produto.p_chave AND Fatos.l_chave = Local.l_chaveGROUP BY Tempo.Ano, Produto.Tipo, Local.Regiao

79

Exemplo Snowflake

Modelagem de Dados para DW

79

(Elm

as

ri e

Na

va

the

, 2

00

5)

Modelo de dados dimensional

Cubo de dados: análise dimensional das medidas (dados)

DW: modelo de dados dimensional Dimensões: dão contexto aos fatos Fatos: números transacionais

Observe que as dimensões dos dados possuem uma hierarquia categórica

Por exemplo: Tempo(Ano, Trimestre, Mês)

Modelo de dados dimensional

Hierarquia das dimensões: apreciação dos dados em diferentes granularidades. Exemplo:

Itens_vendidos(ano) > Itens_vendidos(Trimestre)

Itens_vendidos(Trimestre) > Itens_vendidos(Mês)

Duas outras operações muito importantes Drill down Roll up

Modelo de dados dimensional

Drill down / Roll up

Drill-down e roll-up: navegação ao longo dos níveis hierárquicos das dimensões

Exemplo

Itens_vendidos(Região) Itens_vendidos(Cidade)Drill-down

Roll-up

Drill down / Roll up

Drill-down sobre as três dimensões

simultaneamente.

Drill down / Roll up

Drill-down sobre as três dimensões

simultaneamente.

Exemplo: Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e Região?

Drill Down em todas as dimensões Quantas vendas e qual valor de vendas ocorreram considerando Trimestre, Fabricante e Cidade?

SELECT Tempo.Ano, Tempo.Trimestre, Produto.Tipo, Produto.Fabricante, Local.Regiao Local.Cidade, Sum(Nro_unidades), Sum(valor)FROM Fatos, Tempo, Produto, LocalWHERE Fatos.t_chave = Tempo.t_chave AND Fatos.p_chave = Produto.p_chave AND Fatos.l_chave = Local.l_chaveGROUP BY Tempo.Ano, Tempo.Trimestre, Produto.Tipo, Produto.Fabricante, Loca.Regiao, Local.Cidade

Drill down / Roll up

Drill-down sobre as três dimensões

simultaneamente.

Exemplo: Quantas vendas e qual valor de vendas ocorreram considerando Ano, Tipo de Produto e Região?

Drill Down em todas as dimensões Quantas vendas e qual valor de vendas ocorreram considerando Trimestre, Fabricante e Cidade e considerando um slicing de ano entre 2001 e 2002?

SELECT Tempo.Trimestre, Produto.Fabricante, Local.Cidade, Sum(Nro_unidades), Sum(valor)FROM Fatos, Tempo, Produto, LocalWHERE Fatos.t_chave = Tempo.t_chave AND Fatos.p_chave = Produto.p_chave AND Fatos.l_chave = Local.l_chave AND Tempo.Ano between 2001 AND 2002GROUP BY Tempo.Trimestre, Produto.Fabricante, Local.Cidade

OLAP - Agregação

Mais do que cubinhos, o OLAP/DW é uma tecnologia sofisticada que visa responder às diferentes possibilidades e níveis de agregação de maneira rápida e precisa.

OLAP - Agregação

Síntese

http://etl-tools.info

90

Relational OLAP (ROLAP) Recursos OLAP sobre SGBDs disparam todas as agregações

necessárias para se obter os resultados requisitados O OLAP não relacional, também é conhecido como

Multidimensional OLAP - MOLAP SQL:1999

ROLLUP e CUBE

90

SELECT …. FROM ….WHERE … GROUP BY CUBE (trim, região)

ex: selecionar total de vendas por trim. por região total de vendas por trim. total de vendas por região total geral de vendas

SELECT …. FROM ….WHERE … GROUP BY ROLLUP (trim, região)

ex: selecionar total de vendas por trim. por região total de vendas por trim. total geral de vendas

91

Relational OLAP (ROLAP)

Sobre ROLLUP e CUBE ROLLUP e CUBE aplicados sobre k atributos ... GROUP BY CUBE (....)

é equivamente a agrupamentos sobre cada um dos 2k subconjuntos de atributos

ex: k=2 ⇒ ... GROUP BY CUBE (a,b) agrupamentos sobre: (a,b), (a), (b), (null) agrupamento em (null) é o total geral de vendas

92

Relational OLAP (ROLAP)

(cont...) (cont...)

... GROUP BY CUBE (....) é equivamente a agrupamentos sobre cada um

dos 2k subconjuntos de atributos

ex: k=3 ⇒ ... GROUP BY CUBE (a,b,c) agrupamentos sobre: (a,b,c), (a,b), (a,c), (b,c) (a), (b),

(c), (null)

Relational OLAP (ROLAP)

Exemplo GROUP BY CUBESELECT Dept, Funcao,

COUNT(*), SUM(Salario)

FROM Empregados

GROUP BY CUBE(Dept, Funcao);

Dept Funcao COUNT(*) SUM(Salario)

------------------------------------------------

10 Secretario 1 100

10 Gerente 1 500

10 Presidente 1 900

10 31500

20 Analista 2 350

20 Secretario 2 240

20 Gerente 1 800

20 51390

Secretario 3 340

Gerente 21300

Presidente 1 500

Analista 2 350

82490

94

Relational OLAP (ROLAP)

(cont...) (cont...) ... GROUP BY ROLLUP (....)

é equivamente a agrupamentos em k+1 subconjuntos: k=2 ⇒ ... GROUP BY ROLLUP (a,b)

agrupamentos sobre: (a,b), (a), (null) agrupamento em (null) é o total geral de vendas

k=3 ⇒ ... GROUP BY ROLLUP (a,b,c) agrupamentos sobre: (a,b,c), (a,b), (a), (null)

95

Ferramentas

Ferramentas de suporte à criação e manutenção de DW

Ferramentas OLAP Ferramentas de BI …

95

96

Referências

ELMASRI, R; NAVATHE, S.B. Sistemas de Banco de Dados, Addison Wesley, 4a edição, 2005.

Ramakrishnan R.; Gehrke, J. Database Management Systems, Mc Graw Hill, 2000.

96