View
111
Download
1
Category
Preview:
Citation preview
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
Recommended