2. Quem sou eu?
Senior BI Analyst at Datainfo / ANEEL Project
BI and Database Consultant and Instructor in
One Way Solution and BI do Brasil
Writer in SQL Magazine and Data’s Light Blog
Data Science Studant – John Hopkins
University [Coursera]
Microsoft Official Instructor at Hepta Novintec
Microsoft SQL Server MCSA & MCT
3. Sobre o que vamos falar?
Introdução a Business Intelligence e Data Warehouse
OLTP (Online Transactional Processing) x
OLAP (Online Analytical Processing)
Ciclo de Vida e Arquitetura de um sistema de BI
Conceitos e Metodologias de Criação de um Data Warehouse
M.E.R Star Schema Vs Snowflake Schema
Conceitos, Tipos de Dimensão e Slowly Changing Dimension
Conceitos de Fato e Tipos de Métricas
Conceito de Cubo e Tipos
Realizando a carga das Dimensões e Fatos
Microsoft - Arquitetura de uma Solução de Data Warehouse
SQL Server Integration Services - Arquitetura
SSIS – Principais Tasks
Debugging:
Breakpoints
Data Viewers
Demonstração de Relatórios.
4. O problema das Empresas e Instituições
Dados chave para o negócio estão distribuídos entre
múltiplos sistemas
Achar a informação necessárias para a tomada de
decisão do negócio consome muito tempo e propende a
erro
Questões fundamentais para o negócio são difíceis de
serem respondidas
5. O que é um Data Warehouse?
Repositório centralizado dos dados do negócio para
relatórios e análises.
Tipicamente, um Data Warehouse:
Contêm grande volume de dados históricos;
É otimizado para Pesquisas de Dados;
Possui carga de dados incremental em intervalos regulares;
Provê a base para uma solução Enterprise Data Warehouse.
7. • Entrevistas
• Identificação dos Dados
1
• Planejamento da Solução de BI2
• Criação do Data Warehouse
• Criação Modelo Dimensional
3
• Criação do Processo de ETL4
• Criação dos Cubos de Visualização5
• Criação dos Relatórios6
• Testes
• Melhoria da Solução
7
• Preparação Nova Versão8
Ciclo de Vida de um Sistema de Business Intelligence
9. Data Warehouse Departamental
(Ralph Kimball)
A abordagem de Ralph Kimball é dimensional (o design de baixo para
cima): Os Data Marts que facilitem relatórios e análises são criados
primeiramente. Estes são, então, combinados em conjunto para criar um
amplo Data Warehouse.
Orientado a Assunto: Os dados no data warehouse são organizados
de modo que todos os elementos de dados relacionados com o
mesmo evento ou objeto do mundo real estejam ligados entre si.
Temporais: As alterações dos dados no banco de dados são
monitorados e registrados para que os relatórios possam ser
produzidos mostrando mudanças ao longo do tempo.
Não Voláteis: os dados no Data Warehouse não são sobre-escrito ou
apagados - uma vez confirmado, o dado é estático, só de leitura, e
retido para relatórios futuros.
Integrado: O banco de dados contém dados de maioria ou a
totalidade de aplicações operacionais de uma organização, o que o
torna consistente.
Conceitos e Metodologias de Criação de um DW
Data Warehouse Centralizado
(Bill Imnon)
Modelo de dados normalizado é projetado em primeiramente. Em
seguida, os Data Marts dimensionais, que contêm dados necessários para
processos de negócios específicos ou departamentos específicos são
criados a partir do armazém de dados.
Inmon define data warehouse como um repositório centralizado para
toda a empresa. O Data Warehouse armazena os dados 'atômicos' com o
menor nível de detalhe. Data Marts dimensionais são criados somente
depois que o armazém de dados completo for criado. Assim, o Data
Warehouse está no centro da Corporate Information Factory (CIF), que
fornece um quadro lógico para a entrega de Business Intelligence.
Hub and Spoke
Coincidi com a estrutura de negócios da maioria das grandes empresas,
oferecendo um EDW (Enterprise Data Warehouse) centralizado e um
conjunto de Data Marts dependentes.
O hub EDW permite que a empresa como um todo possa definir e aplicar
normas comuns, permitindo a análise e relatórios que atravessem as
unidades de negócios.
Os raios de data mart permitem que as unidades de negócios possam
satisfazer as suas próprias necessidades rapidamente a custo
relativamente baixo e também em conformidade com os requisitos de TI
da empresa em geral.
Uma arquitetura de hub-and-spoke bem gerida permite que as unidades
de negócios possam definir os seus próprios orçamentos e prioridades,
contribuindo ao mesmo tempo como necessário para a central de EDW.
11. Dimensão de Cliente
Nome do Cliente
Dados do Cliente
Endereço do Cliente
Telefone do Cliente
Profissão do Cliente
Dimensões – Conceito
Tabelas que Guardam Dados por Assunto.
Não se prioriza das tabelas de Dimensão a
Normalização dos Dados – Snowflake Schema.
Os dados das tabelas de Dimensão são
desnormalizados. São as chamadas Dimensões
Hierárquicas.
12. Existem duas Classificações de Dimensões. São elas: Dimensões Hierárquicas e Não-
Hierárquicas (Dimensão de Nível Único).
Dimensões Não-Hierarquicas são formadas
por apenas um nível de relacionamento.
Dimensões Hierarquicas englobam uma
série de relacionamentos 1 x Muitos.
País Estado
Cidade
Tipo de Pagamento
Dimensões – Classificação
13. Dimensão Conformada
A dimensão é conformada quando ela é
exatamente a mesma (incluindo as chaves)
dentro de Data Marts diferentes. Mais
importante, os cabeçalhos das linhas
produzidas em dois conjuntos de respostas
diferentes a partir da mesma dimensão
conformada deve ser capaz de corresponder
igualmente.
Dimensões – Tipos Dimensão Role-Playing
As dimensões são Role-Playing quando são
recicladas para múltiplas aplicações dentro
de um Data Warehouse. Como exemplo, a
Dimensão de Data pode ser usada como
Data_Compra e como Data_Entrega dentro
de um mesmo Data Mart.
14. Dimensões – Tipos
Dimensão Junk (lixo)
É uma coleção de códigos aleatórios
transacionais, indicadores (flags) e / ou
atributos de texto que são alheios a
qualquer dimensão.
Dimensão Estática
Dimensões estáticas não são
extraídos a partir da fonte de
dados original, mas são criados
dentro do contexto do Data
Warehouse. Geralmente, são
carregadas manualmente. Um
grande exemplo é a Dimensão
de Tempo.
Dimensão Degenerada
A dimensão degenerada é uma
chave que, por não ter atributos
relacionados a ela, não se junta a
uma tabela de dimensão real.
15. Dimensão de Tempo
A dimensão de Tempo é reponsável
por permitir a navegação em
tabelas de fato através de datas
familiares, meses, pedíodos fiscais e
dias especiais no calendário.
Dimensões – Tipos
16. “Todo o DW é permeado pelo conceito temporal. Todas as tabelas de Fato de todos
os Data Marts são carregadas baseadas nas foreign keys, que têm como origem a
dimensão de tempo. Porém, os efeitos de tempo não estão isolados somente para
as atividades das tabelas de Fato.“
(Ralph Kimball)
Dimensões – Slowly Changing Dimension
17. O Slowly Changing Dimension diz respeito às mudanças que ocorrem nas
dimensões que impactam diretamente na análise dos dados históricos.
São chamadas dessa forma porque acontecem de forma menos frequente e em
menor quantidade se comparadas às tabelas de Fato.
Dimensões – Slowly Changing Dimension
18. Tipo 1 – Sobrescrição de Dados
ID Nome Localidade
56 Arthur Luz Brasília
ID Nome Localidade
56 Arthur Luz Rio de Janeiro
Primeiro momento
no Tempo.
Segundo momento
no Tempo.
Dimensões – Slowly Changing Dimension
19. Tipo 2 – Nova Coluna (Registro atual e old)
ID Nome Localidade Localidade_Old
56 Arthur Luz Brasília NULL
ID Nome Localidade Localidade_Old
56 Arthur Luz Rio de Janeiro Brasília
Primeiro momento
no Tempo.
Segundo momento
no Tempo.
ID Nome Localidade Localidade_Old
56 Arthur Luz Minas Gerais Rio de Janeiro
Terceiro momento
no Tempo.
Dimensões – Slowly Changing Dimension
20. Tipo 3 – Nova Linha de Registro
ID Nome Localidade Data_Inicio Data_Fim
56 Arthur Luz Brasília 07/04/2014 NULL
ID Nome Localidade Data_Inicio Data_Fim
56 Arthur Luz Brasília 07/04/2014 10/01/2015
Primeiro momento
no Tempo.
Segundo momento
no Tempo.
ID Nome Localidade Data_Inicio Data_Fim
127 Arthur Luz Rio de Janeiro 10/01/2015 NULL
Segundo momento
no Tempo.
Dimensões – Slowly Changing Dimension
21. Tabela de Fato – Conceito
“tabelas de fatos são a base do armazém de dados. Eles contêm as medições
fundamentais da empresa, e eles são o alvo final da maioria das consultas de
data warehouse.
O primeiro e mais importante passo projeto está declarando o grão tabela de
fatos. O grão é a definição do negócio do que um único registro da tabela
verdade representa.”
(Ralph Kimball)
22. Existe dentro do conceito de Modelagem Dimensional 3 tipo de métricas:
Métricas Aditivas: Podem ser sumarizadas em qualquer situação de análise.
Métricas Semi-Aditivas: Podem ser sumarizadas em apenas casos específicos
de análise; (Ex. Saldo banco).
Métricas Não-Aditivas: Nunca podem ser sumarizadas. (Ex. Percentuais
vendas)
Tabela de Fato – Tipos de Métricas
23. É uma estrutura multidimensional que expressa a forma na qual os tipos
de informações se relacionam entre si.
O cubo armazena todas as informações relacionadas a um determinado
assunto, de maneira a permitir que sejam montadas várias combinações
entre elas, resultando na extração de várias visões sobre o mesmo tema.
O Slice/Dice é uma das principais características de uma ferramenta
OLAP. É uma operação com responsabilidade de recuperar o micro-cubo
dentro do OLAP, além de servir para modificar a posição de uma
informação, alterar linhas por colunas de maneira a facilitar a
compreensão dos usuários e girar o cubo sempre que tiver necessidade.
Drill up / Down é uma outra característica muito importante de uma
ferramenta OLAP. Através dele é possível navegar para cima (up) e para
baixo (down) dentro de uma hierarquia de uma dimensão.
Cubo – Conceito
24. Cubos em modo MOLAP
Características:
Arquitetura OLAP tradicional;
Os dados são armazenados em cubos dimensionais,
em formatos proprietários, e não em banco de dados
relacionais;
O usuário trabalha, monta e manipula os dados do
cubo diretamente no servidor.
Possui alto desempenho. Os cubos são construídos
para uma rápida recuperação de dados;
Cubo – Tipos
25. Cubos em modo ROLAP
Características:
Os dados são armazenados em banco de dados relacionais;
A manipulação dos dados armazenados no banco de dados relacional é
feita para dar a aparência de operação Slice/Dice tradicional. Na
essência, cada ação de Slice/Dice é equivalente a adicionar uma
cláusula WHERE em uma declaração SQL.
Possui baixo desempenho. Cada relatório ROLAP é basicamente uma
consulta SQL (ou várias consultas SQL) na banco de dados relacional e
uma consulta pode ser consumir muito tempo se houver uma grande
quantidade de dados;
É limitado pelas funcionalidades SQL. ROLAP se baseia
principalmente na geração instruções SQL para consultar a base de
dados relacional, porém essas instruções não suprem todas as
necessidades (por exemplo, é difícil de realizar cálculos complexos
utilizando SQL). Portanto, usar ROLAP é se limitar ao que instruções
SQL podem fazer.
Cubo – Tipos
26. Cubos em modo HOLAP
Características:
HOLAP tenta combinar as vantagens de MOLAP e ROLAP,
extraindo o que há de melhor de cada uma, ou seja, a alta
performance do MOLAP com a melhor escalabilidade do ROLAP;
Para informações do tipo síntese, HOLAP utiliza cubos
dimensionais para um desempenho mais rápido;
Quando for necessário mais detalhe de uma informação, HOLAP
pode ir além do cubo multidimensional para o banco de dados
relacional utilizado no armazenamento dos detalhes.
Cubo – Tipos
27. Microsoft – Arquitetura de uma solução de BI
SQL Server Database Engine
Azure SQL Database
Microsoft SQL Server Integration Services
SQL Server Master Data Services
1011000110
SQL Server Data Quality Services
Microsoft Azure SQL Database
DataWarehouse
SQL Server
Analysis Services
Microsoft SharePoint Server
Microsoft PowerPivot
Technologies / Power BI
Microsoft Excel
• Data Mining Add-In
• PowerPivot Add-In
• MDS Add-In
SQL Server
Reporting Services
BusinessIntelligence
SQL Server Database Engine
Azure Parallels Data Warehouse
SQL Server Database Engine
28. SQL Server Integration Services - Arquitetura
Control Flow
Recipiente para desenvolvimento dos fluxos de controle de carga de dados;
Data Flow Task
Recipiente para desenvolvimento dos fluxos de carga de dados;
Execute SQL Task
Usado para executar comandos em SQL padrão ANSI e/ou T-SQL;
Containers
Recipiente para desenvolvimento dos fluxos de controle de carga de dados;
Connections
Objeto utilizado para gerar conexão com as mais variadas fontes e
destinos de dados.
30. Task usada para trabalho a nível de Dados.
SSIS – Principais Tasks (Data Flow)
31. Usado para executar comandos em SQL padrão ANSI e/ou T-SQL;
SSIS – Principais Tasks (Execute SQL)
32.
33. A ferramenta de ETL Integration Services da
Microsoft oferece uma porção de recursos para
que seja possível depurar um pacote.
É possível executar essa depuração a nível de
Control Flow e Data Flow.
Debuging – BreakPoint & Data Views
34. O SSIS fornece a opção BreakPoint, a nível de Control Flow, na qual você pode definir
pontos de interrupção. Os pontos de interrupção pode ser habilitado a nível de
containers ou de componente individual.
Início do Fluxo Continuação do Fluxo
Ponto de
Interrupção
Debuging – BreakPoint
35. As principais opções de pontos de Interrupção são:
OnPreExecute - Chamado antes da execução da tarefa.
OnPostExecute - Chamado após a execução da tarefa.
OnError - Chamado quando ocorre um erro.
OnTaskFailed - Chamado quando o pacote falha.
Debuging – BreakPoint
Início do Fluxo Continuação do Fluxo
Ponto de
Interrupção
36. O SSIS fornece a opção Data Viewers, a nível de Data Flow, na qual você pode
inserir visualizadores para mostrar o fluxo dados entre dois componentes.
Col 1 Col 2 Col 3
Dados Dados Dados
Dados Dados Dados
Dados Dados Dados
Componente 1 Componente 2
Debuging – Data Views
Emphasize that the drivers for a data warehousing solution are typically business-related rather than technical.
Ask students about the various applications and data stores in their organizations. How easy or difficult is it for students to collate data from them to create an overall, business-wide view of key measures that drive strategic business decision-making?
Explain that this course uses a fairly generic definition for a data warehouse. There are many very specific definitions in use throughout the data warehousing industry, and students may be aware of some of the more common schools of thought on database design, including those of Bill Inmon and Ralph Kimball. This course does not advocate one approach over another, although the lab solutions and data warehouse schema design discussed here are more in line with a Kimball-based approach than any other.
Explain that this course uses a fairly generic definition for a data warehouse. There are many very specific definitions in use throughout the data warehousing industry, and students may be aware of some of the more common schools of thought on database design, including those of Bill Inmon and Ralph Kimball. This course does not advocate one approach over another, although the lab solutions and data warehouse schema design discussed here are more in line with a Kimball-based approach than any other.