Você está na página 1de 652

Roland Bouman

Jos van Dongen


Pentaho
Solues

Business Intelligence e Data
Armazenamento com Pentaho e MySQL

Pentaho Solutions

Pentaho Solutions
Business Intelligence e Data
Armazenamento com Pentaho
e MySQL

Roland Bouman
Jos van Dongen
Wiley Publishing, Inc.
Pentaho Solues: Business Intelligence e Data Warehousing com Pentaho e MySQL
Publicado por
Wiley Publishing, Inc.
10475 Boulevard Crosspoint
Indianapolis, IN 46256
www.wiley.com
Copyright 2009 pela Wiley Publishing, Inc., Indianapolis, Indiana
Publicado simultaneamente no Canad
ISBN: 978-0-470-48432-6
Fabricados nos Estados Unidos da Amrica
10 9 8 7 6 5 4 3 2 1
Nenhuma parte desta publicao pode ser reproduzida, armazenada em um sistema de recuperao ou transmitida de qualquer forma ou por
qualquer meio,
eletrnico, mecnico, fotocpia, gravao, digitalizao ou de outra forma, exceto conforme permitido nos termos dos artigos 107 ou 108
de 1976 dos Estados Unidos Copyright Act, sem qualquer autorizao prvia por escrito do editor, ou autorizao
atravs do pagamento da taxa por cpia adequadas ao Copyright Clearance Center, 222 Rosewood Drive, Danvers,
MA 01923, (978) 750-8400, fax (978) 646-8600. Pedidos Editora para a permisso deve ser endereada ao
Permisses Departamento John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008,
ou online em http://www.wiley.com/go/permissions.
Limite de responsabilidade / Renncia de Garantia: O editor eo autor no faz representaes ou garantias com
relao exatido ou completude do contedo deste trabalho e especificamente rejeitam todas as garantias, incluindo
sem limitao, garantias de adequao a um propsito particular. Nenhuma garantia pode ser criado ou estendido por vendas ou
materiais promocionais. Os conselhos e as estratgias aqui contidas podem no ser adequados para cada situao. Este trabalho
vendido com o entendimento de que a editora no est envolvida na prestao de servios jurdicos, contabilsticos ou de outros profissionais
servios. Se a assistncia de profissional exigido, os servios de uma pessoa competente profissional deve ser procurado. Nem
a editora nem o autor ser responsvel pelos danos dele decorrentes. O facto de uma organizao ou site da Web
referidos neste trabalho como uma citao e / ou uma fonte potencial de informaes no significa que o autor ou o
editor, endossam as informaes do site da Web ou organizao pode fornecer ou recomendaes que podem fazer. Alm disso,
os leitores devem estar cientes de que sites da internet listados neste trabalho pode ter mudado ou desaparecido entre o momento presente
obra foi escrita e quando ele lido.
Para informaes gerais sobre nossos outros produtos e servios, por favor contacte o nosso Departamento de Atendimento ao Cliente no
Estados Unidos em (877) 762-2974, fora dos Estados Unidos em (317) 572-3993 ou fax (317) 572-4002.
Biblioteca do Congresso Nmero de Controle: 2009930282
Marcas: Wiley eo logotipo da Wiley so marcas comerciais ou marcas registradas da John Wiley & Sons, Inc. e / ou
suas afiliadas, nos Estados Unidos e outros pases, e no podem ser utilizadas sem permisso por escrito. Pentaho uma
marca registrada da Pentaho, Inc. Todas as outras marcas so propriedade dos seus respectivos proprietrios. Wiley Publishing,
Inc. no est associada a nenhum produto ou fornecedor mencionado neste livro.
Wiley tambm publica seus livros em uma variedade de formatos eletrnicos. Alguns tipos de contedo que aparece na impresso pode no
estar disponvel
em livros eletrnicos.
Com amor, de Annemarie, David, Roos e Anne.
-Roland
Para Yvonne, Thomas e Lisa, de muitas noites e fins de semana
Passei a trabalhar neste livro. Desculpe ter perdido quase seis meses de
suas vidas, mas prometo fazer isso!
-Jos
Sobre os autores
Roland Bouman tem vindo a trabalhar na indstria de TI desde 1998, principalmente como um
desenvolvedor de aplicaes web e banco de dados. Ao longo dos anos, ele se concentrou
em
tecnologia de cdigo aberto na Web, bases de dados e Business Intelligence. Ele um
membro ativo do MySQL e comunidades Pentaho, e foi premiado com o
MySQL Frum Lder do Ano em 2006. Roland orador regular
em conferncias. Ele tambm co-autor do MySQL 5.1 Cluster Certificao
Guia e revisor tcnico de vrios ttulos relacionados ao MySQL. Voc pode
siga seu blog em http://rpbouman.blogspot.com/.
Jos van Dongen um experiente profissional de Business Intelligence e bem-
conhecido autor e apresentador. Ele esteve envolvido no desenvolvimento de software,
Business Intelligence e Data Warehousing, desde 1991. Antes de iniciar sua
prpria prtica de consultoria, Tholis Consulting, em 1998, ele trabalhou por um alto nvel
integrador de sistemas e uma empresa lder em consultoria de gesto. Ao longo dos
ltimos anos, tem implementado com sucesso vrios armazns de dados para
uma variedade de organizaes, sem fins lucrativos e sem fins lucrativos. Jos abrange novas
desenvolvimentos de BI para os holandeses Banco de Dados Revista e fala regularmente em
conferncias nacionais e internacionais. Alm deste livro, ele foi o autor
um outro livro sobre open source de BI. Voc pode encontrar mais informaes sobre a Jos
http://www.tholis.com.
vii
Crditos
Editor Executivo
Robert Elliott
Projeto Editor
Sara Shlaer
Tcnico Editores
Tom Barber
Jens Bleuel
Jeroen Kuiper
Thomas Morgner
Editor de Produo Snior
Debra Bnninger
Copy Editor
Nancy Rapoport
Gerente Editorial
Mary Beth Wakefield
Gerente de Produo
Tim Tate
Vice-Presidente e Diretor Executivo
Grupo Publisher
Richard Swadley
Vice-Presidente e Diretor Executivo
Publisher
Barry Pruett
Editor Associado
Jim Minatel
Coordenador do Projeto, Capa
Lynsey Stanford
Revisor
Josh Chase, uma palavra
Scott Klemp, uma palavra
Indexador
J & J Indexao
Imagem da capa
Ryan Sneed
Cover Designer
Maciej Frolow / Brand X
Fotos / Jupiterimages
ix
Agradecimentos
Este livro o resultado do trabalho e as ideias de muitas pessoas diferentes. Ns, os
autores, acontecer a ser os nicos que conseguem colocar nossos nomes na capa, mas ns
no poderia ter feito isso sem a ajuda dessas pessoas. Portanto, gostaramos de
aproveitar esta oportunidade para prestar nossos respeitos.
Uma coisa que caracteriza saudvel projetos de cdigo aberto a paixo
eo nvel de envolvimento dos desenvolvedores e engenheiros de software que criam
o projeto. Apesar de suas agendas lotadas, descobrimos os desenvolvedores da
Pentaho Corporation sempre dispostos a fazer um esforo para explicar um determinado
detalhes de seus softwares. Isto faz-lhes no s os desenvolvedores de software grande,
mas tambm valiosos e respeitados membros da comunidade. Em particular,
gostaramos de agradecer Doug Moran, Moran Gretchen, Jens Bleuel, Julian Hyde,
Matt Casters, e Morgner Thomas.
Um bom software nunca deixa de criar uma comunidade vibrante e intensa. Esta
ainda mais verdadeiro para o software de fonte aberta. Em uma quantidade relativamente
pequena de tempo, o
comunidade Pentaho amadureceu consideravelmente, dando origem a um grupo de Pentaho
especialistas que no s escrevem blogs de alta qualidade e ajudar uns aos outros no site
oficial
Fruns Pentaho ea (no oficial) # canal de IRC sobre Pentaho freenode.net,
mas tambm participar ativamente e contribuir para o desenvolvimento do
produto Pentaho. Gostaramos de agradecer a todos que nos ajudaram na
nos fruns e no canal de IRC. Em particular, gostaramos de agradecer a Daniel
Einspanjer, Ward Harris, Goodman Nicholas, Raju Prashant Barbeiro Tom, e
Yassine Elassad pelo seu papel na formao desta comunidade. Como de se esperar
com um projeto de cdigo aberto como o Pentaho, alguns membros da comunidade de casal
como os desenvolvedores de produtos. Um agradecimento especial para Ingo Klose, e mais
do que especial
agradecimentos a Pedro Alves. Juntos, eles criaram o Painel da Comunidade
Quadro, e Pedro foi muito til para ns, explicando a sua arquitetura e
design. Outras pessoas que merecem um agradecimento especial nota so Mark Hall, o
xi
xii Agradecimentos
principal desenvolvedor do projeto Weka, Kasper Srensen, o arquiteto da eobjects
DataCleaner, e Ronald Damhof, por seus insights valiosos no cofre de Dados
modelagem tcnica.
Finalmente, gostaramos de agradecer a Sara Shlaer e Bob Elliott, para gerir essa
projeto, e observe o grande trabalho que tanto Sara e Nancy fez Rapoport
com os documentos que entregamos. Percebemos que levou um esforo extra para
transformar os escritos destes dois caps Holands Ingls em texto legvel.
A colaborao com todos os envolvidos em Wiley sempre foi muito
eficiente e agradvel, talvez seremos capazes de trabalhar juntos novamente em
outro projeto.
Roland-Bouman e Jos van Dongen
Primeiro, eu gostaria de agradecer a Jos, meu co-autor. Sem ele, escrever este livro
teria sido to demorado que eu duvido que ele teria sido praticamente
vivel. E, claro, eu gostaria de agradecer os leitores da http://rpbouman
. Blogspot.com /. A idia de escrever este livro ao longo do tempo e foi
alimentados principalmente pelos comentrios que recebi em resposta a uma srie de posts
que eu
dedicado a Pentaho. Alm disso, eu recebi muitos comentrios encorajadores
e e-mails de leitores do meu blog durante o processo de escrita, que no poderia
ter sido melhor incentivo para continuar trabalhando para terminar esse livro.
Roland-Bouman
Minha viagem de BI open source comeou h quase trs anos atrs, quando eu publiquei
um dos meus artigos de primeira no Holands Banco de Dados Revista, intitulada''Pentaho,
Prometendo Open Source BI Suite''. Eu no poderia imaginar naquela poca que isso
levar a escrever um livro completo sobre o assunto, mas de alguma forma
fiz! Ento deixe-me agradecer aos meus co-autor de Roland por seus esforos incansveis no
sentido de obter
este projecto fora do cho. Francamente, eu no tenho idia de como ele conseguiu
ficar todo esse trabalho feito com um emprego a tempo inteiro e trs filhos pequenos em casa
para
cuidar. Um agradecimento especial tambm para Jeroen Kuiper, meu bom amigo e ex-
colega, para formatar as seces de armazm de dados deste livro, e para
sendo um crtico muito crtica do material.
-Jos van Dongen
Contedo at a Glance
Introduo
Parte I
Captulo 1
Captulo 2
Captulo 3
Captulo 4
Parte II
Captulo 5
Captulo 6
Captulo 7
Captulo 8
Parte III
Captulo 9
Comeando com Pentaho
Quick Start: Exemplos Pentaho
Pr-requisitos
Instalao e Configurao do Servidor
O BI Pentaho Stack
Dimensional e Modelagem de Data Warehouse
Design
Exemplo de caso de negcio: Filmes de Classe Mundial
Data Warehouse Primer
Modelagem de Negcios Usando esquemas Star
O Data Mart Processo de Projeto
Integrao de dados e ETL
Primer Pentaho Data Integration
xxxiii
1
3
21
37
63
91
93
111
147
191
221
223
261
309
xiii
Captulo 10 Criando Solues Pentaho Data Integration
Captulo 11 Implementando Solues Pentaho Data Integration
xiv Contedo at a Glance
Parte IV Inteligncia Aplicaes de Negcio 345
347
371
411
441
503
529
571
Captulo 12 A camada de metadados
Captulo 13 Usando as ferramentas de relatrios Pentaho
Captulo Programao 14 de Assinatura e de ruptura
Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services
Captulo 16 Minerao de Dados com Weka
Captulo 17 Painis de Construo
ndice
Contedo
Introduo
Parte I
Captulo 1
Comeando com Pentaho
Quick Start: Exemplos Pentaho
Comeando com Pentaho
Baixar e instalar o software
Executando o Software
Iniciando o Servidor Pentaho BI
Registro em
Manto, o usurio Pentaho Console
Trabalhando com o contexto
Usando o Browser de Repositrio
Compreender o contexto
Executar os exemplos
Exemplos de relatrios
Exemplos BI Developer: Vendas Regional - HTML
Rodas de Ao: Demonstrao de Resultados
Rodas de Ao: Top 10 clientes
Exemplos BI Developer:
boto nico-parameter.prpt
Traando Exemplos
Rodas de Ao: Lista de Escolha Grfico
xxxiii
1
3
3
4
5
5
6
7
8
9
9
11
11
11
12
13
13
14
15
xv
xvi Contedo
Rodas de Ao: Lista Grfico Flash
Exemplos BI Developer: Vendas Regional -
Grfico de Linhas Bar /
Exemplos de Anlises
Exemplos Desenvolvedor BI: Slice and Dice
Rodas de Ao Exemplos de Anlises
Exemplos Dashboarding
Outros exemplos
Resumo
Captulo 2 Pr-requisitos
Configurao Bsica do Sistema
Instalar Ubuntu
Usando o Ubuntu no modo nativo
Usando uma mquina virtual
Trabalhando com o Terminal
Lista de Navegao
Histria de comando
Utilizando Links Simblicos
Criar links simblicos no Ubuntu
Criando Symlinks no Windows Vista
Java Instalao e Configurao
Instalando o Java no Linux Ubuntu
Instalando o Java no Windows
Instalao do MySQL
Instalando o servidor e cliente MySQL em Ubuntu
Instalando o servidor MySQL eo cliente no Windows
Ferramentas GUI MySQL
Instalar Ubuntu
Instalar o Windows
Database Tools
Power * Architect e outras ferramentas de design
Squirrel SQL Client
Instalar Ubuntu
Instalar o Windows
SQLeonardo
Resumo
15
16
16
17
18
19
20
20
21
22
22
23
23
24
24
25
25
26
26
27
27
28
29
29
30
31
31
31
31
31
32
32
33
33
34
Contedo xvii
Captulo 3 Instalao e Configurao do Servidor
Configurao do Servidor
Instalao
Directrio de Instalao
Conta de Usurio
Configurando o Tomcat
Arranque automtico
Gerenciando Drivers de Banco de Dados
Localizao Driver para o servidor
Localizao Driver para o console de administrao
Gerenciando drivers JDBC em UNIX-Based
Sistemas
Sistema de Bases de Dados
Configurando o MySQL esquemas
Configurando quartzo e Hibernate
Configurando a segurana JDBC
Dados da Amostra
Modificar o Pentaho Scripts de inicializao
E-mail
Configurao bsica de SMTP
Secure Configuration SMTP
Teste de E-mail Configurao
Editora Senha
Tarefas administrativas
A Administrao Pentaho Console
Configurao bsica do PAC
Iniciando e parando PAC
O Front End PAC
Configurando a segurana do PAC e Poderes
Gerenciamento de Usurio
As fontes de dados
Outras tarefas administrativas
Resumo
O BI Pentaho Stack
Pentaho BI Stack Perspectivas
Funcionalidade
Programas de servidor, o Web Client e Desktop
37
37
38
38
38
39
40
44
44
44
44
45
46
46
50
51
51
52
52
54
54
54
55
55
55
56
56
57
58
60
61
61
63
65
65
65
Captulo 4
xviii Sumrio
Front-ends e back-ends
Subjacente Tecnologia
O servidor Pentaho Business Intelligence
A Plataforma
A soluo de repositrio e do Mecanismo de Soluo
Database Management pool de conexo
User Authentication and Authorization
Agendamento de tarefas
Servios de e-mail
BI Componentes
A camada de metadados
Ad hoc Reporting Service
O Mecanismo de ETL
Reportagem Motores
O mecanismo de OLAP
O Mecanismo de Minerao de Dados
A camada de apresentao
Subjacente a tecnologia Java Servlet
Programas Desktop
Pentaho Enterprise Edition eo Community Edition
A criao de seqncias de ao com Pentaho Design
Studio
Pentaho Design Studio (Eclipse) Primer
O Editor de Seqncia de Ao
Anatomia de uma seqncia de ao
Entradas
Sadas
Aes
Resumo
Parte II
Captulo 5
Dimensional e Modelagem de Data Warehouse
Design
Exemplo de caso de negcio: Filmes de Classe Mundial
Filmes Classe Mundial: O Bsico
Os dados WCM
Obter e gerar dados
WCM Database: The Big Picture
66
66
67
67
68
69
69
69
70
70
70
72
72
72
72
72
73
74
74
76
77
78
80
83
83
85
85
89
91
93
94
95
97
97
Contedo xix
Catlogo de DVD
Clientes
Empregados
As ordens de compra
Pedidos de clientes e Promoes
Gesto de Stocks
Gesto do Negcio: A finalidade do negcio
Inteligncia
Perguntas Business Intelligence tpica para WCM
Dados fundamental
Resumo
Captulo 6 Data Warehouse Primer
Por que Voc Precisa de um Data Warehouse?
O grande debate: Inmon Versus Kimball
Arquitetura de Dados do Armazm
A rea de preparo
O Armazm de Dados Central
Data Marts
Cubos OLAP
Formatos de armazenamento e MDX
Desafios do Armazm de Dados
Qualidade dos dados
Dados Vault e Qualidade de Dados
Usando dados de referncia e Master
Volume de dados e desempenho
Open Source Apoio janela banco de dados
Captura de dados alterados
Fonte de Dados Baseado em CDC
Trigger Baseado CDC
Instantneo baseado CDC
Log-base CDC
Qual alternativa CDC deve voc escolher?
Requisitos Variveis de usurio
Tendncias do Armazm de Dados
Data Warehousing Virtual
Real-Time Data Warehousing
Bancos de dados analticos
99
101
101
101
102
104
105
108
109
110
111
112
114
116
118
119
121
121
122
123
124
125
127
128
132
133
133
134
135
136
137
137
139
139
140
142
xx Contedo
Armazm de Dados Eletrodomsticos
Em Data Warehousing Demand
Resumo
Captulo 7 Modelagem de Negcios Usando esquemas Star
O que um esquema em estrela?
As tabelas de dimenso e tabelas de fato
Tabela de tipos de Fato
Consultando esquemas Star
Junte-se a tipos de
Restries aplicveis em uma consulta
Combinando mltiplas restries
Restringir resultados agregados
Ordenao de Dados
A arquitetura de barramento
Princpios de Design
Usando chaves substitutas
Naming e Convenes Tipo
Granularidade e Agregao
Auditoria Colunas
Modelagem de Data e Hora
Tempo de granularidade da dimenso
Hora local Versus UTC
Data Smart Keys
Handling Time Relativa
Desconhecido chaves de dimenso
Tratando alteraes Dimenso
SCD Tipo 1: Substituir
SCD Tipo 2: Adicionar linha
SCD Tipo 3: Adicionar Coluna
SCD Tipo 4: Mini-Dimenses
SCD Tipo 5: Tabela de histrico separada
SCD Tipo 6: Estratgias Hbridas
Advanced Concepts Modelo Dimensional
Dimenses Monster
Lixo, heterogneo e Degenerada
Dimenses
Dimenses de Interpretao de Papis
143
144
144
147
147
148
149
150
153
156
157
157
158
158
160
160
162
163
164
165
165
165
166
166
169
169
171
171
174
174
176
178
179
179
180
181
Contedo xxi
Multi-valued dimenses e tabelas de Ponte
Criao de hierarquias
Flocos de neve e dimenses de agrupamento
Estabilizadores
Tabelas Consolidao multi-gro
Resumo
Captulo 8 O Data Mart Processo de Projeto
Anlise de Requisitos
Obtendo o direito de usurio Envolvidos
Coleta de Requisitos
Anlise de Dados
Data Profiling
Usando DataCleaner eobjects.org
Adicionando tarefas perfil
Adicionando conexes de banco de dados
Fazer um perfil inicial
Trabalhando com Expresses Regulares
A caracterizao e explorao de resultados
Validao e comparao de dados
Usando um dicionrio para Dependncia Coluna
Cheques
Solues Alternativas
Desenvolvimento do Modelo
Modelagem de dados com Power * Architect
Construindo o Data Marts WCM
Gerando o banco de dados
Dimenses gerar esttica
Especial campos de data e Clculos
Fonte para Alvo Mapeamento
Resumo
Integrao de dados e ETL
Primer Pentaho Data Integration
Viso geral de integrao de dados
Atividades de Integrao de Dados
Extrao
182
184
186
188
188
189
191
191
192
193
195
197
198
200
201
202
202
204
205
205
205
206
208
210
212
213
216
218
220
221
223
223
224
226
Parte III
Captulo 9
xxii Contedo
Change Data Capture
Data Staging
Validao de dados
De limpeza de dados
Decodificao e Renomeando
Key Management
Agregao
Dimenso e Manuteno de Tabelas Ponte
Carregando Tabelas de fatos
Pentaho Data Integration e Conceitos
Componentes
Ferramentas e Utilitrios
O Mecanismo de Integrao de Dados
Repositrio
Empregos e Transformaes
Plug-Arquitetura na
Comeando com uma colher
Iniciando o aplicativo Spoon
Um mundo simples''Ol,!''Exemplo
Construindo a Transformao
Executando a Transformao
A Execuo Painel de Resultados
A sada de
Verificao de consistncia e Dependncias
Consistncia lgica
Dependncias de recursos
Verificando a Transformao
Trabalho com o Banco de Dados
JDBC ODBC e conectividade
Criando uma conexo de banco de dados
Testando conexes de banco de dados
Como as conexes de banco de dados so usados
Um banco de dados habilitado''Ol, Mundo!''Exemplo
Banco de dados de configurao de conexo
Gesto
Conexes de banco de dados genricos
Resumo
226
226
227
228
228
229
229
229
230
230
230
232
232
232
235
236
236
237
237
244
245
246
247
247
247
247
248
248
249
252
252
253
256
257
258
Contedo xxiii
Captulo 10 Criando Pentaho Data Integration Solutions261
Gerando Tabela de dimenso Data262
Usando Stored Procedures262
Carregando uma data simples Dimension263
CREATE TABLE dim_date: usando o Executar
SQL Script Step265
Falta de data e gerar linhas com inicial
Data: gerar linhas Step267
Dias Seqncia: A Seqncia Adicionar Step268
Calcular e formatar datas: a Etapa calculadora 269
O mapeador Valor Step273
dim_date carga: O Step275 Output Table
Mais avanada Dimension Data Features276
ISO Week e Year276
Ano passado e atual Indicators276
Internacionalizao e Idiomas Support277
Carregando um tempo simples Dimension277
Combine: A associao de linhas (produto cartesiano)
Step279
Calcular Tempo: Mais uma vez, a calculadora Step281
Carregando a Demografia Dimension281
Compreender o stage_demography e
Tables283 dim_demography
Gerao de idade e renda Groups284
Vrias entrada e sada Streams285
Carregamento de dados de fonte Systems286
Encenao Pesquisa Values286
O Job287 stage_lookup_data
O incio do trabalho Entry288
Transformao do emprego Entries288
Correio xito e-mail Failure289
O extract_lookup_type e
extract_lookup_value Transformations292
O Transformation293 stage_lookup_data
Verificar se existe tabela de preparao: a tabela existe
Step294
As linhas de filtro Step294
Criar Staging Tabela: Execuo SQL295 Dynamic
O Step296 Dummy
xxiv Contedo
A Corrente Pesquisa Etapa
Classificar em Lookup Type: o tipo Etapa Linhas
Guarde o estadiamento da tabela: usando uma sada de mesa
Passo para carregar vrias tabelas
A Dimenso Promoo
Promoo de mapeamentos
Dados Alteraes Promoo
Sincronizao de Freqncia
O load_dim_promotion Trabalho
A Transformao extract_promotion
Determinar as alteraes nos dados de Promoo
Salvando o extrato e passando sobre o nome do arquivo
Levantando o arquivo e carregar o Extrato
Resumo
Captulo 11 Implementando Solues Pentaho Data Integration
Configuration Management
Usando variveis
Variveis em propriedades de configurao
Variveis de Usurio
Variveis internas
Variveis Exemplo: Base de dados dinmicos
Conexes
Mais sobre a etapa Definir Variveis
Defina variveis Gotchas Etapa
Usando conexes JNDI
O que o JNDI?
Criando uma conexo JNDI
Conexes JNDI e Implantao
Trabalho com o Repositrio PDI
Criando um Repositrio PDI
Conectando-se ao repositrio
Automaticamente conectando a um padro
Repositrio
O Explorer Repositrio
Administrando Contas de Usurio do Repositrio
Como PDI se mantm informado dos Repositrios
Atualizando um repositrio existente
Em execuo no ambiente de implantao
297
299
300
300
301
301
302
302
303
304
306
306
308
309
310
310
311
312
314
314
318
319
319
319
320
321
322
322
323
324
325
327
328
329
330
Contedo xxv
Correndo na linha de comando
Parmetros de linha de comando
Executar trabalhos com Cozinha
Correndo com Transformaes Pan
Usando parmetros personalizados de linha de comando
Usando senhas de banco de dados Obfuscated
Rodando dentro do Pentaho BI Server
Transformaes em seqncias de ao
Empregos em seqncias de ao
O servidor Pentaho BI e do PDI Repositrio
Execuo remota com Carte
Por execuo remota?
Correndo Carte
Criando Servidor Slave
Remotamente Executando uma transformao ou de
trabalho
Clustering
Resumo
330
330
332
332
333
334
334
334
335
336
337
338
339
340
341
341
343
Parte IV Inteligncia Aplicaes de Negcio 345
347
347
347
348
348
348
349
349
350
350
352
352
352
353
355
Captulo 12 A camada de metadados
Metadados Resumo
O que so metadados?
As vantagens da Camada de Metadados
Utilizando Metadados para fazer um mais user-friendly
Interface
Adicionando Independncia Flexibilidade e esquema
Privilgios de acesso do Refino
Manipulao de localizao
Cumprimento de formatao consistente e Comportamento
mbito de aplicao e uso da Camada de Metadados
Metadados Caractersticas Pentaho
Banco de Dados e Abstrao de consulta
Relatrio de Definio: Ponto do usurio de negcios de
Ver
Relatrio de Execuo: A SQL Developer's
Ponto de Vista
Mecnicos de Abstrao: A camada de metadados
xxvi Contedo
Propriedades, Conceitos e herana no
Metadados Layer
Propriedades
Conceitos
Herana
Localizao de Imveis
Criao e manuteno de metadados
O editor de metadados em Pentaho
O Repositrio de Metadados
Metadados Domnios
As subcamadas da Camada de Metadados
A Camada Fsica
A camada lgica
A camada de entrega
Implantao e uso de metadados
Exportao e importao de arquivos XMI
Publicao de metadados para o servidor
Atualizando os Metadados
Resumo
Captulo 13 Usando as ferramentas de relatrios Pentaho
Reporting Arquitetura
Relatrios baseados na Web
Usos Prticos da WAQR
Pentaho Report Designer
A tela do PRD
Estrutura do relatrio
Relatrio Elementos
Criando Conjuntos de dados
Criando consultas SQL usando JDBC
Criando consultas de metadados
Exemplo de dados Set
Adicionando e Usando Parmetros
Layout e Formatao
Cores de linha alternadas: Bandas da Linha
Agrupando e resumindo dados
Adicionando e modificando grupos
Usando funes
Usando frmulas
355
355
356
356
357
357
357
358
359
359
359
362
365
366
366
367
367
368
371
371
373
375
376
377
378
380
381
382
385
386
386
389
390
391
391
393
395
Contedo xxvii
Adicionando grficos e elementos grficos
Adicionando um grfico de barras
Grficos de pizza
Trabalhando com imagens
Trabalhando com sub-relatrios
Passando valores de parmetros para sub-relatrios
Publicando e Exportando relatrios
Atualizando os Metadados
Exportando relatrios
Resumo
Captulo Programao 14 de Assinatura e de ruptura
Agendamento
Conceitos do Scheduler
Pblico e Agendas Privada
Repositrio de contedo
Criao e manuteno de agendas com o
Pentaho Console de Administrao
Criar uma Nova Agenda
Correndo Horrios
Suspenso e retomada de Horrios
Excluindo agendas
Programao com o Agendador de Aco
Seqncias
Adicionar tarefa
Trabalho suspender, reiniciar Trabalho, Emprego e Excluir
Aes Outros Processo Scheduler
Programador Alternativas
Sistemas baseados em Unix: Cron
Windows: o de utilidade pblica e do Agendador de Tarefas
Contexto de execuo e assinatura
Como funciona a execuo em segundo plano
Assinatura Como funciona
Permitir que usurios se inscrevam
Concesso de execuo e cronograma Privilgios
A subscrio efectiva
Espao de Trabalho do Usurio
Visualizando o Contedo da rea de Trabalho
397
400
400
401
404
405
406
407
408
408
411
411
412
412
412
413
414
416
416
417
417
418
420
420
420
421
421
422
422
423
423
424
425
426
426
xxviii Contedo
A espera, completa e agendamentos dos meus
Panes
O Painel de Agendas Pblicas
rea de trabalho do administrador do servidor
Limpando a rea de trabalho
Ruptura
Implementao de ruptura em Pentaho
Exemplo de ruptura: Aluguel lembrete E-mails
Passo 1: encontrar clientes com DVDs que so
Prevista para esta semana
Passo 2: looping atravs dos clientes
Passo 3: Primeiros DVDs que devero ser
Obtivemos
Passo 4: Executando o relatrio lembrete
Passo 5: o envio do relatrio via e-mail
Outras implementaes de ruptura
Resumo
427
427
428
429
430
430
430
431
432
434
434
436
438
439
Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 441
Resumo da Anlise Pentaho Services442
Architecture442
Schema444
Esquema Design Tools444
Agregado Tables445
MDX Primer445
Cubos, dimenses e Measures446
O Cubo Concept446
Esquema Estrela Analogy447
Cubo Visualization447
Hierarquias, nveis e Members448
Hierarchies448
Nveis e Members449
O nvel de todos, todos os Estados e os Estados-padro 450
Membro Sets451
Vrias Hierarchies451
Cube Famlia Relationships451
Horrio relativo Relationships452
Consultas MDX Syntax453
Basic MDX Query453
Contedo xxix
Eixos: em linhas e ON COLUNAS
Olhando para uma parte dos dados
Dimenso em apenas um eixo
Mais exemplos MDX: um simples cubo
A funo FILTER
A funo ORDEM
Usando TopCount e BOTTOMCOUNT
Combinando Dimenses: A Crossjoin
Funo
Usando no vazia
Trabalhando com conjuntos e a clusula WITH
Usando membros calculados
Criando esquemas Mondrian
Comeando com Pentaho esquema Workbench
Baixando Mondrian
Esquema de Instalao do Pentaho Workbench
A partir do esquema Pentaho Workbench
Estabelecendo uma conexo
JDBC Explorer
Usando o editor de esquema
Criando um novo esquema
Salvando o esquema em disco
Edio de objeto Atributos
Alterar Edit Mode
Criao e edio de um esquema bsico
Esquema Bsico tarefas de edio
Criando um Cubo
Escolher uma Mesa de Fato
Adicionando Medidas
Adicionando dimenses
Adicionando e hierarquias Editar e escolha
Tabelas de dimenso
Adio de nveis de hierarquia
Associando Cubos com Dimenses compartilhadas
Adicionando as Dimenses e DVD ao Cliente
XML Listagem
Testes e Implantao
Usando a ferramenta de consulta MDX
Publicando o Cubo de
453
454
455
455
455
456
457
457
457
458
459
460
460
460
461
461
462
463
463
463
464
465
465
466
466
466
468
469
470
471
474
476
478
480
481
481
482
xxx Contedo
Tpicos Design esquema ns no cobrimos
Visualizando Cubos Mondrian com JPivot
Introduo vista da anlise
Usando a Barra de Ferramentas JPivot
Perfurao
Perfurao Sabores
Broca-Membros e posio da broca
Substituir Drill
Perfurar
O Navigator OLAP
Controlando a veiculao de dimenses em eixos
Fatias com o Navigator OLAP
Especificando Estados jogos com o OLAP
Navigator
Resultados de vrias medidas
Diversos recursos
Painel de Consulta MDX
PDF e Excel Exportar
Grfico
Melhorando o desempenho usando o Pentaho
Designer Aggregate
Agregao de Benefcios
Estendendo Mondrian com tabelas agregadas
Pentaho Designer Aggregate
Solues Alternativas
Resumo
Captulo 16 Minerao de Dados com Weka
Data Mining Primer
Processo de Data Mining
Data Mining Toolset
Classificao
Clustering
Associao
Numricos de previso (Regresso)
Algoritmos de minerao de dados
Treinamento e teste
Estratificada de validao cruzada
O Weka Workbench
483
484
484
485
486
486
487
488
488
488
489
490
492
493
493
493
494
494
496
496
497
500
502
502
503
504
504
506
506
507
507
508
508
509
509
510
Contedo xxxi
Formatos de entrada Weka
Configurando conexes de banco de dados Weka
Comeando Weka
O Weka Explorer
O experimentador Weka
Weka KnowledgeFlow
Usando Weka com Pentaho
Adicionando Plugins Weka PDI
Comeando com Weka e PDI
Aquisio de Dados e Preparao
Como criar e salvar o modelo
Utilizando o Weka Scoring Plugin
Leitura
Resumo
Captulo 17 Painis de Construo
O Dashboard Framework Comunidade
CDF, a Comunidade eo Pentaho
Corporation
CDF Projeto Histria e Quem Quem
Emisso de Administrao, Documentao e
Suporte
Competncias e Tecnologias de Dashboards CDF
Conceitos CDF e Arquitetura
O CDF Plugin
O Diretrio Home CDF
O arquivo plugin.xml
CDF JavaScript e CSS Recursos
O xcdf. Arquivo
Modelos
Modelo de Documento (a.k.a. exterior Modelo)
Modelo de Contedo
Exemplo: Clientes e Dashboard Sites
Instalao
Criando o. Xcdf Arquivo
Criando o arquivo HTML Dashboard
Cdigo clich: Como a soluo e caminho
Cdigo clich: Parmetros Dashboard
Cdigo clich: Componentes Dashboard
511
512
514
516
517
518
519
520
520
521
523
525
527
527
529
529
529
530
531
531
532
534
534
535
536
537
538
538
541
542
544
544
545
545
546
546
xxxii Contedo
Teste
Clientes por grfico de pizza Website
Clientes / Website: Recurso grfico de pizza
Seqncia
Clientes / Website: XactionComponent
Alterar dinamicamente o ttulo Dashboard
Adicionando o Dashboard website_name
Parmetro
Reagindo aos cliques do mouse sobre o grfico de pizza
Adicionando um TextComponent
Mostrando a localizao do cliente
MapComponent CDF formato de dados
Acrescentando uma dimenso Geografia
Localizao Seqncia de Ao de Dados
Colocando no Mapa
Usando marcadores diferentes dependendo dos dados
Styling e Personalizao
Denominando o Dashboard
Criando um modelo de documento personalizado
Resumo
ndice
547
548
548
551
553
553
554
555
557
557
558
559
561
562
565
566
568
569
571
Introduo
Em 1958 a IBM Research Fellow Hans Peter Luhn escreveu um artigo seminal para o
Jornal Sistemas IBM ''Uma chamada de Business Intelligence System''. Neste trabalho
o termo inteligncia foi definido como''a capacidade de apreender as inter-
RELACIONAMENTO dos fatos apresentados de forma a orientar a aco para uma desejada
objetivo.''Hoje em dia este papel geralmente considerada como a fasca que iniciou
o desenvolvimento de Business Intelligence (BI), sistemas como os conhecemos hoje.
Por um longo tempo o mercado de software para apoiar BI tem sido o domnio
de um punhado de fornecedores proprietrios que poderia carregar grandes somas de
dinheiro
para suas solues especializadas. O final dos anos noventa marcou uma importante viragem
ponto para o mercado mundial de software de solues open source, quando comeou
para se tornarem alternativas viveis para o apoio aos sistemas de misso crtica. Primeira
os vrios sabores de Linux veio da idade, e em 2001 e 2002, vrios novos
projetos foram iniciados, todos nas reas de integrao de dados, relatrios, anlise
e minerao de dados, os pilares de uma soluo de BI moderna. Em 2004,
JasperSoft e Pentaho foi fundada para oferecer sutes completas de BI que alavancou
o actual stand-alone solues de BI. Desde ento, essas empresas viram
forte crescimento e adoo do mercado, tornando as solues de BI de fonte aberta uma
grave
alternativa para os fornecedores estabelecidos proprietrios.
Voc pode se perguntar agora, o que Business Intelligence e por que
assunto? Na verdade, a definio dada por Luhn ainda vlido, mas em 1993,
Analista do Gartner Howard Dresner reintroduziu o termo Business Intelligence
e definiu-o como segue:
Conceitos e mtodos para melhorar a tomada de decises comerciais usando baseadas
em fatos
sistemas de apoio.
Esta uma definio um pouco menos abstrata em comparao com Luhn, e um
que ainda usado pela maioria das pessoas para explicar o que BI. A definio
xxxiii
Introduo xxxiv
no essencialmente focado em tecnologia (''conceitos e mtodos''), mas o ltimo
systems'' apoio parcial''fact baseado que o tema deste livro. Este livro
tudo sobre como criar um sistema de apoio baseado em factos usando as ferramentas
entregues
pela Pentaho. Para ser capaz de tomar melhores decises baseadas em fatos, voc vai
precisar
obter essa informao factual de um ou mais sistemas de informao, integrao
esses dados em uma forma til, e os usurios apresentam relatrios e anlises que
ajud-los a compreender o passado eo presente do desempenho organizacional.
O valor real dos sistemas de BI est na sua utilizao para apoiar as organizaes
para tomar decises bem informadas que levar a uma maior rentabilidade,
custos reduzidos, eficincia, crescimento da quota de mercado, maior colaborador
satisfao, ou o que quer os objectivos da sua organizao pode ser. O acrescentado
benefcio do uso do open source Pentaho para fazer isso o grande
valor para o dinheiro ea flexibilidade do software. Isso permite que qualquer organizao,
com fins lucrativos ou sem fins lucrativos, grandes ou pequenas, para implementar e utilizar
este software para
tomar melhores decises.
Sobre este livro
Os primrdios da Pentaho Solutions voltar para mais de um ano atrs, quando ns,
os autores, observamos um interesse crescente em cdigo aberto e software livre
solues, combinado com uma conscincia crescente de que ainda software de BI essencial
em medir e melhorar o desempenho de uma organizao.
Durante a dcada passada, as variantes de cdigo aberto mais e mais tipos de
software tornaram-se alternativas comumente aceita e respeitada a sua
mais caro e menos flexvel homlogos proprietrios. O facto de software
open source muitas vezes confundido por ser livre de custos, e embora isso possa
ser verdade, se voc olhar apenas o custo de licena, uma soluo de BI no pode (e nunca
vai) ser livre de custos. Existem custos associados a hardware, implementao,
formao, manuteno e migrao, e se tudo isso resumido despeja
que os certificados representam apenas uma pequena parte do custo do ciclo de vida total de
qualquer
soluo de software. Open source, porm muito mais do que uma maneira mais barata de
aquisio de software. O fato de que o cdigo fonte est disponvel livremente para qualquer
um
garante melhor qualidade de cdigo, uma vez que mais provvel que os problemas so
encontrados quando mais
as pessoas tm acesso fonte do que apenas os desenvolvedores do ncleo. O fato de que
software de fonte aberta construdo sobre padres abertos usando a programao normal
lnguas (principalmente Java) torna-o extremamente flexvel e extensvel. E o
fato de que software de cdigo aberto no mais vinculado a um determinado sistema
operacional
estende essa flexibilidade e liberdade ainda mais.
O que normalmente insuficiente, porm, um bom conjunto de documentao e manuais.
A maioria dos projetos de cdigo aberto oferecem software de excelente qualidade, mas os
desenvolvedores
geralmente se preocupam mais com sair um grande programa de entrega adequada
documentao. E, embora voc pode encontrar muitas boas fontes de informao
sobre cada pedao de solues de BI Pentaho, sentimos que existia a necessidade de
xxxv Introduo
uma nica fonte de informao para ajudar o usurio iniciante em sua forma
descobrir o conjunto de ferramentas Pentaho e implementar a primeira soluo. Isso
exatamente o que este livro para a ajudar a construir sua primeiras solues de BI
Pentaho usando, desde o incio (descobrindo Pentaho) at o fim
(Painis de construo para os usurios finais).
Quem deve ler este livro
Este livro destinado para quem quer saber como oferecer solues de BI
usando Pentaho. Talvez voc seja um gerente de TI procura um custo eficiente de BI
soluo, um profissional de TI que desejam ampliar seu conjunto de habilidades, ou de um BI
ou dados
consultor de armazm responsvel pelo desenvolvimento de solues de BI em sua organi-
zao. Talvez voc seja um desenvolvedor de software com um monte de construo de
experincia
solues de open source, mas ainda novo no mundo de Business Intelligence. E
Talvez voc j experimentou um BI ou dados desenvolvedor armazm com
profundo conhecimento de uma ou mais das ferramentas existentes de propriedade. Em
qualquer caso,
Vamos assumir que tem um hands-on mentalidade j que este um hands-on do livro.
Ns esperamos alguma familiaridade com o uso de computadores para fornecer informaes,
instalao de software, e trabalhar com bases de dados, mas a maioria dos tpicos que sero
explicado desde o incio. Ento, se voc no um especialista em SQL experiente, no
se preocupe: ns vamos cobrir o bsico dessa linguagem de consulta para que voc obtenha
em seu caminho.
claro que os conceitos de BI e data warehouse so explicados como bem, mas o
foco principal sobre como transformar estes conceitos em uma soluo de trabalho.
Isso exatamente por isso que o livro chamado Solues Pentaho.
O que voc vai precisar usar este livro
Para poder utilizar este livro, voc s precisa de duas coisas: um computador e uma
Ligao Internet. Todos os softwares e discutimos o uso deste livro livremente
disponveis na Internet para download e uso. Os requisitos de sistema
para o computador que voc precisa bastante moderado, de fato, qualquer computador que
inferior a quatro anos vai fazer o trabalho muito bem, contanto que voc tenha pelo menos
1 Gigabyte de memria RAM instalada e 2 GB de espao livre em disco disponvel para
baixar e instalar o software.
Os diversos captulos contm URLs onde voc pode encontrar e baixar o
software que est sendo utilizado e as instrues de instalao. Quanto
Pentaho, existem, para alm do cdigo fonte real do curso, trs verses
do software que voc pode usar:
Estes lanamentos GA- so estveis verses do software, no geralmente o
Os mais recentes, mas certamente o mais confivel.
Release Candidates-A ''verses''quase pronto seguinte do software,
possivelmente com alguns pequenos bugs ainda neles.
Introduo xxxvi
Milestone libera-Estes so criadas com mais freqncia e permite que voc
para trabalhar com verses recentes introduzindo novas caractersticas.
Nightly constri-A verses mais atualizadas do software, mas tambm
os menos estveis.
Ao escrever este livro, que trabalhou principalmente com a nightly builds que
geralmente precedem os lanamentos GA por trs meses ou mais. Isso significa que
que quando voc ler este livro, o software usado neste livro , no mnimo, um
milestone ou j GA. Isto permite-lhe trabalhar com o material
usando um produto estvel, livre de bugs e voc pode se concentrar em solues de
construo,
No correo de bugs.
NOTA Como este livro vai para a imprensa, o prximo grande lanamento do Pentaho esperado
no outono de 2009. O nmero da verso final para esta verso ainda no do conhecimento pblico,
mas a verso de trabalho actualmente designada como Citrus''.''
A lista completa com as opes de download est disponvel online em
http://wiki.pentaho.com/display/COM/Community+Edition+Downloads.
O que voc vai aprender com este livro
Este livro vai ensinar-lhe:
O Business Intelligence , e porque voc precisa dele
Os componentes e produtos que formam a Pentaho Business Intelligence
suite, e como estes produtos e componentes de BI cumprir necessidades especficas
Como instalar e configurar o Pentaho e como conect-lo a uma base de dados
armazm
Como projetar um data warehouse utilizando ferramentas de cdigo
aberto
Como criar e carregar um armazm de dados com Pentaho Data Integration
(Kettle)
Como configurar uma camada de metadados para permitir relatrios ad-hoc e de auto-
atendimento
sem o uso de consultas diretas SQL
Como criar relatrios utilizando as ferramentas Pentaho Reporting
Como criar Pentaho Analysis Services (Mondrian), cubos, e visualizar
los usando o navegador cubo JPivot
Como configurar o agendamento, assinatura e distribuio automtica de BI
contedo
Como comear com o Pentaho Data Mining (Weka)
Como construir painis usando a Comunidade Dashboard Framework
para Pentaho
xxxvii Introduo
Como este livro est organizado
Este livro explica os conceitos de BI, tecnologias e solues. Ns usamos uma fico
vendas on-line de vdeo e empresas de aluguel (acho Netflix), que aparece em toda
o livro. Para cada parte distinta, as implementaes de exemplo so criados usando
Pentaho. Quando o exemplo se baseia em um banco de dados, ns temos tido o cuidado de
assegurar
o cdigo da amostra compatvel com o MySQL popular e ubqua
banco de dados (verso 5.1).
Estas amostras de fornecer os detalhes tcnicos necessrios para entender como
voc pode construir solues de BI para as situaes do mundo real. O mbito destas BI
solues principalmente sobre o nvel de data mart departamentais, que
acredito ser o caso de negcio mais comuns para o BI / data warehousing.
Parte I: Introduo ao Pentaho
Parte I est focado em obter um entendimento rpido e de alto nvel do
Pentaho software, sua arquitetura e suas capacidades. Alm disso, essa parte
apresenta-lhe uma srie de ferramentas de suporte de cdigo aberto que pode ajudar na
desenvolvimento armazns do mundo real de dados e aplicaes de BI.
Captulo 1: Exemplos Pentaho: Quick Start
Business Intelligence um assunto vasto e Pentaho uma pea complexa de
software. Ao mesmo tempo, fcil de entender porque voc precisa dele, e como
poderia se aplicar a voc se voc seguir junto com alguns exemplos. Este captulo
faz exatamente isso: ele oferece um prtico e eficiente na demonstrao de que voc
pode fazer com BI Pentaho e como ajuda a faz-lo.
Captulo 2: Pr-requisitos
A fim de desenvolver aplicaes de BI e arquitetura de apoio como um
data warehouse, voc precisa de diversos produtos de software, tais como modelagem de
dados
ferramentas e um servidor de banco de dados. Este captulo apresenta uma srie de
produtos que so essenciais para os exemplos desenvolvidos neste livro, bem como um
nmero de ferramentas de apoio para aumentar a produtividade. Como Pentaho, todos os
produtos
aqui mencionadas so de cdigo aberto / software livre. Estamos confiantes que voc vai
encontrar um
nmero de adies valiosas para o seu conjunto de ferramentas profissionais aqui.
Captulo 3: Instalao e Configurao do Servidor
Embora este livro no fornece uma referncia completa para administrao de Pentaho
e as tarefas de configurao, o mais importante e instalao so
descrito neste captulo. Como tal, este captulo no tanto sobre a explicao
conceitos, mas sim, saber o que editar arquivos de configurao para ajustar as coisas
Introduo xxxviii
at ao seu gosto. Voc deve pelo menos ler todo este captulo uma vez antes
construo de aplicaes Pentaho. Muitas das informaes aqui tem o carter
de uma referncia. medida que abrange os aspectos mais Pentaho todo o livro,
voc pode querer revisitar este captulo para procurar determinados elementos da
Pentaho configurao.
Captulo 4: O Pentaho BI Stack
Este captulo fornece uma viso geral do Pentaho, seus componentes, as suas capacidades,
e sua arquitetura. Ele apresenta a voc os conceitos importantes Pentaho, como
seqncias de ao e soluo de repositrio. Embora exista uma quantidade razovel
da teoria neste captulo, tambm fornece explicaes prticas, unindo
uma grande quantidade de material coberto nos captulos anteriores.
Parte II: modelagem dimensional e dados
Armazm Design
Parte II apresenta-lhe os principais conceitos e tcnicas relativas dimenso
modelagem e armazenamento de dados. Estes conceitos so feitos tangveis usando
um estudo de caso nico exemplo com base em um aluguel de DVD (fictcio) em linha
negcios, de Classe Mundial Filmes. Atravs da teoria constantemente e conscientemente a
mistura
e prticos, exemplos prticos, esperamos estabelecer uma fundao slida para
desenvolvimento de aplicaes de BI no restante do livro.
Captulo 5: Caso de Negcio Exemplo: Filmes de Classe Mundial
Neste captulo, ns introduzimos o World Class aluguer de DVD de filmes online
negcios. Ns fornecemos uma explicao detalhada dos seus negcios e subjacentes
esquema de banco de dados OLTP.
Captulo 6: Primer Data Warehouse
Este captulo apresenta e explica os conceitos fundamentais da dimenso
modelagem e armazenamento de dados. Ele explica os benefcios do uso de dados
warehouse e como um data warehouse difere de outros tipos de bancos de dados.
O captulo aborda a histria, estado atual e perspectivas futuras de dados
tecnologia de armazm e arquitetura.
Captulo 7: Modelagem de Negcios Usando esquemas Star
Este captulo leva a modelagem dimensional e conceitos de data warehouse
do captulo anterior e aplica-los para a Classe Mundial Filmes
business case para desenvolver as vrias partes do modelo de data mart.
Este modelo serve como base para as aplicaes de BI (que so desenvolvidos
na prxima parte do livro).
xxxix Introduo
Captulo 8: os dados do processo de Design Mart
Neste captulo, o projeto lgico do captulo anterior mais desenvol-
desenvolvidos, culminando em uma srie de esquemas em estrela, que servem para alcanar
o desenvolvimento fsico
execuo dos Filmes Classe Mundial de data warehouse, que a base
de praticamente todos os exemplos prticos no restante do livro.
Parte III: Integrao de dados e ETL
A Parte III dedicada ao processo de enchimento do depsito de dados usando o Pentaho
ferramentas de integrao de dados e funcionalidades.
Captulo 9: Pentaho Data Integration Primer
Este captulo fornece uma viso geral de todas as ferramentas que compem o Pentaho
Data Integration (PDI) toolkit. Ele explica a arquitetura e apresenta
a uma srie de conceitos que so fundamentais para a concepo de ETL dentro do Pentaho
plataforma. Ao mesmo tempo, fornece-lhe com as mos bsicas sobre as habilidades que
ir ajud-lo a usar ferramentas Pentaho Data Integration efetivamente para construir ETL
aplicaes.
Captulo 10: Criando Solues Pentaho Data Integration
Usando os conceitos e competncias bsicas adquiridas a partir do captulo anterior, este
captulo se concentra na concepo e construo de um hands-on soluo prtica
para carregar as Ordens mart de dados do data warehouse de Classe Mundial Filmes.
As transformaes exemplo, so acompanhados por uma descrio detalhada de
comumente usado etapas de transformao.
Captulo 11: Pentaho Data Integration Implantar solues
Este captulo se concentra na gesto e implantao de Pentaho Data Integration
solues. Alm disso, explica como as transformaes individuais podem ser
combinados para criar empregos. Vrias tcnicas para a gesto dos recursos estticos,
como conexes de banco de dados e arquivos so discutidas, junto com alguns dos mais
recursos avanados de PDI, como a execuo remota e clustering.
Parte IV: Aplicaes de Inteligncia de Negcios
Parte IV explica como usar o data warehouse para criar contedo de BI no final
usurios se preocupam.
Captulo 12: A camada de metadados
Este captulo apresenta Pentaho metadados e do editor de metadados. Alm
para explicar conceitos de metadados e da finalidade dos metadados em solues de BI,
Introduo xl
Este captulo fornece instrues detalhadas para criar um domnio de metadados que
podem ser usados para criar relatrios de auto-atendimento.
Captulo 13: Usando as ferramentas Pentaho Reporting
Este captulo fornece um tutorial em profundidade sobre o projeto e implantao
relatrios usando o Pentaho Report Designer. Voc vai aprender como criar
consultas usando o designer visual SQL ea ferramenta de consulta de metadados, adicione
parmetros para o relatrio para anlise interativa, e construir uma grande procura e
relatrios perspicazes usando tabelas, grficos e tabelas.
Captulo 14: Assinatura, agendamento e de ruptura
Este captulo sobre toda a produo automtica e entrega de contedo de BI. Voc
vai aprender a usar o Pentaho's built-in scheduler e como ela se liga em recursos
tais como inscrio e agendamento.
Captulo 15: Solues OLAP Utilizando Pentaho Analysis Services
Este captulo explica os componentes Pentaho OLAP. Alm de explicar
OLAP e MDX em geral, este captulo ajuda voc a criar anlise Pentaho
cubos, pastilhas e pontos de vista. A ltima parte deste captulo apresenta o designer
agregado
que ajuda a melhorar o desempenho da ferramenta Pentaho Analysis.
Captulo 16: Minerao de Dados com Weka
Neste captulo, vamos introduzir os conceitos bsicos de minerao de dados e prticas como
agrupamento e classificao utilizando Weka, o Pentaho componente de minerao de dados.
Terminamos este captulo com um exemplo de como voc pode usar um modelo de
minerao de dados
criado com Weka em uma transformao Pentaho Data Integration.
Captulo 17: Construindo Painis
Este captulo explica os conceitos subjacentes ao Dashboard Comunidade
Quadro. Utilizando um mtodo passo-a passo, este captulo explica em detalhes como
combinar uma srie de itens de soluo Pentaho diferentes e lev-los
juntos em um painel.
Sobre o Website
Todo o material utilizado no exemplo do livro est disponvel para download a partir do
Web site do companheiro em Wiley (www.wiley.com / go / pentahosolutions) E na
www.worldclassmovies.com. O download inclui os seguintes itens:
Power * Architect modelos de dados para bases de dados no livro
Os arquivos de dados de clientes, produtos e funcionrios
xli Introduo
MySQL criar scripts para os bancos de dados
scripts MySQL para gerar transaes de vendas
Todos os trabalhos PDI e transformaes
modelos de metadados para criar relatrios
Exemplos de relatrios
esquemas Mondrian
definio de arquivos Dashboard
seqncia de exemplos de Aco
Recursos adicionais
Existem vrios livros disponveis sobre os temas especficos abordados neste livro.
Muitos captulos contm referncias para outras leituras e links para sites que
contm informaes adicionais. Se voc novo e Business Intelligence
armazenamento de dados em geral (ou quiser acompanhar os desenvolvimentos mais
recentes),
Aqui esto alguns bons lugares para comear:
inteligncia http://en.wikipedia.org/wiki/Business
http://www.kimballgroup.com
http://b-eye-network.com
http://www.tdwi.org
Ns tambm encorajamos voc a visitar o nosso site, http://rpbouman.blogspot.com
e www.tholis.com, Onde voc pode encontrar as nossas informaes de contato em caso de
quero entrar em contato conosco diretamente.
Pentaho Solutions

Parte
I
Comeando com Pentaho
Nesta parte
Captulo
Captulo
Captulo
Captulo
1: Quick Start: Exemplos Pentaho
2: Pr-requisitos
3: Instalao e Configurao do Servidor
4: O BI Pentaho Stack
CAPTULO
1
Quick Start: Exemplos Pentaho
Pentaho um poderoso Business Intelligence Suite oferece muitos recursos:
relatrios, tabelas dinmicas de OLAP, dashboards e muito mais. Neste livro voc vai
encontrar um monte de informaes detalhadas sobre os componentes Pentaho, como eles
funcionam
e interagir, os recursos que oferecem, e como usar o Pentaho BI Suite para
criar solues para os problemas do mundo real. No entanto, uma boa idia para tentar
compreender o quadro geral antes de mergulhar nos detalhes.
Este captulo ajuda voc a comear por mostrar-lhe onde conseguir o software
e como instalar e execut-lo. O Pentaho BI Suite inclui muitos exemplos
demonstrando suas caractersticas para dar aos usurios uma nova idia de que tipo de
solues
voc pode construir com ela. A maioria destes trabalhos exemplos''fora do''caixa e so
portanto, ideal para uma introduo ao produto. Ao ler este captulo, voc
se familiarizar com a Pentaho, olhando para alguns exemplos.
Comeando com Pentaho
Nesta seo, descrevemos como obter o software, instal-lo e execut-lo.
Para executar o software, voc precisa de um desktop ou laptop regular execuo
qualquer sistema operacional popular, como o Ubuntu Linux, Mac OS X ou Microsoft
Windows 7, XP ou Vista. Para baixar o software necessrio, voc vai precisar de um
conexo Internet com banda suficiente para fazer o download de dezenas a centenas
de megabytes.
3
4 Parte I Comeando com Pentaho
Baixar e instalar o software
O Pentaho BI Suite um software de fonte aberta, voc livre para usar e distribuir
seus programas, e se voc quiser, voc pode estudar e at mesmo modificar seu cdigo fonte.
Voc pode fazer tudo isso gratuitamente.
Pentaho programado em linguagem de programao Java. Antes que voc possa
executar programas Java, voc precisa instalar o Java. Para Pentaho, voc precisar de pelo
menos
Java verso 1.5. Voc tambm deve ser capaz de usar o Java 1.6. Vamos supor que voc
j tem uma verso recente do Java instalado em seu sistema. Voc pode encontrar
mais detalhes sobre como baixar e instalar o Java no Captulo 2.
Voc pode baixar todo o software lanado Pentaho da Fonte
Forge site. A maneira mais fcil de encontrar o software para navegar
http://sourceforge.net/projects/pentaho/ e clique no link Download.
Voc ver uma lista de produtos que voc pode baixar.
Por enquanto, voc no vai precisar de todos os programas-tudo o que voc est
interessado em nos
momento o Business Intelligence Server. Clique no link Download no extremo
coluna da direita. Isso leva voc para uma pgina contendo uma lista das diferentes verses
do software. Aqui voc deve tomar cuidado para encontrar a verso mais recente do
geralmente liberao (GA) disponveis, embalados em uma maneira que seja apropriada para
sua
plataforma. Por exemplo, usurios do Microsoft Windows deve baixar o Zip.
pacote compactado e usurios de sistemas baseados em UNIX deve baixar o
. Tar.gz compactado pacote.
NOTA Em pginas de download Pentaho no SourceForge, geralmente voc pode encontrar em
pelo menos as ltimas geralmente disponveis liberao (GA), bem como um marco chamados
lanamento da nova verso, programado. Se voc realmente quiser estar a sangrar
margem do desenvolvimento, voc pode baixar nightly builds do software de
http://ci.pentaho.com/. Para este livro, que trabalhou principalmente com a noite
compilaes da verso Citrus, que ainda estava sendo desenvolvido no momento da escrita,
mas que dever estar disponvel como um milestone GA ou pelo tempo de
publicao.
sempre uma boa idia tentar o marco lanamentos para acompanhar futuras
alteraes e aditamentos. Mas cuidado que libera marco ainda esto em
desenvolvimento, no so destinados produo, utilizao e voc pode descobrir bugs ou
questes de usabilidade experincia. No entanto, esta uma das melhores razes pelas quais voc
deve executar lanamentos marco por reportar qualquer problema que voc experimentar, voc pode
influenciam diretamente na melhoria do software para seu prprio benefcio (bem
como a de todos os outros usurios).
Depois de baixar o Zip. ou . Tar.gz pacote compactado, voc deve
extrair o software real do pacote compactado e copi-lo para alguns
lugar que voc achar conveniente. Usurios do Windows podem direito do mouse no Zip.
arquivo e
escolha Extrair Aqui (na nova pasta) no menu de contexto. Alternativamente, voc
pode usar um programa de terceiros, tais como PeaZip para extrair os programas do
Captulo 1 Quick Start: Exemplos Pentaho 5
o pacote compactado. Usurios de sistemas UNIX-like pode abrir um terminal e
extrair o pacote na linha de comando.
Extrao deve resultar em uma nica pasta que contm todos os BI Pentaho
Servidor de software. Usurios do Windows podem colocar essa pasta em qualquer lugar que
quiser, mas
faz mais sentido coloc-lo no diretrio Program Files. Para UNIX-like
sistemas, o local adequado depende do sabor de UNIX exata, mas para
verificar os exemplos, melhor mover o diretrio do servidor Pentaho
para seu diretrio home. No restante deste captulo, referimo-nos para o diretrio
contendo o software do Servidor Pentaho como o diretrio home ou Pentaho
simplesmente casa Pentaho.
Executando o Software
Agora que voc tenha baixado e instalado o software, voc pode comear
us-lo.
Iniciando o Servidor Pentaho BI
No diretrio home Pentaho, voc vai encontrar alguns scripts que podem ser usados para
iniciar o servidor. Os usurios do Microsoft Windows pode dar um duplo clique no script
chamado
start-pentaho.bat.
Para sistemas baseados em UNIX, o script chamado start-pentaho.sh. Voc pode
primeiro necessrio para permitir que este script para ser executado. Modern ambiente
desktop Linux
mentos como o GNOME e KDE vai deixar voc fazer isso nas propriedades do arquivo
dilogo, que voc pode invocar a partir do navegador de arquivos. Por exemplo, no Ubuntu
Linux, voc pode boto direito do mouse no arquivo e escolha Propriedades no menu de
contexto
para invocar a caixa de dilogo. Na guia Permisses no dilogo, voc pode selecionar um
caixa de seleo para permitir que o arquivo a ser executado, conforme ilustrado na Figura 1-
1.
Figura 1-1: Tornar o script start-pentaho.sh executvel
6 Parte I Comeando com Pentaho
Alternativamente, voc pode abrir um terminal e alterar diretrio (usando o cd
comando) para o diretrio home Pentaho. De l, voc pode usar o acompanhamento
comando contribuem para fazer todos os Sh. scripts executveis:
Shell> chmod ug + x *. sh
Agora voc pode simplesmente iniciar o script clicando duas vezes (voc pode precisar
confirmar em uma caixa de dilogo) ou digitando-o no terminal:
Shell>. / Start-pentaho.sh
Depois de iniciar o script, voc ver alguns bastante sada constante do
console. Voc deve deixar aberta a janela de terminal em que voc comeou
o script.
NOTA A start-pentaho script faz duas coisas.
Primeiro, ele inicia um servidor de banco de dados HSQLDB, que usado pelo servidor para Pentaho
armazenar os dados do sistema, bem como um banco de dados da amostra, que usado pela maioria dos
exemplos.
Por padro, o banco de dados HSQLDB rodando na porta 9001. Voc deve ter certeza de que
outro servidor est em execuo no porto.
Em segundo lugar, ela comea um servidor Tomcat. Por padro, o servidor Tomcat escuta na porta
8080 para solicitaes da Web. Voc deve fazer o servidor sem a certeza de outros est sendo
executado no
porto, ou o Pentaho BI Server no ser iniciado com xito.
Registro em
Depois de iniciar o servidor, voc pode iniciar o seu navegador de Internet para se conectar ao
servidor. Voc deve ser capaz de usar qualquer um dos principais navegadores (como Mozilla
Firefox, Microsoft Internet Explorer, Safari, Opera ou Google Chrome)
para fazer isso. Navegue seu navegador para o seguinte endereo:
http://localhost:8080
Voc ser automaticamente redirecionado para o seguinte:
http://localhost:8080/pentaho/Login
Logo, voc deve ver uma pgina de boas-vindas para o usurio Pentaho console. De
l, voc pode fazer logon no servidor pressionando o grande boto laranja Login.
Se voc pressionar o boto, uma caixa de login exibida. De l, voc pode selecionar um
nome da lista drop-down. Por agora, faa o login como o usurio Joe, como mostrado
na Figura 1-2.
Depois de selecionar o nome de usurio, voc pode pressionar o boto Login para
realmente Entrar!
Captulo 1 Quick Start: Exemplos Pentaho 7
Figura 1-2: A tela de boas-vindas e Pentaho de dilogo de login
Manto, o usurio Pentaho Console
Aps a confirmao do login, voc ver que o usurio Pentaho console, como mostrado
na Figura 1-3.
No console do usurio, voc encontrar alguns elementos para controlar o BI Pentaho
Servidor:
Uma barra de menu, que est localizado na parte superior da pgina e se estende da
pgina
horizontalmente. Aqui voc pode encontrar alguns itens de menu padro: Arquivo, Exibir,
Ferramentas e Ajuda.
Uma barra de ferramentas que contm vrios botes, localizados imediatamente abaixo
no menu.
Um painel lateral, localizado esquerda da pgina, podem ser redimensionados
dinamicamente
usando a barra cinza vertical na extremidade direita do painel. O painel tambm pode ser
oculto / apresentado em sua totalidade utilizando o boto Toggle Browser, que
o boto mais direita da barra de ferramentas.
8 Parte I Comeando com Pentaho
A exibio em rvore que visvel na metade superior do painel lateral chamado
o Browser de Repositrio. Na Figura 1-3, este rotulado Procurar. Voc pode
usar esse recurso para navegar por todo o contedo de BI disponveis no BI Pentaho
Server.
Uma pasta painel de contedo est localizado no painel lateral, logo abaixo do
soluo navegador repositrio. Na Figura 1-3, esta rotulado arquivos. Ela mostra
qualquer contedo da pasta selecionada na soluo de repositrio (como
relatrios, dashboards e tabelas dinmicas de OLAP) como uma lista de itens. Voc
pode
abrir um item com um duplo clique sobre ele.
Um espao de trabalho. Este o maior painel do lado direito. Quando voc clicar duas
vezes
um item no painel de contedo da pasta, ele ser exibido aqui, usando um guia
interface.
Figura 1-3: O usurio Pentaho console, tambm conhecido como Manto
Trabalhando com o contexto
A edio da comunidade do Pentaho BI Server vem com dois conjuntos de
exemplos:
Exemplos BI Developer
Steel Wheels
Cada conjunto de exemplos reside na sua prpria soluo Pentaho e visvel na
browser soluo de repositrio (veja a Figura 1-4).
Captulo 1 Quick Start: Exemplos Pentaho 9
Figura 1-4: Duas solues de exemplo includos no Pentaho BI Server
Ambas as solues Pentaho contm bons exemplos para demonstrar a
tipos de relatrios que voc pode criar com o Pentaho. Ambas as solues de usar o mesmo
dados de amostra. Os exemplos BI Developer concentrar mais nas tcnicas
aspecto de realizar uma tarefa especfica, enquanto que os exemplos Steel Wheels
ilustrar como combinar tcnicas para construir uma aplicao para suportar um
negcios de automveis clssicos. Os exemplos Steel Wheels tambm dar mais ateno
personalizar olhar e sentir.
Usando o Browser de Repositrio
Voc pode acessar todos os exemplos usando o navegador de repositrio. (Este o topo
painel da barra lateral esquerda, em que o usurio do console, chamado Browse). O
repositrio
browser oferece uma exibio de rvore que pode ser usado para abrir e fechar as pastas
o repositrio. Para abrir uma pasta e revelar suas subpastas, basta clicar uma vez
sobre o cone, mais imediatamente no lado esquerdo do cone da pasta. A pasta
subpastas se tornar visvel direita abaixo da pasta-me, eo cone da esquerda
do cone da pasta para exibir um sinal de menos, indicando que a pasta est
expandida. Para fechar uma pasta e esconder as subpastas, clique no cone de subtrao.
Para visualizar o contedo de uma pasta, clique no cone da pasta ou o nome da pasta que
aparece diretamente direita do cone de pasta. O ttulo da pasta ir mostrar uma
cinza destacando e seu contedo ficar visvel no contedo da pasta
painel diretamente abaixo do navegador repositrio (na figura 1-3, este rotulado
Files).
Para abrir um item que aparece no painel Arquivos, clique duas vezes nele. Isto ir abrir
uma nova pgina no espao de trabalho, mostrando o resultado gerado pelo item.
Compreender o contexto
Embora voc possa aprender muito com os exemplos, basta execut-los, voc
pode aprender ainda mais se voc pode ver como elas foram construdas. Especialmente se
voc um
10 Parte I Comeando com Pentaho
Business Intelligence desenvolvedor, voc deve considerar a anlise de exemplos
mais estreitamente com Pentaho Design Studio.
Voc vai aprender os detalhes sobre Pentaho Design Studio no captulo 4, mas voc
pode seguir estes passos para comear rapidamente:
1. Download Pentaho Design Studio a partir da pgina de downloads em Pentaho
SourceForge.net.
2. Descompacte o download para algum local que voc achar conveniente.
3. Iniciar Pentaho Design Studio. Os usurios do Microsoft Windows pode dar um duplo
clique
PentahoDesignStudio.exe, Usurios de sistemas baseados em UNIX pode executar o
PentahoDesignStudio arquivo binrio.
4. Utilize o menu principal (Arquivo Switch Workspace) para alterar o espao de trabalho
para o diretrio onde voc instalou o Pentaho BI Server. O programa
ser reiniciado. Na tela de abertura, escolha Workbench.
5. Crie um novo projeto escolhendo novo arquivo de projeto. Na caixa de dilogo,
expandir a pasta Geral e escolha do projeto para criar um projeto simples.
Clique em Avanar.
6. Na caixa de dilogo seguinte, introduza pentaho solues para o nome do projeto. Faa
certeza de que quer que escreva aqui corresponde exatamente ao nome do
pentaho solues diretrio localizado no diretrio home do Pentaho
BI Server. A caixa de seleo Use Default Local deve ser selecionada, e
o local deve apontar automaticamente para a casa Pentaho BI Server
diretrio.
7. Confirme o dilogo.
Na pgina da guia Navegador no painel do lado esquerdo em Pentaho Design Studio,
voc deve ver agora o pentaho solues pasta do projeto (o que corresponde
exatamente com o real pentaho solues pasta). Voc pode expandir esta pasta
e navegar atravs da soluo Pentaho repositrio.
Clicando duas vezes sobre os itens dentro das pastas normalmente carregar o arquivo
em uma nova pgina no Pentaho Design Studio Workspace. Voc pode aprender
muito, especialmente desde a abertura do . Xaction arquivos que esto presentes em todo o
repositrio. Consulte o Captulo 4 para obter mais detalhes sobre esses arquivos.
Tenha em ateno que os itens que aparecem no browser do repositrio do usurio
console do Pentaho BI Server, normalmente tm uma etiqueta que distinto do
nome do arquivo real. Isso complica um pouco as coisas no caso de voc est procurando
o item correspondente na Pentaho Design Studio, como o navegador no s
exibe nomes de arquivos. Para descobrir o nome do arquivo correspondente para cada item
mostradas no navegador de repositrio, clique no item e escolha Propriedades no
o menu de contexto. Isto ir mostrar uma janela com algumas abas. O arquivo real
nome indicado na guia Geral.
Captulo 1 Quick Start: Exemplos Pentaho 11
NOTA A . Xaction extenso indica uma seqncia de ao. Seqncias de ao
Pentaho so especficos processos leves de executar ou fornecer contedo de BI. Neste
caso particular, a seqncia de ao simplesmente chama um relatrio Pentaho. Ao
seqncias so codificadas em um formato XML especfico e normalmente armazenados in.xaction
arquivos. seqncias de ao so discutidos em mais detalhes no Captulo 4.
Executar os exemplos
No restante deste captulo, discutimos alguns itens a partir desses exemplos
para lhe dar uma sensao de que voc pode fazer com solues Pentaho. Para cada item,
que incluem referncias aos captulos deste livro que se relacionam com o exemplo.
Esperamos que esta ir permitir-lhe obter rapidamente uma viso geral dos recursos Pentaho
e ver como este livro pode ajud-lo a domin-los.
Exemplos de relatrios
Reportagem muitas vezes um dos primeiros requisitos de qualquer soluo de BI.
Reportagem
abordado em detalhes no Captulo 13. A maioria dos relatos aqui discutidos so invocados
a partir de uma seqncia de ao, voc pode encontrar mais detalhes sobre seqncias de
ao em
Captulo 4.
Os captulos seguintes analisam alguns dos exemplos de relatrios.
Exemplos BI Developer: Vendas Regional - HTML
A Regional de Vendas - HTML um exemplo a mais simples
exemplos de relatrios, como voc diria, ele mostra os nmeros de vendas de um
empresa exemplo discriminados por regio. Voc pode encontr-lo no Reporting
pasta no contexto BI Developer set. O nome do arquivo correspondente
JFree_Quad.xaction.
Quando voc executar o exemplo, a sada do relatrio imediatamente mostrado no
espao de trabalho (ver Figura 1-5).
Na sada do relatrio que voc v uma organizao detalhada por regio (Central),
departamento (Executivo de Administrao, Finanas) e ttulo de posio (SVP
Parcerias, CEO, e assim por diante). Para o nvel de ttulo da posio, voc v o real
de dados. Neste caso, os dados se refere s vendas e mostra as reais e previstos
(Orados) os nmeros de vendas nas duas primeiras colunas ea varincia na terceira
coluna. Voc tambm pode ver uma linha de totais que resume os dados para o departamento
nvel, e se voc pudesse rolar mais longe voc ver, tambm, os totais para o
nvel regional, seguido pelos nmeros de outra regio. Todo o caminho para baixo em
na parte inferior do relatrio que ver os totais para o negcio inteiro.
12 Parte I Comeando com Pentaho
Figura 1-5: A Regional de Vendas - HTML relatrio de exemplo
Rodas de Ao: Demonstrao de Resultados
O relatrio de exemplo Declarao de Renda a partir do conjunto exemplo Steel Wheels
outro relatrio tpico com um nome auto-explicativo. Voc pode encontr-lo no
Reportagem pasta abaixo a soluo rodas de ao, eo arquivo correspondente
nome Renda Statement.xaction. Figura 1-6 mostra o relatrio.
Figura 1-6: As rodas de ao de Renda Declarao relatrio
Algumas diferenas a partir do relatrio de vendas regional no exemplo anterior
so o estilo eo formato de sada. Embora ambos os relatrios foram criados
com o Pentaho Report Designer, e ambos so prestados pela Pentaho
relatrios do motor (que o componente responsvel por interpretar os relatrios
e sada de gerao de relatrios), eles parecem bem diferentes. Considerando que o Regional
Relatrio de vendas gera uma pgina HTML, este relatrio oferece um arquivo PDF como
sada.
Alm disso, este relatrio mostra adereos usando uma imagem de um logotipo e um
imagem de fundo da pgina.
Captulo 1 Quick Start: Exemplos Pentaho 13
Rodas de Ao: Top 10 clientes
Na seo anterior, mencionamos que o relatrio de Declarao de Renda
proporciona uma sada na forma de um arquivo PDF, enquanto o exemplo Regional de
Vendas
sadas de uma pgina web simples.
caractersticas importantes do formato de sada do relatrio. Voc pode encontrar este
relatrio tambm
na pasta de informao no conjunto de exemplo Steel Wheels, e seu nome do arquivo Incio
Dez Analysis.xaction ProductLine Cliente. Executando esse exemplo no
no mostrar imediatamente a sada do relatrio, mas exibe o dilogo mostrado na
Figura 1-7 vez.
Figura 1-7: O Top 10 clientes relatrio
Como indicado pelo dilogo, voc pode escolher at cinco diferentes
formatos de sada. Nos exemplos de relatrios anteriores, o formato de sada desejado
foi armazenado como parte do relatrio, mas no h nada no relatrio que o motor
foras presente. Isso permite aos usurios escolher o formato mais adequado
para o efeito na mo.
O dilogo mostrado na Figura 1-7 ilustra uma outra caracterstica importante da
Pentaho relatrio. O usurio pode optar por aguardar a sada do relatrio agora, ou
ter o Pentaho BI Server executar o relatrio em background. O ltimo
opo ir executar o relatrio, mas no espera para a sada a ser retornado.
Pelo contrrio, a sada ser armazenado no espao de armazenamento do usurio pessoal
sobre o
servidor. Esse recurso especialmente til para os relatrios de execuo longa.
Voc pode encontrar mais informaes sobre a execuo de fundo e funes relacionadas,
como
programao e inscrio no Captulo 14.
Exemplos BI Developer: boto nico parameter.prpt
Os relatrios de exemplo anterior foram todos chamados a partir de seqncias de ao. Em
a verso Citrus programados, relatrios podem tambm ser chamado diretamente. Exemplos
14 Parte I Comeando com Pentaho
usar este recurso esto todos localizados na pasta Relatrios do BI Developer
Exemplos set.
Este exemplo tem um olhar mais atento boto nico-parameter.prpt
exemplo. Quando voc inici-lo, carrega o relatrio imediatamente no espao de trabalho.
No entanto, a sada real do relatrio no ser exibido at que voc pressione uma da Regio
botes que aparecem na seo de parmetros de relatrio na parte superior da pgina.
Figura 1-8 ilustra o que voc pode ver depois que voc pressiona o boto Central.
Figura 1-8: O exemplo de boto nico parameter.prpt
Este exemplo mostra ainda uma outra caracterstica da Pentaho, nomeadamente o relatrio-
param
tros. Atravs de parmetros, o usurio pode interagir com o relatrio e especificar
valores para influenciar o comportamento do relatrio. Geralmente, esse recurso usado para
permitir que o
usurio selecionar apenas uma parte de todos os dados do relatrio possvel.
Neste exemplo, existem dois parmetros. A param Ttulo Texto Adicional-
eter permite ao usurio especificar um ttulo que aparece acima de todas as restantes relatrio
sada. H um outro parmetro para a Regio, o que permite que o relatrio
processar a sada referentes a apenas a regio especificada.
H muitas mais coisas que voc pode fazer com os parmetros do relatrio, e estes
exemplos, bem como o captulo 13 deste livro, deve oferecer orientao suficiente
para que voc possa usar este recurso de forma significativa.
Traando Exemplos
Considerando que os relatrios so timos para comunicar informaes detalhadas, esto
menos
apropriado para obter uma viso geral dos dados como um todo. Para este efeito,
Captulo 1 Quick Start: Exemplos Pentaho 15
tabelas e grficos geralmente funcionam melhor. Grficos tambm so mais adequadas do
que
relatrios para mostrar tendncias ao longo do tempo.
O Pentaho BI Server vem com dois tipos diferentes de solues de grficos:
JFreeChart-A 100% biblioteca de grficos em Java.
Pentaho Flash grficos, uma soluo de grficos com base em cartas abertas flash
(Que requer Adobe Flash).
relatrios Pentaho oferece integrao completa com JFreeChart, e voc vai encontrar
informaes detalhadas sobre a integrao das paradas com seus relatrios no captulo 13.
Voc pode encontrar mais informaes sobre grficos JFreeChart e como integrar
los com painis no captulo 17.
Rodas de Ao: Lista de Escolha Grfico
O Grfico exemplo Lista de Escolha est localizado na pasta Grficos em as rodas de ao
exemplo dado. O nome do arquivo correspondente ChartComponent_ChartTypes
. Xaction. Executando as cargas item uma caixa de dilogo na rea de trabalho que permite que
voc
escolher um tipo de grfico especfico. Depois de escolher o tipo de grfico, voc pode
pressionar
o boto Executar para realmente mostrar a carta. Figura 1-9 mostra como isso funciona
para uma grade de pizza.
Figura 1-9: Pentaho grficos usando o JFreeChart Grfico Lista de Escolha
Rodas de Ao: Lista Grfico Flash
Funcionalmente, o Flash exemplo Lista de grfico semelhante Lista de Escolha Grfico
exemplo (que baseado no JFreeChart). A diferena que o JFreeChart
16 Parte I Comeando com Pentaho
Pick List exemplo baseado no projeto Open Flash Chart. Voc pode encontrar o
Flash Lista grfico tambm na pasta de grficos no exemplo Rodas de Ao definido.
O nome do arquivo correspondente pentahoxml_picker.xaction.
Exemplos BI Developer: Vendas Regional - Linha de grfico de barras /
A Regional de Vendas - Linha / Bar exemplo Grfico est localizado no Reporting
pasta na soluo de BI Developer exemplos. O arquivo correspondente JFree_
SQLQuery_ComboChart.xaction.
Este relatrio apresenta um exemplo grfico na parte superior da pgina, e abaixo
que, um relatrio mais detalhado mostra os nmeros reais. Neste caso, o grfico
incorporado ao relatrio. O relatrio de exemplo mostrado se a Figura 1-10.
Figura 1-10: Vendas Regional - Linha / Bar exemplo Grfico
Exemplos de Anlises
Como informao, a anlise outra caracterstica essencial de todas as solues de BI.
Relatrios
so tipicamente estticos (excepto para os parmetros) e usado principalmente para apoiar as
decises
que afetam os negcios a nvel operacional. Anlise tende a ser muito mais
dinmica, e normalmente utilizada pelos gestores para a tomada de decises na ttica
e nvel estratgico.
Captulo 1 Quick Start: Exemplos Pentaho 17
Um dos elementos tpicos em solues analticas que eles permitem a
usurio para explorar a dinmica de dados em um modo ad hoc. Normalmente, os dados
apresentado pela primeira vez em um nvel muito agregado, por exemplo, as vendas totais
por ano, e
ento o usurio pode navegar para um nvel mais detalhado, por exemplo, vendas por ms
por regio. Quaisquer diferenas interessantes entre as regies e / ou meses, pode
ento ser utilizada para perfurar em uma nova direo at que uma nova percepo ou
compreenso
do negcio obtida, o que poderia ento ser usada para afetar os planos para os novos
promoes, catlogo de produtos da prxima temporada, ou o desenvolvimento de novos
produtos.
Esta, em resumo, o que a anlise se destina.
Intimamente relacionado com questes tpicas de anlise e solues, a dimen-
modelo profissional. Em ltima anlise, isso que permite a visualizao de dados de forma
agregada
e recursos como drill up / down. Voc encontrar informaes detalhadas sobre
o modelo dimensional nos captulos 6, 7 e 8 deste livro. No captulo 15,
discute a aplicao prtica das aplicaes analticas usando Mon-
drian e JPivot. Todos os exemplos analtico apresentado neste captulo baseiam-se
em Mondrian / JPivot.
Exemplos Desenvolvedor BI: Slice and Dice
O exemplo de Slice and Dice est localizado na pasta de anlise no BI Developer
Exemplos. Seu arquivo correspondente chamada query1.xaction.
O Slice and Dice exemplo o exemplo mais bsico de anlise includo
Servidor Pentaho BI. Execut-lo produz uma tabela de referncia cruzada dinmica, tambm
conhecida
como um tabela dinmica. A tabela dinmica mostra os valores atuais e oramentados
vendas, como
bem como a variao real versus oramento. No contexto do Analytics, figuras como
estes so chamados medidas ou mtricas. As medidas podem ser divididas de acordo com
Regio, Departamento e Cargo. Estes ttulos so mostrados no lado esquerdo
da tabela dinmica e representam dimenses, que so aspectos que descrevem o
contexto das mtricas.
Uma caracterstica tpica que a tabela dinmica no apenas mostra as prprias figuras
mas tambm os totais, e que o total pode ser calculada em vrios nveis da
dimenses (ver Figura 1-11).
Na Figura 1-11, voc pode ver as colunas para a Regio, Departamento e
Posies. A primeira linha na tabela dinmica mostra os resultados de todas as regies,
Departamentos, e posies, e os valores so agregados ou''enrolada''
ao longo dessas dimenses. Isto representa o maior nvel de agregao. Abaixo
que, voc ver que os dados so divididos, na primeira coluna, todas as regies dividido em
Europa Central, Oriental, Austral e Ocidental, formando o segundo nvel mais alto de
agregao para a dimenso Regio. Na primeira linha para cada indivduo
regio, voc ver os dados acumulados somente atravs do Departamento e de posies.
Para
na regio Central, os dados so novamente dividida, desta vez mostrando todos os indivduos
departamentos. Finalmente, para o departamento de Gesto Executiva, os dados so
novamente
dividido de acordo com a posio.
18 Parte I Comeando com Pentaho
Figura 1-11: O Slice and Dice exemplo de tabela dinmica
A diviso e rolando " obtida dinamicamente, clicando no sinal de mais
e os cones menos que aparecem ao lado das etiquetas de identificao Regio,
Departamento
e posies. Por exemplo, clicando no cone de adio ao lado de qualquer um dos All
Departamentos rtulos que na segunda coluna, voc pode navegar e
ver como o valor enrolado total para qualquer uma das mtricas de vendas pode ser dividido.
Ao clicar em um cone menos vai rolar os valores de volta em conjunto para o total de novo,
assim drill up.
Rodas de Ao Exemplos de Anlises
Alm da fatia de base e exemplo dado, voc pode encontrar outros interessantes
exemplos Analytics na pasta Anlise no exemplo Rodas de Ao definido.
L voc vai encontrar dois exemplos:
Anlise de Mercado por Ano
Anlise de Linha de Produtos
Como a fatia de base e exemplo Dice, esses exemplos mostram uma tabela dinmica,
mostrando nmeros agregados de vendas. Nesses exemplos, os nmeros de vendas pode ser
cortado
ao longo do produto, do mercado (regio), e Tempo.
Considerando o exemplo Slice and Dice exibido somente as medidas relativas
eixo horizontal, esses exemplos mostram um pouco mais de variedade, colocando no
mercado
no eixo horizontal. A Linha de Produtos exemplo de anlise tambm coloca o tempo no
o eixo horizontal, sob a Mercados.
Se voc gosta, voc pode usar caminhos alternativos para configurar os eixos usando o
OLAP
Navigator. Voc pode chamar o Navigator OLAP, pressionando o boto com
o cone do cubo na barra de ferramentas que aparece no topo das pginas mostrando
Captulo 1 Quick Start: Exemplos Pentaho 19
os exemplos de anlise. O Navigator OLAP e uma parte dessa barra de ferramentas so
mostrado na Figura 1-12.
Figura 1-12: O Navigator OLAP
O Navigator OLAP mostrado na Figura 1-12 foi tirada da linha de produtos
Anlise exemplo. Na parte superior do Navegador OLAP, voc pode ver a legenda
Colunas e abaixo que so duas linhas, Mercado e Tempo. Isso corresponde
diretamente com o Mercado e Tempo mostrado ao longo do eixo horizontal do
tabela dinmica. Na seo abaixo, voc ver uma legenda linhas, com uma linha
abaixo dele, Produto. Isso corresponde com os produtos que esto listados ao longo do
eixo vertical da tabela dinmica. Voc pode mover os itens na seo Colunas
para a seo de linhas e vice-versa, clicando no pequeno quadrado na frente dele.
H uma terceira parte no navegador OLAP rotulados Filter. Nesta seo,
encontrar clientes, Medidas, e status do pedido. Esses itens no so actualmente
aparecem junto a um dos eixos da tabela dinmica. Voc pode mover os itens da
Linhas e colunas sees para o filtro, clicando no cone de filtro. Que se deslocam
itens do filtro a qualquer um dos eixos feito clicando no pequeno quadrado
cone que corresponde ao eixo ao qual voc deseja mover o item.
Ns discutimos o Navigator OLAP em detalhes no Captulo 15.
Exemplos Dashboarding
Os painis so discutidos em detalhe no Captulo 17. Se voc est interessado no tablier
placas, que so fortemente encorajados a verificar o Dashboard Comunidade
exemplos Framework (CDF) painis includos no Pentaho BI Server.
Voc pode encontr-los na pasta CDF na soluo de BI Developer exemplos.
Uma boa maneira de comear com Pentaho Dashboards est navegando para o
Amostras subpasta da pasta CDF na soluo de BI Developer exemplos.
Aqui voc vai encontrar exemplos para usar grficos, relatrios, tabelas analticas do piv, e
Mapas em um painel, e veja como voc pode amarrar estes elementos juntos.
Uma vez que voc tem um gosto para o que voc pode fazer com painis, voc pode ler
Captulo 17 e siga as etapas detalhadas descritas l para construir o seu prprio
painel de instrumentos. Quando voc est no processo de construo de seus painis
prprios, voc
20 Parte I Comeando com Pentaho
vai encontrar a documentao includa com os exemplos CDF indispensvel.
Voc pode encontrar documentao detalhada na subpasta de Documentao da
CDF pasta. A documentao encontrada na pasta de Referncia do Componente
ser um companheiro em especial inestimvel.
Outros exemplos
Muitos outros exemplos esto includos no Pentaho BI Server. Estes incluem
exemplos para iniciar processos de ETL, para chamar servios web, para enviar a sada de
relatrio para
uma impressora ou por e-mail, e muito mais. No entanto, no vamos discutir esses
exemplos aqui. Muitos desses exemplos exigir configurao adicional, e outros
no so particularmente instrutivo menos que voc tenha necessidade de que o recurso
especial.
No entanto, os leitores so encorajados a experimentar com os restantes exemplos.
Resumo
Este captulo apresentou uma introduo ao software Pentaho e caminhou
lo atravs de alguns dos exemplos que vm com ele. Depois de instalar o
software e explorando os exemplos, voc deve ter uma boa idia do que
voc pode fazer com Pentaho. O restante deste livro vai lhe ensinar como trabalhar
com cada parte do Pentaho para criar suas prprias solues Pentaho.
CAPTULO
2
Pr-requisitos
A inteno deste livro permitir que voc, leitor, desenvolver um Intel Negcios
ligence soluo do incio ao fim (e alm porque as solues de BI
necessidade de manuteno, bem). Para fazer isso, voc vai precisar de algum suple-
ferramentas adicionais que no fazem parte da plataforma de BI Pentaho. Trata-se
essencialmente
ferramentas de bancos de dados utilizados para conceber e criar um banco de dados,
validao da qua-
dade dos dados nos sistemas de origem, e executar tarefas de manuteno, tais como
fazer backups, criao de usurios ea configurao de restries de acesso a dados. Como
para utilizar os diferentes instrumentos descrito nos respectivos captulos, por exemplo,
objecto de dados de perfil abordada no captulo 8 e um hands-on do tutorial
a ferramenta que usamos para essa tarefa est includo ali tambm. Este captulo explica
onde obter o software e como ele pode ser configurado em um sistema de desenvolvimento.
NOTA Se voc j tem um sistema rodando com Java habilitado e MySQL
instalado, voc pode pular a maior parte deste captulo. Seu objetivo fazer com que o novato
usurio a funcionar com as ferramentas necessrias para projetar, construir e gerir
bases de dados em uma instalao Pentaho / MySQL.
ciclos de lanamento de software, especialmente no mundo do cdigo aberto, so
relativamente
curto. Desde o tempo este livro foi finalizado em julho de 2009, novas verses do
o software que usamos pode j se tornaram disponveis. A fim de evitar
possvel confuso que lista os nmeros de verso do software de pacotes que
utilizados no livro:
Ubuntu 9.04 (64 e 32 bits)
Windows XP Pro SP3
Sun Java 6.0.13
21
22 Parte I Comeando com Pentaho
MySQL Server 5.1.34
Ferramentas GUI MySQL 5.0.12
Power * Architect 0.9.13
Squirrel 3.0.1
eobjects DataCleaner 1.5.1
Configurao Bsica do
Sistema
Antes que voc pode configurar qualquer coisa, h algumas coisas muito bsicas para
cuidar, como se certificar de que voc tenha configurado corretamente no seu Java
mquina. Para algumas tarefas, voc precisar trabalhar com o terminal. Se voc est
que no esto familiarizados com isso, no se preocupe, vamos explicar o bsico para voc ir.
Ns
supor que a maioria dos nossos leitores estaro familiarizados com o uso de um baseado no
Windows
computador, mas espero que voc aproveite esta oportunidade para explorar a opo de
Pentaho usando em uma instalao Linux. Todos os exemplos Linux oferecemos aqui
ser baseado no Ubuntu Linux com desktop GNOME, mas usando outro Linux
distribuies no deve ser muito diferente na maioria dos casos.
Instalar Ubuntu
Se voc est entre os leitores de que ler este livro como uma boa oportunidade para iniciar
experincias com o Linux, bem como o Pentaho BI Suite, voc pode apreciar
algumas notas quickstart sobre como ir sobre fazer isto. Existem vrios
opes para obter um sistema Ubuntu instalado e funcionando, dependendo de qual sistema
pretende instalar-lo e se voc quer substituir ou aumentar uma corrida
Sistema Windows. Esta seo no um guia completo de instalao passo-a-passo,
mas salienta as diferentes opes e por onde comear.
Primeiro, voc precisa obter o software. Ele pode ser baixado gratuitamente
http://www.ubuntu.com, Onde voc vai encontrar diferentes verses para diferentes
arquiteturas de hardware. O site exibe tanto um desktop e um servidor
edio, mas se voc quiser dar um mergulho muito profundo em Linux, no comece
com a edio do servidor. Isto s tem uma interface de terminal baseado em caracteres (sem
GUI) e no todos os sinos e assobios que voc poderia esperar. A prxima escolha
aquela entre 32 e 64 bits. A maioria dos computadores modernos ser capaz de
executar a verso de 64 bits do Ubuntu, e se voc quiser usar o Ubuntu como o seu
principal sistema operacional que provavelmente sua melhor escolha. Todas as outras
opes,
por exemplo, que lngua voc quer usar, so parte da instalao em si.
O arquivo baixado uma imagem ISO e voc vai precisar de um gravador de imagem
criar um CD a partir do arquivo baixado. A maioria dos programas de gravao de CD
so capazes de fazer isso, mas se voc usa o Windows e no tem como um
programa, voc pode baixar e instalar gratuitamente o Active @ ISO Burner da
free.htm queimador http://www.ntfs.com/iso.
Captulo 2 Pr-requisitos 23
Usando o Ubuntu no modo nativo
Por nativo queremos dizer que voc vai instalar o software em um computador para o
mquina pode inicializar e executar o Ubuntu directamente a partir do disco rgido. Se voc
no est
certeza ainda sobre se ou no o Ubuntu o caminho a percorrer, basta inserir o disco e
aguarde a tela de boas-vindas. A primeira opo executar o Ubuntu em modo Live,
o que significa que voc no instalar nada, mas executar o software a partir do CD. Se
voc gosta, clique no boto Instalar para iniciar o processo de instalao, se voc no
como ele, apenas ejete o CD e continuar usando o Windows.
O processo de instalao ir perguntar-lhe algumas perguntas. A maioria bastante
fcil de responder, tal como a lngua, fuso horrio e local, enquanto para outros
pode precisar de uma ajudinha. O mais importante sobre a configurao do disco.
Ubuntu ter todo o prazer que voc mantenha seu sistema operacional existente, resultando
em
uma configurao dual-boot. Nesse caso, cada vez que voc ligar o seu computador
voc pode escolher para executar o Windows ou Ubuntu.
DICA Se voc tiver um computador novo e gostaria de criar um sistema dual-boot,
primeiro instalar o Windows e, em seguida o Ubuntu. Se voc instala o Ubuntu, o instalador do Windows
ir substituir a partio de boot do disco rgido.
Um passo-a-passo conjunto de instrues sobre como instalar o Ubuntu pode ser encontrada
em
a ajuda on-line https: / / help.ubuntu.com / comunidade / GraphicalInstall.
Usando uma mquina virtual
A maioria dos computadores modernos tm amplo poder de processamento e memria, por
isso
pode ser uma opo para usar uma mquina virtual para rodar o Ubuntu. Nesse caso,
Ubuntu funciona como um convidado sistema, enquanto que seu sistema de operao regular
atua como o host. Existem muitas solues disponveis para o funcionamento do Ubuntu
como uma mquina virtual, a maioria deles pode ser encontrada na ajuda on-line em
https: / / help.ubuntu.com / comunidade / VirtualMachines. Ns trabalhamos muito com
VirtualBox da Sun (http://www.virtualbox.org), Na verdade, metade deste livro
foi escrito em uma mquina virtual com Windows XP usando o VirtualBox em um Ubuntu
De 64 bits do sistema host. A parte interessante do uso de software de virtualizao que
h tambm uma grande coleo de ready-to-run imagens de mquinas virtuais disponveis
para download, o que significa que no h quase nenhuma instalao necessria para obter
um novo sistema instalado e funcionando. Em caso de Pentaho, a melhor opo disponvel
criado por Infobright, um fornecedor de banco de dados analticos. Voc pode baixar uma
com-
imagem completo a partir de http://www.infobright.org/Downloads/Pentaho ICE VM
que contm o seguinte:
Ubuntu 8.04 do sistema operacional de servidor
Infobright Community Edition
Pentaho BI Suite Community Edition
24 Parte I Comeando com Pentaho
A imagem uma . Vmdk arquivo, o formato de arquivo nativo VMware, o VirtualBox, mas pode
abrir esse tipo de arquivo, bem sem quaisquer problemas.
Trabalhando com o Terminal
Um terminal do Linux basicamente o equivalente a tela de comando do Windows
e pode ser usado como tal. H um par de pequenas diferenas a ter em
considerao, tais como o fato de que no Linux no h letras de unidade e
nomes de caminho contm barras. Existem tambm diferenas maiores, como
o fato de que a maioria dos comandos Linux so totalmente diferentes do seu Windows
homlogos, e que, em Linux, tudo case-sensitive. Passando para um
Diretrio com cd / opt / Pentaho pode retornar uma mensagem de erro informando que
no h nenhum arquivo ou diretrio, enquanto cd / opt / pentaho vai funcionar muito bem.
Lembre-se que no Linux, pentaho e Pentaho so duas totalmente diferentes
palavras!
H duas maneiras para iniciar uma tela do terminal ou para coloc-lo mais precisamente,
Existem dois tipos de telas de terminal: o terminal X bsicos e do GNOME
terminal. O terminal X muito parecido com uma tela de comando do Windows, que
tem um fundo preto com caracteres em branco e no h opes de menu.
Voc pode iniciar um terminal X pressionando Alt + F2 e digitando o comando
xterm. O dilogo Executar Aplicativo aparece, exibindo a linha de comando
pronto para aceitar o seu comando. Diferentemente de um terminal Windows, no entanto, o
dilogo no pode retornar nada, ele s executa o comando quando voc pressiona
Enter.
A tela do terminal o segundo terminal do GNOME, que tem um menu
e um fundo branco com caracteres pretos. Isso o que chamaremos
a partir daqui. Voc pode iniciar o terminal do GNOME, selecionando Applica-
es Acessrios Terminal ou pressione Alt + F2 e usando o comando
gnome-terminal.
No podemos cobrir o conjunto completo de comandos, mas o que voc vai precisar
a maioria so fornecidos nas sees seguintes.
NOTA Para uma referncia til sobre a utilizao da linha de comando em um sistema Linux,
experimente
Ubuntu Linux Toolbox, por Christopher Negus e Caen Francois, Edies Wiley,
2008.
Lista de Navegao
Voc pode usar os seguintes comandos para navegar pelo directrio
estrutura:
cd -Mude o diretrio, mesmo que no Windows.
cd .. -Move um nvel acima (cd ../.. move-se dois nveis para cima, e assim por diante).
Captulo 2
cd ~ -V para seu diretrio home.
cd / -V para o diretrio raiz (sistema).
Pr-requisitos 25
O sistema operacional''''sabe os caminhos para que quando voc entra no primeiro
caracteres de um diretrio e pressione a tecla Tab, o nome completo concludo
automaticamente. Por exemplo, digite CD / o, Pressione a tecla Tab, eo caminho
completada automaticamente para cd / opt /. Adicionar pe pressionar Tab novamente para obter
o cd
/ Opt / pentaho / comando. Claro que estas listas tm de existir, portanto, se houver
no / Opt / pentaho diretrio, bvio que o sistema operacional no pode
encontr-lo.
Quando voc quiser limpar a tela e ter o prompt exibido na
superior da janela novamente, basta digitar o comando claro e pressione Enter.
Histria de comando
Usando a cima e para baixo, voc pode navegar atravs anteriormente emitido
comandos. Todos os comandos so armazenados em um comando arquivo histrico, que
pode ser
visto digitando histria na linha de comando. Se a lista longa, voc pode
uso history | more e na pgina a lista com a barra (CTRL + C para
final). Se voc quiser reutilizar um comando especfico da histria, voc pode digitar uma
ponto de exclamao seguido do nmero da linha histrico de arquivo (por exemplo,! 174)
e que o comando ser executado novamente. Uma opo mais flexvel a utilizao do
CTRL + R combinao chave, que inicia um reverse-i pesquisa de texto na histria
arquivo, o que significa que o comando mais recentemente emitidos contendo a seqncia
ser encontrado em primeiro lugar. Observe que voc pode continuar a digitar a seqncia de
pesquisa, que
dinamicamente alterar o argumento para a pesquisa. Por exemplo, pressionar
CTRL + R e digitando eexibe o seguinte:
(Reverse-i-search) `e ': claro
Adicionar cexibe o seguinte:
(Reverse-i-search) `ec": echo $ JAVA_HOME
O comando pode ser simplesmente aceite (e executadas) pressionando a tecla Enter, mas
se voc quiser modificar o primeiro comando, pressione a seta para a esquerda ou direita, que
vai abrir o comando na linha de comando para edio.
Utilizando Links Simblicos
A maioria dos programas ir diretamente para o diretrio home quando voc deseja abrir
ou salvar um arquivo. s vezes no possvel alterar o caminho padro onde
o aplicativo deve procurar pastas e arquivos. O Pentaho ferramentas de projeto como
26 Parte I Comeando com Pentaho
Designer de Relatrios ou do Mondrian esquema Workbench principalmente trabalhar a partir
de
o diretrio home do usurio que iniciou o programa. Isso nem sempre
uma localizao conveniente para comear, especialmente quando o ltimo local utilizado no

lembrado pelo programa quer. Abrindo um caminho diferente a cada vez que voc
deseja abrir ou salvar um arquivo leva tempo, ento a capacidade de abrir a pasta certa
diretamente do seu diretrio home seria uma comodidade bem-vinda. Esta
onde links simblicos vm a calhar.
Criar links simblicos no Ubuntu
Um link simblico no Linux se parece com um atalho no Windows, mas cri-los
um pouco diferente.
NOTA atalhos no Windows so arquivos comuns que podem ser resolvidos apenas pelo Windows
eo Windows Explorer. O Windows Vista suporta ligaes''verdadeiro''simblico.
H duas maneiras de criar links simblicos (ou symlinks como eles so normalmente
chamado): usando o navegador de arquivos Nautilus do GNOME, ou digitando os comandos
na linha de comando. Ao usar o Nautilus, clique com o boto direito do mouse no arquivo ou
pasta
para o qual voc quer criar uma ligao, selecione Criar link do drop-down
menu e copie o link resultante para o local desejado, aps o que pode ser
renomeado. Usando a linha de comando exige conhecimento da sintaxe, que
bastante simples. O comando um simples ln, Seguido pelo de opes,
o local para a ligao, eo nome do link. Para criar um link simblico em sua
diretrio home que aponta para o diretrio solues Pentaho, a seguinte
comandos podem ser inseridos:
ln-s / opt / pentaho / biserver-ce / pentaho solues ~ pentaho /
A -S denota opo que voc est criando um link para um diretrio, no um nico
arquivo. Agora, qualquer referncia a ~ Pentaho / (Subdiretrio pentaho na atual
pasta home do usurio) traduzido automaticamente para a pasta de destino.
Criando Symlinks no Windows Vista
Criar links simblicos em Vista funciona de maneira semelhante como em Linux quando o
linha de comando usado, mas o comando e os parmetros so diferentes. Para fazer
as coisas mais confusas, a ordem invertida argumento: no Windows link
especificado antes do alvo. A ligao simblica mesmo que no exemplo anterior
podem ser criadas com o seguinte comando:
mklink / DC: \ Documents and Settings \ Administrador \ Meus Documentos \ pentaho
C: \ Program Files \ pentaho \ ce-biserver \ pentaho solues
Captulo 2 Pr-requisitos 27
Java Instalao e Configurao
Todos os programas Pentaho so desenvolvidos em Java e exigem uma Mquina Virtual Java
a estar presente no computador que ir executar Pentaho. Instalando o Java foi
facilitou muito tanto em Linux e Windows, graas a Sun Microsystems.
Alm de instalar o Java, um passo importante a configurao da esquerda para definir o
varivel de ambiente JAVA_HOME. Sem isso, os programas Java no sei
onde procurar as bibliotecas Java e seu software de Java ainda no ser executado. (Voc
pode ignorar esta seo se voc j instalou o Java e configurar seu ambiente
varivel).
Instalando o Java no Linux Ubuntu
Voc pode instalar o Java em uma mquina Linux de duas maneiras. A primeira opo faz-
lo
manualmente, indo ao www.java.com, Baixar o instalador, e funcionando
em seu sistema. A segunda opo ea melhor usar o Synaptic Package
Manager. Os pacotes Java fazem parte dos repositrios do Ubuntu regular, de modo
Abra o menu Sistema-Administrao e selecione Gerenciador de Pacotes Synaptic.
Digite o su (Superusurio) senha para iniciar o Synaptic. Na caixa de pesquisa rpida,
tipo java6, Que ir exibir todos os pacotes disponveis a partir de Java dom. Selecione
o pacote sun-java6-jdk (Java Development Kit), que tem um casal de
pacotes necessrios, que sero selecionados automaticamente pelo Synaptic. Clique em
Aplicar
para baixar e instalar o software. Isto ir instalar o Java no subdiretrio
/ Usr / jvm / lib /.
Alternativamente, voc pode usar a linha de comando para instalar o Java SDK. Abrir
uma tela de terminal e digite os seguintes comandos:
sudo shell> apt-get update
sudo shell> apt-get install sun-java6-jdk
O primeiro comando garante que todas as informaes do repositrio atualizado;
o segundo comando ir instalar os pacotes Java depois de ter confirmado
a instalao digitando Y. Durante a instalao voc ter que concordar com o
termos do contrato de licena.
Quando voc abrir o diretrio de instalao / Usr / lib / jvm voc vai notar duas
entradas novas: o diretrio Java real com um nmero de verso do postfix, e um
link simblico que aponta para este diretrio primeiro. O link simblico o que
voc vai usar para a varivel de ambiente. Primeiro verifique se a instalao
conseguiu atravs da abertura de uma tela de terminal e entrar no java-version
comando. Isto deveria lhe dar uma sada semelhante ao listados a seguir:
java version "1.6.0_13"
Java (TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot (TM) Client VM (build 11.3 b02, de modo misto, a partilha)
28 Parte I Comeando com Pentaho
A varivel de ambiente pode ser definida por adicionar uma linha ao arquivo
/ Etc / environment, Mas voc precisa de privilgios de root para faz-lo. No mesmo terminal
tela, digite o comando sudo gedit / etc / environment. Isto ir iniciar o
editor com o arquivo aberto. Basta adicionar a seguinte linha a este arquivo:
JAVA_HOME = "usr/lib/jvm/java-6-sun /"
Salve o arquivo e feche o editor. Voc pode verificar se a varivel
definir corretamente emitindo o eco $ JAVA_HOME comando, mas voc vai perceber que
nada retornado ainda. Se voc quiser ativar a varivel no terminal
sesso, voc pode usar o comando source / etc / environment, Mas para ativar
a varivel para todas as sesses, s fazer logoff e logon novamente (no h necessidade de
reiniciar o sistema).
Instalando o Java no Windows
Para a instalao, basta abrir um navegador, v para www.java.com, E clique sobre o
Download gratuito do Java boto. Siga as instrues no site para instalar o Java.
O prximo passo definir a varivel de ambiente. As variveis de ambiente pode
ser adicionado ao abrir Propriedades do Sistema no painel de controle e escolher o
Clique na guia Avanado e selecione Configuraes do Sistema (ou do Sistema Avanado
As configuraes diretamente no Vista). Adicionar uma nova varivel do sistema chamada
JAVA_HOME que
aponta para o caminho de instalao do Java, como mostrado na Figura 2-1 (o caminho pode
ser diferente
em seu prprio sistema).
Figura 2-1: Definir a varivel JAVA_HOME
Captulo 2 Pr-requisitos 29
Reinicie sua mquina para ativar a configurao. Se voc no deseja reiniciar
sua mquina de imediato, possvel definir uma varivel do sistema temporrio
abertura de uma tela de comando e usando a SET comando para definir o meio ambiente
varivel:
SET JAVA_HOME = C: \ Arquivos de programas \ Java \ jre6
Voc pode verificar o ajuste com o ECHO comando, seguido pela varivel
cujo valor dever ser devolvido fechado em sinais de porcentagem. Isto ir mostrar
o caminho se ele tiver sido definido corretamente, ou o nome da varivel, se esta ainda no
especificados:
Shell> echo% FOO%
%% FOO
Shell> echo% JAVA_HOME%
C: \ Arquivos de programas \ Java \ jre6
Instalao do MySQL
Este livro vai fazer o uso extensivo do MySQL para que a prxima a ter Java habilitado,
Este o segundo pr-requisito importante para seguir junto com todos os
exemplos e tutoriais. Se voc usa Windows ou Linux, instalar o MySQL
bastante simples e, no caso do Ubuntu, quase automtico.
Instalando o servidor e cliente MySQL em Ubuntu
Voc pode instalar o MySQL no Linux de duas maneiras: manualmente, baixando
os arquivos de instalao e fazer toda a configurao do mesmo, ou usando o
Package Manager. Os pacotes de dados MySQL fazem parte do Ubuntu
repositrios, e desde o lanamento do Ubuntu verso 9.04, a verso 5.1 do MySQL
est disponvel no repositrio. Voc pode optar por fazer um manual
instalar, por exemplo, para tentar os mais recentes recursos ou ter total controle sobre o
instalao. Se voc precisar fazer uma instalao manual, veja o site do MySQL
para instrues de instalao.
Para instalar o MySQL usando o Synaptic, abra o Gerenciador de Pacotes Synaptic
a partir do menu Sistema-Administrao e busca de mysql. V para a
servidor msql 5.1 pacote e marc-lo para a instalao. Note que todos os necessrios
pacotes adicionais so automaticamente selecionados, basta confirmar selecionando Marcos
e selecione Aplicar para iniciar o download e instalar os pacotes.
DICA Voc pode, simultaneamente, selecione o pacote mysql-admin e ignorar a
passo instalao separada GUI.
O configurador do Debian ir pedir uma nova senha para o root do MySQL''''
usurio. Esta uma nova senha para um novo usurio que ser criada para o incio
30 Parte I Comeando com Pentaho
e gerenciar o MySQL exemplo. Infelizmente, a definio de uma senha no
obrigatrio, mas aconselhamos que voc defina um (e no se esquea disso!). Para o
configuraes do servidor de email, basta aceitar o padro determinado. Quando a instalao
estiver
terminado, voc ter uma Alteraes aplicadas''''mensagem. Fechar esta eo pacote
Manager como bem o servidor MySQL foi instalado.
Voc pode verificar a instalao, conectando-se instncia do MySQL
linha de comando. Abra uma tela do terminal e digite o mysql fol comando
seguida do -P-uroot <sua_senha>. Isto deve abrir o comando MySQL
prompt:
shell> mysql-uroot-ppassword
Bem-vindo ao MySQL monitor. Comandos com final; ou \ g.
Seu cdigo de conexo com o MySQL de 43
Server verso: 5.1.31-1ubuntu2 (Ubuntu)
'Help;' ou '\ h' para ajuda. 'C \' Tipo 'para limpar o buffer.
Mysql>
Saia do cliente com o parar comando seguido por um ponto e vrgula:
Mysql> quit;
Tchau
Parabns, o servidor est funcionando!
Instalando o servidor MySQL eo cliente no Windows
Os instaladores do Windows para o MySQL 5.1 pode ser encontrada em http://dev.mysql.com
/ Downloads/mysql/5.1.html. Selecione o instalador MSI e baixar este
seu computador. Depois de iniciar o instalador, voc apresentado com trs instalar
opes: Typical, completas ou personalizadas. A primeira opo vai fazer, mas
instalar seus arquivos de dados no diretrio C: \ Documents and Settings \ All
Usurios \ Dados de aplicativos \ servidor MySQL \ MySQL 5.1. Se voc preferir ter
os arquivos de dados localizados em outro lugar, selecione a instalao personalizada e
mudar o
Arquivos de Dados MySQL caminho. Depois de exibir alguns comerciais MySQL Enterprise
telas de informao, a configurao do MySQL iniciado, selecione a Norma
Configurao e aceitar todos os padres na prxima tela. Agora, a raiz passa-
tela aparece a palavra. Embora voc pode deixar a senha de root em branco, ns
recomendo fortemente contra ele. Se voc quiser ser capaz de gerir o banco de dados
outras mquinas que no localhost, voc tem que marcar a opo de acesso como root
tambm. A tela final permite que voc execute as definies de configurao e inicia o
MySQL servio em seu computador.
Captulo 2 Pr-requisitos 31
Ferramentas GUI MySQL
O cliente MySQL meramente um pedao de software para conectar a um MySQL
servidor. Para trabalhar com o banco de dados voc vai precisar adicionar mais duas
ferramentas, o
MySQL Administrator eo MySQL Query Browser. Ambos esto includos
nas ferramentas GUI, o que pode ser encontrada em http://dev.mysql.com/downloads
/ Gui-tools/5.0.html.
Instalar Ubuntu
A GUI site de download de ferramentas permite que voc baixar o binrio Linux
instaladores, mas as ferramentas tambm esto disponveis nos repositrios do Ubuntu.
Porque
esta uma maneira mais conveniente de instalar o software, abra o Synaptic
Package Manager novamente, procure por mysql-admin, e marc-lo para a instalao.
Note que os pacotes mysql-query-browser e mysql-gui-tools-comum
so includos automaticamente. Escolha Aplicar para instalar as ferramentas. Seu menu ser
agora ser enriquecido com uma nova entrada principal, chamada de programao, com dois
itens:
o administrador eo Query Browser.
Instalar o Windows
Basta baixar o instalador do Windows http://dev.mysql.com/downloads
/ Gui-tools/5.0.html. uma instalao simples do Windows, que no exige
quaisquer configuraes especiais. Aceitar os padres vai fazer tudo certo. O programa
atalhos podem ser encontrados no menu Iniciar do Windows sob a entrada MySQL.
Database Tools
Trabalhando em solues de BI geralmente significa trabalhar com dados e bases de dados.
Cada
banco de dados vem com seu prprio banco de dados e gerenciamento de ferramentas de
consulta, mas o que
Se voc precisar acessar vrios bancos de dados ou precisa de uma ferramenta para
desenvolver um novo
banco de dados em um modo visual? Esta seo apresenta trs das nossas ferramentas
favoritas para
projetar, desenvolver e consultar bancos de dados. Todas as ferramentas so escritos em
Java
ento eles vo rodar em qualquer plataforma, desde que a JVM est instalado.
Power * Architect e outras ferramentas de design
Pentaho no fornece as ferramentas necessrias para desenvolver projeto de um data
warehouse
porque h muitos bancos de dados l fora, e em muitos casos as organizaes
j tm uma ou mais ferramentas de projeto disponveis. Para apoiar o pleno
ciclo de vida do projeto, a partir de lgicas de negcios para a modelagem tcnica, incluindo
modelo de comparaes entre verses e gerenciamento de ciclo de vida, documentao
automvel
32 Parte I Comeando com Pentaho
recursos e apoio da equipe, h (tanto quanto ns estamos cientes) no open source
solues disponveis. Mas se houver, por favor, avise-nos! Para design de banco de dados
esquemas, voc tem duas opes, ambas fonte freeware e aberta. A
Segue-se uma pequena, mas longe da lista completa:
Power * Architect (http://www.sqlpower.ca/page/architect) - Nosso
ferramenta de escolha para este livro. Captulo 8 contm mais instrues sobre
instalao de energia * Arquiteto e como usar a ferramenta para criar banco de dados
diagramas e data marts.
MySQL Workbench (http://dev.mysql.com/downloads/workbench
/ 5.1.html) - Padro ferramenta de design de banco de dados MySQL eo
sucessor do DBDesigner popular.
ERDesigner Mogwai (http://mogwai.sourceforge.net) - Eclipse
base, mas h tambm um esquilo plugin disponvel (ver prxima seo).
ERMaster (http://ermaster.sourceforge.net) - Ainda com alguns Japa-
nese textos de ajuda aqui e ali.
Azzurri Clay (www.azzurri.jp) - Amplamente utilizado plugin do Eclipse. O ncleo
edio gratuita.
Squirrel SQL Client
Esquilo uma ferramenta open source consulta SQL que lhe permite abrir e consultar
praticamente qualquer banco de dados que j foram desenvolvidos, desde que um driver
JDBC
disponveis. Instalando o esquilo fcil: v para www.squirrelsql.org/ e siga
as instrues na seo de Download e instalao para baixar o
arquivo.
Instalar Ubuntu
Vamos modificar as instrues de instalao a partir do site um pouco, embora o
padro ir funcionar to bem. Se voc seguir os padres, a ferramenta ser instalada
no diretrio / Usr / local / esquilo SQL Client. Porque ns no gostamos
instalar nada no / Usr / local, Muito menos usando um nome de pasta misturada caso
com espaos, recomendamos a instalao da seguinte forma:
1. Abra um terminal e navegue at a pasta onde voc baixou a
arquivo do instalador. Use o seguinte comando para iniciar o instalador:
sudo java-jar squirrel-sql-<verso> install.jar
No comando anterior, <verso> deve ser substitudo pelo
nmero da verso atual.
2. A terceira tela do instalador pede um caminho de instalao. Alterar esta
em / Opt / tools / esquilo, Prima Seguinte e clique em OK para aceitar as
criao da nova pasta.
Captulo 2 Pr-requisitos 33
3. A tela seguinte mostra uma longa lista de plugins que podem ser instalados.
Dependendo do banco de dados e linguagens que voc gostaria de usar, voc pode
fazer a sua seleco. Apenas certifique-se de selecionar a opo MySQL e
deixar o checkbox selecionado plugins padro porque contm uma
o recurso de Concluso de cdigo. Para obter uma descrio de todos os plugins
disponveis,
ir para http://www.squirrelsql.org/index.php?page=plugins.
4. A ltima tela do instalador pede um local para o atalho. Isso
para Windows e no vai ajudar muito em uma mquina Linux, ento basta pressionar
Avanar para concluir a instalao.
Esquilo agora pode ser iniciado executando o esquilo sql.sh script de um
linha de comando, mas para maior comodidade, vamos criar um lanador para adicion-lo
no menu. Abra o editor de menu clicando com o lado esquerdo da norma
painel e selecione Editar Menus. Uma nova entrada pode ser adicionado a qualquer padro
principais opes do menu ou voc pode criar um novo. Clique em Novo Item para adicionar
um
item de menu e preencha os campos disponveis, como mostrado na Figura 2-2.
Figura 2-2: lanador Esquilo
O campo de comentrio opcional, e os cones podem ser alterados clicando nele
e navegando para o / Opt / ferramentas esquilo / cones pasta.
Instalar o Windows
Instalando o esquilo no Windows requer um esforo ainda menos do que no Linux, basta
clique duas vezes no jar de instalao baixado e comea o instalador. A ferramenta
ser instalado na C: \ Arquivos de programas \ Client SQL SQuirreL. Se voc prefere um
local diferente que voc pode, naturalmente, alter-lo aqui. Agora, as selees para
atalhos na ltima tela ir criar a entrada de menu adicionais automaticamente.
SQLeonardo
A ltima ferramenta que voc pode querer considerar SQLeonardo, uma consulta SQL
ferramenta que pode fazer algo que ainda no est disponvel no Squirrel: grfica
34 Parte I Comeando com Pentaho
design da consulta. O software pode ser baixado http://sourceforge.net
/ Projects / sqleonardo em um arquivo zip com apenas um Jar. arquivo dentro. Extraia o
zip para o local desejado (no nosso caso, / Opt / ferramentas sqleonardo /) E
criar um lanador (Linux) ou o atalho do menu (Windows). No se esquea de definir
a permisso para o arquivo''Permitir execuo do arquivo como programa.''Caso contrrio,
ele no ser iniciado. Figura 2-3 mostra a interface para a concepo de consultas com o
Pentaho banco de dados exemplo aberto.
Figura 2-3: SQLeonardo interface de consulta
Cobrimos SQLeonardo com maior profundidade no Captulo 13, porque tambm a
ferramenta de consulta grfico no Report Designer Pentaho.
Resumo
Este captulo apresenta as ferramentas complementares necessrios para desenvolver e
gerenciar
uma soluo de BI. Na verdade, dificilmente voc pode ligar o MySQL uma ferramenta
adicional porque
constitui a base da soluo iremos desenvolver durante o curso da presente
livro. Cobrimos a seguir neste captulo:
Trabalhando com a linha de comando no Ubuntu ou outras distribuies Linux
Configurando Java e JAVA_HOME varivel de ambiente
A instalao do MySQL e as ferramentas GUI MySQL
Captulo 2 Pr-requisitos 35
Introduo s ferramentas de design de banco de
dados
Instalao de esquilo, uma ferramenta de consulta de banco de
dados universal
Instalao de SQLeonardo, um construtor de consulta grfica conveniente
Instalao das ferramentas descritas neste captulo apenas um pr-requisito
para a criao de bancos de dados de exemplo e exemplos, vamos utilizar todo
o livro. Todos os scripts de criao de banco de dados, arquivos de dados e instrues de
instalao-
es que utilizamos nos exemplos podem ser encontrados no site do livro na
www.wiley.com / go / pentahosolutions.
CAPTULO
3
Instalao de Servidor
e Configurao
Neste captulo voc ir aprender as tarefas bsicas envolvidas na configurao do Pentaho
BI Server. Alm disso, podemos apresent-lo a configurar e trabalhar com o
Administrao Pentaho Console (PAC).
Configurao do Servidor
Como se ilustrou no captulo 1, voc pode executar o Pentaho BI Server imediatamente
Depois de baixar e descompactar o software. No entanto, a configurao padro-
rao normalmente no suficiente para fins de produo para o seguinte
razes:
O BI Server no est configurado para iniciar automaticamente quando o sistema
operacional
reinicializao do sistema.
Inicialmente, o BI Server ser acessvel apenas a partir da porta 8080, o que pode
conflito com outro servio executado em sua mquina.
Algumas caractersticas, tais como mensagens de email e publicao de contedo de BI,
requerem configurao extra para que eles trabalhem em tudo.
Por padro, um em memria de banco de dados HSQLDB usado para todo o sistema
bases de dados, e voc pode querer usar um RDBMS que voc mais
familiarizado com o lugar.
Voc pode precisar fornecer drivers JDBC extra para se conectar a um
RDBMS particular.
37
38 Parte I Comeando com Pentaho
Neste captulo, descrevemos como alterar a configurao padro do
Pentaho BI Server. Apesar de no fornecer um guia detalhado para Pentaho
administrao e configurao do servidor, este captulo mostra como alguns dos seus
principais componentes so controlados.
Instalao
J descrevemos como baixar e extrair o Pentaho BI Server.
Se necessrio, consulte o Captulo 1 para obter instrues detalhadas. O diretrio
descompactado
contm dois subdiretrios:
administrao console -Este um servio administrativo para gerir
e configurar o real Pentaho BI Server. Isso tambm conhecido como o PAC
(Para a Administrao Pentaho Console).
biserver-ce -Este o atual Pentaho BI Server (Community Edition).
Directrio de Instalao
No Captulo 1, que tambm mencionou que voc pode instalar o Pentaho Server em
qualquer local que voc deseja. No entanto, dependendo do seu sistema operacional, no
so alguns locais que (por conveno) fazem mais sentido do que outros. Para o
finalidade do restante do livro, vamos assumir os seguintes locais:
C: \ Program Files \ pentaho para sistemas Windows
/ Opt / pentaho para sistemas baseados em UNIX
Voc deve criar esse diretrio e mover-se tanto a administrao
-Console e biserver-ce diretrios (incluindo seu contedo) para este
diretrio. No restante deste livro, vamos nos referir ao biserver-ce
diretrio como o diretrio home Pentaho, e os administrao console
diretrio como o diretrio home do PAC.
NOTA Voc precisa de privilgios de root para criar um subdiretrio / Opt. Por exemplo,
no Linux Ubuntu, voc pode usar sudo temporariamente para obter estes privilgios:
shell> sudo mkdir / opt / pentaho
Conta de Usurio
Para consideraes de segurana, voc deve considerar a criao de um usurio separado
conta para executar aplicaes de servidor, como Pentaho. Normalmente, a conta de usurio
seria tambm dono do diretrio que contm o software. Alm disso,
essa conta de usurio ser bloqueado para fora do restante do sistema. Esta
uma questo de controle de danos: um bug no software ou um servidor hackeado
simplesmente
Captulo 3 Instalao e Configurao do Servidor 39
no pode fazer nenhum mal fora de seus diretrios prprio software, ou seja, desde
a conta de usurio reservado para Pentaho ainda no possui permisses fora
a rvore Pentaho. Listagem 3-1 mostra uma possvel forma de fazer essa configurao
em Linux:
Listagem 3-1: Configurando uma conta de usurio, grupo e diretrio para Pentaho em baseados em UNIX
sistemas
# Crie um grupo para o usurio pentaho
sudo shell> addgroup pentaho
Adicionando 'pentaho "grupo (GID 1001) ...
# Criar um usurio do sistema de Pentaho
sudo adduser shell> - sistema - ingroup Pentaho - Pentaho disabled-login
Adicionando 'pentaho "usurio do sistema (UID 115) ...
Adicionando 'pentaho' novo usurio (UID 115) com 'pentaho' grupo ...
Criar diretrio home "/ home / pentaho ...
# Criar diretrio de software, e descompactar o software no
shell> sudo mkdir / opt / pentaho
sudo shell> cd / opt / pentaho
shell> sudo tar zxvf ~ / downloads/biserver-ce-CITRUS-M2.tar.gz
# ... Muita sada ...
# Conceder a propriedade de diretrios de software para o usurio pentaho
sudo shell> chown-R pentaho: pentaho / opt / pentaho
Aps configurar a conta de usurio e concesso de propriedade do Pentaho
software, voc pode comear a Pentaho da linha de comando usando um comando
como este:
shell JAVA_HOME pentaho> sudo-u = usr/lib/jvm/java-6-sun. / start-pentaho.sh
Observe o -U pentaho no comando: isso garante que o comando ser
executado com as permisses do pentaho usurio. Se voc omitir que, o servidor
ser executado com a permisso de raiz, que exatamente o que voc quer evitar! Na
prxima seo, voc ver como voc pode definir as coisas para o Pentaho BI Server
iniciado
automaticamente durante a inicializao do sistema operacional.
Configurando o Tomcat
O Pentaho BI Server est pr-configurado com base no Apache Tomcat Servlet
recipiente. O software Tomcat reside no tomcat diretrio, que reside
dentro do diretrio home do servidor Pentaho. Por padro, o Tomcat atende na porta
8080. Isso significa que Pentaho , tambm, acessvel atravs deste porto. Por exemplo,
40 Parte I Comeando com Pentaho
se o servidor Pentaho iniciado em sua mquina local, o endereo web do
Pentaho home page http://localhost:8080/pentaho.
NOTA H produtos de servidores que usam a porta 8080 por padro, em particular
outros recipientes Java Servlet como o JBoss eo GlassFish, mas tambm o Oracle Application
Express (APEX), que instalado como parte do Oracle Database Server Express.
Vrios servidores no podem usar o mesmo nmero de porta em simultneo. Por esta razo,
voc pode precisar configurar o software do servidor para garantir que cada um deles atribudo um
porta exclusiva.
Coisas como a porta do servidor, bem como as caractersticas bsicas de acesso so
configurados
ao nvel do Tomcat. A maioria das configuraes do Tomcat controlado atravs de XML
arquivos que residem no tomcat / conf diretrio. Por exemplo, se voc quiser
alterar a porta usada pelo Tomcat, voc pode editar o seguinte trecho
a partir de conf / tomcat / server.xml:
<Connector port = "8080" maxHttpHeaderSize = "8192"
MaxThreads = "150" minSpareThreads = "25" maxSpareThreads = "75"
enableLookups redirectPort = "false" = "8443" acceptCount = "100"
connectionTimeout = "20000" disableUploadTimeout = "true" />
Assim, a alterao do porto atributo faz com que o Tomcat para escutar em outra porta. Se
voc
decidir alterar o nmero da porta aqui, voc tambm precisa mudar o nme-porto
ber na web.xml arquivo de configurao que est localizado na tomcat / webapps /
WEB-INF diretrio. Voc deve procurar um trecho parecido com este:
<context-param>
<param-name> base-url </ param-name>
<param-value> http://localhost:8080/pentaho/ </ param-value>
</ Context-param>
NOTA Uma discusso completa de configurao do Tomcat est fora do escopo deste livro.
No entanto, voc pode encontrar bons recursos online e livros sobre o assunto. A
ponto de partida bvio para saber mais sobre o Tomcat o manual, que pode ser
encontrar em http://tomcat.apache.org/tomcat-5.5-doc/.
Arranque automtico
O Pentaho BI Server, bem como o console de administrao, so servidores
aplicaes e, normalmente, voc gostaria que inicie automaticamente aps a inicializao
o sistema operacional.
Arranque automtico em sistemas Unix / Linux
Usurios de sistemas baseados em UNIX necessidade de criar um script de inicializao (s
vezes chamado de
RC), que comea do Servidor Pentaho. Listagem 3-2 mostra um muito bsico, mas totalmente
Captulo 3 Instalao e Configurao do Servidor 41
funcional, script de inicializao chamado pentaho-init.sh. Voc deve ser capaz de descobrir
o que ele faz lendo o cdigo e comentrios.
Listagem 3-2: Um script bsico pentaho-init.sh
#! / Bin / sh
# V para a casa pentaho
cd / opt / pentaho / biserver ce-
# Configurar o comando para o usurio Pentaho, o ambiente java conjunto
cmd = "JAVA_HOME pentaho sudo-u = usr/lib/jvm/java-6-sun
JAVA_OPTS =- Djava.awt.headless = true "
case "$ 1" em
incio)
# Executar o script de inicializao original pentaho
$ Cmd. / Start-pentaho.sh>> pentaho-demo.log &
;;
stop)
# Executar o script de inicializao original pentaho
$ Cmd. /> Stop-pentaho.sh> pentaho-demo.log &
;;
reiniciar)
$ 0 parar
$ 0 comear
;;
*)
echo "Uso: $ 0 {start | stop | restart}"
sada 1
esac
exit 0
NOTA Note que o script da Listagem 3-2 no se destina a ser um grande exemplo de
UNIX scripting. simplesmente uma abordagem mnima que comea o trabalho feito. Se voc est
interessado em escrever esses scripts voc mesmo, voc deve referir-se aos inmeros
recursos de scripting em UNIX / Linux e administrao do sistema.
A pentaho-init.sh script deve ser colocado no / Etc / init.d diretrio.
(Note que isso requer privilgios de root, e voc deve usar sudo copiar ou
mover o script para esse local.) Voc deve ento test-lo e verificar se voc
pode us-lo para iniciar e parar o servidor Pentaho BI, como mostrado aqui:
Shell>
Shell>
Shell>
Uso:
cp pentaho-init.sh / etc / init.d
cd / etc / init.d
sudo. / pentaho-init.sh
. / Pentaho-init.sh {start | stop | restart | status}
42 Parte I Comeando com Pentaho
shell> sudo. / start pentaho-init.sh
shell> sudo. / stop pentaho-init.sh
Para distribuies baseadas em Debian Linux, incluindo o Ubuntu, voc pode ento usar
o update-rc.d utilitrio, que estabelece uma srie de links simblicos, provocando
o script para ser usado em tempo de boot para iniciar Pentaho (e para par-lo no sistema
desligamento):
shell> sudo update-rc.d padro pentaho-init.sh
update-rc.d: warning: / etc / init.d / pentaho-init.sh cabealho estilo faltando LSB
Adicionando a inicializao do sistema para o / etc / init.d / init.sh-pentaho ...
/ Etc/rc0.d/K20pentaho-init.sh -> .. / init.d / pentaho-init.sh
/ Etc/rc1.d/K20pentaho-init.sh -> .. / init.d / pentaho-init.sh
/ Etc/rc6.d/K20pentaho-init.sh -> .. / init.d / pentaho-init.sh
/ Etc/rc2.d/S20pentaho-init.sh -> .. / init.d / pentaho-init.sh
/ Etc/rc3.d/S20pentaho-init.sh -> .. / init.d / pentaho-init.sh
/ Etc/rc4.d/S20pentaho-init.sh -> .. / init.d / pentaho-init.sh
/ Etc/rc5.d/S20pentaho-init.sh -> .. / init.d / pentaho-init.sh
Voc pode usar o mesmo update-rc.d utilitrio para remover um servio j existente
usando uma linha como esta:
sudo shell> update-rc.d-f pentaho-init.sh remover
Outra ferramenta que vem a calhar para gerenciar os scripts de inicializao do Linux o
gerenciador de boot-up grfica vagabundo. Voc pode instal-lo usando o Synaptic Package
gerente, ou usando o seguinte comando:
sudo shell> apt-get install bum
Aps a instalao do Ubuntu Linux, voc pode comear vagabundo do Sistema
Administrao Gerenciador de Boot-up. Isto proporciona-lhe uma interface grfica
interface para realizar tarefas como iniciar, parar, habilitao e desabilitao init
scripts.
NOTA Para Red Hat baseado em distribuies Linux, incluindo o Fedora, o chkconfig
utilitrio pode ser usado para conseguir algo semelhante. O trecho a seguir ir instalar
e permitir que o pentaho-init.sh script:
Shell> chkconfig init.sh-pentaho - Adicionar
Shell> chkconfig pentaho-init.sh em
Depois de configurar o script de inicializao, voc deve reiniciar o computador para verificar
que o Pentaho BI Server fato inicia-se como parte da seqncia de inicializao.
Captulo 3 Instalao e Configurao do Servidor 43
Arranque automtico em Sistemas Windows
Para o Windows, voc deve criar um servio para habilitar a inicializao automtica do
Pentaho Server. A maneira mais fcil de fazer isso usar o service.bat script. Este
distribuda junto com o servidor Tomcat, que usado para enviar o BI Pentaho
Servidor, por isso j est includo no seu download Pentaho. Para usar esse script,
abrir um shell de comando e cd para o diretrio home Pentaho, e de l
em tomcat \ bin. Depois, basta executar o seguinte:
C: \ Program Files \ pentaho \ ce-biserver \ bin do tomcat \ service.bat> instalar o Pentaho
Instalao 'Pentaho' o servio ...
Usando CATALINA_HOME: C: \ Program Files \ pentaho \ ce-biserver \ tomcat
Usando CATALINA_BASE: C: \ Program Files \ pentaho \ ce-biserver \ tomcat
Usando JAVA_HOME: D: \ Libraries \ Java \ jdk-1_5_0_15
Usando JVM: D: \ Libraries \ Java \ jdk-1_5_0_15 \ bin \ jre \ server \ jvm.dll
"Pentaho" O servio foi instalado.
NOTA No exemplo anterior, usamos Pentaho como o nome do servio.
Voc pode omitir o nome, caso em que o nome do padro Tomcat5 ser usado.
Agora voc pode navegar pelo seu servio usando o Service Manager (Start
Controle PanelAdministrative ToolsServices) e configur-lo para iniciar
automaticamente. Note-se que o novo servio est marcado''Apache Tomcat Pentaho''
. Ao invs de simplesmente''''Pentaho Desinstalando o servio igualmente fcil, basta
executar o seguinte comando:
C: \ Program Files \ pentaho \ ce-biserver \ bin do tomcat \ service.bat> desinstalar Pentaho
"Pentaho" O servio foi removido
NOTA A service.bat script realmente um invlucro em torno do Tomcat5.exe
programa, e voc pode exercer maior controle usando isso diretamente. Voc tambm pode usar esse
para modificar o servio do Tomcat j est instalado. Por exemplo, em vez de navegar
para o servio no gerenciador de servios voc tambm pode executar o seguinte:
tomcat5.exe shell> / / EUA / Pentaho - auto inicializao
para modificar o servio para iniciar automaticamente. O exemplo a seguir ilustra
como mudar o nome para exibio do servio a Pentaho BI Server:
tomcat5.exe shell> / / EUA / Pentaho - DisplayName = "Pentaho BI Server"
Este ltimo exemplo ilustra como configurar uso de memria do Java Virtual Machine
para o servio. Neste caso, a memria heap inicial definido como segue:
tomcat5.exe shell> / / EUA / tomcat5 - JvmMs = 256M - JvMx = 1024 - JvmSs = 64
Voc pode encontrar mais informaes sobre o service.bat roteiro e tomcat5.exe em
a documentao do Tomcat aqui na http://tomcat.apache.org/tomcat-5.5
-doc/windows-service-howto.html.
44 Parte I Comeando com Pentaho
Gerenciando Drivers de Banco de
Dados
Todos os pedidos Pentaho, incluindo o Servidor Pentaho, use Java Database
Connectivity (JDBC) para comunicao de dados. A fim de conectar-se a
um SGBD particular, Pentaho precisa carregar o driver Java apropriada.
Por padro, o Pentaho Server vem com drivers JDBC para o seguinte
bases de dados:
HSQLDB- hsqldb-x.x.x.jar
MySQL mysql-connector-java-x.x.x.jar
PostgreSQL postgresql-x.x-xxx.jdbc3.jar
NOTA As ocorrncias de x.x.x e x.x-xxxx na Jar. nomes de arquivo no
aparecem, mas indicam um nmero de verso especfico.
Ento, se voc quiser se conectar a qualquer outro RDBMS, voc precisar obter um
driver apropriado e assegurar que ele pode ser usado pelo servidor de BI Pentaho.
O restante desta seo descreve como fazer isso.
Localizao Driver para o servidor
Os drivers JDBC esto localizados na tomcat / common / lib sob o diretrio
diretrio do Servidor Pentaho. Se voc precisa se conectar a outro tipo de
RDBMS, voc deve copiar o adequado Jar. arquivos para este local. O servidor
precisa ser reiniciado para que os novos controladores a ser carregado.
Localizao Driver para o console de administrao
Copiar o motorista Jar. arquivos para o tomcat / common / lib diretrio somente permite
o servidor para se conectar ao sistema de banco de dados correspondente. No entanto, o
PAC normalmente usado para configurar novas conexes de banco de dados chamado.
Assim, em
Para configurar corretamente e testar as conexes de banco de dados, o PAC tambm deve
para carregar o driver JDBC novo.
O driver JDBC Jar. arquivos para o PAC so armazenados no jdbc diretrio.
Este diretrio reside imediatamente abaixo do diretrio de instalao do
Administrao do software do console.
Gerenciando drivers JDBC em sistemas baseados em Unix
Em sistemas baseados em UNIX, voc pode utilizar links simblicos para facilitar a
gerenciar drivers JDBC atravs de vrios programas. Com esse mtodo, voc pode
atualizar um driver com uma nica ao.
Captulo 3 Instalao e Configurao do Servidor 45
Para fazer isso, voc deve manter todos os seus driver JDBC Jar. arquivos em um nico
diretrio (digamos, / Lib / jdbc). Alm disso, este diretrio deve conter um
link simblico para cada RDBMS distintos, apontando para a verso preferencial de
o Jar. arquivo. Este link simblico serve para criar um nome de arquivo genrico que
ser usado para se referir ao driver Jar. arquivo para esse tipo de RDBMS, independentemente
da
verso. Por exemplo, um link simblico chamado mysql-connector-java.jar poderia
apontar para um mysql-connector-java-5.1.7.jar ou mysql-connector-java
-5.0.8.jar, Dependendo da verso que voc prefere para a maioria das aplicaes.
Em vez de copiar qualquer Jar. arquivos e diretrios do aplicativo (como / / Tomcat
common / lib), Voc pode colocar um link simblico l, apontando para o genrico
link simblico no / Lib / jdbc diretrio. Sempre que voc quiser atualizar (ou
downgrade) um driver, voc pode simplesmente colocar o novo Jar. arquivo na / Lib / jdbc
diretrio e recriar o link genrico simblico para apontar para o novo Jar. arquivo.
Uma abordagem um pouco mais simples diretamente renomear o Jar. arquivo para algo
mais genricos, mas isso torna mais difcil saber exatamente qual a verso
voc est usando.
Sistema de Bases de
Dados
A plataforma Pentaho depende de uma srie de bases de dados do sistema:
hibernar -Esse banco de dados usado para armazenar a autenticao do usurio e
dados de autorizao, contedos BI (soluo de repositrio) e de dados chamado
fontes.
quartzo -Esse banco de dados atua como o repositrio para o agendador de quartzo,
que um componente que faz com que o Servidor Pentaho.
SampleData -Esta a amostra de dados que usado principalmente pela exemplos
discutido no Captulo 1. Estritamente falando, este no um banco de dados do sistema
porque ela no afeta o funcionamento normal do BIServer Pentaho.
Por padro, os bancos de dados do sistema so todos administrados por um RDBMS
HSQLDB.
Nesta seo, descrevemos como migrar estes a um banco de dados MySQL. Ns
suponha que voc tenha configurado o software de banco de dados MySQL, e assumimos
isso usa a porta padro do MySQL (3306) e reside na mesma mquina host
como o Servidor Pentaho. Para esta configurao particular, todos os MySQL JDBC contato
seqncias devem ter esta forma:
jdbc: mysql: / / localhost: 3306 / <database-name>
Aqui, <database-name> representa um esquema especfico (banco de dados), gerido
pela instncia do MySQL. No restante deste captulo, iremos usar sempre
JDBC conectar strings como este. Voc est livre para usar outra mquina, ou outro
porto, ou ambos, mas voc vai precisar para mudar as seqncias de contato que aparecem
no
46 Parte I Comeando com Pentaho
as seguintes sees conformidade. Claro, o mesmo vale se voc quiser
implantar isso em outro RDBMS. Para mais detalhes sobre a configurao do MySQL,
consulte
no Captulo 2.
As etapas para a migrao do banco de dados HSQLDB so pr-configurados
basicamente o mesmo, independentemente do RDBMS especfico. Por padro, o Pentaho
BI Server j oferece alguns recursos (como o esquema de criao de scripts)
para configur-lo para o MySQL, Oracle e PostgreSQL. Isto significa que voc ter que
ajustar os scripts se no caso de pretender configurar o sistema Pentaho
bases de dados para qualquer outro RDBMS.
Configurando o MySQL esquemas
Antes que voc possa configurar nada sobre as bases de dados no BI Pentaho
final Server, voc deve primeiro criar um par de coisas sobre o servidor MySQL que
ir substituir o banco de dados HSQLDB. Voc pode encontrar os scripts SQL para faz-lo em
o data/mysql5 diretrio, que reside em baixo da casa Pentaho BI Server
diretrio. Os scripts a seguir devem ser executados na seguinte ordem:
create_repository_mysql.sql -Cria o hibernar banco de dados, que
usado para armazenar a soluo de repositrio, bem como as credenciais do usurio e
permisses.
create_sample_datasource.sql Adiciona-uma fonte de dados para a amostra
dados em que todos os exemplos que vm com o Pentaho se baseiam. Fonte dos dados
definies tambm so armazenadas no hibernar banco de dados. Por agora, este ser
ainda apontar para o banco de dados HSQLDB, mas vamos modific-lo mais tarde,
quando
tambm a migrao dos dados amostra a MySQL.
create_quartz_mysql.sql Cria-o repositrio para o quartzo
planejador.
Voc pode usar qualquer ferramenta que voc gostaria de executar esses scripts, como o
MySQL
linha de comando do cliente ou do esquilo. Ao usar a ferramenta de linha de comando
mysql, Voc pode usar o comando source para executar um script a partir do disco:
mysql> FONTE / opt/pentaho/biserver-ce/data/mysql5/create_repository.sql
Alternativamente, voc pode execut-lo directamente a partir do
shell:
localhost shell> mysql-h - u root-p \
> </ Opt/pentaho/biserver-ce/data/mysql5/create_repository.sql
NOTA Nota assinar o menos (<). Isso faz com que o contedo do arquivo de script para
ser executada pelo mysql linha de comando da ferramenta.
Configurando quartzo e Hibernate
Nesta seo, voc vai aprender a editar os arquivos de configurao Pentaho, a fim
para o quartzo e os componentes do Hibernate para se conectar ao banco de dados MySQL.
Captulo 3
Quartzo
Instalao e Configurao do Servidor 47
O quartzo um agendador de tarefas. Pentaho utiliza para automatizar tarefas e executar
assinatura de contedo. lojas de quartzo definies de trabalho em um banco de dados
relacional.
Para permitir quartzo para se conectar ao MySQL, voc precisa abrir / Tomcat / webapps /
pentaho / META-INF / context.xml, Que reside na casa do Servidor Pentaho
diretrio. Procure a seo onde se l:
<Nome do Recurso = "jdbc / Quartzo" auth = "Container"
type = "javax.sql.DataSource"
fbrica = "org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive = "20" maxidle = "5" maxWait = "10000"
username = "pentaho_user" password = "senha"
driverClassName = "org.hsqldb.jdbcDriver"
url = "jdbc: hsqldb: HSQL: / / localhost / quartzo"
validationQuery = "
select count (*)
de INFORMATION_SCHEMA.SYSTEM_SEQUENCES
"/>
Voc precisa alterar os valores das seguintes propriedades:
driverClassName -O valor dessa propriedade deve ser definida para a classe Java
nome do driver JDBC do MySQL, que com.mysql.jdbc.Driver.
url -Isso deve ser definido para a cadeia JDBC contato. Ele deve ser alterado
para o adequado contato string JDBC do MySQL, que MySQL:: jdbc / /
localhost: 3306/quartz.
ValidationQuery -Isto usado para verificar se a conexo pode ser
criado. Isso deve ser alterado para SELECT 1.
Aps a modificao, o trecho deve ficar assim:
<Nome do Recurso = "jdbc / Quartzo" auth = "Container"
type = "javax.sql.DataSource"
fbrica = "org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive = "20" maxidle = "5" maxWait = "10000"
username = "pentaho_user" password = "senha"
driverClassName = "com.mysql.jdbc.Driver"
url = "jdbc: mysql: / / localhost: 3306/quartz"
validationQuery = "SELECT 1 "/>
Hibernar
Hibernate uma camada de mapeamento objeto-relacional que utilizado por Pentaho para
acesso (e cache) o seguinte:
Objetos da soluo de repositrio
fontes de dados com o nome, que so usadas por elementos tais como relatrios de
recolher
dados de bancos de dados JDBC
A autenticao do usurio e dados de autorizao
48 Parte I Comeando com Pentaho
Voc deve modificar os arquivos de configurao Pentaho relevantes do ponto
los para o banco de dados MySQL em vez do banco de dados HSQLDB. Primeiro, mod-
rificar a seo correspondente ao Hibernate / Tomcat / webapps pentaho / /
META-INF/context.xml. Na subseo anterior, voc j mudou essa
arquivo para configurar a conexo para o Quartz. Desta vez, voc precisar executar o
mesma tarefa para o Hibernate, e alterar esse trecho:
<Nome do Recurso = "jdbc / Hibernate" auth = "Container"
type = "javax.sql.DataSource"
fbrica = "org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive = "20" maxidle = "5" maxWait = "10000"
username = "hibuser" password = "senha"
driverClassName = "org.hsqldb.jdbcDriver"
url = "jdbc: hsqldb: HSQL: / / localhost / hibernate"
validationQuery = "
SELECT COUNT (*)
DA INFORMATION_SCHEMA.SYSTEM_SEQUENCES "/>
para isso:
<Nome do Recurso = "jdbc / Hibernate" auth = "Container"
type = "javax.sql.DataSource"
fbrica = "org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive = "20" maxidle = "5" maxWait = "10000"
username = "hibuser" password = "senha"
driverClassName = "com.mysql.jdbc.Driver"
url = "jdbc: mysql: / / localhost / hibernate"
validationQuery = "SELECT 1 " />
Em seguida, cd no pentaho-solutions/system/hibernate diretrio no
Pentaho diretrio Home. Voc precisa modificar dois arquivos aqui:
hibernate-settings.xml
mysql5.hibernate.cfg.xml
Primeiro, edite hibernate-settings.xml. Neste arquivo, voc encontrar uma linha que
l-se:
sistema <arquivo-de-configurao> / hibernate / hsql.hibernate.cfg.xml </ config->
O valor no <arquivo-de-configurao> elemento o nome de um arquivo que tambm
reside nesse diretrio. Como voc pode ver, ele ainda se refere a um HSQLDB especficas
arquivo de configurao. Voc precisa mudar este mysql5.hibernate.cfg.xml,
que contm a configurao especfica do MySQL. Isso tudo que voc precisa
mudana na hibernate-settings.xml. H duas coisas que voc pode precisar
mudana na mysql5.hibernate.cfg.xml:
Este arquivo contm a string JDBC contato para se conectar ao hibernar
banco de dados, por isso, se voc estiver usando um outro host, porta, ou ambos voc
vai precisar
ajustar a seqncia de conexo JDBC aqui conformidade.
Captulo 3 Instalao e Configurao do Servidor 49
Voc pode querer adicionar uma ligao robusta pooling. Banco de dados de liga-
es no so criadas toa. Pelo contrrio, o servidor mantm um conjunto de
conexes, que permanecem abertas enquanto o servidor est executando.
A string JDBC de conexo configurada na linha que l:
<property name="connection.url"> jdbc: mysql: / / localhost: 3306/hibernate
</ Property>
(Como acabamos de mencionar, voc no precisa mudar isso se voc no sabe definir
o MySQL, diferentemente do que sugerimos).
Para adicionar um pool de conexo, adicione o seguinte trecho, logo abaixo do
<session-factory> tag de abertura:
propriedade <
propriedade <
propriedade <
propriedade <
propriedade <
propriedade <
propriedade <
propriedade <
name = "hibernate.c3p0.acquire_increment"> 3> </ property
name = "hibernate.c3p0.idle_test_period"> 14400 </> propriedade
name = "hibernate.c3p0.min_size"> 5> </ property
name = "hibernate.c3p0.max_size"> 75> </ property
name = "hibernate.c3p0.max_statements"> 0> </ property
name = "hibernate.c3p0.timeout"> 25200> </ property
name = "hibernate.c3p0.preferredTestQuery"> selecione um </> propriedade
name = "hibernate.c3p0.testConnectionOnCheckout" <>> true / propriedade
Este trecho faz com que o pool de conexo C3P0 para ser usado. Voc vai precisar
garantir que este carregado pelo servidor com antecedncia. Para fazer isso, voc precisa
colocar
o C3P0-x.x.x.x.jar arquivo na tomcat / common / lib diretrio. Alm disso,
tambm preciso coloc-lo no lib sob o diretrio home do PAC. (Nota
que x.x.x.x. representa o nmero da verso.) Voc pode obt-lo http://
sourceforge.net/projects/c3p0. Voc s precisa baixar o C3P0-bin
pacote. Os usurios do Windows devem obter o Zip. arquivo, e h uma . Tgz
Arquivo para sistemas operacionais baseados em UNIX.
NOTA C3P0 um pool de aplicao livre compatvel com JDBC de conexo. Se voc
gosta, voc pode usar um pool de aplicao alternativa de conexo, como o DBCP,
que fornecido pelo Apache (ver http://commons.apache.org/dbcp/). Para
mais informaes sobre como usar o DBCP para a configurao do Hibernate Pentaho, leia este
artigo no blog de Tom Barber: http://pentahomusings.blogspot.com/
2008/05/pentaho-server-fails-every-night-we.html.
Estritamente falando, voc no precisa configurar um pool de conexo como esta as coisas,
continuar a funcionar na maioria das vezes sem ele. No entanto, isso acontece para resolver
um
problema que frequentemente encontrados durante a execuo Pentaho em cima do
MySQL.
O problema que o Hibernate sempre tenta manter a conexo com o MySQL
aberto. No entanto, as conexes MySQL expiram automaticamente aps um determinado
perodo de inatividade. Isso pode ser configurado ao final do MySQL, definindo a
valor da wait_timeout servidor varivel. Por padro, conexes inativas
termina aps 8 horas. Se isto acontecer em um sistema de produo, o Hibernate pra
50 Parte I Comeando com Pentaho
funcionando corretamente, o que essencialmente requer que voc reiniciar o servidor Pentaho
antes, torna-se til novamente. Normalmente, voc comea a perceber esse problema em um
servidor de produo: durante a noite, possvel que o servidor ociosa,
e na manh seguinte voc ver as coisas no funcionam mais. Configurando o
pool de conexo como descrito resolve esse problema.
NOTA Para saber mais sobre os problemas especficos que podem surgir durante
execuo Pentaho em cima do MySQL, na ausncia de um pool de conexo, por favor leia
esta discusso nos fruns Pentaho: http://forums.pentaho.org/
t showthread.php? = 54939.
Para obter mais informaes sobre o MySQL wait_timeout variveis, consulte
http://dev.mysql.com/doc/refman/5.1/en/server-system
-Variables.html # sysvar tempo limite de espera e http://dev.mysql.com/doc/
refman/5.1/en/gone-away.html.
Configurando a segurana JDBC
Voc tambm vai precisar se adaptar a autenticao do usurio e configura-autorizao
o para o novo hibernar banco de dados. Para fazer isso, editar applicationContext-Acegi
-Segurana jdbc.xml. Este arquivo reside na pentaho-solutions/system dentro
do Pentaho BI Server diretrio home. Voc precisa olhar para o seguinte
trecho:
feijo <id = "dataSource"
class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" "value="org.hsqldb.jdbcDriver" />
<Nome da propriedade = "url"
value = "jdbc: hsqldb: HSQL: / / localhost: 9001/hibernate" />
<property name="username" value="hibuser" />
<property name="password" value="password" />
</ Bean>
Modificar esta para coincidir com o banco de dados MySQL,
assim:
feijo <id = "dataSource"
class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql//localhost:3306/hibernate" />
<property name="username" value="hibuser" />
<property name="password" value="password" />
</ Bean>
No mesmo diretrio um arquivo chamado applicationContext-segurana Acegi
-Hibernate.properties. Seus contedos so os seguintes:
org.hsqldb.jdbcDriver jdbc.driver =
jdbc.url = jdbc: hsqldb: HSQL: / / localhost: 9001/hibernate
hibuser jdbc.username =
password = jdbc.password
org.hibernate.dialect.HSQLDialect hibernate.dialect =
Captulo 3 Instalao e Configurao do Servidor 51
Voc precisar editar esta e ajustar as propriedades de banco de dados para coincidir com o
MySQL hibernar banco de dados, como segue:
com.mysql.jdbc.Driver jdbc.driver =
jdbc.url = jdbc: mysql: / / Localhost: 3306/hibernate
hibuser jdbc.username =
password = jdbc.password
org.hibernate.dialect.MySQLDialect hibernate.dialect =
Dados da Amostra
Se voc tambm gostaria de mover a amostra de dados de HSQLDB ao MySQL, voc
deve primeiro fazer o download de um script para carregar os dados de exemplo para MySQL.
Este script
gentilmente cedidas por Prashant Raju, e voc pode baix-lo www.
prashantraju.com/pentaho/downloads/sampledatamysql5.sql.
NOTA Prashant Raju tambm oferece bons guias para configurar Pentaho para o MySQL.
Voc pode encontr-los aqui:
http://www.prashantraju.com/pentaho/guides/biserver-2.0-final/.
Aps a configurao do banco de dados, voc ainda precisa de actualizar o SampleData
definio da fonte de dados que armazenado no hibernar banco de dados. Mais adiante neste
captulo, discutiremos como editar fontes de dados usando a Administrao Pentaho
Console. Por agora, vamos usar um mtodo um pouco mais direto, e atualizar diretamente
o registro do banco de dados que armazena a definio da fonte de dados:
UPDATE hibernate.DATASOURCE
SETDRIVERCLASS = "com.mysql.jdbc.Driver",
URL = "jdbc: mysql: / / localhost: 3306/sampledata,
Query = 'SELECT 1'
WHERE NAME = 'SampleData'
;
Modificar o Pentaho Scripts de inicializao
Se voc trabalhou com as subsees anteriores, voc pode descartar o HSQLDB
banco de dados completo. O Pentaho scripts de inicializao e desligamento conter uma linha
explicitamente iniciar e parar o banco de dados HSQLDB, respectivamente. Voc deve
remover essas linhas. Ele poupa alguma memria, e tambm oferece uma boa
teste para ver se voc mudou corretamente todos os bancos de dados MySQL.
Aqui est um resumo dos roteiros e as linhas a remover:
start-pentaho.bat:
incio start_.bat
parar pentaho.bat:
incio stop_.bat
52 Parte I Comeando com Pentaho
start-pentaho.sh:
start_.sh & sh
parar pentaho.sh:
incio stop_.bat
NOTA Ao invs de remover as linhas, voc pode ativ-los para comentar
linhas, o que torna mais fcil de desfazer a alterao mais tarde. Para o . Morcego scripts, voc
criar uma linha de comentrio, definindo a palavra-chave REM seguido por um caractere de espao
logo no incio da linha. Para o Sh. scripts, voc pode definir o cardinal
(#) Logo no incio da linha.
E-mail
O Pentaho BI Server tem SMTP (Simple Mail Transfer Protocol) e-mails
capacidades. E-mail pode ser usado para distribuir contedo de BI (tais como relatrios) para
os recipientes apropriados em cenrios de ruptura, ou para o envio de monitoramento
mensagens. Especificamente, Pentaho utiliza a API JavaMail para atuar como um cliente
SMTP
enviar e-mails atravs de um servidor SMTP existente. Observe que voc precisa ter um
executando o servidor STMP antes que voc possa usar este Pentaho, no implementa
um servidor de email em si.
E-mail no ir funcionar out-of-the-box na configurao padro. A fim
usar e-mail, voc precisa configurar algumas coisas. A configurao de e-mail
controlada atravs do arquivo email_config.xml, Que reside no smtp-mail
diretrio dentro do sistema Pentaho soluo.
Configurao bsica de SMTP
Listagem 3-3 mostra o contedo de uma base email_config.xml arquivo.
Listagem 3-3: O contedo do email_config.xml
<email-smtp>
<properties>
<mail.smtp.host> smtp.wcm.com </ mail.smtp.host>
<mail.smtp.port> 25 </ mail.smtp.port>
<mail.transport.protocol> smtp </ mail.transport.protocol>
<mail.smtp.starttls.enable> false </ mail.smtp.starttls.enable>
<mail.smtp.auth> true </ mail.smtp.auth>
<mail.smtp.ssl> false </ mail.smtp.ssl>
<mail.smtp.quitwait> false </ mail.smtp.quitwait>
</ Properties>
Captulo 3 Instalao e Configurao do Servidor 53
<mail.from.default> joe.pentaho @ pentaho.org </ mail.from.default>
joe.pentaho <mail.userid> @ gmail.com </ mail.userid>
<mail.password> senha </ mail.password>
</ Smtp-mail>
Como voc pode ver na Listagem 3-3, h uma propriedades seo que contm a
configurao para comunicao com o servidor SMTP. O mais importante
propriedades so as seguintes:
mail.smtp.host -O nome do host ou endereo IP onde o SMTP
servidor est executando.
mail.smtp.port -A porta onde o servidor SMTP est escutando. A
porta padro SMTP 25.
mail.transport.protocol -O protocolo usado para se comunicar com o
SMTP servidor. Por padro, esta smtp.
mail.smtp.starttls.enable -Por padro, false. Se verdadeiro, o STARTTLS
comando usado para mudar para uma conexo segura TLS protegido.
mail.smtp.auth -Por padro, false. Se for verdade, o comando AUTH ser
usado para autenticar o usurio. Muitos servidores SMTP exigem autenticao,
por isso deve ser normalmente configurado para true.
mail.smtp.ssl -Por padro, false. Se for verdade, uma tomada de seguro utilizado para
comunicar com o servidor.
mail.smtp.quitwait -Por padro, verdade, o que significa que o cliente ir esperar
para uma resposta QUIT comando. Se false, a conexo fechada
imediatamente aps o QUIT comando.
Fora da propriedades seo, h uma configurao de alguns parmetros
que so usados para autenticar o pedido de SMTP:
mail.from.default -Padro O e-mail do remetente. O SMTP
protocolo exige que o remetente deve ser especificado, e este endereo de e-mail
ser utilizado se nenhum endereo especificado explicitamente aquando do envio dos
e-mail.
mail.userid e mail.password -As credenciais do remetente. Esta
necessria quando o servidor SMTP requer autenticao (que o caso
quando o mail.smtp.auth propriedade verdadeira). Normalmente, o remetente do e-mail
e-mail e credenciais so associados e os servidores SMTP
requerer o endereo do remetente de e-mail para corresponder ao usurio identificado
54 Parte I Comeando com Pentaho
pelas credenciais. Embora por padro o protocolo SMTP no
exigir autenticao, na prtica, quase todos os servidores SMTP esto configurados para
us-lo.
NOTA Voc pode encontrar mais informaes sobre JavaMail e sua configurao
propriedades na documentao da API Java em http://java.sun.com/products/
javamail / javadoc / com / sun / mail / SMTP / pacote summary.html.
Secure Configuration SMTP
Mais e mais freqentemente, servidores de email exigem que voc use uma comunicao
segura
protocolo. Um exemplo bem conhecido o Google Gmail. Para enviar e-mail usando
como um servidor de email, voc vai precisar de uma configurao de e-mail um pouco
diferente: mail.smtp.port A porta-padro para SMTP seguro 465. s vezes
587 utilizado. Contacte o seu administrador para obter o nmero da porta apropriado.
mail.transport.protocol -Isso deve ser smtps ao invs de smtp.
mail.smtp.starttls.enable -Voc pode precisar definir este como verdadeiro, em vez
do que falsa.
Teste de E-mail Configurao
Para testar sua configurao de e-mail, voc pode usar o Burst Relatrio de Vendas, que
reside na seo Reportagem da soluo de BI Developer exemplos. Voc
pode encontrar indicaes sobre como trabalhar com os exemplos pr-definidos em Pentaho
Captulo 1.
Editora Senha
ferramentas de projeto Pentaho so usados para criar definies de contedo de BI, como
relatrios, cubos OLAP, e metadados. O BI arquivos de contedo que so criados por
essas ferramentas podem ser implantados manualmente, copiando os arquivos diretamente
para o
Diretrio soluo adequada no sistema de arquivos do host do Servidor Pentaho.
No entanto, a forma tpica e preferenciais para implantar contedo BI atravs de um
processo chamado publicao.
Para publicar, as ferramentas de design recorrer a um servio Web implementados pelo
Pentaho Server, que autentica o usurio, bem como verificar a sua
permisses. Quando isso for bem-sucedida, a ferramenta cliente envia os dados de contedo
para
o servidor, que armazena-la em uma posio desejada em algum local dentro do
soluo de repositrio.
Para habilitar a publicao, voc primeiro tem que definir explicitamente a senha do editor.
Esta senha deve ser fornecida para o web service, alm do usurio
credenciais ao publicar contedo de BI. H uma senha para o editor
Captulo 3 Instalao e Configurao do Servidor 55
todo o servidor, e configurado no publisher_config.xml arquivo, que
reside no pentaho-solutions/system sob o diretrio home Pentaho
diretrio. O contedo do arquivo de configurao so mostrados aqui:
<publisher-config>
<publisher-password> publicar </ senha editor->
</ Editor-config>
No exemplo anterior, a senha definida para publicar.
NOTA Por padro, nenhuma senha especificada, o que impede a concepo
ferramentas de publicar qualquer contedo para o servidor.
Tarefas administrativas
Nesta seo, descrevemos como executar tarefas administrativas comuns
utilizando o Pentaho Console Administrativo (PAC).
A Administrao Pentaho Console
O software PAC enviado no mesmo pacote como o Pentaho BI Server.
Mencionamos antes que ele reside no administrao console diretrio.
PAC implementado como um servidor Web leve baseado no Jetty. Tecnicamente,
no h razo para que PAC no poderia tambm funcionar dentro do servidor Tomcat na
qual o Pentaho BI Server baseado, s que agora possvel facilmente
separar os recursos administrativos a partir do aplicativo de BI. Por exemplo,
voc pode facilmente executar PAC em um servidor fisicamente distintos, o que pode torn-lo
mais fcil de gerenciar a segurana.
NOTA Jetty um servidor web e Java servlet container, assim como o Apache Tomcat.
A diferena importante que o Jetty fornece um mnimo muito leve
implementao que o torna especialmente adequado para inseri-la. Jetty tambm
utilizado por Pentaho Data Integration para implementar clustering.You pode encontrar mais
sobre o projeto no Jetty http://www.mortbay.org/jetty/.
Configurao bsica do PAC
Antes de usar o PAC, voc pode precisar configurar algumas coisas. Abra o
console.xml arquivo localizado na recurso / config diretrio abaixo do PAC
home. Seus contedos so os seguintes:
<? Xml version = "1.0" encoding = "UTF-8"?>
<console>
<solution-path> </ soluo de caminho>
56 Parte I Comeando com Pentaho
<war-path> </ guerra caminho>
<platform-username> joe </ username plataforma>
<biserver-status-check-period-millis>
30000
</ Biserver-status check-perodo millis>
<homepage-url> http://www.pentaho.com/console_home </ url-homepage>
<homepage-timeout-millis> 15000 </ homepage-timeout millis>
<! - Lista separada por vrgulas de papis (sem espaos) ->
<default-roles> autenticados </ default-papis>
</ Console>
Voc precisa modificar o <solution-path> e <war-path> elementos dentro
o <console> elemento a apontar para o local da soluo de repositrio
ea aplicao web Pentaho, respectivamente. Voc pode usar caminhos relativos,
assumindo assim uma posio padro como descrito na seco de instalao deste
captulo, esses elementos devem ler-se:
<solution-path> .. / biserver-ce / pentaho solues </ caminho-soluo>
<war-path> .. / biserver-ce / tomcat / webapps / pentaho </ caminho-guerra>
Iniciando e parando PAC
Iniciar e parar scripts esto localizados diretamente no interior do administrao console
diretrio. Os usurios do Windows podem comear pela execuo do PAC startup.bat; Usurios
de sistemas baseados em UNIX deve usar start.sh. Da mesma forma, os usurios do Windows
podem
uso stop.bat PAC para parar, enquanto stop.sh deve ser usado em UNIX
sistemas.
O Front End PAC
A extremidade dianteira do PAC uma pgina web. Voc pode acess-lo com qualquer
ambiente moderno
JavaScript habilitado para navegador. Por padro, o PAC atende a pedidos no porto 8099.
Por exemplo, durante a execuo do PAC na mquina local, voc pode acessar o
console, navegue at http://localhost:8099/.
Ao navegar na pgina, voc primeiro solicitado suas credenciais.
O nome de usurio padro adminEa senha padro senha. Depois
o login, voc ver uma pgina como a mostrada na Figura 3-1.
A home page do PAC oferece pouco mais do que alguns aparentemente esttico textual
informaes sobre o Pentaho Enterprise Edition. No entanto, as informaes
na home page transferido ao vivo pela internet, para que ele possa ser usado para
show up-to-date informaes.
Observe o grande boto verde na Administrao do lado esquerdo do PAC
home page. Clicando que lhe d acesso ao real console administrativo.
Captulo 3 Instalao e Configurao do Servidor 57
Figura 3-1: O Pentaho Administrao home page Console
Configurando a segurana do PAC e Poderes
Jetty apresenta sua prpria autenticao plugveis. Este separado do
Plataforma Pentaho sistema de segurana. PAC da segurana configurado atravs do
login.conf arquivo de configurao. Este arquivo define o tipo de segurana
especificando o chamado mdulo de login. Jetty navios com um nmero de padro
mdulos de login, como as propriedades de um arquivo do mdulo de login ou um login JDBC
mdulo.
O contedo padro do login.conf arquivo so os seguintes:
PropertiesFileLoginModule {
org.mortbay.jetty.plus.jaas.spi.PropertyFileLoginModule necessria
debug = "true"
file = "recursos / config / login.properties";
};
Como voc pode ver, o PAC utiliza as propriedades do arquivo de mdulo de login padro
(que
implementado pelo org.mortbay.jetty.plus.jaas.spi.PropertyFile
LoginModule Java classe). Com este tipo de autenticao, os nomes de usurios e
as senhas so armazenadas em um arquivo de propriedades. Neste caso, o arquivo recurso /
58 Parte I Comeando com Pentaho
config / login.properties. O caminho relativo ao repouso e ao PAC
contedo desse arquivo mostrado aqui:
admin: 1v2j1uum1xtv1zej1zer1xtn1uvk1v1v, administrador do servidor,: OBF
administrador de contedo, admin
Se voc quiser adicionar novas entradas aqui, ou alterar a senha padro,
voc pode usar o org.mortbay.jetty.security.Password classe, que parte
do Jetty. Voc pode usar isso a partir da linha de comando, como segue:
Shell> cd / opt / pentaho / administrao console / lib /
shell jetty.jar java-cp>; org.mortbay.jetty.security.Password molhe-util.jar
java org.mortbay.jetty.security.Password [<user>] <senha> - Uso
Se a senha for?, O usurio ser solicitado a senha
NOTA Na realidade, o Jar. nomes de arquivos incluem um nmero de verso, por exemplo,
molhe-6.1.2.jar e molhe-util-6.1.9.jar. Por favor, olhe em sua recurso /
lib directrio para descobrir quais os nmeros de verso se aplicam sua distribuio.
Ento, se voc deseja alterar a senha para o usurio administrador do segredo'',''voc
pode fazer o seguinte:
Shell>
>
>
>
java \
Cp-molhe-6.1.2.jar: molhe-util-6.1.9.jar \
org.mortbay.jetty.security.Password \
segredo
Este comando gera o seguinte resultado:
segredo
OBF: 1yta1t331v8w1v9q1t331ytc
MD5: 5ebe2294ecd0e0f08eab7690d2a6ee69
Agora voc pode modificar o recurso / config / login.properties arquivo e
alterar a ocorrncia de OBF: 1v2j1uum1xtv1zej1zer1xtn1uvk1v1v para OBF: 1a
ta1t331v8w1v9q1t331ytc.
NOTA Para obter mais informaes sobre a APA de autenticao conectvel, por favor consulte o
Pentaho documentao. Voc pode encontr-lo em http://wiki.pentaho.com/
display/ServerDoc2x/Configuring + Segurana + com + Pentaho
+ Administrao + Console.
Gerenciamento de Usurio
Por padro, o Pentaho BI Server usa um sistema de autorizao simples, consistindo
de usurios, papis e permisses que so armazenados em um banco de dados relacional.
PAC
permite a criao de funes e usurios, e faa as associaes de utilizadores / papel. A
permisso real pode ser controlado a partir da utilizao Pentaho Console (isto ,
a partir do final do Pentaho BI Server). Aqui, o usurio atual pode conceder ou revogar
permisses para itens da soluo de repositrio para usurios individuais ou a
Captulo 3 Instalao e Configurao do Servidor 59
funes (conferindo, assim, a permisso para que todos os usurios que essa particular
papel atribudo).
O gerenciamento de usurios do console mostrado na Figura 3-2. Ele pode ser invocado
por
clicando na aba Usurios e Roles no topo do console de gerenciamento.
Figura 3-2: O gerenciamento de usurios do console
Se voc quiser adicionar um novo usurio, no se esquea de ativar o modo de usurio,
clicando em
o boto da barra de ferramentas do Usurio. No lado esquerdo do console, voc ver a lista
de
usurios existentes. Clique na +boto na parte superior direita da lista para abrir um dilogo
onde voc pode digitar os dados que descrevem o novo usurio (veja a Figura 3-2).
Voc pode clicar em qualquer entrada na lista de usurio para selecionar o usurio. Ao clicar
no
boto x pequeno na parte superior direita da lista de usurios ir remover o usurio
selecionado.
Alternativamente, voc pode atualizar os dados do usurio selecionado na forma a
lado esquerdo do console de gerenciamento de usurios. No fundo desta forma, h uma
lista que mostra os papis atribudos ao usurio.
Voc pode chamar o usurio atribuies / funo de dilogo clicando no +boto
na parte superior direita da lista de atribuies. Este dilogo mostrado na Figura 3-3. Voc
pode adicionar tarefas, selecionando um ou mais papis na lista Disponvel em
no lado esquerdo da janela, e clicando no >boto. Da mesma forma, voc pode
revogar papis, selecionando-os na lista e clicando no Assigned <boto.
Use o boto Atualizar na parte inferior do formulrio para confirmar quaisquer alteraes
voc fez com os dados do usurio ou as atribuies de funo.
Se voc quiser criar uma nova funo, clique no boto da barra de funes. Isso proporciona
uma interface semelhante ao mostrado na Figura 3-2, mas do outro lado: Em
Do lado esquerdo, este ecr oferece uma lista de funes em vez de uma lista de usurios e,
em vez
60 Parte I Comeando com Pentaho
de uma lista de funes atribudas, ele fornece uma lista de usurios que foram atribudos a
selecionados papel.
Figura 3-3: Atribuir funes ao usurio selecionado
NOTA A plataforma Pentaho no se limita autenticao padro e
sistema de autorizao armazenadas em um banco de dados relacional. A plataforma Pentaho torneiras
no sistema Spring Security (anteriormente conhecido como Acegi). Esta uma forma flexvel
sistema de segurana que fornece acesso a uma vasta gama de autenticao e
autorizao de back-ends, como o LDAP.
Para obter mais informaes sobre o Spring Security, veja: www.springsource.com/
produtos / springsecurity. Para obter mais informaes sobre como aplicar Primavera
conceitos de segurana a Pentaho, consulte a documentao do Pentaho em
http://wiki.pentaho.com/display/ServerDoc2x/Security.
As fontes de dados
PAC permite criar e editar fontes de dados chamado JDBC (dados JNDI
fontes). Voc pode acessar a fonte de dados clicando no console de fontes de dados
guia no topo do console de gerenciamento. A gesto de Fontes de Dados
console mostrado na Figura 3-4.
A lista de fontes de dados disponveis no lado esquerdo do console. Se voc selecionar um
item na lista, voc pode alterar suas propriedades no formulrio direita. Dados
fontes tm as seguintes propriedades:
Nome-O nome do JNDI para o fonte de dados. Isso pode ser usado na
relatrios e outros contedos de BI para se referir a este respeito.
Driver de classe-nome da classe Java que implementa o JDBC
motorista. Para o MySQL, voc pode usar com.mysql.jdbc.Driver.
Nome do utilizador-O nome do usurio do banco.
Senha de senha do usurio do banco de dados.
URL A seqncia de conexo. O formato da seqncia de conexo dependente
sobre o condutor, e voc deve consultar a documentao do condutor
descobrir qual o formato a utilizar. Para o MySQL, o formato :
jdbc: mysql: / / <hostname> [: <porta>] / <schema_name>
Captulo 3 Instalao e Configurao do Servidor 61
Figura 3-4: A gesto da fonte de dados do console
Ao usar um banco de dados local chamado wcm_dwh que escuta na porta padro,
a URL deve ser:
jdbc: mysql: / / localhost: 3306/wcm_dwh
Quando terminar de modificar as propriedades, voc pode usar o boto de teste para
confirmar a conexo est funcionando corretamente. Use o boto Update para armazenar
as modificaes.
Voc pode adicionar uma nova fonte de dados clicando no +boto que aparece na
superior direito da lista de fontes de dados. Isso abre uma janela onde voc pode editar o
fonte de dados de propriedades. Afirmar o dilogo ir adicionar a fonte de dados para o
lista do lado esquerdo do console.
NOTA Para obter mais informaes sobre como criar fontes de dados com o PAC, consulte o Pentaho
documentao em http://wiki.pentaho.com/display/ServerDoc2x/.04
Configurando + + + Data Sources.
Outras tarefas administrativas
PAC tambm permite que voc gerenciar agendas e assinaturas. Este tpico
explorados em detalhe no Captulo 14.
Resumo
Neste captulo, voc aprendeu algumas noes bsicas sobre a instalao do Servidor
Pentaho,
, configurao e administrao, incluindo as seguintes:
O diretrio de instalao preferida
Configurando uma conta de usurio separada para executar o servidor
Pentaho
62 Parte I Comeando com Pentaho
Habilitar incio automtico de e desligamento do Pentaho BI Server
Permitindo a conectividade de banco de dados de um RDBMS de escolha,
acrescentando novos
drivers JDBC
Gerenciando drivers JDBC em sistemas baseados em UNIX usando links simblicos
Configurando o sistema de bancos de dados MySQL em Pentaho
Configurando um pool de conexo C3P0 para o Hibernate
Habilitando a plataforma Pentaho para enviar e-mail com um existente SMTP
servidor.
Configurando a senha do Publisher
Configurando e iniciando o Pentaho Administration Console (PAC)
Gerenciando a autenticao bsica PAC
Gerenciando Pentaho BI Server usurios e os papis com o PAC
Gerenciando fontes de dados com o PAC
CAPTULO
4
O BI Pentaho Stack
Pentaho uma suite de business intelligence, em vez de um nico produto: ele feito
por um conjunto de programas de computador que trabalham juntos para criar e
oferecer solues de business intelligence. Alguns destes componentes fornecem
funcionalidades que so muito bsicos, como autenticao de usurio ou banco de dados
gerenciamento de conexo. Outros componentes fornecem funcionalidades que opera
a um nvel superior, como a visualizao de dados por meio de tabelas e grficos.
Frequentemente, mas nem sempre, os componentes que oferecem funcionalidades de alto
nvel confiar
em outros componentes que oferecem funcionalidade de baixo nvel. Como tal, a coleo
de programas que formam o pacote completo pode literalmente ser visto como um pilha
de componentes, cada nvel trazendo mais funcionalidade para o usurio final. A
Pentaho BI pilha mostrado na Figura 4-1, onde todos os componentes que fazem
at a soluo completa so mostrados.
Neste captulo, descrevemos os diferentes componentes, suas funes e,
se for caso disso, as relaes que existem entre eles. Na Figura 4-1, o
principais camadas da pilha esto claramente identificados, com a camada de apresentao
na
o topo ea camada de dados e integrao de aplicativos na parte inferior. A maioria das finais
os usurios iro interagir com a camada de apresentao, que pode assumir muitas formas.
Pentaho pode ser acessado por um navegador web simples, mas os componentes tambm
podem
ser incorporado em um portal existente, tais como o Liferay ou um gerenciamento de contedo
sistema, tais como Alfresco. Talvez a forma mais comum de apresentao
Pentaho envio de contedo como um arquivo PDF para Caixa de Entrada de um usurio via e-
mail.
As principais reas funcionais da pilha de relatrios de BI, anlise, dashboards
e gerenciamento de processos, constituem a camada do meio da pilha, enquanto
a plataforma de BI em si oferece recursos bsicos para a segurana e administrao.
A integrao de dados completa da pilha e necessrio para obter dados de vrias
sistemas de origem para um ambiente compartilhado de data warehouse.
63
64 Parte I Comeando com Pentaho
Pentaho Open BI Suite
Camada de Apresentao
Browser
Reportagem
Portal
Anlise
Office
Web Services
Dashboards
E-mail
Processo
Gesto
Produo
Operacional
Ad hoc
Minerao de Dados
OLAP
Broca & Explorar
Mtricas
KPIs
Alertas
Integrao
Definio
Execuo
Plataforma de Business Intelligence
Segurana
Administrao Business Logic
Repositrio
Dados e Integrao de Aplicaes
ETL Metadados EII
Aplicaes 3rd party
ERP / CRM Legado de Dados OLAP Outras Aplicaes Dados Local
Figura 4-1: Pentaho BI pilha
Em certo sentido, o diagrama no mostra apenas o BI Pentaho pilha a um nvel elevado,
mas a arquitetura de BI Pentaho tambm. Uma arquitetura define a estrutura
eo esboo de uma soluo, mas no exatamente prescrever como a estrutura
deve ser construda. No caso da Pentaho, a arquitetura define as camadas
e blocos de construo, mas no necessariamente fora a usar tudo, desde
a pilha, ou para dar um passo alm, de Pentaho. Apesar de existirem
vrias vantagens em usar software Pentaho para construir a pilha, voc est livre
para misturar em outros componentes tambm. Por exemplo, Pentaho possui duas formas de
criao de relatrios, o Ad Hoc web-based de Consulta e componente de relatrio e
o Pentaho Report Designer, mas a plataforma pode ser executado tanto Jasper e BIRT
relatrios. Mesmo no mundo Pentaho, uma infinidade de alternativas
disponveis, na maior parte iniciadas por projetos comunitrios e, posteriormente, aprovada
pelo
da empresa. Ns vamos cobrir todas as opes disponveis mas voc deve ser
ciente do fato de que novos projetos so iniciados regularmente, s vezes, cobrindo uma
Captulo 4 O BI Pentaho Stack 65
faltando parte da funcionalidade Pentaho, s vezes substituindo ou aumentando
uma parte existente da pilha. O Pentaho BI pilha , portanto, uma evoluo
entidade, como uma cidade onde os edifcios so criadas novas e as antigas so restauradas
expandida, ou substitudos em uma base contnua.
Pentaho BI Stack Perspectivas
Podemos classificar os programas que compem o Pentaho BI Suite de acordo com
uma srie de critrios. As sees seguintes oferecem diferentes lentes para a viso
os componentes da pilha.
Funcionalidade
Uma maneira de classificar os componentes do Pentaho pilha de funcionalidade.
Por funcionalidade entendemos a tarefa ou as tarefas que um determinado programa foi
projetado para executar. Do ponto de vista do usurio, a funcionalidade o que
define o objectivo do programa.
Alguns dos componentes do Pentaho BI oferecem funcionalidades tpicas, como ETL,
Relatrios e OLAP. Os componentes que fornecem essas funes tpicas de BI
condicionamento sociocultural so apoiadas por uma srie de componentes que oferecem
funcionalidade
a um nvel consideravelmente mais baixo. Juntos, esses componentes de apoio so
conhecida como a plataforma Pentaho.
As funcionalidades oferecidas pela plataforma de BI no so especficos, mas oferecer
uma infra-estrutura de software bsico. Tarefas como a autenticao de usurio e autori-
do o cateterismo, banco de dados de gerenciamento de pool de conexo, ea execuo do
previsto
tarefas fazem parte da plataforma.
Programas de servidor, o Web Client e Desktop
Outro critrio se o programa pode ser classificado como um cliente, um
servidor, ou um programa desktop. Alguns programas so facilmente reconhecidos Pentaho
como programas de servidor. Estes so tipicamente executadas em um computador central
que
acessado por clientes baseado na Web atravs de uma rede (intranet ou Internet).
Non-servidor programas da sute Pentaho pode ser melhor classificado como desktop
programas. Estes so tipicamente instalados no computador local do usurio. Estes
programas de desktop, na maioria dos casos, ser usado por designers e desenvolvedores
pedidos de emisso de um programa servidor (Pentaho), ao qual esto ligados. A
bom exemplo da diviso entre o servidor, desktop e cliente o design,
publicao e execuo de um relatrio. O Report Designer desktop usado
para criar o relatrio, que publicado ao Servidor Pentaho. O Pentaho
Server pode executar o relatrio sobre a solicitao usando o built-in Report Engine e
sada exibida atravs do Pentaho Web Portal, que serve como o cliente.
66 Parte I Comeando com Pentaho
Front-ends e back-ends
Outra forma de distinguir os programas front-end versus back-end.
programas de front-end so os programas que fornecem uma interface amigvel
que permite aos usurios humano para interagir com o programa. programas de back-end
normalmente no so projetados para suportar a interao humana direta. Ao contrrio, eles
receber comandos de alguma ferramenta de front-end que sabe como traduzir a
aes do usurio em comandos em que o back-end pode operar a
executar a tarefa real.
O aspecto front-end/back-end est relacionada, mas distinta da diferena
entre servidores, desktops e programas cliente. Apesar de desktop e do cliente
programas so programas tambm front-end, possvel implementar um
front-end como um programa de servidor. Tambm possvel implementar o back-end
como um programa desktop.
H tambm uma relao entre o aspecto ea funcionalidade
front-end/back-end aspecto: a maioria dos componentes da plataforma no tem
qualquer front-end em tudo. Em contrapartida, os programas que oferecem funcionalidades de
BI especfica
geralmente tm um claramente distinguveis front-end.
Subjacente Tecnologia
Praticamente todos os programas no Pentaho pilha so programados em Java
linguagem de programao. Alguns dos componentes do lado do servidor implementar web
aplicaes baseadas na tecnologia AJAX, mas isso ainda alcanado por um aplicativo Java
programa.
Da perspectiva do usurio final, as linguagens de programao e
tecnologia sobre a qual Pentaho construda so completamente irrelevantes. No entanto,
extremamente importante do ponto de um administrador de sistemas ou desenvolvedor de
vista.
Uma das propriedades mais notveis da plataforma Java que os programas Java
so extremamente portveis entre arquiteturas de hardware e sistemas operacionais.
Como conseqncia, Pentaho est disponvel para muitos sistemas operacionais diferentes.
Do ponto de um administrador de sistemas de viso, a gesto muito Pentaho
como gerenciar outros aplicativos Java. H algumas coisas sobre Java
pode exigir algum esforo de um administrador de sistema:
As aplicaes Java so normalmente projetados para serem compatveis com um
determinado
verso minimalista da plataforma Java, e s vezes um grande especficas
verso.
Outro problema pode ser a aplicao particular da plataforma Java.
As especificaes do Java tm sido sempre bastante aberta, e h muitos
diferentes implementaes de ambos a mquina virtual Java, bem como a
padro de bibliotecas de classe. programas Java funcionam geralmente bem quando
usar
Sun implementaes de referncia.
Captulo 4 O BI Pentaho Stack 67
Os programas Java so executados por uma mquina virtual, que geralmente um
programa nativo. s vezes necessrio ajustar a mquina virtual
parmetros para efetivamente executar o programa.
O servidor Pentaho Business Intelligence
O servidor Pentaho uma coleo de programas que trabalham juntos para fornecer
uma srie de funes essenciais do Pentaho BI Suite. Estes programas so
implementado como Java servlets. Servlets no operar de forma autnoma, mas so
executados
dentro de uma chamada servlet container, que em si um servidor HTTP (a web
servidor), ou parte dela.
Normalmente, o servlet container executado em um computador remoto centralizado,
onde ele responde a pedidos de programas clientes que esto conectados ao
servidor atravs de uma rede. O Java Servlet Technology discutido em mais
detalhe mais adiante neste captulo.
Em um nvel funcional, o servidor Pentaho pode ser dividida em trs camadas:
A plataforma
componentes de BI
A camada de apresentao
A Plataforma
A coleo de componentes conhecidos coletivamente como a plataforma oferece o
seguintes servios:
Soluo motor de repositrio e soluo
Banco de dados de gerenciamento do pool de
conexo
A autenticao do usurio e os servios de autorizao
Explorao madeireira e de servios de
auditoria
Agendamento de tarefas-
servios de e-mail
A funcionalidade oferecida por esses servios relativamente de baixo nvel e
constitui a infra-estrutura bsica da plataforma de BI. Um certo nmero de com-
ponentes nesta camada podem aparecer igualmente bem em outros tipos de aplicao
servidores.
No restante desta seo, descrevemos brevemente a funo de cada
componente.
68 Parte I Comeando com Pentaho
A soluo de repositrio e do Mecanismo de Soluo
A plataforma Pentaho BI organiza o contedo em solues de chamada. A Pentaho
soluo pode ser pensado como uma pasta de sistema de arquivo com todo o contedo de BI
para resolver
algum problema de negcios. Uma soluo Pentaho pode conter pastas e itens
chamada seqncias de ao.
As pastas servem apenas para fornecer uma organizao geral do contedo de BI.
As pastas podem conter outras pastas e seqncias de ao (AS). Seqncias de ao
so servios que podem ser invocadas para fornecer alguns contedos BI. Eles podem ser
chamado diretamente atravs da interao do usurio, ou tratada como um servio web a
partir de
outro aplicativo. A ltima propriedade permite a integrao de Pentaho com
outras aplicaes
seqncias de ao podem conter vrias etapas, algumas vezes chamado def-ao
inies. Na forma mais simples, uma sequncia de aco contm apenas um passo, para
exemplo, para executar um relatrio. A seqncia de ao um pouco mais avanada pode
consistem de um passo para levar um usurio para a entrada, e uma segunda etapa de
execuo
um relatrio, com a entrada do primeiro degrau, como valores de parmetro. Ao adicionar
mais etapas, seqncias de ao avanados podem ser construdas, por exemplo, executar
um
consulta de banco de dados para localizar todos os armazns que esto com pouco estoque,
loop
sobre os depsitos encontrados para executar um relatrio de detalhes da fotografia, e
distribuir o
sada de relatrio via e-mail aos gestores de armazm em causa.
seqncias de ao so representados usando XML e so armazenadas em texto simples
arquivos com extenso xaction.. seqncias de ao so, portanto, tambm chamado
xactions, aps a extenso do arquivo. Em princpio, voc pode cri-los com
um editor de texto simples. Algumas das ferramentas Pentaho front-end, tais como o Relatrio
Designer, pode gerar simples, seqncias de ao passo a passo. Mais avanado
seqncias de ao so as melhores criadas usando Pentaho Design Studio, ou utilizando
Eclipse com a seqncia de ao Pentaho plugin. Estes fornecem uma interface grfica
editor de seqncia de ao bem como o controle sobre a fonte de recurso XML.
seqncias de ao so executadas pelo componente da plataforma conhecida como
o soluo do motor. Sempre que algum cliente invoca uma seqncia de ao, o
motor l a definio da seqncia de ao e, em seguida, executa a sua
etapas.
Logicamente, as solues Pentaho so armazenados e mantidos na soluo
repositrio. Os aplicativos que se conectar ao servidor Pentaho pode navegar
solues e pastas, e armazenar seqncias de ao novo, um processo chamado
publicao.
Fisicamente, a soluo de repositrio podem ser armazenados como arquivos no sistema de
arquivos,
ou armazenadas em um banco de dados relacional. Para execuo de base seqncia de
ao, tanto
mtodos suficiente. No entanto, a soluo baseada em arquivo repositrio atualmente no
suporte autorizao. Assim, para um controle preciso sobre quais usurios podem acessar
quais
contedo, a soluo de repositrio precisa ser armazenado em um banco de dados.
Captulo 4 O BI Pentaho Stack 69
Database Management pool de conexo
Na maioria dos casos, os dados apresentados na aplicao de business intelligence
es so armazenadas em um banco de dados (relacional). Para acessar os dados no banco
de dados,
a aplicao precisa estabelecer uma conexo com o banco. A conexo
ento usada para enviar pedidos (queries) ao servidor de banco de dados, que envia de volta
os dados como uma resposta.
Estabelecer uma conexo com um banco de dados pode ser uma tarefa relativamente caro.
necessrio algum tempo para procurar o host do banco de dados, e algum tempo pode
ser gasto em protocolos de negociao, que autentica o usurio, ea criao de uma
sesso. Em muitos casos, a conexo necessria para executar apenas muito poucos
consultas. Por exemplo, muitos relatrios so baseados em apenas uma consulta de banco de
dados, e
nmero de consultas vai usar o mesmo banco de dados para recuperar seus dados.
Para evitar a sobrecarga de estabelecer uma nova conexo para cada consulta ou
lote de consultas, as conexes de banco de dados pode ser aberto uma vez e armazenados
em um
piscina. Sempre que um cliente precisa de uma conexo de banco de dados, uma ligao
gratuita pode ser
colhidos a partir da piscina, que serve para fazer algum trabalho, e depois lanado de volta
a piscina novamente.
Database pool de conexo tambm uma maneira fcil de limitar o nmero
de conexes simultneas de banco de dados aberto. Ao insistir que os pedidos
sempre escolher uma conexo livre de uma piscina de tamanho fixo em vez de estabelecer
uma nova ligao directa, o banco de dados podem ser protegidos para no serem inundadas
com solicitaes de conexo.
Pool de conexo JDBC comum na maioria dos servidores de aplicao Java, e
muitas implementaes diferentes esto disponveis. Pentaho no oferecer os seus prprios
conexo de execuo da piscina.
User Authentication and Authorization
A plataforma Pentaho utiliza Spring Security (anteriormente conhecido como Acegi
Sistema de segurana para a Primavera) para tratar de autenticao e autorizao.
Esta a soluo de segurana padro do framework Spring Java.
Spring Security fornece muitos componentes diferentes para implementar todos os tipos
esquemas de autenticao diferentes. Ele fornece a lgica que se mantm informado dos
se um usurio precisa ser autenticado, e pode delegar a autenticao
pedidos de um mecanismo de autenticao externa, como um servidor de banco de dados,
um diretrio LDAP, ou a autenticao NTLM em uma rede Windows.
Agendamento de tarefas
A plataforma Pentaho utiliza quartzo como componente de agendamento de tarefas. Quartzo
criado e mantido pelo projeto e liberado sob OpenSymphony
70 Parte I Comeando com Pentaho
uma licena Apache 2.0 (ver www.opensymphony.com / quartzo para o projeto detalhado
informao).
O agendador de tarefas usada para uma srie de coisas:
Peridico de execuo das tarefas de manuteno
Contexto de execuo de relatrios
Agendamento de empregos
ETL
As capacidades de programao da plataforma so abordados no Captulo 14.
Servios de e-mail
A plataforma de BI inclui a capacidade de enviar e-mail usando um padro
SMTP servidor. Um arquivo de configurao para usar uma conta do Gmail tambm est
includo.
Antes de mensagens podem ser enviadas, o servidor deve ser configurado primeiro. O con-
mail
figurao deve ser inserido no arquivo email_config.xml, Que est localizado na
o diretrio <install-path> / pentaho-solutions/system/smtp-email. A
arquivos de configurao tm excelentes comentrios in-line e deve ser simples para definir
este
para cima. Reiniciar o servidor depois de mudar o arquivo de configurao no necessrio; o
novo
inscries ser recolhido automaticamente quando os valores foram inscritos
corretamente.
BI Componentes
A plataforma constitui a base para uma srie de componentes que oferecem
funcionalidade de inteligncia empresarial tpica. Nessa camada, encontramos o seguinte
componentes:
camada de metadados
Ad hoc de relatrios de servio
motor de ETL
mecanismo de relatrio
motor OLAP
Dados do motor de minerao
A camada de metadados
A funo do Pentaho Metadata Layer (PML) proteger os usurios finais
da complexidade de SQL e bancos de dados. A PML baseado na Com-
seg Armazm especificao Metamodelo do Object Management Group
(www.omg.org / cwm) E capaz de gerar uma consulta SQL a partir de escritos no
Metadados Query Language (MQL). A consulta MQL por sua vez, criado por um
Captulo 4 O BI Pentaho Stack 71
usurio final, construindo a seleo desejada de um conjunto de objetos expostos em uma
modelo de metadados. A camada de metadados consiste em trs camadas, conforme
especificado pelo
a CWM:
Esta camada de Fsico- onde a conexo com o banco armazenado e
onde a representao fsica dos objetos de banco de dados criado.
Ao gerar SQL, esta a camada de PML, que comea finalmente
as informaes de atributo do banco de dados.
A camada de negcios camada intermediria de traduo onde tradues
atributos da base de dados tcnicos para descries mais user-friendly so
feita. Esta tambm a camada onde os relacionamentos entre tabelas e
frmulas e clculos adicionais so criados.
viso empresarial Expe- e re-organiza a camada de negcios para o final
usurios e grupos de usurios finais.
Figura 4-2 mostra uma representao grfica da descrio anterior.
CAMADA FSICA RESUMO NEGCIOS
CAMADA
NEGCIOS
VISTA
CATEGORY1
LIGAES
COLUMN1
COLUMN2
Coluna3
TABLE1
COLUMN1
COLUMN2
NEGCIOS TABLE1
COLUMN1
COLUMN2
Coluna3
CATEGORY2
COLUMN1
COLUMN2
Coluna3
CLIENTES DO LESTE
CUST_TBL
CUST_NM
CUST_ADD
CUST_NBR
CLIENTES
NOME DO LESTE
WEST NOME
ENDEREO
CUSTOMER_ID
NOME DO LESTE
ENDEREO
CUSTOMER_ID
CLIENTES WEST
WEST NOME
ENDEREO
CUSTOMER_ID
Herda RELACIONAMENTO Re-organizao do
Mesmo objeto de negcio
Figura 4-2: modelo de camadas de metadados
O lado direito do diagrama da Figura 4-2 a nica parte dos metadados
camada que visvel aos usurios finais quando eles trabalham com um dos design do
relatrio
ferramentas. As outras camadas existem para traduzir corretamente o modelo do usurio-
expostos
72 Parte I Comeando com Pentaho
objeto de volta para a consulta correta para o banco no qual a camada de metadados
opera.
Ad hoc Reporting Service
A Web Ad Hoc de Consulta e de servio do Reporting, ou WAQR, oferece aos usurios finais
uma maneira fcil de criar relatrios usando a camada de metadados. O WAQR
(''Wacker pronunciado'') um servio separado do relatrio de pleno direito
motor e capaz de criar um relatrio de lista simples agrupados. WAQR coberto em
mais detalhes no Captulo 13.
O Mecanismo de ETL
motor Pentaho ETL o cavalo de batalha para as tarefas de integrao de dados e executa
os empregos e as transformaes criados com as ferramentas Pentaho Data Integration.
O motor de ETL parte da pilha de BI, mas tambm pode ser executado em um servidor
diferente ou
mesmo vrios servidores em um modo de cluster.
Reportagem Motores
A plataforma Pentaho hospeda vrios motores de comunicao. Os motores so nativas
o motor j foi mencionado para a ferramenta de consulta ad hoc, e os JFreeReport
motor. Alm disso, os navios Pentaho com suporte para JasperReports e BIRT
j incorporados. Isto significa que a plataforma de BI Pentaho capaz de
manipulao de todos os relatrios criados para os trs cdigo aberto mais popular reporte
ferramentas.
O mecanismo de OLAP
Mondrian o motor Pentaho OLAP e traduz as consultas MDX no SQL
baseado em um modelo multidimensional. Mondrian faz muito mais do que apenas
traduzir de uma lngua para outra consulta, que tambm cuida de cache
e buffer de resultados intermdios e os anteriores para otimizar o desempenho.
Isto significa que a primeira vez que uma anlise executada em um modelo
multidimensional,
levar mais tempo do que a posterior anlise durante a mesma sesso
porque Mondrian tenta manter resultados anteriores, as hierarquias e os clculos
na memria.
Outra caracterstica notvel do Mondrian o seu modelo de segurana, que suporta
papis. As funes podem ser utilizadas para restringir os dados que acessvel por um
usurio, assim
a limitao do nmero de pontos de vista diferentes OLAP e relatrios que precisam ser
desenvolvidos.
O Mecanismo de Minerao de Dados
motor Pentaho de minerao de dados indiscutivelmente um dos mais poderosos ainda
menor
peas usadas da plataforma. realmente o Weka motor de minerao de dados que tem
Captulo 4 O BI Pentaho Stack 73
foi adotado por Pentaho que controla as tarefas de minerao de dados. constituda por um
coleo completa de algoritmos de minerao de dados, tais como os necessrios
para cluster, rvores de deciso, regresso e redes neurais. Partes do
algoritmos Weka pode ser chamado de uma chaleira transformar a permitir, por exemplo,
pontuao direta dos dados de entrada durante uma transformao Chaleira. Captulo 16
abrange as diferentes ferramentas Weka e mostra um exemplo passo-a-passo de como
Weka e Chaleira podem ser usados em conjunto para desenvolver uma transformao de
dados que
automaticamente notas de novos clientes.
A camada de apresentao
Pentaho vem com um built-in interface web chamado usurio do console. O usurio
formulrios do console um front-end que permite que um usurio humano de interagir com o
servidor.
A camada de apresentao pode ser usado para navegar e abrir o contedo existente
(Relatrios, painis, anlise), mas at certo ponto tambm pode ser usado para criar
contedo de BI novo. Figura 4-3 mostra o usurio Pentaho console onde esquerda
lado uma rvore de pasta usada para organizar o contedo que est listado no painel
inferior esquerdo. Os documentos abertos so exibidos na tela principal e usando
guias, o usurio do console pode ter vrios painis, anlise e relatrios
abertos ao mesmo tempo.
Figura 4-3: Pentaho console de usurio
Novo contedo na forma de relatrios e anlise de pontos de vista podem ser criados
usando a Web Ad Hoc de Consulta e componente Reporting (WAQR) eo
JPivot anlise de front-end. O WAQR coberto em profundidade no Captulo 13,
74 Parte I Comeando com Pentaho
eo captulo 15 contm um tratamento detalhado de JPivot e subjacente
tecnologia de Mondrian.
Subjacente a tecnologia Java Servlet
Embora o termo''O Servidor Pentaho''pode sugerir o contrrio, h
no um programa que pode legitimamente ser chamado por esse nome. Pelo contrrio,
Pentaho
fornece uma srie de programas chamados servlets que realizam alguma tarefa especfica,
um servio, para qualquer cliente que o solicite. Servlets so programas Java que fazer
no operar de forma autnoma no computador local. Em vez disso, eles so executados
dentro de
outro programa, o servlet container.
Normalmente, o servlet container ela prpria um servidor web (ou seja, um servidor
HTTP),
ou uma parte dele. O servlet container responsvel por aceitar HTTP
pedidos e encaminhamento deles para um servlet apropriado. O servlet processa ento
o pedido, e gera uma resposta adequada, que transferida para o
recipiente eventualmente percurso de volta para o cliente solicitante.
A organizao de um programa Java em um servlet container de servlets e vrios
que executam o servio real chamado A tecnologia Java Servlet. O Java Servlet
A tecnologia a padro de fato para a implementao de aplicaes web em Java.
As formas em que o servlet eo seu recipiente pode interagir so precisamente
definida pela API Java Servlet. Esta especificao para esta API foi inicialmente
criado pela Sun Microsystems, e desenvolvido pela comunidade Java
processo.
Pentaho no oferecer o seu prprio servlet container. Pelo contrrio, servlets Java pode
executados em qualquer container servlet Java, desde que ambas servlet eo recipiente
apoiar a mesma verso do Java Servlet API, que a situao usual.
A garantia de que um servlet ser executado em qualquer servlet container compatvel permite
desenvolvedores servlet para se concentrar no que sabem fazer melhor, que a adio til
funcionalidade para servidores web. Por outro lado, os criadores de software de servidor web
pode
concentrar completamente na sua tarefa sem se preocupar com qualquer mudana vai
quebrar
baseado em servlet extenses de servidor.
Atualmente, o Community Edition do servidor de BI Pentaho realmente um
Apache Tomcat servlet container com todos os servlets Pentaho pr-instalado.
No entanto, todos os servlets podem ser baixadas separadamente e instrues de instalao-
es esto disponveis para outros recipientes de servlet popular tambm, como o JBoss,
Glassfish, WebSphere, BEA WebLogic, e muitos mais.
Programas Desktop
Como apontado na introduo deste captulo, a maioria dos servidor Pentaho no
programas podem ser melhor classificadas como programas de desktop. Alguns deles s
pode
atuar como um cliente e precisa interagir com um servidor Pentaho, mas pode ser
Captulo 4 O BI Pentaho Stack 75
autnoma usado tambm. Os programas de desktop servem principalmente como ferramentas
de projeto
ou ajudas, porque a maioria da experincia do usurio final entregue em Pentaho
portal na Internet. As ferramentas de trabalho, portanto, ser usado principalmente pelos
desenvolvedores,
embora alguns, como o Report Designer, poder ser utilizado por usurios avanados.
Todos os programas de computador tm um componente de BI ou componente de servidor
para o qual
que se destinam. A Tabela 4-1 mostra as ferramentas disponveis com o seu homlogo
componentes do servidor.
Tabela 4-1: ferramentas de desktop e servidor
Ferramenta Desktop
Design Studio (PDS)
Editor de Metadados (PME)
Esquema (PPS) Workbench
Agregado Designer (PAD)
Designer de Relatrios (PRD)
Spoon (PDI)
Weka
SERVER / componentes de BI
Plataforma de BI
Metadados camada, Ad Hoc componente de relatrio
OLAP Engine
OLAP Engine
mecanismo de relatrio
motor de ETL
Data Mining Engine
Cada uma dessas ferramentas coberto em um captulo posterior, com exceo do
Pentaho Design Studio (PDS), que compe a ltima parte deste captulo.
PDS no uma ferramenta para a criao de novos contedos, mas usado para criar fluxos
de trabalho
e aes que trabalham com o contedo existente BI. PDS tambm uma outra forma
outro tipo de ferramenta, a nica parte da sute de BI que no autnomo
Programa Java, mas um plugin para um ambiente de desenvolvimento j existentes (o
Eclipse IDE). A lista a seguir um breve resumo da rea de trabalho diferentes
ferramentas e sua posio no conjunto de BI:
Pentaho Metadata Editor (PME)-Com PME, os designers podem criar meta-
camadas de dados que servem como uma camada de abstrao entre um banco de
dados relacional
e um usurio final. A camada de metadados pode levar objetos de usurio como Cus-
Nome Tomer, Pas, e Receita e traduzir essa seleo em
a instruo SQL correta necessrio para recuperar essas informaes de um
banco de dados. Mais sobre PME no Captulo 12.
Esquema Pentaho (PPS) Workbench-Este a ferramenta para a construo
esquemas multi-dimensional a ser utilizado pelo Mecanismo de Mondrian.
Pentaho Designer Agregado (PAD)-A ferramenta separada para (automaticamente)
criar tabelas agregadas que so usadas por Mondrian para melhorar a
desempenho de cubos OLAP. PSW e PAD so cobertas em profundidade
Captulo 15.
76 Parte I Comeando com Pentaho
Pentaho Report Designer (PRD)-O front-end para a construo de relatrios para
a plataforma Pentaho e, possivelmente, a nica das ferramentas de trabalho disponveis
que pode ser colocada nas mos de um usurio final conhecedor. PRD coberto
no captulo 13.
Pentaho Data Integration (PDI)-O ferramenta de desktop para a construo de postos de
trabalho ETL
e transformaes chamado Spoon. PDI contm mais do que apenas Spoon
mas esta a parte mais visvel da soluo de ETL. O PDI abordado no
Captulos 10 e 11.
Weka-A conhecidos open source soluo de minerao de dados e as nicas
ferramenta no dispor de uma abreviao de trs letras Pentaho, pois
no seja mantido pela Pentaho e no esto disponveis a partir do Pentaho regular
sites de download. Weka um projecto iniciado e mantido pela
Universidade de Waikato, na Nova Zelndia, mas foi adotado por Pentaho
como sua ferramenta padro de minerao de dados. Minerao de dados com Weka
objecto de
Captulo 16.
Todas essas ferramentas tm algumas coisas em comum: eles so escritos em Java
e ser executado em qualquer plataforma que contm uma mquina virtual Java. Eles
so fornecidos com um script de inicializao ou arquivo de lote, mas tambm pode ser
iniciado
diretamente da linha de comando com o Java-jar comando. A segunda
uniformizao importante que nenhum deles trabalha com cria ou proprietrios
formatos de arquivo. Todas as definies criadas com as ferramentas de desktop so
diferentes XML
base, assim aberto a qualquer editor e qualquer pessoa. Como conseqncia, voc no est
obrigada a utilizar uma das ferramentas de design, mas so livres para criar e / ou modificar o
Arquivos XML diretamente com um editor de texto simples. Algumas pessoas acham que
ainda mais fcil
trabalhar com os arquivos XML do que com as ferramentas da GUI.
Pentaho Enterprise Edition eo Community Edition
Pentaho oferece duas verses do Pentaho BI Suite. A principal distino
feita entre o comercial licenciada Enterprise Edition eo completo aberto
fonte do Community Edition. Esta distino tem mais a ver com o tipo
do apoio oferecido do que com diferenas de software real, mas a Enterprise
Edition (EE) oferece alguns componentes que no esto disponveis na comunidade
verso. Embora no cobrir componentes EE-especficas neste livro,
mencion-los aqui para ser completo.
Enterprise Console-A maior parte das adies EE visam
prorroga o Community Edition com a funcionalidade necessria em uma empre-
ambiente de taxas, como a configurao de segurana, os diagnsticos das aplicaes
e monitoramento de desempenho, auditoria e registro, gerenciamento de ciclo de vida-
mento (contedo migrar de desenvolvimento para testar a produo), o contedo
vencimento, e de backup / restore do Pentaho repositrio. A maioria desses
Captulo 4 O BI Pentaho Stack 77
tarefas podem ser executadas com o Enterprise Console. Isso no significa
que voc no pode fazer essas coisas com o Community Edition, mas
exigir grandes esforos para criar, por exemplo a gesto do ciclo de vida,
sem as ferramentas EE.
Extenses PDI-Pentaho Integrao de Dados EE acrescenta um Con-Empresa
exclusiva para monitoramento de desempenho, administrao remota, e alerta.
H tambm um plugin extra para minerao de dados, o KnowledgeFlow plugin.
Single Sign-On com o LDAP e AD-integrao Embora o Pentaho
Community Edition tem a sua prpria autenticao e autorizao com-
nente, no integrado com um provedor de autenticao externos, tais
como LDAP ou Active Directory. A vantagem de ter essa integrao
dupla: os usurios s precisam ser inseridos e mantidos, de vez em central
localizao, e os usurios no precisam efetuar o logon separadamente e lembre-se
outra
senha.
Dashboard Builder-A componente mais visvel da EE o Dash-
placa Builder, que permite aos usurios facilmente preencher um painel de BI com
vrios tipos de contedo, tais como grficos, relatrios e mapas. Criando-trao
placas usando a Comunidade Dashboard Framework (CDF) coberto em
Captulo 17.
Servios e suporte-In Alm de maior funcionalidade, Pentaho
Enterprise Edition fornece suporte, indenizao, manuteno de software
manuteno, e recursos tcnicos adicionais.
excepo desta lista, no h diferena entre a Comunidade e
Enterprise Edition nos produtos que compem o BI pilha. Isso significa que
praticamente no h limites para o que voc pode fazer e construir com o indivduo
ferramentas de BI, porque no h Enterprise Edition construtor do relatrio que lhe permite
fazer
mais do que voc poderia fazer com a norma comunitria Edition. Na verdade, este
o que define Pentaho para alm de muitos outros (fonte aberta, mesmo!) fornecedores.
A criao de seqncias de ao com Pentaho
Design Studio
Pentaho Design Studio (PDS) baseado no desenvolvimento integrado Eclipse
ambiente (IDE), e pode ser baixado como um completo, pronto para uso
soluo que inclui o Eclipse. Se voc j tiver uma verso do Eclipse em execuo,
PDS pode ser adicionado a um ambiente existente como um plugin. (Basicamente, o PDS s

o plugin, mas Pentaho oferece um pacote completo de trabalho por convenincia).
PDS tem um propsito a criao e manuteno seqncias de ao. Como o prprio nome
implica, uma seqncia de ao um conjunto predefinido de aes que podem ser
executados
no servidor de BI Pentaho. Execuo de uma seqncia de ao pode ser desencadeada por
uma
78 Parte I Comeando com Pentaho
ao do usurio, uma agenda, ou qualquer outro evento, incluindo uma outra seqncia de
ao.
complexidade varia de Aco seqncia de muito simples, por exemplo, executar um''
relatrio''ou''exibio na tela uma mensagem de''a bastante complexo, por exemplo,''encontrar
todos os clientes com produtos vencidos e enviar-lhes um lembrete no cliente
formato preferido (XLS, PDF, HTML) contendo uma descrio do atraso
itens.''seqncias de ao so a locomotiva real de uma soluo Pentaho e
porque eles amarram todos os outros componentes juntos a ltima parte deste captulo
orientados para explicar o que seqncias de ao so e como voc pode construir e
implant-los na plataforma Pentaho.
A partir da introduo, voc deve ter percebido que as seqncias de ao (AS)
s podem ser utilizadas para a criao de sada, de uma forma ou de outra. Embora esta seja
uma
caracterstica como importante, que apenas uma parte da histria. Um AS pode ser usado
para
muito baixo nvel de atividades do sistema, bem como, por exemplo, para definir as variveis
de sesso
o momento em que um usurio se autentica, ou para criar listas globais de parmetros que
podem ser
utilizado por outro processo ou AS. Suponha, por exemplo, que pretende restringir
acesso aos seus dados com base no usurio que est entrando, e suponha que cada
usurio permitido somente a visualizao de dados a partir de seu prprio departamento,
regio,
ou qualquer outro critrio que voc pode pensar. Com um sistema AS, voc pode definir o
nome do departamento que pertence ao usurio conectado e usar este nome noutros
seqncias de ao como um parmetro para filtrar os dados por diante. Est fora do mbito
de aplicao
este livro para explicar Ases do sistema, mas voc pode encontrar um instrues detalhadas
sobre
Wiki Pentaho em http://wiki.pentaho.com/display/ServerDoc2x/Using+
Sistema + Aes + para + Control + + Acesso a Dados.
Pentaho Design Studio (Eclipse) Primer
PDS , como j explicamos, um plugin para o componente escrito extensamente
utilizados Eclipse IDE. Embora no possamos oferecer um Eclipse tutorial completo aqui
podemos cobrir o bsico para voc comear com o PDS para poder criar a sua
prprias solues. Para o restante deste captulo, usaremos os exemplos PCI
eo banco de dados de Ao Rodas, mais tarde, no livro, usaremos o Mundo
Classe de banco de dados de filmes para mostrar um pouco do poder de xactions combinado
com
relatrios e dashboards.
Instalao e configurao do Eclipse e do PDS so abordados no Captulo 3.
Para os exemplos neste captulo, vamos supor que voc tenha um trabalho Pentaho
Sistema com os exemplos prontos na mo. Quando voc inicia o Eclipse / PDS, o
Eclipse tela de boas vindas exibida ea opo de plataforma de BI aparece em
no menu superior. A Plataforma de BI menu tem apenas uma subopo: Nova Ao
Seqncia.
Os componentes bsicos do Eclipse e uma terminologia que voc precisa para comear
resumem-se ao seguinte:
Workspace-Este o recipiente mais alto nvel das solues que
vai criar, um espao de trabalho usado para manter uma coleo de projetos Eclipse
Captulo 4 O BI Pentaho Stack 79
logicamente agrupados. Voc pode ter apenas um espao de trabalho aberto a uma
tempo, e para a maioria das implementaes Pentaho, usando um nico espao de
trabalho
vai fazer tudo certo. O espao de trabalho (o padro) deve ser definido quando
iniciar o Eclipse, aps esse primeiro tempo, o espao de trabalho padro aberto
automaticamente cada vez que voc iniciar o programa.
Projeto-O coleo de arquivos e pastas que, juntos, compem uma
soluo. Os projetos podem ser criados dentro do espao de trabalho (que uma pasta
em seu sistema), mas que no obrigatrio. A Figura 4-4 mostra um recm-
projeto criado chamado My Pentaho. Para a pasta do projeto, j existente
pasta Pentaho solues selecionado. Agora fcil de abrir e modificar
xactions existentes, como o exemplo de relatrio de ruptura, que aberto na
screenshot.
Figura 4-4: Pentaho Design Studio com o editor de seqncia de ao
Ver-In Eclipse, uma vista uma janela dentro do IDE, que apresenta algumas
contedos especficos, tais como a estrutura do projeto, fontes de dados ou um aplicativo
Java
pacote explorador. A imagem na Figura 4-4 mostra o padro de projeto
Explorer ponto de vista sobre o lado esquerdo. Eclipse contm uma coleo enorme de
outros
vistas, bem, eles podem ser abertos atravs do menu Window Vista Show
ou usando o pequeno cone de Visualizao Rpida no canto inferior esquerdo da tela
(O pequeno cone azul e branco com o sinal de expoente pouco mais).
Editor-Este onde voc realmente escrever o cdigo, ou, no caso de utilizao
PDS, definir sequncias de ao. O editor de ao Pentaho mostrado
na Figura 4-4. Para iniciar o editor, basta clicar duas vezes sobre uma das existentes
xactions amostra ou criar um vazio, selecionando a Ao Novo
Seqncia de opo no menu plataforma de BI.
80 Parte I Comeando com Pentaho
Perspectiva-Provavelmente o recurso mais poderoso do Eclipse a capacidade
mudar completamente o seu comportamento e as opes disponveis, alterando
a um diferente perspectiva. Uma perspectiva transforma o objectivo geral
Eclipse IDE em uma ferramenta concebida especificamente para uma determinada
tarefa. Quando voc
desenvolver cdigo Java, voc vai usar a perspectiva Java para ter o built-in
editores, depuradores, esboo de um cdigo, e assim por diante a sua disposio.
Quando voc
desenvolver relatrios BIRT, voc vai usar o relatrio de perspectivas de Design, que
de repente se transforma em um ambiente Eclipse comunicao poderoso. Para
trabalhar com PDS, a perspectiva de recursos simples far a multa justa.
Outras perspectivas so abertas, selecionando a opo Open Perspective
a partir do menu Window.
Para obter mais informaes sobre como trabalhar com o Eclipse, visite o site do projeto
em www.eclipse.org.
O Editor de Seqncia de Ao
Antes que voc possa criar uma seqncia de ao, voc precisar definir um projeto para
colocar
seu novo arquivo dentro Para criar um projeto, selecione File New Project. Eclipse agora
inicia o novo Assistente de Projeto, solicitando o tipo de projeto para criar. Para o
plataforma de BI, basta selecionar Project na guia Geral. Voc precisa dar o
projeto um nome (qualquer nome serve; usamos Meu Pentaho, por exemplo) e
selecionar um local para seu novo projeto. Voc vai perceber que o local padro do
um novo projeto o espao de trabalho aberto, mas voc pode selecionar qualquer outro local
como
tambm. Quando voc seleciona uma pasta existente (por exemplo, o Pentaho solues
pasta do servidor de BI), o contedo dessa pasta ser exibido na
Explorador de projeto, logo que voc clique em Concluir. Voc pode criar uma nova ao
Seqncia de vrias maneiras:
Use a nova seqncia de ao do item no menu de plataforma de BI. Isso vai
criar um novo arquivo xaction vazio, mas voc ter que definir o local
para o arquivo (o recipiente) em primeiro lugar.
Boto direito do mouse em uma pasta existente no Project Explorer e selecione Novo
Seqncia de Ao a partir do menu plataforma de BI. Observe que o recipiente
Agora automaticamente preenchidos
Use a nova seqncia de ao Assistente no menu do cone de atalho.
(A dica para o cone exibido na Figura 4-4). Novamente, o local
(Recipiente) deve ser selecionado.
Nos trs casos, a seqncia de ao Wizard abre para que voc pode inserir um
nome para a nova seqncia de ao e selecionar um modelo para ajudar voc a comear a
saltar-
construo de uma seqncia de ao nova. Modelos predefinir entradas e aes para
a tarefas especficas, tais como uma viso nova anlise ou uma ao de ruptura.
O editor xaction composto por quatro painis ou guias, que voc pode ver ao longo
na parte inferior da tela. Uma parte importante da guia Geral, apresentado na
Captulo 4 O BI Pentaho Stack 81
Figura 4-5, o ttulo, que ser exibido no console do usurio. Voc pode
tambm encontrar o cone que vai acompanhar o ttulo de aco no navegador, o
Verso, o nvel de log, eo Autor na guia Geral. O Visible
esconde a caixa de seleo xaction do usurio do console quando selecionado, o que faz
possvel a criao de''''xactions ajudante que no so visveis aos usurios finais.
Figura 4-5: Ao editor seqncia, guia Geral
O guia Definir processo mostrado na Figura 4-6 o editor real onde voc
pode adicionar entradas, aes e realizaes. Para verificar o cdigo XML gerado, voc
pode abrir a aba Fonte de XML, o que algumas pessoas dizem a ao real
editor. O guia de teste no final permite que voc execute a ao diretamente do Design
Studio, embora o servidor Pentaho utilizado para a execuo do cdigo.
Antes de comear a construir novas sequncias de ao, uma boa idia para testar se
voc pode executar aes na tela de teste. A maneira mais fcil de fazer isso abrir
o HelloWorld.xaction arquivo, que est localizado na pasta bi-developers
obtendo-iniciado. Na Definir Processo guia mostrado na Figura 4-6, um processo
ao definida.
Quando voc clica sobre isso, a ao do processo Ol Mundo exibido, que
tem apenas dois campos: o nome ea mensagem da aco. Agora voc pode alterar
a mensagem para algo como Ele est trabalhando! Caso contrrio, o padro string%
mensagem ser exibida. Aps salvar as mudanas que voc pode passar para o teste
guia de verificar se a plataforma est funcionando.
NOTA Um servidor Pentaho deve ser iniciado antes de executar um teste de PDS, caso contrrio,
nada vai acontecer.
82 Parte I Comeando com Pentaho
Figura 4-6: O guia Definir Processo
Existem dois campos de texto na guia Test, conforme mostrado na Figura 4-7, uma para
digitar a URL do servidor, e um para a URL gerada, o que inclui a
xaction chamada. Se voc tiver a instalao padro do Pentaho em execuo no seu local
computador, o URL do servidor Pentaho localhost: 8080/pentaho. Quando voc
entrar neste servidor e prima de teste, a tela de login aparece Pentaho. Primeiro registo
em e atualizar o cache de repositrio, selecionando Ferramentas Refresh Repositrio
Cache (caso contrrio, o xaction existente com o texto padro ser exibido).
Clique em Gerar URL e pressione o boto Executar, direita do
Gerao de URL. Voc dever ver o resultado apresentado na Figura 4-7.
Figura 4-7: Ol Mundo executado
Agora que cobrimos o bsico do Eclipse e seqncias de ao
Editor, hora de comear algum trabalho real feito o uso dessas ferramentas.
Captulo 4 O BI Pentaho Stack 83
Anatomia de uma seqncia de ao
seqncias de ao (Ases), todos tm uma estrutura semelhante, que consiste no seguinte
quatro blocos de construo:
Entradas
Recursos
Aes
Sadas
Quando voc abre o Processo de Definio guia do editor como voc vai notar
que parece que s existem trs blocos que precisam ser definidos: Processo
Entradas, Aes de Processos, e sadas do processo. Este o lugar onde h uma ligeira
diferena entre o designer e os arquivos XML criados, os arquivos XML fazer
uma distino entre insumos e recursos, enquanto o designer trata tanto
como tipos de entrada diferentes. A lgica por trs disso que voc raramente precisar
adicionar manualmente os recursos a si mesmo, porque eles vo ser geridos por PDS. Se,
por exemplo, voc adicionar uma ao de relatrio, o local do arquivo adicionado como um
recurso
automaticamente.
Entradas
Processo de insumos para as seqncias de ao so os parmetros que podem ser
utilizados
em aes processo. A forma mais simples de uma entrada um parmetro codificado.
Cada entrada do processo deve ter pelo menos um nome e um tipo (string, inteiro, e
assim por diante) que pode ser dado um valor padro, por exemplo, uma seqncia de texto
que pode
ser passada para a aco Ol Mundo para mostrar. Um AS pode ler os parmetros
a partir de fontes diferentes, tornando possvel para passar informaes a partir do exterior
o como a um processo de produo. As seguintes fontes de entrada esto disponveis:
Pedir-Estes so pares nome-valor que pode ser lido diretamente
URL. Usando o mesmo exemplo Ol Mundo, voc pode adicionar uma entrada
nomeado RequestText do tipo string, E adicionar um novo duas palavras com
uma origem pedido. O nome padro dado pelo fonte de entrada o
mesmo que para a entrada do processo em si, mas que pode ser mudado. O processo
de
nome da entrada a referncia de parmetro interno; o nome da fonte de entrada
a referncia externa. Figura 4-8 mostra um exemplo disso. Usando este
exemplo, voc pode agora selecionar o Ol Mundo ao do processo e selecione o
<RequestText> parmetro da Mensagem drop-down list. Quando voc
agora salve o AS, atualizar o cache de repositrio e adicione o texto & Req = Este
muito divertido! para a URL, o texto Ol Mundo. Esta uma grande diverso!
ser exibido. Note que neste caso, o AS no precisa ser alterada
e salvou mais para mostrar uma nova sada. Voc pode tentar isso inserindo um
texto diferente, aps req = e pressionando Execute novamente.
84 Parte I Comeando com Pentaho
Figura 4-8: Pedido de fonte de entrada
Estes sesso de so variveis que vivem para a durao da sesso do usurio.
Curiosamente, sesso global, variveis e tempo de execuo pode ser definido atravs
de um
ao do sistema que por sua vez, criado com PDS. H tambm um casal
de variveis de sesso padro que pode ser acessado, com o nome de usurio
do utilizador actual o mais freqentemente usado um. Isso pode ser testado
utilizando os mesmos Ol xaction Mundial pela mudana da fonte de entrada do
RequestText entrada do processo para sesso E o nome do de nome. Depois de salvar
AS e execut-lo, ele deve agora mostrar Ol Mundo. <username>,
onde <username> o nome usado para fazer logon no servidor Pentaho.
Global-Similar das variveis de sesso, mas estes tm um alcance global, que
significa que os valores dessas variveis so as mesmas para todos os usurios
o servidor de BI. A vida til de uma varivel global est vinculada aplicao,
o que significa que enquanto o aplicativo executado (o servidor de BI at), O
variveis podem ser acessados.
Tempo de execuo global variveis, mas sua vida infinita, significando que
quando voc desligar o servidor de BI (no a mquina, mas o aplicativo!)
a varivel tempo de execuo permanece na memria. Porque isto de alguma forma
limita o
controle voc tem sobre essas variveis, melhor usar variveis globais
em vez disso.
Segurana Ativa a recuperao da segurana (sesso) variveis. O follow-
parmetros podem ser obtidas gratuitamente (note que esses nomes so case-
sensitive!):
PrincipalName (string) -O nome do momento autenticado
usurio. Semelhante varivel de sesso nome.
PrincipalRoles (lista de strings) -As funes que actualmente autn-
sas sofisticadas usurio membro.
Captulo 4 O BI Pentaho Stack 85
PrincipalAuthenticated (string) -verdade se o usurio autenticado,
caso contrrio falsa.
PrincipalAdministrator (string) -verdade se o usurio autenticado
Administrador, caso contrrio falsa.
systemRoleNames (lista de strings) -Todas as funes conhecidas no sistema.
Manusear com cuidado, porque essa lista pode se tornar bastante
grande.
systemUserNames (lista de strings) -Todos os utilizadores conhecidos no sistema.
Manusear com cuidado, porque essa lista pode se tornar bastante
grande.
Sadas
As sadas so o que uma seqncia de aes pode passar para o mundo exterior, que
poderiam ser seqncias de ao de outros tambm. Eles podem ter aproximadamente o
mesmo
Destinos como uma entrada pode ter origens, mas h algumas diferenas.
Ao invs de um pedido, uma sada pode passar uma resposta. Sadas tambm pode salvar
em um
arquivo ou ftp-vfs.
Aes
Processo de Aes vm em todos os tipos e tamanhos. H aes para recuperar dados,
criar ou abrir relatrios e grficos, programar tarefas, executar fluxos de trabalho ou de dados
trabalhos de integrao, e para enviar a sada para e-mail ou uma impressora. Embora no
possamos
abranger todas as aes disponveis e combinaes de aes, daremos alguns
exemplos para ajud-lo em seu caminho para a construo de suas seqncias de ao
prpria.
Lembre-se que os captulos 14 e 17 contm exemplos adicionais de Ases, mais
especificamente para o relatrio de ruptura e dashboards.
Um conjunto de aes processo ser executado na ordem em que eles
esto listados na tela. Ao selecionar uma ao e usando o para cima e para baixo
flechas, a ordem de execuo pode ser alterado. Este no o nico controle disponvel
aqui, h duas opes sua disposio para ramificao (se) E looping (loop)
aes. Combinado com o / Secure alerta Ao de filtro com o qual um usurio
podem ser feitas para a entrada, estas opes permitem a lgica de execuo bastante
complexa.
Basicamente, existem dois tipos de xactions: aquelas que os usurios vero no
pastas que possam acessar e pode ser executado sob demanda, clicando sobre eles, e
os que sero programados e executados em segundo plano. Um bom exemplo
do ltimo relatrio de ruptura, que gera contedo personalizado para cada
usurio ou grupo de usurios. Mas porque um AS pode comear outro (por adio de um
Pentaho BI processo na lista de ao do processo), as possibilidades so praticamente
ilimitadas.
ATENO Tenha cuidado ao chamar um xaction de um outro; excluir o
''Filho''processo no est impedida de modo que voc pode facilmente quebrar o processo principal.
86 Parte I Comeando com Pentaho
Poderamos tomar a amostra de modelo de ao de ruptura e explicar como isso funciona,
mas apreender o verdadeiro poder de PDS melhor realizado, iniciando com uma
seqncia de ao vazia e estend-lo passo a passo. Primeiro, vamos explicar o que
que deseja realizar:
1. Criar uma lista de gestores com seus nomes, localidades e endereos de e-mail
do banco de dados da amostra.
2. Loop atravs desta lista e envie um e-mail com o oramento regio, receita
varincia e para os gestores respectiva regio.
3. Quando o lao se encontra com o gerente da regio central ", envi-lo
uma viso geral adicional da receita total para todas as regies.
Este exemplo usa muitos dos recursos disponveis e um excelente
Introduo Se voc quer construir seu seqncias de ao prpria. Os seguintes
etapas orient-lo atravs do exemplo.
1. Primeiro, crie um novo vazio AS selecionando a seqncia de ao Wizard.
Selecione um continer, um modelo em branco e digite um nome de arquivo. Esta
mostrado na Figura 4-9.
Figura 4-9: Criar uma nova seqncia de ao
2. Na guia Geral, digite o ttulo (obrigatrio) e outros campos (opcional).
3. Agora, v para a segunda guia para definir o processo. Primeiro, voc precisa
definir onde o e-mail est vindo, ento crie uma entrada de um novo processo.
Nome do parmetro de entrada a partir de e fazer certo a origem do pedido est
removido da fonte de entrada.
4. Agora voc pode adicionar a sua aco primeiro processo para recuperar a lista de
dados. Adicionar
um novo processo de ao e escolha Obter dados FromRelational. Esta
Captulo 4 O BI Pentaho Stack 87
provavelmente a ao do processo mais utilizado para que explicar isso em
um pouco mais detalhadamente:
a. O nome da ao exibido na lista Ao. Processo e
deve refletir a funo da ao. Neste caso, um nome como
GetManagerInfo vai fazer bem.
b. Para ser capaz de recuperar dados de um banco de dados, uma conexo
necessria.
Aqui voc pode usar o tipo de JNDI simples com o nome SampleData
(Voc precisa digitar isto, no est disponvel na lista drop-down).
Alm disso, o conjunto de resultados tipo deve ser definido como na memria.
c. A prpria consulta recupera os dados. Para este exemplo, usaremos
a consulta Regio distinta seleo, MANAGER_NAME, e-mail de
DEPARTMENT_MANAGERS. Esta consulta dever ser executado imediatamente.
d. Finalmente, o resultado Name Set deve ser inserido, este o nome pelo
qual a lista ser referenciado mais tarde, por isso use um nome significativo,
novamente,
como o LoopList nome que usamos. Como as colunas de consulta so
no so automaticamente traduzidas para variveis referencivel, o resultado
Conjunto Colunas precisa ser inserido explicitamente. Neste caso, voc adiciona o
colunas REGIO,MANAGER_NAMEE EMAIL, Todos do tipo string.
5. Observe que o GetManagerInfo ao agora contm quatro sadas de aco:
os trs nomes de coluna mais o nome do conjunto de resultados. Agora que voc
adicione
um loop para ser capaz de lidar com todas as linhas do conjunto de resultados em
seqncia.
The Loop Na lista drop-down contm apenas uma opo, o LoopList.
Aps escolher esta, voc pode continuar adicionando as aes internas para
do loop.
6. Com o Loop Ao selecionada, adicione uma outra ao Relacional. Um pop-up
tela vai perguntar se a ao deve ser criado dentro ou aps o
ao selecionada, voc precisa adicion-lo dentro do loop. Nome essa ao
GetResults, Use a conexo JNDI mesmo, e digite o seguinte
consulta:
SELECT
DA
ONDE
SUM (real) SUM, REAIS (ORAMENTO) ORAMENTO, SUM VARINCIA (variao)
QUADRANT_ACTUALS
REGIO = '{regio}'
Note que usamos {Regio}, Que uma referncia ao nome da regio de
a iterao atual do loop. Existem quatro regies para essa consulta
ser executada quatro vezes.
ATENO Todos os apelidos e nomes de coluna do conjunto de resultados (parmetros) em um
Relacional
ao deve ser no mesmo processo ou Pentaho ir gerar uma mensagem de erro.
88 Parte I Comeando com Pentaho
7. Antes de criar o prprio e-mail, voc precisa dar alguns passos.
Primeiro, adicione o resultado as colunas com a segunda ao relacional se
no tenham feito isso ainda.
8. Agora note que, mesmo que este conjunto de resultados recupera apenas uma nica
linha, voc ainda
necessidade de adicionar outro circuito PDS, porque no pode saber que voc
recuperou
apenas uma nica linha. Este segundo ciclo, claro, execute apenas uma vez
para cada iterao do lao externo. Dentro deste loop interno, necessrio
para preparar o texto do assunto e uma mensagem utilizando um Modelo de Mensagem.
Dentro dessa ao, uma mistura de texto fixo e os parmetros podem ser utilizados,
resultando em um texto gerado dinamicamente.
Acrescentar uma mensagem modelo eo nome deste FormatSubject. Use o texto como
fonte do template e insira Resultados para a regio {regio} como texto. A
nome de sada o nome pelo qual este texto pode ser reconhecido na
seguintes aes, por isso vamos usar MailSubject aqui.
9. Agora adicione outra mensagem modelo. Chame esse um FormatTextE uso
MailText como o nome de sada. O texto que voc digitar aqui o e-mail completo
corpo do texto, incluindo os parmetros dos resultados recuperados, o que pode
ser observado na Figura 4-10.
10. Finalmente, voc pode adicionar uma ao de e-mail, que pode ser encontrado sob a
Enviar
Para aes. Nome este Enviar e-mail Regio e usar o <from> string
parmetro de entrada que voc criou em primeiro lugar no campo. Em um cenrio da
vida real,
voc usaria o <EMAIL> parmetro no campo, mas porque estes
so endereos falsos, neste caso, use seu endereo de e-mail prprio ou selecione
o <from> parmetro se voc digitou o endereo de e-mail prprio l. Em
o campo Assunto, selecione <MailSubject> e no texto da mensagem, selecione
<MailText>. Agora, a ao pode ser salvo e executado. Se tudo foi
digitado corretamente, voc deve receber quatro e-mails com resultados diferentes.
11. Para completar o cenrio, voc precisar adicionar algumas etapas extra. Em primeiro
lugar,
adicionar um Se declarao para verificar se a regio Central. A condio para
add (REGIO == 'Central') mostrado na Figura 4-10. Depois, voc pode adicionar o
GetTotals Relacional ao para recuperar os resultados gerais. E, assim como
adicionado um loop de aco para a regio de resultados, voc adiciona um outro ciclo
aqui tambm com um modelo de mensagem separada e-mail mensagens. A
fluxo de concluso exibida na Figura 4-10. A imagem tambm mostra
que o Se instruo utiliza os operadores de comparao Java estilo == para
igualdade e ! = para a igualdade no.
DICA Voc pode criar e adicionar suas seqncias de ao prpria como modelos para o projeto
Studio salvando o arquivo *. xaction para o diretrio do PDS modelo. Ele est localizado na
<eclipse instalar o diretrio / plugins / org.pentaho.designstudio
. Number> <version editors.actionsequence / templates.
Captulo 4 O BI Pentaho Stack 89
Figura 4-10: Terminado o fluxo de trabalho
Resumo
Este captulo oferece uma viso panormica completa do Pentaho BI pilha e
todos os componentes constituintes. Os tpicos abordados neste captulo, incluiu a
seguinte:
A natureza aberta da plataforma, permitindo que as ferramentas no Pentaho ser
integrada
programas de servidor, cliente e desktop para ser utilizado por designers, adminis-
tradores e usurios finais
A arquitetura de servidor Java servlet baseado em plataforma
O Community Edition da Pentaho e os recursos extras do
Enterprise Edition
Uma viso geral da e introduo ao Eclipse e do Projeto Pentaho
Studio
A parte final do captulo consistiu em um passo-a-passo para a criao de
um relatrio de ruptura seqncia de ao.
Parte
II
Dimensional e Modelagem
Data Warehouse Design
Nesta parte
Captulo
Captulo
Captulo
Captulo
5: Exemplo de caso de negcio: Filmes de Classe Mundial
6: Data Warehouse Primer
7: Modelagem de Negcios Usando esquemas Star
8: O Data Mart Processo de Projeto
CAPTULO
5
Business Case Exemplo:
Filmes Classe Mundial
Os exemplos no restante deste livro so baseadas em uma empresa fictcia
chamado World Class Filmes (WCM). WCM uma oferta firme de varejo em linha
tanto as vendas e aluguis de filme; esta combinao define a empresa alm de
varejistas online como a Amazon, que apenas vender itens, e empresas como
Netflix, onde os filmes podem ser alugados ou vistos on-line.
Por que ns escolhemos uma loja de filmes online? mais Primeiro, um exemplo que
as pessoas podem facilmente relacionar-se: ns amamos filmes, lemos sobre os novos filmes,
que se-
baixo''notcia''sobre os atores que a estrela no cinema, assistir filme e reviso
programas na televiso. E, claro, todos ns estamos familiarizados com todos os pedidos
os tipos de coisas fora da web. Em segundo lugar, a vantagem tcnica de usar um retalho
online
Exemplo disso que todas as transaes podem ser ligados a um cliente chamado ou
identificado,
para que possamos evitar os desafios apresentados por ponto de venda comum vendendo
itens
a clientes annimos. Finalmente, uma quantidade razovel de dados necessria para ilus-
tram alguns dos conceitos relacionados ao armazenamento de dados, business intelligence
e anlises. Isso significa que precisamos de muitos clientes, muitos individuais pro-
dutos, e um lote de transaes, o que coincide maravilhosamente com os escolhidos
exemplo.
NOTA Um exemplo como este nunca pode cobrir todos os meandros de uma empresa real
ou organizao, para estar preparado para correr em diversos outros tipos de servios e
processos de negcios no mundo real. Departamentos como finanas, produo,
controle de qualidade, TI, RH e todos tm os seus prprios processos de negcios e de apoio
sistemas e interagir uns com os outros e com o mundo exterior em seus prprios
maneiras particulares. Tambm esteja preparado para encontrar processos especficos da indstria, tais
como
processamento de sinistros (seguros), ambiental, sade e prticas de segurana
(Indstria qumica), ou gerenciamento de risco (bancrio), cada um apresentando seus prprios
93
94 Parte II Dimensional Modelagem e Design de Data Warehouse
desafios quando se trata de processo e modelagem de dados e informaes
de gesto.
Filmes Classe Mundial: O Bsico
World Class Filmes comeou a vender e alugar DVDs on-line em abril de 2000 e
tem mostrado um crescimento constante desde ento.
O modelo de negcio WCM inclui dois processos totalmente integrados: cus-
atendimento de pedidos tomer e reposio de estoque, como evidente a partir do seguinte
descrio do negcio do WCM.
Um cliente pode encomendar um DVD a partir de um catlogo na web WCM e v-lo
sempre que ele gosta. Se o DVD for devolvido dentro de um determinado perodo de tempo,
considerado um''''transao de aluguel, que, se o DVD mantido ou no
voltou no tempo, considerado um''comprar''transao. A chave para o modelo
reside no fato de que o DVD inicialmente pago como se fosse comprado,
e ao retornar o filme no tempo, a diferena entre as vendas e
preo do aluguer adicionado ao saldo da conta do cliente para encomendas posteriores.
Os clientes so obrigados a tornarem-se membros e pagar uma taxa de entrada antes de
esto autorizados a pedir um filme. Se um cliente devolve um DVD depois do aluguel
perodo, o filme j est marcado como uma compra, mas o item adquirido
est novamente em um armazm WCM e precisa ser enviado de volta para o cliente.
Neste caso, a taxa de entrada usado para cobrir o transporte extra e manipulao
despesas.
Para estimular os clientes a comprar / alugar mais produtos, WCM usos diversos
tipos de promoes.
WCM opera diferentes sites dirigidos a diferentes grupos de clientes
de modo que uma variedade mais refinada pode ser oferecido para cada segmento de
mercado,
embora os clientes podem adquirir produtos atravs de mltiplos canais:
Filmes Classe Mundial Portal-Este o site principal da empresa, com um
ampla oferta de filmes de sucesso e favoritos de todos os tempos, excluindo as ltimas
lanamentos dos grandes estdios.
WCM Premium Premium um site de alto nvel onde os clientes so
cobrar, mas so a garantia de receber um novo shrinkwrapped
DVD. O site contm apenas os filmes mais recentes e os maiores blocos
busters.
WCM-O Outlet Outlet o local de negcio, onde os clientes podem obter
''Filmes''utilizado que poderia ter sido arrendado vrias vezes, mas j
esto disponveis com um desconto.
Captulo 5 Exemplo de caso de negcio: Filmes de Classe Mundial 95
WCM Cool-Este site destinado a um pblico mais jovem e mais na moda.
WCM Exclusive-A site exclusivo oferece edies especiais e importados
itens.
Esta diviso em mltiplos canais, cada um com seu pblico alvo e
planos de preos, permite WCM para manter seu estoque movendo rapidamente.
O back office do negcio consiste em uma srie de armazns espalhados
todo o pas. Quando uma ordem do cliente colocado, os itens so ordenados
enviados a partir do prximo depsito para minimizar o custo de distribuio e transporte
tempos. WCM comeou com um nico armazm, mas, porque o negcio
tem crescido ao longo dos anos, foi considerado mais econmico para adicionar
vrios pontos de distribuio.
A sede da empresa ainda esto localizados no mesmo local que o
Armazm da Califrnia, onde comeou WCM. Todas as ordens de compra colocadas
nas distribuidoras diferentes oriundos desta sede, onde cada ordem
especifica o depsito das mercadorias devem ser entregues.
Os dois principais processos de negcios para a empresa podem ser resumidas como
seguinte forma:
Cliente de atendimento de pedidos lida com pedidos de clientes individuais e
navios / recebe DVDs de e para armazns diferentes.
Reposio de Estoque abrange centralizada e descentralizada ordenao
recebimento de mercadorias em armazns diferentes.
E, claro, para tornar a empresa realmente fazer alguma coisa, as pessoas esto
necessrios, bem como, para que os funcionrios e descries concluir a ronda de
a descrio do negcio de alto nvel.
O fluxo de encomendas e produtos entre os distribuidores, WCM, e os clientes
ilustrada na Figura 5-1.
Os dados WCM
Sempre que voc embarcar em um projeto de business intelligence, imperativo que
voc compreender a origem ea natureza dos dados que sero utilizados na
data warehouse. Sem esse conhecimento, quase impossvel de se conceber e
construir um sistema que ir suportar o negcio em anlise e elaborao de relatrios sobre
os dados para melhorar o desempenho empresarial.
World Class Filmes usa dois bancos de dados para suporte s suas atividades, uma para o
operao de back-office (gesto de armazm, compras, RH) e um
para os diversos sites (cadastro de clientes, vendas). gesto do produto
vinculadas aos processos e WCM faz uma abordagem interessante para isso. Em vez
96 Parte II Dimensional Modelagem e Design de Data Warehouse
de ter os empregados inserir manualmente as informaes sobre cada produto, o
a empresa oferece, WCM usa uma alimentao de dados externos para o produto da empresa
catlogo. A nica coisa que WCM adiciona a esses dados seu prprio produto interno
IDs para vincular as informaes nos sistemas internos para os dados do exterior
fonte. Alm do catlogo do filme, que contm detalhes sobre cada pea
de inventrio, WCM usa o ISO 639 e 3.166 mesas para o cdigo eo nome do
idioma, pas e estado (regio).
Cliente
224 5
Venda
Online
Carto de Crdito
Ordem
Entrega
DVD
DVD
Retorno de arrendamento
Transferncia
DVD
Mundo
Classe
Filmes
DVD
Servidor
Armazns
Sede
Ordem de Compra
Distribuidores
Transferncia
DVD
DVD
DVD
Figura 5-1: fluxos do processo principal no World Class Filmes
Captulo 5 Exemplo de caso de negcio: Filmes de Classe Mundial 97
ISO: International Organization for Standardization
ISO define e gerencia as normas em uma grande variedade de temas, a maioria
nomeadamente a famlia ISO 9000 de normas de gesto da qualidade. Mais de 17 mil
padres internacionais tm sido desenvolvidos at agora e mais de 1.100
so adicionados a cada ano. Entre os padres mais conhecidos so: ISO 9660,
que define o formato de arquivo ISO de imagem que usado para gravar CDs e
DVDs e ISO 12232:2006, que define a velocidade do filme em digital
cmeras. A maior vantagem de usar um padro para dados tais valores
como datas ou nomes de pases a conformidade das menes entre os vrios
sistemas, o que garante a compatibilidade e fcil traduo de um sistema
para outro. A melhor prtica utilizar os dados que se conforma a um padro ISO
em seus sistemas de origem, sempre que possvel. Quanto mais o sistema de origem
e faz uso padronizado das definies de dados uniformes, mais fcil a tarefa de
construo de um data warehouse ser.
Obter e gerar dados
No h muitas boa amostra bases de dados disponveis, ea maioria deles no pode
ser utilizado sem restries ou fazem parte de uma oferta de banco de dados comerciais.
Pessoas familiarizadas com o MySQL pode conhecer o banco de dados exemplo Sakila, que
serviu como ponto de partida para o banco de dados WCM, mas est um pouco mais simples
e
contm dados muito pouco para ilustrar os conceitos deste livro. Por esta razo,
decidimos desenvolver um livremente disponveis, dados de exemplo LGPL-licenciados com
complexidade suficiente e uma quantidade real de dados em que seja til como uma fonte
para um projeto de data warehouse.
Ao desenvolver um modelo de dados instrutivo um desafio em si, esta
desafio minimizado atravs da criao de dados significativos para ele. Felizmente, existem
algumas fontes de dados acessvel ao pblico, tais como o Censo dos EUA, o nome falso
Gerador, eo Home Theater Info catlogo de DVD que podemos usar para
clientes, funcionrios, produtos e informaes externas. Todos os outros dados no
banco de dados seja criado manualmente ou gerados usando scripts. A base de dados
conjuntos e os scripts para criar o esquema e criar os dados da transao pode ser
baixado do site companheiro deste livro.
WCM Database: The Big Picture
Antes de explicar cada uma das peas do modelo de dados WCM, apresentamos
aqui uma viso global do banco de dados que ser usado para os exemplos
o restante do livro. A forma mais rpida e fcil de se familiarizar com
o modelo de dados a soma das diferentes entidades, relaes e papis desempenhados
por cada entidade, que a finalidade da lista a seguir. O diagrama na
Figura 5-2 pode ser usado como uma referncia.
INT (8) [PK]:
employeeemployee_id
SMALLINT (5) [FK]
dvd_id: warehouse_id INT
(8) [FK] customer_order_id:
INTEGER (10) [FK]
employee_id: INT (8) [FK]
INT (8) [PK]:
customercustomer_id
SMALLINT (5)
[FK]: website_id
SMALLINT (5) [PK]:
websitewebsite_id
INT (8) [PK]:
dvddvd_id
INT (8) [PK]:
purchase_order_linepu
rchase_order_line_id
INT (8) [FK]
purchase_order_line_i
d: dvd_release_id INT
(8) [FK]
INT (8) [PK]:
customer_ordercustom
er_order_id
INT (8) [FK]
promotion_id:
customer_id SMALLINT
(5) [FK]
shipping_region_id: INT
(8)
INT (8) [PK]:
inventoryinventory_id
INT (8) [PK]:
employee_jobemploye
e_job_description_id
INT (8) [FK]
job_description_id:
employee_id
SMALLINT (5) [FK]
warehouse_id:
SMALLINT (5) [FK]
SMALLINT (5) [PK]:
warehousewarehouse_
id
INT (8) [PK]:
purchase_orderpurchas
e_order_id
SMALLINT (5) [PK]:
job_descriptionjob_des
cription_id
INT (8) [FK]
distributor_id:
employee_id
SMALLINT (5) [FK]
SMALLINT (5) [PK]:
distributordistributor_i
d
INT (8) [FAK]
warehouse_id:
purchase_order_id
SMALLINT (5) [FAK]
dvd_release_id: INT (8)
[FAK]
promoo
SMALLINT (5)
[PK]:
promotion_id
SMALLINT (5)
[FK]: website_id
INT (8): region_id
INT (8) [PK]:
dvd_release_actordvd_
release_actor_id INT (8) [FAK]
dvd_release_id:
actor_id INT (8)
[FAK]
INT (8) [PK]:
dvd_releasedvd_releas
e_id
INT (8) [PK]:
promoted_dvd_release
promoted_dvd_release
_id
SMALLINT (5)
[FAK]
dvd_release_id:
promotion_id INT (8)
[FAK]
INT (8) [PK]:
customer_order_linecu
stomer_order_line_id
INT (8) [FAK]
dvd_release_id:
customer_order_id
INT (8) [FAK]
INT (8) [PK]:
actoractor_id
INT (8) [PK]:
dvd_release_directord
vd_release_director_id
INT (8) [FAK]
director_release_id:
director_id INT (8)
[FAK]
INT (8) [PK]:
directordirector_id
Figura 5-2:
diagrama de
banco de
dados global
Captulo 5 Exemplo de caso de negcio: Filmes de Classe Mundial 99
A pedra angular do banco de dados composto de clientes, produtos e
ordens.
Existem dois tipos de ordens: ordens de compra e ordens de clientes.
Os produtos so adquiridos de distribuidores e recebidas em um armazm
onde so verificados pelos funcionrios.
Cada ordem de compra feita por um funcionrio de uma distribuidora determinados
pode ter uma ou mais linhas de pedidos de compra.
Uma linha de ordem de compra composto do item, quantidade e preo dos
adquirida do produto e tambm denota o armazm de destino da
produtos.
Os funcionrios tm uma descrio do trabalho e trabalhar em um armazm
especfico.
Armazns, funcionrios, clientes e distribuidores tm um endereo.
Cada endereo localizado em uma determinada regio, e uma regio parte de um
pas.
ordens do cliente so colocados em um site e pode ter uma promoo
que lhes so inerentes.
Promoes pertencem a certos produtos (lanamentos em DVD) e pode
ter um menor preo de venda, a um preo mais baixo de aluguel, um longo perodo de
aluguer,
ou uma combinao destes.
A ordem do cliente consiste em uma ou mais linhas de ordem quando uma linha de
pedido
criado para cada produto.
Nem todas as entidades esto visveis no diagrama, todas as tabelas que contm o
endereo
informao esto ligadas ao regio e pas. Ambos os quadros so deixados de fora para
clareza, mas pode ser encontrado no diagrama detalhada do cliente. Duas outras tabelas
no esto visveis no diagrama so lookup_type e valor_procurado, Que contm
diferentes combinaes de chave / valor par de informaes como cdigo de status e
tipo de transao. Construes como estas (vrias listas de no-relacionados em um nico
tabela de referncia) so comuns em um sistema de Enterprise Resource Planning (ERP).
As prximas sees fornecem informaes adicionais sobre cada parte do banco de dados
esquema, incluindo o modelo de dados e contedo.
Catlogo de DVD
Existem vrias opes para a obteno de informaes cinematogrficas a partir da Internet,
com o Internet Movie Database (www.imdb.com), Sendo provavelmente a mais bem
conhecida e largamente utilizada fonte de informao do filme. WCM investigou a
utilizao do IMDB como fonte para o catlogo de DVD, mas encontrou a informao
contidos na lista Laserdisc IMDB estar longe de ser til. O melhor e mais
fonte completa de informaes acabou por ser o Home Theater site Info
(www.hometheaterinfo.com), Onde a informao para todos os DVDs disponveis a partir de
100 Parte II Dimensional Modelagem e Design de Data Warehouse
os estdios podem ser encontradas vrias, incluindo informaes ator e diretor.
WCM decidiu licena deste banco de dados para uso interno, bem como para o
web de catlogo.
Cada ttulo ser considerado uma Lanamento de DVD, e embora haja uma distino
entre o conceito de um filme e um DVD, apenas este ltimo est disponvel na
WCM banco de dados. A filme o artefato que descreve a produo de Hollywood,
e quando este filme lanado em DVD, WCM cria um lanamento em DVD, que
podem ser requisitados pelos clientes atravs da loja virtual. Os clientes so, em seguida,
enviou uma
DVD fsico, que so colhidos a partir do inventrio. Ento, teoricamente falando,
existe um modelo de trs camadas de dados (lanamento do DVD do filme em DVD), que
denota uma relao mestre-detalhe detalhe entre as trs entidades. Neste
caso terico atributos, tais como ttulo, atores e diretor estaria ligado
ao filme e atributos, tais como data de lanamento eo preo do aluguel seria
relacionado a um lanamento em DVD. No entanto, o catlogo no tem WCM filme entidade e
pois armazena todas as informaes do filme disponvel no nvel de lanamento do DVD.
Adicionado a informao do DVD de dados sobre os atores e diretores, que
tambm obtido a partir do banco de dados Info Home Theater. Isso permite que WCM
os clientes a procurar filmes com um ator especfico ou filmes que so
dirigido por um diretor especfico. O esquema completo catlogo de filmes exibida
na Figura 5-3.
ator
INT (8) [PK]: actor_id
first_name: VARCHAR (50)
last_name: VARCHAR (50)
iniciais: VARCHAR (10)
diretor
INT (8) [PK]: director_id
first_name: VARCHAR (50)
last_name: VARCHAR (50)
iniciais: VARCHAR (10)
dvd_release_actor
INT (8) [PK]: dvd_release_actor_id
INT (8) [FAK]: actor_id
INT (8) [FAK]: dvd_release_id
dvd_release
INT (8) [PK]: dvd_release_id
Ttulo: VARCHAR (64)
estdio: VARCHAR (50)
Lanado em: DATA
status: VARCHAR (50)
som: VARCHAR (20)
verses: VARCHAR (20)
Preo: DECIMAL (5, 2)
Classificao: VARCHAR (10)
ano: ANO
Gnero: VARCHAR (20)
aspecto: VARCHAR (10)
UPC: CHAR (13)
release_date: DATA
timestamp: DATETIME
dvd_release_director
INT (8) [PK]: dvd_release_director_id
INT (8) [FAK]: director_id
INT (8) [FAK]: dvd_release_id
Figura 5-3: Catlogo de Filme modelo de dados
NOTA Como esses dados so carregados de uma fonte externa, o modelo de dados
aprovada, resultando assim em um modelo menos elegante. Uma soluo melhor seria a
Captulo 5 Exemplo de caso de negcio: Filmes de Classe Mundial 101
mesclar atores e diretores em um Pessoa tabela e adicionar uma tabela de ligao entre DVD
liberao e Pessoa. Esta tabela ligao poderia ser estendida aos campos do pavilho
como is_actor e is_director (E no futuro talvez is_producer,
is_music_composer, etc)
Clientes
Como a maioria das organizaes comerciais, WCM tem clientes. E porque
os produtos devem ser enviados para um endereo de e pago por carto de crdito,
WCM tem um monte de informaes sobre seus clientes. Esta informao
inclui o endereo, cdigo postal, data de nascimento e sexo, o que torna a
dados de clientes muito adequado para todos os tipos de anlise. O banco de dados WCM
para
data contm informaes sobre mais de 145.000 clientes que subscreveram o
webstores diferentes ao longo dos ltimos oito anos. Claro, isso no exatamente verdade:
a verdadeira histria que essa coleta de dados do cliente gerado aleatoriamente
pela linha nome falso Generator (www.fakenamegenerator.com), Onde
dados do cliente pode ser gerado por uma srie de pases em lotes livres com
um tamanho mximo de 40.000, ou podem ser comprados em lotes de um milho de nomes.
A
aspecto interessante dos nomes gerados que eles no so realmente aleatrios,
mas representante de determinados padres demogrficos. Por exemplo, voc ver
mais pessoas a viver na cidade de Nova York do que em Zwolle, Louisiana, o que faz
os dados perfeitamente adequado para o banco de dados demo WCM. A cliente tabela
tambm referncias a pas e Estado as tabelas, pois (novo) os clientes so apenas
permisso para selecionar de uma lista fixa de valores para evitar erros de entrada de dados.
A
ltima referncia diz respeito ao site onde o cliente originalmente aplicada para
uma conta no WCM. Figura 5-4 mostra o modelo de dados completos dos clientes.
Empregados
O empregado modelo de dados simples, mas permite a mudana de trabalho dentro
a empresa e at mesmo para realocao dos empregados para armazns diferentes.
Figura 5-5 mostra o diagrama de empregado.
WCM tem um sistema de RH separado que inclui todos os outros agentes relacionados com
infor-
informaes, tais como salrios, tipos de contrato, a ausncia, os planos de educao, e
assim por diante.
sistemas de RH so notoriamente complexa para recuperar dados e no esto cobertos
neste livro. A fonte das informaes do funcionrio utilizado o mesmo que para
clientes e composto por um subconjunto do conjunto gerado nome falso.
As ordens de compra
O processo de compra bastante simples, WCM: uma ordem de compra colocada no
um distribuidor por um determinado funcionrio e contm um ou mais de ordem de compra
102 Parte II Dimensional Modelagem e Design de Data Warehouse
linhas. Cada linha de ordem de compra contm uma srie de lanamentos de DVD ordenados
de um armazm especfico. As Relaes Diagrama Entidade (ERD) mostrado na
Figura 5-6.
pas
country_id: SMALLINT [PK]
VARCHAR (50) [AK]: country_name
ISO3166_country_code: CHAR (2) [AK]
cliente
INTEGER [PK]: customer_id
first_name: VARCHAR (30)
CHAR (1): middle_initial
last_name: VARCHAR (30)
date_of_birth: DATA
maiden_name_mother: VARCHAR (30)
gender_lookup: SMALLINT [FK]
nome_cidade: VARCHAR (64)
address1: VARCHAR (50)
address2: VARCHAR (50)
region_id: SMALLINT [FK]
postal_code: VARCHAR (10)
email_address: VARCHAR (64)
telephone_number: CHAR (12)
password_hash: VARCHAR (41)
website_id: SMALLINT [FK]
equilbrio: DECIMAL (6,2)
date_registered: DATA
date_unregistered: DATA
timestamp_changed: TIMESTAMP
valor_procurado
lookup_value_id: SMALLINT [PK]
lookup_type_id: SMALLINT [AK]
VARCHAR (50) [AK]: lookup_text
regio
region_id: SMALLINT [PK]
region_name: VARCHAR (35)
country_id: SMALLINT [FAK]
ISO3166_region_code: CHAR (2) [AK]
site
website_id: SMALLINT [PK]
VARCHAR (50) [AK]: website_title
VARCHAR (60) [AK]: website_uri
Figura 5-4: Cliente modelo de dados
A linha de ordem de compra tambm contm o preo de compra obtido a partir de
o lanamento do DVD tabela no momento da encomenda, o custo do transporte, e os
datas para o transporte, espera, entrega e entrega real. O preo no histria
mantida no lanamento do DVD de dados, mas o preo s atualizou l. A
Histrico de preos, no entanto, sempre podem ser obtidos a partir das linhas de encomenda.
Note que qualquer alterao de preo intermedirio so perdidas dessa forma, por exemplo,
quando
nenhuma ordem existe em um ponto determinado preo. Alm disso, note que este um
modelo simplificado
que ignora o fato de que no mundo real, vrios distribuidores podem oferecer o
mesmo produto a preos diferentes.
Pedidos de clientes e Promoes
Clientes encomenda online e DVDs a aplicao web torna-se que estes
pedidos so inseridos no a ordem do cliente e linha do pedido do cliente tabelas.
Promoes so usados por WCM para estimular as vendas adicionais ou para limpar
aes redundantes. Promoes ativas so convertidas automaticamente para banners
e anncios em diversos sites. Quando uma promoo selecionado diretamente ou
DVDs esto ordenados que pertencem a uma promoo, a ordem correta dos clientes
linhas com os lanamentos com desconto de DVD so adicionados ao banco de dados na
web
pedido. Em outros casos, os clientes podero encomendar um DVD nico que pertence
com uma promoo em curso e neste momento a opo oferecida para selecionar o
promoo completo (que pode consistir de vrios DVDs).
empregado
INTEGER [PK]:
employee_id
employee_job
INTEGER [PK]:
employee_job_id

lookup_valuelookup_v
alue_id: SMALLINT
[PK]
regio
INTEGER [PK]:
region_id
first_name: VARCHAR (30) middle_initial: CHAR (1)
last_name: date_of_birth VARCHAR (30):
DATEgender_lookup: SMALLINT [FK] region_id:
INTEGER [FK] nome_cidade: VARCHAR (64)
address1: VARCHAR (50) address2: VARCHAR (50)
postal_code: VARCHAR (10) email_address:
VARCHAR (64) telephone_number: CHAR (12)
employee_id: INTEGER [FK]
job_description_id: SMALLINT
[FK] warehouse_id: SMALLINT
[FK] data_inicial:
DATEend_date: DATA
job_description
job_description_id
: SMALLINT
[PK]
job_title: VARCHAR
(30) [AK]
job_description:
VARCHAR (64)
Figura 5-5:
Funcionrio
modelo de
dados
104 Parte II Dimensional Modelagem e Design de Data Warehouse
purchase_order_line
purchase_order
INTEGER [PK]: purchase_order_id
INTEGER [FK]: employee_id
distributor_id: SMALLINT [FK]
order_date: DATA
status_lookup: SMALLINT [FK]
confirmation_date: DATA
INTEGER [PK]: purchase_order_line_id
INTEGER [FAK]: purchase_order_id
line_number: SMALLINT [AK]
warehouse_id: SMALLINT [FAK]
INTEGER [FAK]: dvd_release_id
quantidade: INTEGER
Preo: DECIMAL (6,2)
shipping_cost: DECIMAL (10,2)
shipping_date: DATA
delivery_due_date: DATA
delivery_date: DATA
empregado
INTEGER [PK]: employee_id
distribuidor
distributor_id: SMALLINT [PK]
VARCHAR (50) [AK]: distributor_name
INTEGER [FK]: region_id
nome_cidade: VARCHAR (64)
address1: VARCHAR (50)
address2: VARCHAR (50)
postal_code: VARCHAR (10)
email_address: VARCHAR (64)
telephone_number: CHAR (12)
valor_procurado
lookup_value_id: SMALLINT [PK]
armazm
warehouse_id: SMALLINT [PK]
dvd_release
INTEGER [PK]: dvd_release_id
regio
INTEGER [PK]: region_id
Figura 5-6: ordem de compra do modelo de dados
O que pode parecer estranho inicialmente, a duplicao do nome do cliente e
dados de endereo. Isso garante que WCM sempre tem uma histria totalmente rastrevel de
dados do cliente. O endereo do cliente podem ser atualizados na cliente mesa,
mas as ordens sempre refletir o endereo de um item foi enviado para.
A ordem do cliente e parte de promoo do esquema do banco de dados exibido
na Figura 5-7.
Note que neste modelo um campo quantidade da ordem no est disponvel, levando a
a limitao de que apenas um item de lanamento de um DVD especfico pode ser
encomendado na
ao mesmo tempo.
Gesto de Stocks
WCM precisa controlar seu estoque e quer gravar toda a histria do produto
tambm. Essa informao combinada no armazm,DVDE inventrio
tabelas. Cada DVD fsico que recebida de um distribuidor registrado e
adicionado DVD e inventrio tabelas. A entrada de DVD obtm o status novo,
o que significa que ele est disponvel para venda ou aluguel. A entrada de estoque fica o
mesmo
novo status, o que significa que o novo DVD adicionado ao estoque de WCM. Aps este
evento, o inventrio tabela reflete a histria de cada transaco.
Um DVD pode ser enviado,devolvidoOu vendidos. Quando um item retornado despeja
ser danificado, ele obtm o status lixeira. Embora o status atual de um item
pode ser recuperada a partir do inventrio tabela, a escolha feita de duplicar o
situao atual no DVD mesa para fcil referncia. Desta forma, WCM capaz de
relatrio sobre os nveis de estoque atuais e histricos. Figura 5-8 mostra a parte da
diagrama entidade relacionamento com o submodelo de gesto de inventrio.
Captulo 5
customer_order
INTEGER [PK]: customer_order_id
Exemplo de caso de negcio: Filmes de Classe Mundial 105
INTEGER: customer_id
promotion_id: SMALLINT [FK]
customer_first_name: VARCHAR (30)
CHAR (1): customer_middle_initial
customer_last_name: VARCHAR (30)
shipping_country_name: VARCHAR (50)
shipping_city_name: VARCHAR (64)
shipping_address1: VARCHAR (50)
shipping_address2: VARCHAR (50)
VARCHAR (30): shipping_state
shipping_postal_code: VARCHAR (10)
order_timestamp: TIMESTAMP
status_lookup: SMALLINT [FK]
customer_order_line
INTEGER [PK]: customer_order_line_id
INTEGER [FAK]: customer_order_id
line_number: SMALLINT [AK]
INTEGER [FAK]: dvd_release_id
rental_price: DECIMAL (6,2)
purchase_price: DECIMAL (6,2)
shipping_cost: DECIMAL (6,2)
shipping_date: DATA
delivery_date: DATA
delivery_due_date: DATA
return_due_date: DATA
valor_procurado
lookup_value_id: SMALLINT [PK]
promoted_dvd_release
INTEGER [PK]: promoted_dvd_release_id
promotion_id: SMALLINT [FAK]
INTEGER [FAK]: dvd_release_id
promotion_rental_price: DECIMAL (4,2)
promotion_rental_duration: SMALLINT
promotion_purchase_price: DECIMAL (4,2)
site
website_id: SMALLINT [PK]
dvd_release
INTEGER [PK]: dvd_release_id
promoo
promotion_id: SMALLINT [PK]
website_id: SMALLINT [FK]
promotion_title: VARCHAR (50)
promotion_type_lookup: SMALLINT [FK]
promotion_start_date: DATA
promotion_end_date: DATA
Figura 5-7: ordem do cliente modelo de dados
Cada DVD tem um local fsico em cada momento, indicada pelo
ID do armazm onde o item enviado ou devolvido. Normalmente
um produto enviado a partir do mesmo armazm, uma vez que devolvido ao presente, mas
no precisa ser necessariamente o caso. Outras informaes que podem ser obtidos
da inventrio tabela :
Cliente (Customer_order_id) Mostra-cliente, o item
enviados para, vendidas ou retornado.
Empregado (employee_id) Mostra-o agente do warehouse
enviados ou recebidos do DVD.
Timestamp -A data ea hora exatas as informaes so inseridas no
do sistema.
Gesto do Negcio: A finalidade do negcio
Inteligncia
Gerir um negcio realmente muito simples quando voc toma uma misso orientada
vista. WCM foi criada porque houve uma evidente necessidade de uma conveniente
caminho para comprar e alugar DVDs sem ter que sair de uma loja. A misso
se tornar a maior distribuidora de DVD on-line no pas, e vrios
passos intermedirios foram definidos para finalmente alcanar esse objetivo (criar o
negcios em um estado, expandir a base de clientes, adicionar diferentes canais de vendas).
armazm
warehouse_id:
SMALLINT [PK]
INTEGER [PK]:
regionregion_id
inventrio
INTEGER [PK]:
inventory_id
region_id: INTEGER [FK]
nome_cidade: VARCHAR (64)
address1: VARCHAR (50) address2:
VARCHAR (50) postal_code:
VARCHAR (10) email_address:
VARCHAR (64) telephone_number:
CHAR (12)
INTEGER [PK]:
dvd_releasedvd_releas
e_id
dvd
INTEGER [PK]:
dvd_id
dvd_release_id: INTEGER
[FK] purchase_order_line_id:
INTEGER [FK]
status_lookup:
SMALLINTdvd_barcode:
INTEGER
warehouse_id: SMALLINT [FK]
dvd_id: INTEGER [FK]
employee_id: INTEGER [FK]
customer_order_id:
INTEGERtimestamp:
TIMESTAMPstatus_lookup:
SMALLINT
INTEGER [PK]:
purchase_order_linepu
rchase_order_line_id
INTEGER [PK]:
employeeemployee_id
INTEGER [PK]:
customer_ordercustom
er_order_id
Figura 5-8:
diagrama de
Inventrio
Captulo 5 Exemplo de caso de negcio: Filmes de Classe Mundial 107
Ao longo do caminho, WCM precisa acompanhar e analisar o seu desempenho para ver
Que fatores esto contribuindo para o sucesso e que so desvirtuando, e
que onde a inteligncia de negcios chutes pol
BUSINESS INTELLIGENCE
Howard Dresner, analista snior de longa data do Gartner Group, muitas vezes
creditado com a definio do termo business intelligence (BI). Embora Dresner
popularizou o termo, ele no foi o inventor. Na verdade, o termo de negcios
inteligncia foi usada pela primeira vez em 1958 por Hans Peter Luhn na IBM
Jornal. No entanto, sua definio Dresner de BI que usado na maioria das vezes
hoje:''Conceitos e mtodos para melhorar a tomada de decises comerciais
usando sistemas de suporte baseado em fatos.''Esta definio descreve de uma forma muito
maneira elegante que BI muito mais que tecnologia por si s (fato que frequentemente
negligenciado por muitos dos praticantes BI) e que o BI um meio para um fim,
no o objetivo em si.
Perguntas Business Intelligence tpica para WCM
Por uma questo de argumento, vamos supor que de Classe Mundial Filmes corre muito
gesto eficiente organizao corporativa, mas no tem o discernimento necessrio para
levar a empresa para o prximo nvel. organizao WCM contm departamentos
tais como Finanas e Vendas, Logstica e Compras, Atendimento a Clientes, e
Marketing e Gesto de Produto e, claro, tem algum tipo de interesse geral
gesto e um CEO. Estas pessoas e todos os departamentos tm diferentes
precisa para executar sua parte do negcio melhor e tenho algumas perguntas
em comum tambm. As perguntas tpicas podem incluir:
FINANAS E VENDAS
Como a receita que vamos gerar na regio, por ms, e do filme
categoria?
Quais as categorias de filme gerar a maior receita e essa constante
ao longo do tempo?
Como o nosso desempenho para comparar o mercado de entretenimento total?
Ns estamos crescendo mais rpido ou mais lento do que nossos principais
concorrentes?
Logstica e AQUISIO
Como nossos distribuidores pontuao em termos de variedade de produtos, preo e
desempenho da entrega?
Como podemos otimizar ainda mais nossos custos de
distribuio?
108 Parte II Dimensional Modelagem e Design de Data Warehouse
ATENDIMENTO AO CLIENTE
Quantas queixas lidamos?
Que tipo de reclamaes que os clientes costumam ter?
Qual a mdia de processos por representante de
servio?
NOTA Servio ao cliente adicionado como um exemplo extra e no coberto pelo
modelos de dados de amostra
MARKETING E GESTO DE PRODUTO
Como o valor da vida dos 100 principais clientes se comparam aos
fundo 100?
Como podemos segmento de nossos clientes com base na RFM (recncia, freqncia
anlise) monetria?
No temos os dados do cliente que pode ser usado para indicar rentabilidade futura
ou churn?
Podemos prever receitas futuras para um novo cliente com base na actual
perfis de clientes e caractersticas, tais como cdigo postal, idade ou sexo?
Como podemos manter o controle do ciclo de vida de um produto e que as vendas
canais devem ser usados (combinaes de mercado do produto)?
Lanamentos em DVD que so mais susceptveis de gerar receita com base em alta
caractersticas do produto, como ator, diretor ou gnero de filme?
A partir desses exemplos, bvio que algumas perguntas (e suas respostas)
referem-se mltiplas reas de negcio. E, novamente, estes exemplos so tpicos de um
organizao comercial venda de produtos aos consumidores, mas provavelmente no so
aplicvel a outras indstrias, por exemplo, uma organizao de sade, como
um hospital.
Dados
fundamental
Nenhum sistema de business intelligence pode existir sem os dados, e as ques-amostra
es desde j poderia ter mostrado que os dados internos por si s no
suficiente para obter uma boa compreenso do desempenho de uma organizao.
A maioria dos sistemas de BI comeam com um foco interno, elaborao de relatrios sobre
dados de vendas passadas. Este
timo para comear seus ps molhados, como voc ver nos prximos captulos,
mas muito pouco em um ambiente competitivo. Tomemos, por exemplo, um
organizao que comemorou um crescimento de 10 por cento na receita lquida de vendas
mais
No ano passado, mas ignorou o fato de que o crescimento global do mercado foi
20 por cento. Eles realmente fizeram um trabalho muito ruim, mas ficou sem saber porque
os dados externos que poderiam ter divulgado essa informao no foi usada. Para
Captulo 5 Exemplo de caso de negcio: Filmes de Classe Mundial 109
pleno conhecimento sobre o desempenho real de uma empresa, os dados externos manda-
trio. World Class Filmes, portanto, usa duas fontes adicionais de informaes. A
primeira o Censo 2000 CEP conjunto de dados, que permite empresa
relacionar dados de clientes internos global de dados demogrficos e trends.1
A segunda fonte de informao a receita de dados histricos e-commerce
obtidas no site E-Stats do Censo dos EUA, que pode ser encontrada em
www.census.gov/eos/www/ebusiness614.htm.
Resumo
Este captulo apresenta a empresa fictcia de Classe Mundial Filmes que ns
criado para este livro. Com base neste exemplo, descrevemos a seguir:
Os negcios principais processos da empresa Classe Mundial Filmes
Um modelo global de dados do banco de dados de apoio aos processos
O modelo de dados detalhados para cada entidade do negcio principal (clientes,
produtos, pedidos, estoque, funcionrios)
A ltima parte do captulo ilustrou o propsito eo valor do uso
solues de Business Intelligence em geral e as respostas que uma soluo de BI
pode fornecer para uma empresa como de Classe Mundial Filmes.
1 A
Censo 2000 CEP conjunto de dados reutilizado mediante permisso de A anlise dos dados e SQL
Excel, por Gordon S. Linoff, Wiley Publishing, Inc., 2008
CAPTULO
6
Data Warehouse Primer
Um data warehouse no nada novo, na verdade, armazenamento de dados estava sendo
praticado por anos, mesmo antes do termo foi cunhado por Bill Inmon em sua
trabalho seminal Construindo o Data Warehouse.1 Embora Inmon muitas vezes referida
como o pai''de data warehousing,''isso no inteiramente o caso. Para dar
crdito onde crdito devido, foi o irlands IBM arquitetos Barry Devlin e
Paul Murphy, que, em 1988, lanou as bases para o que hoje chamamos de
data warehouse. interessante ver que o conceito de Dados Corporativos
Armazm (BDW) Devlin e Murphy descreveu em seu artigo original no tem
mudado muito nas ltimas dcadas. Eles definem o BDW como''o nico
armazm lgica de todas as informaes utilizadas para informar sobre o negcio,''que
ainda exatamente o que .
NOTA Sinta-se livre para apenas pular este captulo, ou mesmo ignor-lo se voc j est
familiarizado com os conceitos bsicos de armazenamento de
dados.
Para obter uma melhor compreenso da natureza de um armazm de dados que ir
adicionar
descrio original Inmon tambm. Ele definiu um armazm de dados como sendo:
Assunto orientadas para Todos entidades e eventos relacionados a um assunto
especfico
(Por exemplo,''''de vendas) esto ligados entre si.
Tempo variante Todos alteraes nos dados so controlados para permitir os relatrios
que mostra a evoluo ao longo do tempo.
No voltil-Quando os dados so inseridos no data warehouse, nunca
sobrescritos ou excludos.
1 Cf.
Construindo o Data Warehouse, 4 Edio, por WH Inmon, Wiley Publishing, Inc., 2005.
111
112 Parte II Dimensional Modelagem e Design de Data Warehouse
Integrada-A armazm de dados contm dados de mltiplas fontes
sistemas depois de ser limpo e conformado.
Ao longo dos anos, essas descries (especialmente o aspecto''''no-voltil)
foram desafiadas e adaptada por outros autores e praticantes, levando
para diferentes arquiteturas e formas de modelagem do data warehouse. Trata-se,
No entanto, bom ter em mente que todos os autores ainda concordam com o raciocnio
atrs de um armazenamento de dados separados para anlise de negcios e prestao de
contas foi
originalmente definido por Devlin e Murphy:
Garantir que o desempenho dos sistemas de produo no interrompida
por consultas ad hoc ou de anlises
Exigir que as informaes necessrias aos usurios finais no muda enquanto
que o utilizam, ou seja, os dados point-in-time
Por que Voc Precisa de um Data Warehouse?
Pessoas que nunca foram expostas ao conceito de um data warehouse
so muitas vezes confusos sobre a necessidade e finalidade de um banco de dados
especializados para
fins de apoio a deciso. Mesmo depois que os dados bvios benefcios integrados
a partir de diferentes sistemas, o desempenho da consulta, aliviando os sistemas de cdigo de
consultas de longa execuo eo acompanhamento da histria, foram explicados,
ainda no claro por que sempre a construo de um data warehouse uma boa idia.
Bastante
muitas vezes, esses usurios se acostumaram a recuperar ou a obteno de dados de
vrias fontes, incluindo os dados enviados a eles por e-mail, que depois de importao
em um aplicativo de planilha eletrnica que eles usam para posterior anlise e relatrios.
No armazm de dados necessrios, certo? No to certo, na verdade. Vamos tentar
explicar
por um armazm de dados til, do ponto de vista de um usurio:
Toda a informao est em um lugar no mais caar vrias dis-
parate fontes de informao ou tentar encontrar arquivos com mais de um confuso
E-mail do sistema ou estrutura da pasta. No preciso tanto para combinar tudo isso
dados a si mesmo: ele j est integrado e pronto para uso.
Up-to-date informaes de dados no armazm de dados automaticamente
carregadas e atualizadas em uma base regular, o que significa que voc nunca est fora
de data ou procurar informaes antigas.
Acesso Rpido O armazm de dados otimizada para recuperao rpida de
da informao. O data warehouse respostas as suas dvidas muito mais rpido do
lojas locais de arquivo ou arquivos de e-mail.
No h limite de tamanho Planilhas pode armazenar somente uma quantidade limitada
de dados e
muitas vezes precisam ser divididos em pedaos para acomodar todas as informaes
necessrias.
Um armazm de dados pode armazenar uma quantidade quase ilimitada de dados para
que no
Captulo 6 Data Warehouse Primer 113
mais descarregamento de dados para um banco de dados local ou ainda uma outra
planilha
necessrio.
Toda a histria disponveis O armazm de dados no contm apenas corrente
informao, mas tambm os dados da ltima semana, no ms passado, no ano passado,
e vrios
anos atrs tambm. Isto significa que a anlise de qualquer tendncia ou comparao
ao longo do tempo suportado pelo armazm de dados. Na verdade, se voc nunca
apagar
dados do data warehouse, muitas vezes contm muito mais histrica
informaes do que os sistemas de origem. A histria no disponvel somente
''Dados mais antigos,''mas oferece valor adicional quando as alteraes so controladas
como
tambm. Isto permite-lhe olhar para os dados como ela realmente era durante a
momento em que foi originalmente processado. Quando algum vive em Boston em
2008
mas se muda para New York em 2009, voc ainda vai ver os resultados de 2008 para
este
cliente atribudo a Boston, no para Nova York.
Fcil de entender-A Data Warehouse modelada em termos de negcios
e reflete o modo como voc olha para sua organizao. Voc no precisa
decifrar siglas de trs letras que ningum entende, mas pode ter
nomes claros para todos os elementos de dados.
Definies claras e uniformes, no mais discusses sobre os dados que
significa ou o que a definio de receitas''''. Todos na organizao
usa as mesmas definies, o que simplifica a comunicao.
Todos os dados padronizados, dados em conformidade com as normas, o que significa
que
apenas uma definio e um conjunto de valores para cada pea de informao.
Um bom exemplo disso a codificao do gnero. Alguns sistemas usam 0
e um, alguns usam masculino / feminino e outro uso M / F / U (para desconhecidos).
Todos
tradues em uma nica definio padronizada foram atendidos.
Essa lista destaca as vantagens de um armazm de dados, mas baseado em uma
pressuposto importante: que o data warehouse projetado e construdo adequadamente.
Mesmo quando a execuo de alto nvel a partir de uma perspectiva tcnica
(Primeiro cinco pontos), ele ainda pode ser considerado um projeto fracassado de um
perspectiva do usurio (os ltimos trs pontos de bala). O''fcil de entender,''''clara
e definies de dados uniforme, padronizada''e''''vantagens so muitas vezes
prdio em frente, especialmente quando o data warehouse executado por uma TI
departamento sem o envolvimento dos utilizadores suficiente.
Metadados: denominar e descrever SEUS DADOS
Se os ltimos trs argumentos para a construo de um data warehouse so invertidos,
tambm possvel olhar para o fim do armazm de dados de uma maneira diferente:
como veculo para chegar a dados padronizados e definies claras e uniformes.
Isto no totalmente um assunto de armazm de dados relacionados, mas tem um muito mais amplo
(Continuao)
114 Parte II Dimensional Modelagem e Design de Data Warehouse
Metadados: denominar e descrever SEUS DADOS (Continuao)
aplicabilidade, que muitas vezes referida como metadados. Um simples e amplamente utilizado
definio de metadados dados sobre dados. Lotes de equvocos sobre a existir
metadados que ou deveria ser, mas sem querer simplificar demais, ele todos os
se resume a uma questo: como o nome e descrever as informaes
em uma organizao de tal forma que toda a gente compreende imediatamente
o significado disso e este significado o mesmo para todos os envolvidos? Se voc
pode superar este obstculo no incio de seu projeto de data warehouse, voc estar
pago de volta trs vezes. Se voc tomar um passo mais adiante, voc ver que os metadados
abrange muito mais do que apenas descries dos dados (por exemplo, que se entende por
'Receitas'?). Os seguintes itens tambm so considerados metadados e so de
especial importncia em um ambiente de data warehouse:
Linhagem de Dados-A informao sobre a origem e destino dos dados
em cada etapa do processo de transformao de dados. Dados informaes de linhagem
fornece uma pista de auditoria completa dos dados em um data warehouse, que essencial
para cumprir os regulamentos compliancy, como a Lei Sarbanes-Oxley.
Dados Oportunidade-A informao sobre quando os dados foram alterados e
como "velhos" dados so um usurio est olhando. Muitas vezes, vrios carimbos
so utilizadas quando as informaes so apresentadas: o tempo que um relatrio executado
ou
impresso, o tempo que os dados foram carregados ou alterada no data warehouse,
eo tempo dos dados foi modificada pela ltima vez no sistema de origem.
Modelo de Dados, os modelos utilizados no livro so tambm uma forma de metadados,
geralmente chamado metadados estruturais uma vez que no fornecem uma descrio
(Como nos itens anteriores), mas apenas a estrutura dos dados. O texto
explicar o modelo de dados o metadados descritivos neste caso.
O grande debate: Inmon Versus Kimball
Existe um consenso generalizado sobre a idia bsica de usar um armazenamento de dados
especiais
para apoiar as anlises e relatrios. a forma como este armazenamento de dados deve ser
estruturado e organizado que tem sido objecto de muitos debates acalorados
ao longo dos anos.
No incio, havia basicamente duas abordagens para a modelagem dos dados
armazm. Tudo comeou quando os dois gigantes da indstria, Ralph Kimball e
o referido Bill Inmon, comeou a publicar seus dados e evangelizadora
entreposto idias. Cada grupo tem um (e s vezes at mesmo fantica) leais
seguidores, o que contribuiu ainda mais para a discusso em torno das duas escolas
de pensamento. Enquanto Inmon popularizou o termo armazm de dados e um forte
Captulo 6 Data Warehouse Primer 115
proponente de uma abordagem centralizada e normalizada, Kimball tomou um rumo diferente
perspectiva com a sua data marts e dimenses conformadas.
As principais diferenas entre o centro da abordagem Inmon e Kimball sobre
trs pontos. A compreenso destes pontos de diferena vai ajudar voc a ganhar
uma compreenso maior de armazenamento de dados em geral. (Voc vai comear a
abundncia do
exemplos de data mart neste livro, portanto, no se preocupe se essas descries no afunda
imediatamente.)
Data warehouse versus data marts com dimenses adequadas, Ns
j apresentaram definio de Inmon o Business Data Ware-
casa:''o armazm lgica nica de todas as informaes utilizadas para relatrio
nos negcios.''Em contraste, um mart de dados contm informaes relativas
para uma funo especfica do negcio, como vendas ou quadro de pessoal. Este
informaes podem ser visualizadas a partir de perspectivas diferentes, chamados
dimenses.
Cada dimenso contm todas as informaes relativas a um determinado negcio
objeto, tais como uma agenda, clientes ou produtos, e pode ser ligado
a um ou mais tabelas de fatos contendo itens mensurveis (receitas, custos,
nmero de funcionrios, e assim por diante). O efeito final que os usurios podem
recuperar
informaes sobre as vendas por departamento, por cliente durante um perodo
especfico
a partir de um data mart, mas a partir da mesma data mart no possvel
recuperar informaes tangencialmente relacionados, tais como nmero de funcionrios
empregados.
Isso requer um data mart independente, que pode reutilizar alguns dos mesmos
informaes de dimenso (neste caso: empregado e de calendrio) j utilizados
na data mart de vendas. Devido as dimenses empregado e calendrio ter
uma aplicao que se estende alm de um data mart de dados nico, eles so
chamados
dimenses conformadas. O conceito de modelagem dimensional coberto em
profundidade no Captulo 7.
Abordagem centralizada versus iterativo / descentralizada abordagem como
mencionadas, um data mart contm dados apenas para uma finalidade especfica,
enquanto
um data warehouse contm todas as informaes de forma integrada. A
principal diferena entre um data warehouse Kimball e Inmon estilo
o facto de Kimball organiza seu armazm de dados como uma combinao
de data marts integrados, enquanto Inmon considera um data warehouse
como um modelo de dados integrado, normalizado que contm todos os dados
necessrios
para relatrios e anlises e usa data marts apenas para acesso ao usurio final.
Isso soa como uma camada extra de complexidade, mas tenha em mente que, em
Inmon um estilo de data warehouse todos os problemas relacionados com a
conformao de
dados e garantir correo histrica de dados so resolvidos na regio central
armazm, enquanto que em uma arquitetura de estilo Kimball essas questes precisam
ser resolvidos dentro da data marts.
Normalizada modelo de dados em funo dos dados dimensionais modelo Se a com-
marts combinada de dados em relao ao armazm central eram a nica fonte
para o debate, a discrdia teria sido resolvido h muito tempo, mas h
116 Parte II Dimensional Modelagem e Design de Data Warehouse
outro, e talvez ainda mais contraste marcante entre os dois: o
questo da normalizao versus desnormalizao. Kimball introduziu o
tcnica de desnormalizao para as tabelas de dimenso. Agora um produto
pode ter um grupo de produtos relacionados a ele, que em um banco de dados
normalizado
seria armazenado em uma tabela separada e ligados atravs de chaves estrangeiras.
Para um
exemplo disso, d uma olhada no WCM cliente tabela, que contm
um link para a regio, que por sua vez, contm um link para pas (ver Figura 6-1).
Em um esquema de banco de dados normalizado, cliente, regio, pas e so
armazenadas em trs tabelas diferentes para garantir a integridade da regio e
nomes de pases (que so armazenados apenas uma vez). Um esquema de-
normalizados,
Por outro lado, as lojas de todas as informaes em uma nica tabela, assim creat-
o de informaes redundantes, que uma maldio para o estritamente normalizado
acampamento. A Figura 6-1 mostra a diferena entre uma normalizada e um
desnormalizados esquema de banco de dados.
pas
SMALLINT (5) [PK]: country_id
VARCHAR (50) [AK]: country_name
ISO3166_country_code: CHAR (2) [AK]
regio
INT (8) [PK]: region_id
SMALLINT (5) [FAK]: country_id
VARCHAR (50) [AK]: region_name
ISO3166_region_code: CHAR (2) [AK]
customer_denormalized
INT (8) [PK]: customer_id
customer_normalized
INT (8) [PK]: customer_id
INT (8) [FK]: region_id
ISO3166_region_code: CHAR (2)
region_name: VARCHAR (50)
ISO3166_country_code: CHAR (2)
country_name: VARCHAR (50)
Figura 6-1: A normalizao versus desnormalizao
Ao contrrio da crena popular, de-normalizar os dados em uma dimenso no propenso
para os problemas usuais de no normalizar um banco de dados de transaco para
pela simples razo de que no usado para transaes. As tabelas de dimenso apenas
atualizado atravs da utilizao de uma extrao, transformao e carregamento (ETL)
processo
que elimina os riscos de alguma forma envolvido com a atualizao no-normalizada
de dados. Ns cobrimos o processo de carregamento dimenso no captulo 10 e cobrir
tcnicas de modelagem dimensional no Captulo 7. As partes subseqentes deste
foco captulo sobre arquitetura e tecnologias utilizadas para o armazenamento de dados.
Arquitetura de Dados do Armazm
Um arquitetura um conjunto de regras para aderir ao construir algo, e
porque um armazm de dados pode se tornar muito grandes e complexos, utilizando um
arquitetura essencial para o sucesso. Vrias arquiteturas de data warehouse
Captulo 6 Data Warehouse Primer 117
existem, mas antes de explorar o assunto em profundidade vamos introduzir um general
quadro e explicar alguns dos termos que voc vai encontrar mais frente.
O quadro ilustrada na Figura 6-2. No diagrama, voc pode ver:
1. Um ou mais sistemas de origem (arquivos, SGBD, ERP);
2. Um processo para extrao, transformao e carregamento de dados (ETL).
Muitas vezes, esse processo contm uma rea de teste utilizado como local de
desembarque para
extraram os dados e para fazer a transformao dos dados iniciais e de limpeza.
Para a preparao de dados tanto um banco de dados e arquivos de plano pode ser
usado. Em muitos casos
usando arquivos simples permite um processamento mais rpido.
3. O armazm de dados, que consiste no banco de dados do armazm central e
zero ou mais data marts.
4. A camada de usurio final (EUL), com as vrias ferramentas para trabalhar com o
dados (relatrios, dashboards, planilhas e documentos publicados).
Geralmente, a combinao do armazm central e os data marts
considerados o data warehouse, eo termo armazenamento de dados usado
para designar todo o processo de construo, carregamento e gesto dos dados
armazm (DWH).
NOTA O diagrama na Figura 6-2 uma estrutura lgica, mas no um fsico exigido
estrutura. Alguns processos ETL transferir os dados diretamente atravs''''a partir da fonte
sistemas para as tabelas do data warehouse, e alguns armazns de dados no contm
data marts, ou apenas conter data marts e nenhum armazm central.
Arquivos
ETL
CSV
Arquivos
ERP
Encenao
rea
Fontes Processo de ETL
ETL
ETL
Armazm Central e
Data Marts
Data Warehouse EUL
Figura 6-2: Genricos arquitetura de data warehouse
Alguns outros termos usados geralmente quando se fala de armazenamento de dados so
back office e front office. Na definio de Kimball, o back office engloba
toda a tecnologia e os processos utilizados para construir e manter o data warehouse,
Considerando que o front office a rea onde os usurios finais utilizam os dados da DWH.
Em
118 Parte II Dimensional Modelagem e Design de Data Warehouse
Figura 6-2, o front office a combinao de todos os relatrios e anlise
ferramentas disponveis para ter acesso aos dados. O back office composto de ETL
processos e data warehouse.
mais claro, este diagrama uma verso muito abstrata e simplificada de
implementaes DWH. A parte mais importante do processo o auto-
acasaladas carga peridica de novos dados para o data warehouse. Este o lugar onde
a ETL (para Extract, Transform and Load) ferramenta utilizada. ''''Peridica pode significar
''Dirio'', mas mais frequentes ou s vezes at cargas mais raros so com-
seg. Peridico carregamento de dados tambm referida como por lotes ETL, ao contrrio
em tempo real ETL. No primeiro caso, vrios registros so transformados em um nico lote;
na operao de um segundo no sistema de origem imediatamente capturado e
carregados no data warehouse. Atualmente, a maioria dos armazns de dados so
carregados
utilizando ETL por lotes, mas tambm com o lote de carga uma freqncia quase em tempo
real
pode ser necessrio. Considere, por exemplo, a carga de dados do oramento, quando este
alteraes de dados apenas uma vez por ms ou uma vez por trimestre, completamente
intil para carregar
o oramento de cada dia. Por outro lado, quando o data warehouse usado
de relatrios operacionais, bem como, os dados precisam ser o mais atualizado possvel.
Ao utilizar ETL por lotes, isso poderia significar a execuo do processo de cinco em cinco
minutos. ETL usada no somente para extrair dados dos sistemas de origem e
carregamento do armazm de dados, mas tambm para a manuteno de dados relacionais
ou data marts
mover dados de uma fonte para outra.
A rea de preparo
Cada soluo de data warehouse deve usar um rea de teste onde os dados extrados
armazenada e, eventualmente transformado antes de carregar os dados na central
armazm. A implementao desta parte da arquitetura como uma parte separada do
de arquitetura de dados do armazm uma prtica comum para que siga essa orientao
aqui tambm. A World Class Filmes data warehouse usa uma plataforma separada
catlogo (catlogo o prazo para banco de dados MySQL) chamado wcm_staging mas CSV
arquivos so usados tambm.
Qual o propsito de uma rea de teste, quando poderia simplesmente usar a nossa
ferramenta de ETL
para carregar os dados diretamente no data warehouse? Existem vrias razes:
Fonte vezes a carga do sistema deve ser mantido a um mnimo absoluto, de modo
quando os dados so extrados de tabelas do sistema fonte, a melhor prtica para
copiar os dados''como''para as tabelas de paragem o mais rapidamente possvel.
Usando uma rea de teste em separado permite que voc trabalhe em um subconjunto
especfico
dos dados, ou para ser mais especfico, apenas os dados que necessrio para o
execuo atual.
Um esquema dedicado permite triagem especfico ou a indexao ainda mais
otimizar e apoiar o processo de ETL.
Captulo 6 Data Warehouse Primer 119
A rea de preparo uma rede de segurana: um processo pode falhar antes de
completar.
Como uma rea de teste contm todos os dados a serem processados, um processo
pode
ser reiniciado a partir do ponto de incio ou a meio sem que o
dados a serem extrados novamente. Alm disso, o conjunto de dados na rea de teste
no muda durante uma nica execuo; carregar novamente a partir do sistema de
origem
impe o risco de os dados serem alterados, pois a carga anterior.
Lembre-se que a rea de teste contm apenas os dados atuais extrados,
o que significa que aps uma carga de sucesso ou antes de executar o processo de ETL
todos
tabelas esto sendo truncados novamente. s vezes, um arquivo histrico adicionado
a arquitetura contendo todos os dados extrados com uma hora de carga, mas acrescentou
este um banco de dados separado, e no uma rea de preparo.
Modelando uma rea de teste um processo muito simples, especialmente quando
tabelas so truncadas de cada vez. Basta duplicar a definio da fonte
tabelas sem todas as teclas e os ndices e est feito. Remoo de estrangeiros
restries de chave impe alguns riscos de inconsistncia de dados, mas isso pode ser
combatido com um trabalho de ETL cuidadosamente. Se os ndices so usados em tudo no
estadiamento
tabelas, sua finalidade deveria ser apenas para ajudar a acelerar a transformao
nada do processo, outra coisa.
O Armazm de Dados Central
regras estritas sobre como arquiteto de um data warehouse no existem, mas nos ltimos
15 anos algumas arquiteturas comuns tm surgido. Para ajudar voc a decidir qual
o melhor para os seus fins, sempre uma boa idia de olhar para benchmarks
e estudos de caso de implementaes DWH, como The Data Warehousing Institute
(TDWI) fez em 2006. A pesquisa realizada TDWI distinguidos cinco possveis
formas de arquitetar um data warehouse e teve-as com base no sucesso da
arquiteturas diferentes. O diagrama na Figura 6-3 mostra os cinco alternativas.
Descrevemos aqui brevemente essas arquiteturas e explicar algumas das vanta-
vantagens e desvantagens de cada um antes de explicar as escolhas feitas para a
casos de exemplo neste livro.
marts independentes de dados cada data mart construdo e carregado indiv-
aliado, no h metadados comum ou partilhado. Esta tambm chamado de funil
soluo.
Dados de nibus A-mart Kimball soluo com dimenses adequadas.
Hub and spoke (fbrica de informaes corporativas)-O soluo Inmon
com um armazm de dados centralizado e marts dependentes de dados.
armazm de dados centralizado-Similar ao hub and spoke ", mas sem a
raios, ou seja, todo o acesso do usurio final est diretamente orientada para o data
warehouse.
Federados-An arquitetura, onde vrios data marts ou data warehouse,
casas j existem e esto integrados mais tarde. Uma abordagem comum
120 Parte II Dimensional Modelagem e Design de Data Warehouse
para isso construir um data warehouse virtual onde todos os dados ainda residem
nos sistemas fonte original e logicamente integrados utilizando especiais
solues de software.
Independente de Dados Arquitetura de Data Marts
Fonte
sistemas
Encenao
rea
Independente de data marts
(Atmica / dados resumidos)
usurio final
acesso e
aplicaes
Data Mart Bus Architecture com Linked Dimensional Data Marts
usurio final
acesso e
aplicaes
Fonte
sistemas
Encenao
rea
dados Dimensionalized
marts ligadas por
dimenses conformado
(Atmica / dados resumidos)
Hub e Spoke Arquitetura (Corporate Information Factory)
Fonte
sistemas
Encenao
rea
Relacional normalizada
warehouse (dados atmicos)
usurio final
acesso e
aplicaes
data marts dependentes
(Resumido / alguns
dados atmicos)
Centralizada Arquitetura de Data Warehouse
Fonte
sistemas
Encenao
rea
Relacional normalizada
armazm (atmica /
alguns dados resumidos)
usurio final
acesso e
aplicaes
Federados Arquitetura
Armazns de dados existentes,
data marts, e
sistemas legados
Lgico / fsico
integrao dos comuns
elementos de dados
usurio final
acesso e
aplicaes
Diagrama de Thilini Ariyachandra e Hugh J. Watson da Data Warehousing Institute, usada com permisso.
Figura 6-3: arquitetura de dados alternativas armazm
Dos cinco abordagens tanto independentes de data marts e federados arqui-
ras receberam uma pontuao significativamente menor em TDWI que os outros trs, mas
Captulo 6 Data Warehouse Primer 121
o mais interessante o fato de que o hub de nibus, e falou, e centralizado
arquiteturas de pontuao sobre o igualmente bem.
A diferena entre o hub e falou arquiteturas centralizada e no
que grande; data marts dependentes so adicionados como raios apenas para o desempenho
razes. H ainda um grande hub poucos chamados e falou de data warehouse
implementaes que usam apenas vistas a definir os data marts, o que resulta
em um data mart lgico, sem qualquer ganho de desempenho. A grande diferena,
No entanto, entre centralizada ou hub and spoke por um lado, eo nibus
arquitetura sobre o outro o custo eo tempo de construo do primeiro incremento,
ou parte utilizvel do data warehouse. Como seria de esperar, este custo
consideravelmente maiores em um hub e falou soluo. Alm disso, as informaes
no armazm de dados , de preferncia expostas na forma de dados dimensional
marts de qualquer maneira uma vez que este modelo fcil de entender para os
desenvolvedores que criam
solues para usurios finais ou mesmo usurios avanados que podem aceder data marts
diretamente.
Esta a razo pela qual ns vamos basear a nossa solues de dados exemplo armazm no
nibus
arquitetura.
Ns recomendo vivamente a leitura do relatrio completo, que ainda est disponvel online
em http://www.tdwi.org/Publications/BIJournal/display.aspx?ID=7890.
Data Marts
A partir da discusso na seo anterior, pode parecer uma data mart
contm apenas um conjunto limitado de dados. A fim de atender s necessidades especficas
de um
organizao, um data mart pode realmente cobrir apenas um processo especfico e ser
restrito aos limites do processo. Voc no vai encontrar ausncia do empregado
informaes em um data mart de vendas, por exemplo, porque um analista de vendas no
preciso dessa informao.
Do ponto de vista tcnico ou banco de dados, no entanto, no h nenhuma limitao para
a quantidade ou o tipo de dados que podem ser includos em um data mart. Por exemplo,
considere uma empresa de telecomunicaes que quer analisar mdia das chamadas
durao por tipo de subscrio, grupo de clientes, e perodo. Tal detalhada
anlise exigiro que todos os registros de detalhes da chamada ser includo na data mart,
o que poderia facilmente adicionar at milhares de milhes de registros na tabela de fatos. Na
verdade,
empresas at comprar hardware especializado para este tipo de anlises que podem
crunch colees tamanho terabyte de dados em segundos.
Cubos OLAP
Como voc j viu, um data mart pode ser definida como um conjunto de pontos de vista sobre
uma central
depsito (data mart virtual), mas no caso de utilizao da arquitetura de barramento, o
armazm de dados consiste em um conjunto integrado de data marts que no precisam de um
camada extra em cima deles. Este no o fim da histria, entretanto. Para completar
a imagem, temos de introduzir um outro tipo de armazenamento, que freqentemente usado
122 Parte II Dimensional Modelagem e Design de Data Warehouse
para data marts, e isso o motor OLAP. OLAP um acrnimo para OnLine
Analytical Processing e tem sido h dcadas, embora o termo
OLAP s foi introduzido em 1993 por Codd2 E.F. Provavelmente o mais conhecido
Banco de dados OLAP no mundo o Analysis Services, desenvolvido originalmente pela
Israel empresa de software Panorama, mas mais tarde adquirida pela Microsoft, que agora
pacotes do produto com o seu banco de dados. A idia de um banco de dados OLAP
usar um formato de armazenamento otimizado para anlise de dados em um multi-
dimensional
formato para oferecer a flexibilidade do usurio e acesso muito rpido. A velocidade oferecida
pela
bancos de dados OLAP causada pelo fato de que a maioria dos totais e subtotais (aka
agregaes) so pr-calculadas e armazenadas no OLAP cubo. Embora um
cubo OLAP pode ter muito mais do que trs dimenses, um banco de dados OLAP
freqentemente visualizado como um cubo de Rubik, da o nome cubo.
Formatos de armazenamento e MDX
Trs variaes de bancos de dados OLAP existir, cada um nomeado com base no
armazenamento
formato que usado:
MOLAP (OLAP Multidimensional)-O formato original em OLAP
que os dados so armazenados em um formato proprietrio multidimensional. Todos
dados detalhados e agregados so armazenadas no arquivo de cubo. Um bom exemplo
de uma fonte aberta de banco de dados MOLAP PALO, desenvolvido pelo alemo
Jedox empresa.
ROLAP (OLAP Relacional)-Em Neste caso, os dados e todos os agregados so
armazenadas em um banco de dados relacional padro. O motor traduz ROLAP
consultas multidimensionais em SQL otimizado e, geralmente, acrescenta o cache
capacidades, bem como para acelerar as consultas subsequentes analtica. Pentaho
Mondrian um exemplo perfeito de um motor de ROLAP.
HOLAP (OLAP Hbrido)-In HOLAP, agregados e dados de navegao
so armazenados em uma estrutura MOLAP, mas dados detalhados mantido no
relacional
banco de dados. At o momento, no h soluo open source HOLAP disponveis, mas
algumas das vantagens foram incorporadas no Mondrian com a
Alm de quadros gerados automaticamente agregadas para agilizar consultas.
Todas essas solues tm Multidimensional Expressions ou consulta MDX
lngua em comum. MDX fornece uma sintaxe especializada para consultar dados
armazenados em cubos OLAP, como o SQL faz para tabelas relacionais. A linguagem
foi introduzido pela primeira vez pela Microsoft em 1997 como parte do OLE DB para OLAP
especificao, mas foi rapidamente adotado pela maioria dos vendedores de OLAP.
A razo para o desenvolvimento de uma linguagem especializada para anlise de dados
OLAP
armazena dados que o SQL no foi muito bem adaptado para fazer isso. Embora ao longo
dos
2 Para
um panorama da histria dos motores OLAP ver http://olapreport.com
/ Origins.htm.
Captulo 6 Data Warehouse Primer 123
anos, a linguagem SQL foi estendido com recursos analticos, MDX ainda
o padro de fato no mundo OLAP. Para aqueles ansiosos para comear bem
distncia: Captulo 15 aborda os conceitos bsicos de MDX para utiliz-lo em conjunto com
Mondrian. No ano de 2000, a especificao do XML for Analysis (XML / A) foi
introduzido, que agora um padro de fato para consultar bancos de dados OLAP.
XML / A estende a linguagem MDX com tags XML padronizado para permitir
execuo de instrues de consulta sobre HTTP utilizando mtodos SOAP.
O servidor OLAP Mondrian suporta MDX e XML / A, que faz
uma soluo muito verstil para todos os tipos de cenrios, mas tenha em mente que
Mondrian no nem de armazenamento de dados (dados reside no relacional subjacente
banco de dados), nem uma ferramenta de anlise (voc ainda vai precisar de um front-end
para anlise
de dados). Ento, quando voc estiver usando Mondrian como a soluo OLAP (R) em sua
ambiente de Data Warehouse, os componentes ser parecido com o esquema de
Figura 6-4.
Banco de dados SQL
Mondrian
ROLAP
Anlise
A extremidade
dianteira
Figura 6-4: Data Warehouse com Mondrian
Isto conclui a descrio de data marts a partir de uma base tecnolgica mais e
perspectiva conceitual; captulos 7 e 8 cobrir os desafios de design
envolvidos com o desenvolvimento de data marts.
Desafios do Armazm de Dados
Descrevendo os diferentes componentes da arquitetura de um data warehouse meramente
serve como ponto de partida e explicar a terminologia comum. Os prximos
algumas sees cobrem os principais desafios envolvidos com o armazenamento de dados:
qualidade dos dados, o volume de dados e desempenho, capturando os dados alterados e
evoluo das necessidades. tentador olhar para o armazenamento de dados como um
desafio tcnico, mas como j descrito em''A finalidade da
Data Warehouse''anteriormente neste captulo, os desafios organizacionais
provavelmente ainda mais importante e mais difcil de enfrentar. Isto especialmente
verdadeiro
em relao aos dados de gesto da qualidade, o tema da prxima seo, que
assume a liderana em locais de difcil endereo problemas que muitas vezes tm apenas um
nmero limitado
relao tecnologia.
124 Parte II Dimensional Modelagem e Design de Data Warehouse
Qualidade dos dados
Um dos maiores desafios em qualquer projeto de data warehouse garantir que os dados
qualidade (DQ). Segundo o principal analista do Gartner Group, no h uma
organizao no mundo que no tenha um problema de qualidade de dados, para ser
preparado para lutar algumas batalhas internas antes de ir viver com qualquer relatrio ou
Anlise da soluo. DQ problemas vm em uma variedade de formas que so impossveis
para cobrir completamente, mas o mais importante geralmente caem em uma ou mais
das seguintes categorias:
-Os dados duplicados mesma entidade est inscrita vrias vezes em um nico
sistema, ou a mesma entidade existe em vrios sistemas, mas no pode ser ligado
para a falta de falta de teclas ou referncias.
Dados incompletos, A entidades esto l, mas algumas das informaes
faltando, por exemplo, um nmero de casa em um endereo, um nmero de telefone, ou
qualquer outra propriedade de uma entidade empresarial (uma entidade de negcios
pode ser qualquer coisa
aqui, que vo desde uma aplice de seguro de um avio). Uma corretamente
sistema projetado deve impedir que os usurios insiram dados incompletos,
mas ainda existem muitos sistemas mal concebidos l fora. E
mesmo quando uma empresa usa um sistema ERP como SAP ou Oracle,
provvel que os dados a partir de sistemas mais antigos, foi migrado para estes
sistemas,
que mais uma vez motivo de dados incompletos ou inconsistentes.
Todos os dados incorretos dados disponveis e completo, mas tem erros devido
s entradas com erros ortogrficos ou erros de digitao. A fonte mais comum de
incorreto
os dados so agentes de call center que ter de introduzir manualmente os nomes,
endereos,
e outras informaes que lhe so transmitidas pelo telefone. Digitao e ouvir
velocidades diferentes, e l voc vai.
Os dados conflitantes, mesmos dados so armazenados em tabelas diferentes (em
o mesmo sistema), ou nos sistemas de origem diferente e contradiz a cada
outras.
Impreciso metadados-Definies dos dados em um sistema no so claras,
levando a ambigidade dos dados em si. Como exemplo, pense em um utilitrio
empresa definir os seus clientes como pontos de conexo com um endereo,
resultando no envio de contas para postes de luz.
Falta de dados-Este uma verso extrema de dados incompletos, onde
registros completos que deve ser no sistema ou estavam l mais cedo tm
desaparecido. Este obviamente o mais difcil categoria de problemas para resolver
porque na maioria dos casos no sequer evidente que existe um problema.
Campos de valores em NULL em um banco de dados que no tm nenhum valor. O
problema
que isso pode significar coisas diferentes: no se aplica, desconhecido ou ausente.
Captulo 6 Data Warehouse Primer 125
Muitas ferramentas esto disponveis, tanto de origem proprietrios e abertos, que podem
ajudar
solucionar um ou mais desses problemas, mas no h uma ferramenta no mundo
que resolve o verdadeiro problema, que a falta de normas, procedimentos e adequada
os processos. Resolvendo problemas de qualidade de dados no um problema tcnico,
uma
problema de organizao. E ainda que ir mostrar-lhe algumas solues
dados atravs de perfis e ferramentas de qualidade de dados, incluindo as etapas de
validao
disponvel em Chaleira nos captulos 9 e 10, voc ter que ter muito cuidado na
aplicao destas.
Em muitos projetos de data warehouse a melhoria da qualidade de dados includo como
um
dos objetivos do projeto, pois o armazm de dados precisa conter vlido e
dados corretos. Ou no? Ns gostamos de pensar de forma diferente. A via adequada para
exame,
na nossa opinio, a primeira pr todos os procedimentos corretos em torno da qualidade dos
dados
no lugar como parte do processo de negcio principal, em seguida, limpar a fonte
sistemas, e s depois de todo esse trabalho tem sido feito iniciar o carregamento dos dados.
Porque a partir deste ponto o processo de DQ est guardando a fonte de dados, o
a equipe do armazm de dados pode se concentrar em fornecer informaes teis ao fim
usurios e analistas. Isso faz parte de um tpico mais amplo chamado governana de dados,
que,
como finanas ou produo, trata seu objeto gerenciado (neste caso, os dados) como um
ativo corporativo. E, assim como qualquer outro processo empresarial envolvendo ativos como
dinheiro, recursos fsicos, ou empregados, um quadro de controlo adequado s necessidades
de estar no lugar.
Infelizmente, isso ainda utopia para a maioria das organizaes. Data Warehouse
projetos geralmente pegar um atalho por etapas, incluindo limpeza de dados como parte de
o processo de carregamento sem alimentar as excees de volta para o negcio ou outra
fonte
sistemas. E porque este um livro sobre a construo de solues de BI com Pentaho,
vamos mostrar a voc como configurar isso. Basta ter em mente que esta uma soluo para
apenas parte do problema! Dados Vault e Qualidade de Dados
H uma nova escola de pensamento com base em um conceito chamado dados vault. Dados
vault (DV) uma tcnica de modelagem de banco de dados que radicalmente diferente da
modelo tridimensional conformada que estamos usando neste livro. modelos DV se baseiam
no conceito de que todos os dados pertence a um dos trs tipos de entidades: hubs, links,
e satlites. Em suma, os centros de conter os principais atributos de entidades empresariais
(Como ordens, produtos e clientes), links definir as relaes entre
os hubs (por exemplo, encomendas de clientes ou categorias de produtos), e os satlites
conter todos os outros atributos relacionados com os hubs ou links, incluindo todos os
atributos
mudar a histria. Figura 6-5 mostra um exemplo parcial de como o mundo
Classe data warehouse Filmes olharia quando traduzido em uma abbada de dados
modelo.
126 Parte II Dimensional Modelagem e Design de Data Warehouse
hub_employee
Integer (10) [PK]: employee_key
INT (8): employee_id
load_timestamp: TIMESTAMP (12)
sat_employee
Integer (10) [PFK]: employee_key
load_timestamp: TIMESTAMP (10) [PK]
first_name: VARCHAR (30)
CHAR (1): middle_initial
last_name: VARCHAR (30)
date_of_birth: DATA
gender_lookup: SMALLINT (5)
INT (8): region_id
nome_cidade: VARCHAR (64)
address1: VARCHAR (50)
address2: VARCHAR (50)
postal_code: VARCHAR (10)
email_address: VARCHAR (64)
telephone_number: CHAR (12)
sat_job_description
Integer (10) [PFK]: job_description_key
load_timestamp: TIMESTAMP (10) [PK]
job_title: VARCHAR (30)
job_description: VARCHAR (64)
link_employee_job
Integer (10) [PK]: lnk_employee_job_key
load_timestamp: TIMESTAMP (0)
Integer (10) [FK]: employee_key
Integer (10) [FK]: job_description_key
SMALLINT (5) [FK]: warehouse_key
hub_job_description
Integer (10) [PK]: job_description_key
SMALLINT (5): job_description_id
load_timestamp: TIMESTAMP (10)
sat_warehouse
Integer (10) [PFK]: warehouse_key
load_timestamp: TIMESTAMP (10) [PK]
nome_cidade: VARCHAR (64)
address1: VARCHAR (50)
address2: VARCHAR (50)
postal_code: VARCHAR (10)
email_address: VARCHAR (64)
telephone_number: CHAR (12)
load_timestamp: TIMESTAMP (10)
hub_warehouse
Integer (10) [PK]: warehouse_key
SMALLINT (5): warehouse_id
load_timestamp: TIMESTAMP (12)
Figura 6-5: Dados exemplo abbada
A grande vantagem da tcnica a sua flexibilidade. Adicionar
atributos ou tipos de transao nova relativamente simples, no h
necessidade de reconstruir a qualquer uma das partes j existentes do banco de dados. Por
outro lado, um
abbada de dados no acessvel a qualquer utilizador final, nem mesmo um analista
experiente.
Somente aps a construo de data marts da abbada de dados, que inclui processos
de limpeza e, possivelmente, conforme dados sujos, as informaes podem ser
disponibilizar aos utilizadores finais. Outra desvantagem possvel o fato de que o
nmero de tabelas no data warehouse ser grande em comparao com um tradicional
normalizado ou arquitetura de barramento de dados, tornando o DVD mais difcil de gerir.
Do ponto de vista da qualidade dos dados, utilizando-se uma abbada de dados tem um
grande
vantagem: os dados do DV carregado a partir de sistemas de origem''como'', assim se
os dados so sujos no sistema de origem, suja no cofre de dados tambm. Se
uma correo feita no sistema de origem, os dados corrigidos adicionada ao
abbada de dados como uma nova verso. Se existirem sistemas de mltiplas fontes, o
sistema
do registo includo na chave dos dados armazenados. O resultado de tudo isso
que uma abbada de dados sempre pode reproduzir a informao que estava armazenada em
um
sistema de origem em qualquer ponto do tempo, o que torna a soluo ideal em casos
onde auditabilidade e rastreabilidade de dados e transaes so de preenchimento
obrigatrio,
Captulo 6 Data Warehouse Primer 127
como nas empresas bancrias ou de seguros. Todos limpeza, fuso e converso
de dados que geralmente ocorre entre a rea de teste e data marts em
uma arquitetura de barramento ocorre agora entre a abbada de dados e data mart.
E porque toda a histria est disponvel no cofre, data marts podem ser facilmente
eliminados ou transformados em uma outra maneira para responder a questes de negcio
diferentes.
Na comunidade de BI, um dos maiores chaves ao longo dos ltimos
dos anos tem sido Verso nica da verdade, o que significa que os dados em uma base de
dados
armazm (no importa como ele modelado) significa a mesma coisa para todos os
diferentes
pessoas que trabalham com os dados. Dados profissionais vault olhar para esta ligeiramente
diferente: sua opinio que a nica verdade a fonte de dados (Single Version
dos fatos), que no deve ser transformada em qualquer forma, quando entrou em
o data warehouse. Daquele ponto em diante, cada usurio ou departamento pode ter seu
''prpria verso da verdade''criado na data mart: retrocesso ao real
''''A verdade sempre possvel, ento.
Se voc estiver interessado em aprender mais sobre como usar o cofre de dados, por favor
visite
site do inventor em www.danlinstedt.com/.
Usando dados de referncia e Master
O termo gerenciamento de dados mestre (MDM) usado para descrever todos os processos
e tecnologias necessrios para cumprir as definies de dados uniforme e contedo de dados
em uma organizao. Mestre de gerenciamento de dados uma rea adjacente aos dados
armazenamento com a sua prpria gama de conceitos, livros, mdicos, e conferir-
diferenas a respeito do tema. No contexto de um data warehouse, necessrio
para cobrir os princpios bsicos do MDM, porque a ausncia de uma adequada MDM
processo pode fortemente afetar o sucesso de um projeto de business intelligence.
MDM tem a ver com o gerenciamento de informaes referentes s entidades empresariais
tais como clientes, produtos, fornecedores e locais. Um dos objetivos iniciais
de qualquer iniciativa do MDM identificar os sistema de registro de uma entidade. Em muitos
organizaes existem vrios sistemas que contenham um dos mencionados
itens, com os clientes''''entidade com a reputao de ser a mais
notoriamente complexo de lidar. Um sistema de registro do cliente identifica a
''''Ouro cpia dos dados do cliente e no deve ser confundido com o sistema de entrada
onde os dados so inicialmente inscritas ou mantida depois. Idealmente, estes dois
sistemas so os mesmos, mas isso no necessariamente o caso, especialmente quando h
muitos sistemas de entrada e apenas um sistema de registro.
Um exemplo desta ltima situao uma organizao que usa um produto
como o SugarCRM para manter todas as interaes com clientes via telefone e
e-mail, e Compiere como um sistema ERP que controla pedidos, transporte, e
faturamento de e para os mesmos clientes. Alm disso, os clientes tambm podem
entrar e manter seus prprios dados em um banco de dados separado por meio de um web
personalizada
aplicao como front-end, ento voc tem trs sistemas com os dados do cliente, cada
com a capacidade de atualizar esta informao. O problema fica ainda pior na
128 Parte II Dimensional Modelagem e Design de Data Warehouse
bancos, onde a maioria dos sistemas so orientados para os produtos em vez de orientada
para o cliente,
o que significa que cada produto tem seu sistema de dados prprio cliente.
Uma iniciativa partes caractersticas MDM muitos com um data warehouse
projeto: os dados precisam ser analisados, integrados e limpos. E, assim como dados
armazenamento, o MDM um processo, no um projeto. H, no entanto, tambm alguns
diferenas notveis. A diferena mais importante que ao contrrio de um data mart ou
armazm de dados, o MDM no pode nunca ser uma iniciativa do departamento, executado
somente dentro de
um departamento de atendimento ao cliente, por exemplo. E, claro, bom de dados mestre
inicialmente destinada a apoiar os sistemas transacionais para assegurar que as ordens
esto sendo enviados para o endereo correto e que os inquritos do cliente pode ser
direcionado para o nmero de telefone correto e pessoa de contato.
Os dados mestre no precisa se originam dentro de uma organizao: s vezes
melhor usar os mesmos dados externos que todo mundo est usando. Boa
exemplos destes so a regio ISO e tabelas pas que usamos no Mundo
Classe de banco de dados de filmes, ou o norte-americano Industry Classification System
(NAICS) para identificar em qual linha de negcios de uma empresa opera. Neste
caso, um organismo de normalizao cuida da gesto dos dados.
s vezes, esses dados mestre externo chamado dados de referncia para distingui-lo
a partir de dados mestre interno, que simplesmente chamado dados mestre.
A partir desta breve introduo, espero que ela imediatamente claro por que o MDM
to importante com relao a armazenamento de dados e qualidade dos dados: se houver
um sistema de identificao que contm a cpia correta de uma entidade empresarial, que
provavelmente a melhor fonte para alimentar as suas tabelas de dimenso a partir.
Volume de dados e desempenho
Como voc aprendeu anteriormente, duas razes para a utilizao de um ambiente fsico
separado
para um data warehouse o ganho de desempenho, em comparao com a pesquisa numa
regular
sistema de transao e da incapacidade dos sistemas de apoio tanto transacional
e consultas analticas. Outra coisa que facilmente esquecido na primeira a
facto de armazns de dados tendem a ficar muito grande, como resultado de armazenamento
de dados
de vrios sistemas em um longo perodo de tempo. Normalmente, os dados de transaes
podem ser arquivados aps um determinado perodo de tempo, por exemplo, depois de tudo
necessrio
relatrios externos s autoridades fiscais tenha sido finalizado. Isso libera espao
e acelera o sistema de transao, mas tambm faz com que o banco de dados inteis
para anlise de tendncias durante um perodo prolongado de tempo. Por este motivo, os
dados
armazm de retm todos os dados histricos, de preferncia no nvel mais detalhado,
resultando em enormes conjuntos de dados, por vezes, vrias centenas de Terabytes em
tamanho. Os armazns de dados maior, no momento da redao deste texto conter mais de
um Petabyte (1024 Terabytes =1 petabyte) de dados do usurio.
O maior desafio quando se tenta analisar essas quantidades de dados
conseguir um desempenho aceitvel de consulta para usurios finais. Diversas tcnicas
Captulo 6 Data Warehouse Primer 129
foram desenvolvidos ao longo dos anos para atingir esse desempenho, mas infeliz-
Infelizmente algumas destas tcnicas esto disponveis apenas em proprietrios caros
sistemas de gerenciamento de banco de dados como Oracle, SQL Server ou DB2. O se-
mugido lista ajuda a determinar qual tcnicas pode ser til em um data
warehouse para melhorar o desempenho da consulta:
Com a indexao nenhuma das medidas especiais tomadas, qualquer tabela em um
banco de dados apenas
uma lista no ordenada, com linhas de dados. Qualquer consulta precisa ler todos os
dados
a mesa (a.k.a. um varredura completa da tabela) para encontrar a resposta correta. Este
processo pode
ser acelerada por armazenar ponteiros para os dados corretos nos arquivos de ndice
especial.
ndices em um banco de dados so semelhantes aos ndices em um livro onde voc
pode olhar
uma palavra-chave e encontre todas as pginas que fazem referncia a esta palavra-
chave. Um especial
tipo de ndice o chave primria ndice, que o identificador exclusivo de um
linha. Se voc estiver usando InnoDB como o mecanismo de armazenamento do
MySQL, o principal
chave tambm denota a ordem de classificao fsica dos registros em uma tabela. Este
pode vir a calhar, porque uma grande quantidade de consultas tero uma referncia
data. Quando a data-chave a primeira coluna de uma tabela de fatos e de parte da
chave primria, a coluna pode ser colocada em ordem decrescente de classificao,
resultando
nas linhas mais recentes foram as primeiras linhas fsicas tambm. Recuperando
receita da semana passada, as vendas no ser uma tarefa muito demorada.
Bitmap-A indexao forma especial de ndice o bitmap ou bitmap
ndice. ndices de bitmap so uma opo ideal para indexao chamado baixo
cardinalidade colunas (colunas com um nmero relativamente pequeno de exclusiva
valores, como gnero ou gnero de filme). A idia bsica que, para a dis-
tinct nmero de valores na coluna, uma projeo bit criado
permite um acesso muito rpido para os valores indexados. Figura 6-6 contm um
exemplo simples disso, uma coluna com trs valores possveis com o
acompanham os valores de ndice de bitmap. Infelizmente, o suporte para bitmap
indexao planejada para uma futura verso do MySQL, mas no est disponvel
ainda.
Particionando-One dos novos recursos mais interessantes no MySQL 5.1
particionamento, que a capacidade de cortar uma tabela em vrias fsica
peas verticais. A vantagem desta tcnica que quando uma consulta
podem ser satisfeitas atravs dos dados em um ou um nmero limitado de parties, o
outras parties que no precisa ser olhado. Nesse sentido, uma partio
uma espcie de ndice de super. Suponha, por exemplo, que uma tabela muito grande
particionada por ms do ano e voc tem 36 meses de dados armazenados. A
referncia de consulta ao ltimo trimestre automaticamente limitada ao
ltimos trs parties, o que lhe poupa o esforo de olhar para o outro 33.
Outra vantagem do uso de parties a possibilidade de queda e (re) criar
parties, por exemplo, ao projetar um round robin''''esquema onde
os mais recentes 36 meses de dados esto sempre disponveis. Neste caso, o
partio mais antiga pode ser simplesmente descartado quando um novo para a corrente
meses podem ser facilmente adicionados para o carregamento de dados atual.
130 Parte II Dimensional Modelagem e Design de Data Warehouse
Tabela de dados
ID
1
2
3
4
5
6
7
COR
Vermelho
Verde
Amarelo
Verde
Amarelo
Amarelo
Verde
Bitmap Index
LX1
1
0
0
0
0
0
0
LX2
0
1
0
1
0
0
1
LX3
0
0
1
0
1
1
0
Figura 6-6: Bitmap exemplo de ndice
Agregao Todos tcnicas de aprimoramento de desempenho por objectivo limitar a
quantidade de dados a ser pesquisado para responder a uma consulta especfica. Isso
pode
tambm ser conseguido atravs de tabelas de agregados em que os resultados pr-
calculados
esto sendo disponibilizadas. Para responder pergunta:''Qual foi a nossa total
receita de vendas por ms por site?'', a consulta no precisa de consulta
Os dados pormenorizados e resumi-lo, mas pode obter os dados diretamente de um
tabela de agregados em que estes resultados esto prontamente disponveis. claro
que o
dados do processo de carga do armazm precisa reconstruir ou atualizar o agregado
tabelas de dados de cada novo tempo adicionado, o que pode tornar este um time-
consuming
e uma tarefa desafiadora, especialmente quando vrias tabelas de agregados foram
criado. Neste ponto, o Mondrian Designer vem agregada ao
de emergncia (ver Captulo 15) para criar essas tabelas automaticamente para voc.
As vises materializadas-A viso materializada '' uma viso com dados.''infeliz-
Infelizmente, este recurso no est disponvel em qualquer banco de dados open source.
Uma viso do banco de dados regular apenas uma definio que imita uma mesa, mas
no
contendo dados reais. Assim, quando uma tela com a receita total por ms por
gnero de filme criado (com soma''''e''''pelo grupo), o banco de dados precisa
para calcular estes resultados das tabelas de pontos de vista de base cada vez que o
ponto de vista
consultado. Uma viso materializada no s armazena esses valores calculados, mas
tambm atualiza automaticamente quando essas tabelas de base esto sendo
carregados
ou atualizados.
Agora, se isso fosse a nica vantagem, ainda seria possvel criar
uma soluo semelhante em qualquer atualizao de banco de dados usando triggers e
procedimentos.
A parte que ainda estariam desaparecidos, nesse caso, a verdadeira beleza
de vises materializadas: redirecionamento de consulta. Esse recurso analisa a consulta
orientada para as tabelas de detalhes e redireciona a consulta materializada
vista quando os dados necessrios est l ou no recupera os dados
das tabelas de detalhe. As vises materializadas podem aumentar drasticamente a
desempenho de um armazm de dados, mas, infelizmente, so suficientes apenas
disponvel em
as edies da empresa de bases de dados principais proprietrios.
Captulo 6 Data Warehouse Primer 131
Mesmo que no h banco de dados de cdigo aberto com esse apoio disponveis,
isso no significa que no h soluo. Novamente, Mondrian precisa
ser mencionado aqui, uma vez que funciona de forma semelhante quando tabelas
agregadas
foram definidos. Mondrian pode ento calcular o custo de resolver o
consulta e, quando se utiliza uma tabela de contagens agregadas melhor, ele usado
pelo
motor.
funes Janela-Para fins analticos, o SQL 2003 Standard
alargado com os chamados funes de janela. Isto permite uma consulta para executar
clculos em cima (parte de) um conjunto de resultados. A vantagem que uma tabela
nica
precisa ser digitalizado uma vez para gerar mltiplas sadas, tais como mdias ou
subtotais. Duas importantes adies SQL cuidar dessa funcionalidade: a
Mais e Partio clusulas. As funes de janela de trabalho em conjunto
regular com funes agregadas como Soma,MdiaE Contagem mas tambm
permite funes especiais, tais como Ranking () e Row_number ().
Janela de exemplo FUNES
A declarao a seguir um exemplo simples de uma tabela com trs colunas:
OrderID, ProductID, e RECEITAS. A tabela contm cinco linhas, com duas
distintas identificaes de produto:
Selecione CdigoDoPedido, ProductID, receita
SUM (receita) OVER (PARTITION BY ProductID) AS
PRODUCTTOTAL, SUM (receita) OVER () AS GRANDTOTAL
DA SQLWINDOW
ORDER BY 1
Os resultados da consulta so apresentados na Tabela 6-
1.
Tabela 6-1: Janela de resultado da funo Set
OrderID
1
2
3
4
5
ProductID
A
A
B
B
A
RECEITAS
3
3
5
5
3
PRODUCTTOTAL
9
9
10
10
9
GRANDTOTAL
19
19
19
19
19
(Continuao)
132 Parte II Dimensional Modelagem e Design de Data Warehouse
Janela de exemplo FUNES (Continuao)
Open Source Apoio janela banco de dados
PostgreSQL suporta funes de janela a partir da verso 8.4, mas o MySQL no
tm essa capacidade, no entanto, nem parte do roteiro MySQL. O MySQL tem apenas
uma funo Rollup para permitir a adio de totais e subtotais dentro do resultado do SQL
definido. A verso do MySQL da consulta anterior parecido com este:
SELECT IFNULL (ProductID, "ALL") AS ProductID,
SUM (receita) AS RECEITAS
DA SQLWINDOW
GROUP BY ProductID WITH ROLLUP
o que resulta em dados apresentados na Tabela 6-2:
Tabela 6-2: Rollup Resultados MySQL
ProductID
A
B
ALL
RECEITAS
9
10
19
Por favor, note que os resultados acumulados so rotulados NULL se no mea especiais
Sures foram tomadas. No exemplo anterior, a declarao do IFNULL toma
cuidado de traduzir o NULL valor para o texto ALL.
Lembre-Arquivamento quando disse que todos os dados histricos devem ser dis-
poder no armazm de dados no menor nvel de detalhe? Bem, ns mentimos (apenas
um
pouco). s vezes suficiente para manter os dados histricos em um agregado
nvel, que ainda pode ser perfeitamente aceitvel para apoiar a anlise de tendncias
(Por exemplo, para analisar as tendncias de vendas dirias por grupo de produtos basta
para armazenar dados no grupo de produto / dia). Um cenrio possvel seria
seja para manter os dados detalhados on-line em um prazo que se deslocam de 24 ou
36 meses;
Aps isso, apenas os agregados diria, semanal ou mensal estar disponvel.
claro que em casos especiais, os dados detalhados podem ser trazidos de volta a
partir de
o arquivo para sustentar a anlise detalhada.
A lista anterior mostra uma srie de maneiras para aumentar o desempenho em uma base
de dados
depsito, mas dependendo do banco de dados real sendo usado algumas dessas
recursos podem no estar disponveis. O Pentaho BI Suite banco de dados independente,
e enquanto estamos usando o MySQL como banco de dados de exemplo neste livro, haver
haver casos em que outros bancos de dados pode ser uma alternativa melhor. Seleo
Captulo 6 Data Warehouse Primer 133
um banco de dados para armazenamento de dados sempre uma questo de funcionalidade
necessria
versus oramento disponvel.
Captura de dados alterados
O primeiro passo para um processo de ETL a extrao de dados de diversas fontes
sistemas e armazenamento de dados em tabelas de teste. Este parece ser um trivial
tarefa e, no caso de inicialmente o carregamento de um armazm de dados geralmente ,
alm
dos desafios decorrentes dos volumes de dados e conexes de rede lenta.
Mas, depois da carga inicial, voc no deseja repetir o processo de completamente
extrair todos os dados novamente, o que no seria de muita utilidade, dado que voc
J tenho um quase completo conjunto de dados que s precisa ser atualizada para
refletem a situao atual. Tudo o que nos interessa o que mudou desde a ltima
carga de dados, ento voc precisa para identificar quais registros foram inseridos,
modificados
ou mesmo excluda. O processo de identificao dessas mudanas e s recuperar
registros que so diferentes daquilo que j est carregado no data warehouse
chamado Captura de dados alterados ou CDC.
Basicamente, existem duas categorias principais de processos CDC, intrusivo e
no-intrusiva. Por intrusiva, queremos dizer que uma operao de CDC tem um possvel
impacto no desempenho do sistema os dados so recuperados. justo dizer
que qualquer operao que exija a execuo de instrues SQL de uma forma ou
outra uma tcnica invasiva. A m notcia que trs dos quatro caminhos
para capturar os dados alterados so intrusivos, deixando apenas uma opo no-intrusiva.
As seguintes sees oferecem descries de cada soluo e identificar as suas
prs e contras.
Fonte de Dados Baseado em CDC
Fonte CDC baseadas em dados baseada no fato de que existem atributos disponveis
no sistema de origem que permitem que o processo de ETL para fazer uma seleo dos
alterado
registros. H duas alternativas aqui:
Leitura direta com base em timestamps (valores de data e hora)-At pelo menos um
timestamp necessria uma atualizao aqui, mas de preferncia dois so criados: um
timestamp de insero (quando o registro foi criada) e um timestamp atualizao
(Quando o registro foi modificada pela ltima vez).
Usando seqncias de banco de dados mais- bases de dados tm algum tipo de
auto-incremento opo para valores numricos em uma tabela. Quando tal
nmero de seqncia est a ser utilizado, tambm fcil identificar quais registros
foram inseridos desde a ltima vez que voc olhou para a mesa.
Ambas as opes requerem mesas extra com o armazm de dados para armazenar as
dados sobre a ltima vez que os dados so carregados ou a ltima seqncia recuperados
nmero. Uma prtica comum criar essas tabelas de parmetros ou em um
134 Parte II Dimensional Modelagem e Design de Data Warehouse
esquema separado ou na rea de teste, mas nunca no armazm de dados central
e certamente no em um dos data marts. Uma hora ou uma seqncia baseada em
soluo sem dvida o mais simples de aplicar e tambm por esta razo uma
dos mtodos mais comuns para a captura de dados alterados. A penalidade para a
essa simplicidade a ausncia de algumas capacidades essenciais que podem ser
encontrados
em opes mais avanadas:
Distino entre inseres e atualizaes somente quando o sistema de origem
contm inserir um carimbo e uma atualizao pode ser a diferena
detectada.
Excludos deteco registar-Este no possvel, a menos que o sistema de origem
apenas logicamente exclui um registro, ou seja, tem um fim ou excludo data, mas no
fisicamente excludo da tabela.
Vrias deteco update-Quando um registro atualizado vrias vezes
durante o perodo compreendido entre a anterior ea data corrente de carga, estas
atualizaes intermedirias se perder no processo.
Em tempo real capacidades, Timestamp ou extrao de dados baseada na seqncia
sempre uma operao em lote e, portanto, inadequado para dados em tempo real
cargas.
Trigger Baseado CDC
Database triggers podem ser usados para disparar aes mediante o uso de qualquer
manipulao de dados
declarao como INSERT,UPDATEOu DELETE. Isto significa que os gatilhos podem
tambm ser usado para capturar essas mudanas e colocar esses registros alterados em
quadros intermdios mudana nos sistemas de origem para extrair dados de mais tarde,
ou para colocar os dados diretamente nas tabelas de preparo do armazm de dados
ambiente. Porque a maioria dos gatilhos para adicionar um banco de dados ser proibido no
casos (que requer modificaes para o banco de dados de origem, que muitas vezes no
abrangidos por acordos de servio ou no permitido pelos administradores de banco de
dados)
e pode severamente abrandar um sistema de transaes, esta soluo, embora
funcionalmente atraente primeira vista, no foi implementado com muita freqncia.
Uma alternativa para usar os gatilhos diretamente no sistema de origem seria
para configurar uma soluo de replicao onde todas as alteraes s tabelas selecionadas
sero
replicado para as tabelas que recebem na parte lateral do armazm de dados. Estes replicado
tabelas podem ser estendidos com o exigido gatilhos para apoiar o CDC
processo. Embora esta soluo parece envolver uma grande quantidade de overhead de
processamento
e requer mais espao de armazenamento, realmente muito eficiente e no-intrusiva
uma vez que a replicao baseada na leitura mudanas a partir dos arquivos de log do
banco.
A replicao tambm uma funcionalidade padro de gerenciamento de banco de dados mais
sistemas, incluindo MySQL, PostgreSQL e Ingres.
CDC Trigger baseado provavelmente a alternativa mais intrusiva descrito aqui
mas tem a vantagem de detectar todas as alteraes de dados e permite quase em tempo real
Captulo 6 Data Warehouse Primer 135
carregamento de dados. As desvantagens so a necessidade de um DBA (o sistema de
origem
modificada) ea natureza de banco de dados especficos das demonstraes gatilho.
Instantneo baseado CDC
Quando no esto disponveis timestamps e dispara ou replicao no so uma opo,
o ltimo recurso usar tabelas instantneo, que pode ser comparada a alteraes.
Um instantneo simplesmente um extrato completo de uma tabela de origem que colocado
nos dados
armazm rea de preparo. Os dados da prxima vez precisa ser carregado, uma segunda
verso (instantneo) da mesma tabela colocado ao lado do original e da
duas verses em relao a mudanas. Tomemos, por exemplo, um exemplo simples de um
tabela com duas colunas, ID e Cor. A Figura 6-7 mostra duas verses deste
mesa, um instantneo instantneo e 2.
Snapshot_1
ID
1
2
3
4
COR
Black
Verde
Vermelho
Blue
Snapshot_2
ID
1
2
4
5
COR
Grey
Verde
Blue
Amarelo
Figura 6-7: verses Snapshot
Existem vrias maneiras de extrair a diferena entre essas duas verses.
O primeiro usar uma juno externa completa na coluna de chave de identificao e marca
as linhas do resultado
de acordo com seu status (I para Inserir, U para atualizao, D para Excluir e, para N
Nenhum) onde as linhas so filtradas inalterada na consulta externa:
SELECT * FROM
(Caso selecione
t2.id quando for nulo, 'D'
t1.id quando for nulo, 'I'
quando t1.color <t2.color> depois em 'U'
else 'N'
final como bandeira
, Caso
t2.id quando for nulo, t1.id
mais t2.id
final como id
, T2.color
fromsnapshot_1 t1
juno externa completa snapshot_2 t2
ont1.id = t2.id
) Um
onde 'N' flag <>
136 Parte II Dimensional Modelagem e Design de Data Warehouse
Isto , naturalmente, quando o banco de dados oferece suporte completo as junes
externas, o que no
o caso do MySQL. Se voc precisa de construir uma construo similar com o MySQL
Existem algumas opes, como as seguintes:
'U' Escolha como bandeira, como t2.id id, como a cor t2.color
de snapshot_1 t1 inner join snapshot_2 t2 em t1.id = t2.id
onde t1.color! = t2.color
Unio todos os
selecione 'D' como bandeira, como t1.id id, como a cor t1.color
de snapshot_1 t1 left join snapshot_2 t2 em t1.id = t2.id
onde t2.id nulo
Unio todos os
selecionar 'I' como bandeira, como t2.id id, como a cor t2.color
de snapshot_2 t2 t1 left join snapshot_1 em t2.id = t1.id
onde t1.id nulo
Em ambos os casos o resultado seja o mesmo, conforme apresentado na Figura
6-8.
BANDEIRA
U
D
I
ID
1
3
5
COR
Grey
NULL
Amarelo
Figura 6-8: Snapshot comparar resultados
A maioria das ferramentas ETL hoje contm funcionalidade padro para comparar dois
tabelas e as linhas como bandeira I,UE Dnesse sentido, assim voc ter mais provvel
usar essas funes padro em vez de escrever SQL. Pentaho Kettle, para
exemplo, contm o Mesclar linhas etapa. Esta etapa demora dois classificado conjuntos de
entrada
e compara-los nas teclas especificado. As colunas a serem comparados podem ser
selecionados, tambm, e uma sada de nomes de domnio da bandeira deve ser especificado.
CDC instantneo baseado pode detectar inseres, atualizaes e excluses, que um
vantagem sobre o uso de carimbos, com o custo de armazenamento extra para os diferentes
instantneos. Tambm pode haver um problema de desempenho grave quando as tabelas a
serem
comparao so extremamente grandes. Por esta razo, acrescentou a ilustrao SQL
porque para este tipo de trabalho pesado, o motor de banco de dados muitas vezes mais
adequados
de uma ferramenta de ETL motor baseado.
Log-base CDC
A forma mais avanada e menos invasiva de captura de dados alterados
usar uma soluo baseada em log. Cada inserir, atualizar e excluir executar a operao em
um
banco de dados podem ser registrados. Em casos usando um banco de dados MySQL, o log
binrio deve
ser habilitado explicitamente na ferramenta Administrador (variveis de inicializao Logfiles).
Daquele momento em diante, todas as alteraes podem ser lidos em tempo quase real a
partir do
Captulo 6 Data Warehouse Primer 137
log do banco de dados e utilizados para atualizar os dados no data warehouse. As capturas
aqui que isso soa mais simples do que realmente . Um arquivo de log binrio deve ser
transformado primeiro em uma forma compreensvel, antes das entradas pode ser lido
em um processo posterior.
A instalao do MySQL contm uma ferramenta especial para esse fim, mysqlbinlog.
Esta ferramenta pode ler o formato binrio e converte-lo em um pouco
formato legvel e de sada podem ler os resultados a um arquivo de texto ou diretamente
em um cliente de banco de dados (no caso de uma operao de restaurao). Mysqlbinlog
tem vrias
outras opes, com o mais importante para nossos propsitos o fato
que possa aceitar um comeo e / ou carimbo do tempo final para ler apenas uma parte do
arquivo de log.
Cada entrada tem tambm um nmero de seqncia que pode ser usado como um
deslocamento, por isso no
duas maneiras de evitar duplicados ou valores perdidos durante a leitura de
esses arquivos.
Aps a sada mysqlbinlog gravada em um arquivo de texto, este arquivo pode ser
analisado
e ler, por exemplo, um passo de entrada Chaleira que l os dados e executa
as declaraes sobre as tabelas de teste correspondente. Para outros bancos de dados no
So solues similares, e alguns oferecem um quadro completo do CDC, como parte de
sua soluo de data warehouse.
A desvantagem de usar um conjunto de banco de dados especfico de ferramentas bvia:
ele s
trabalha com um nico banco de dados. Sempre que houver a necessidade de utilizar um
registro baseado em
soluo em um ambiente heterogneo, vrias ofertas comerciais
disponveis no mercado.
Qual alternativa CDC deve voc escolher?
Como temos mostrado nas sees anteriores, cada uma das opes descritas para
identificao e seleo de dados alterados tm seus pontos fortes e fracos.
Algumas alternativas exigem adaptaes ao banco de dados de um banco de dados
administrador (DBA), alguns podem apoiar em tempo real o carregamento de dados, e outros
suportam apenas uma descoberta parcial de mudanas. Tabela 6-3 resume esses pontos
para ajudar voc a decidir qual opo mais aplicvel sua situao.
Requisitos Variveis de usurio
Isso pode parecer um lugar estranho para falar sobre a mudana de requisitos dos utilizadores
desde
geralmente isso envolve a parte de anlise e projeto de um data warehouse, que
abordada no captulo seguinte. No to estranho que possa parecer, no entanto. Um novo
exigncia de usurio geralmente significa aumentar o armazenamento de dados e da carga
processo de alguma maneira ou de outra. Novos ou requisitos de usurio alterada pode
levar a mudanas em seu data warehouse que vo desde a simples adio de um novo
coluna ou um clculo extra para adicionar um sistema de cdigo inteiramente novo. Usurio
mudanas de requisitos no pode ser apenas baseada na procura (a partir da perspectiva
do armazm de dados), mas tambm pode ser impulsionado por mudanas no funcionamento
138 Parte II Dimensional Modelagem e Design de Data Warehouse
sistemas. Um dos projetos mais desafiadores que voc pode embarcar em se ter um
substituio completa de um ou mais sistemas de origem, por exemplo, a migrao
da aplicao financeira de A para B aplicao financeira de um fornecedor diferente.
Agora imagine que os requisitos do usurio no muda em nada, o que significa que voc
tem que mudar todos os processos ETL sem quebrar a comunicao de informaes
existentes
ambiente, incluindo o data warehouse.
Tabela 6-3: CDC Opes
TIMESTAMP
Inserir / atualizar distino?
Vrias atualizaes detectado?
Exclui identificados?
No-intrusivo?
suporte em tempo real?
Independente do SGBD?
No DBA necessria?
N
N
N
N
N
Y
Y
SNAPSHOT
Y
N
Y
N
N
Y
Y
TRIGGERS
Y
Y
Y
N
Y
N
N
LOG
Y
Y
Y
Y
Y
N
N
impossvel cobrir todas as mudanas que podem ocorrer durante a vigncia do
um armazm de dados, mas h um princpio que deve ser clara e
acordado desde o primeiro dia do incio de uma possvel soluo:
Um armazm de dados um processo, no um projeto.
Portanto, agora que temos que sair do caminho, podemos comear a fazer planos para
acomodar esse processo com algumas diretrizes gerais. Apenas estar ciente das
fato de que tudo vai (finalmente) a mudana, seja ela de relatrios, sistemas de origem,
pessoas e departamentos que utilizam o sistema, basicamente, tudo relacionado ao
o data warehouse ir mudar em algum ponto no tempo. Certifique-se que estes
mudanas podem ser acomodados, seguindo as seguintes regras:
Projeto de data warehouse o como um conjunto de independentes (mas interligadas)
blocos de construo que pode ser facilmente substitudo por solues alternativas. Para
exemplo: suponha que o armazm de dados preciosos substitudo por
um aparelho de armazenamento de dados de outro fornecedor. Quanto no-padro
SQL que voc usa em processos de ETL ou consultas utilizadas para a comunicao?
Use as ferramentas e us-los direito. Todas as organizaes muitas vezes passam
baldes de dinheiro com fantasia de painis de BI e ferramentas de relatrios e contratar
consultores caros para implement-las, mas recusar um pedido de
Captulo 6 Data Warehouse Primer 139
$ 5.000 ferramenta para modelagem e gesto do armazm de dados. Em vez disso, eles
planilhas usar para armazenar as definies manualmente e criar bancos de dados e
tabelas usando as ferramentas padro que veio com o produto de banco de dados. Este
bom para criar rapidamente um prottipo, mas que to longe como deveria ir.
Padronizar. Escolha uma soluo e ficar com ela (a menos que hajam
Como
isso ajuda a acomodar as mudanas? Simples: Quase todo BI ou dados
ferramenta de depsito que voc pode comprar (ou baixar) vai fazer o trabalho. Alguns
pode ter uma interface mais extravagantes ou ter suporte para Flash velocmetros
enquanto outros no, mas basicamente o valor do negcio a informao,
no na apresentao. Um padro que permite ficar com uma organizao
para desenvolver habilidades de profundidade em torno de um produto. Ento, quando
uma nova exigncia
aparece, pode ser rapidamente implementada porque todas as habilidades j esto
disponveis. Este livro ajuda voc a atingir esse objetivo para o Pentaho BI Suite
mas a mensagem mesmo se aplica a todas as outras solues tambm.
Tendncias do Armazm de
Dados
Conclumos este captulo, destacando algumas das atuais e recentes
desenvolvimentos no armazenamento de dados: armazenamento de dados virtual, em tempo
real
armazenamento de dados, bancos de dados analticos, aparelhos de data warehouse, e
on-demand armazns de dados.
Data Warehousing Virtual
Este livro cobre uma abordagem clssica para o armazenamento de dados, o que significa
projetar e construir uma nova arquitetura armazenamento de dados e mover fisicamente
os dados para este armazenamento de dados, fazendo uso de ferramentas de ETL. Esta
abordagem
tambm conhecido como fsica armazenamento de dados. E quando h um fsico
soluo, h provavelmente uma soluo virtual. Como voc j pode
ter adivinhado, um data warehouse virtual no armazena uma rplica dos dados
extrados dos sistemas de origem, mas os dados permanecem nos dados operacionais
lojas. Do ponto de vista do usurio, no entanto, h uma camada especial criado
que traduz os dados transacionais em uma exibio de data warehouse. Dados Virtual
solues de armazenamento tambm pode integrar os dados dos sistemas de origem
diferente,
oferecendo uma exibio ao vivo para os dados, pois no momento da execuo de uma
consulta.
Esta provavelmente a mais notvel vantagem da utilizao deste tipo de soluo:
em tempo real, os dados atuais que voc estar olhando, e voc no precisa de muito
grande
de ferro para armazenamento de dados antes de ser capaz de analisar e informar sobre ela.
Naturalmente, h
so muitas desvantagens tambm: os dados no so limpos, conformada e validado.
Pode drenar o desempenho dos sistemas de origem, e no h nenhuma noo de
140 Parte II Dimensional Modelagem e Design de Data Warehouse
a histria de todos os dados so apresentados na sua forma actual, o que torna difcil de usar
de tendncias e comparaes histricas.
Em muitos casos, solues virtuais e fsicos so usados lado a lado,
onde uma consulta dirigida ao armazm de dados recupera dados histricos de
o armazm de dados fsicos e complementa-as com os dados atuais do
os sistemas de origem. Isso requer uma camada muito inteligente de metadados, que
ainda no est disponvel no quadro Pentaho. Uma opo a considerar na
neste caso, o banco de dados LucidDB analtica, que pode ser usado para embrulhar''''
vistas em torno de qualquer sistema de origem (incluindo, por exemplo, arquivos de texto) e,
em seguida,
comporta-se como uma soluo federados (veja a seo que segue na''Analtica
Bancos de dados''). As consultas so ento orientados para o banco de dados LucidDB, que
por sua vez
redireciona as consultas aos sistemas de origem respectiva. Note-se que esta apenas uma
alternativa leve para vrias solues proprietrias no mercado que tambm
conter caching inteligente e mecanismos de indexao, que LucidDB falta. A
de pleno direito open source soluo de federao de dados no est disponvel por muito
tempo,
mas no incio de 2009 a Red Hat fez sua soluo adquirida MetaMatrix disponvel
um projeto open source chamado Teiid (http://www.jboss.org/teiid).
Referncia Cruzada Para obter mais informaes sobre os dados virtual de armazenagem,
consulte as seguintes fontes:
www.tdwi.org / Publicaes / WhatWorks display.aspx /?
id = 7305
www.b-eye-network.com/channels/5087/view/9752/
www.b-eye-network.com/channels/1138/view/663
www.ebizq.net/topics/eii/features/8153.html
Real-Time Data Warehousing
Nos primeiros dias de data warehousing, semanais e at mesmo cargas mensais
eram uma prtica comum. Atualmente, as cargas dirias so consideradas padro e
h uma tendncia para se mudar para intradia ou at mesmo dados quase em tempo real
cargas. Essa tendncia coincide com uma outra, que visa trazer
Business Intelligence (BI) para o nvel operacional da organizao, tambm chamado
BI Operacional. Um bom exemplo disso os representantes de atendimento ao cliente
necessidade de up-to-date informaes sobre suas contas, incluindo todos os histricos
informaes relacionadas aos seus clientes. BI Operacional sobre um monte de pequenas
decises a serem tomadas por muitas pessoas como parte de seu trabalho dirio, em
oposio
ao BI ttico ou estratgico, o que deixa mais tempo para reviso completa. A
diagrama na Figura 6-9 mostra a relao entre o tempo necessrio para fazer uma
deciso e agir sobre ela, eo valor perdido quando a latncia entre o original
evento de negcios e da deciso tomada muito alto.
Captulo 6
Valor
Evento Business
Capture
Latncia
Data Warehouse Primer 141
Valor Lost
Dados prontos para anlise
Anlise
Latncia
Informao prestada
Deciso
Latncia
Ao Tempo
Ao
Tomadas
Time
Hackathorn Richard. Bolder Technology, Inc., 2007. Todos os direitos reservados. Usado com permisso.
Figura 6-9: Ao valor diagrama
Deste diagrama, voc pode ver que obter os dados para o data warehouse
em tempo real apenas uma parte da histria. Dados ainda precisam ser analisados e
atuada. Existem vrias maneiras de implementar uma soluo que carrega os dados
quase em tempo real, conforme abordado anteriormente no''''Mudou Data Capture seo,
e diversas solues comerciais no mercado que pode simplificar a configurao
de uma tal alternativa. Uma soluo que no foi mencionado l porque
no faz parte do CDC o uso de filas de mensagens. Nesse caso, cada evento de negcios
e os dados resultantes imediatamente repassado como uma mensagem que pode ser
pegou e transformado pelo ambiente de data warehouse. Em todos os casos,
No entanto, essa atualizao em tempo real, precisa ser firmemente ligado para as prximas
etapas
no processo, que tambm pode ser automatizado. Por exemplo, a anlise pode ser
feito usando regras de negcio que dispara automaticamente quando um determinado limiar
alcanado, que ento inicia aes correspondentes tambm. H um
Casal de muito boa fonte aberta regras de negcio motores disponveis, com Drools
(www.jboss.org / baba) E OpenRules (http://openrules.com), Provavelmente
sendo a mais madura e bem conhecida. Pentaho seqncias de ao
Os captulos 4, 13 e 17) tambm pode ser usado para essa finalidade.
Em tempo real, solues baseadas em mensagens que podem ser aplicadas regras de
negcio e fazer
clculos em tempo real so normalmente tratados como processamento de eventos
complexos (CEP).
Uma soluo open source CEP Esper (www.espertech.com), Que um
soluo baseada em mensagens que podem lidar com grandes volumes de dados de
streaming.
Estas ferramentas podem complementar ambientes de data warehouse, mas no so uma
substituto para o processo ETL conforme descrito anteriormente.
Referncia Cruzada Para obter mais informaes sobre os dados em tempo real de armazenagem,
consulte as seguintes fontes:
www.tdwi.org / Publicaes / WhatWorks display.aspx /?
id = 8913
142 Parte II Dimensional Modelagem e Design de Data Warehouse
www.ebizq.net / temas / operacionais bi / recursos
/ 10604.html
www.information-management.com/issues/20040901
/ 1009281-1.html
Bancos de dados analticos
Neste captulo, ns j explicou por que um armazm de dados precisa ser
arquitetada de uma maneira diferente do que um sistema operacional. No entanto, ainda mais
em
casos, o mesmo RDBMS que usado para o sistema de transao tambm selecionada
como banco de dados do data warehouse. Nos ltimos anos, muitos novos produtos
entrou no mercado, que contestou esta abordagem atravs da oferta de recursos que
so especificamente adaptadas para lidar com cargas de trabalho analtico. A utilizao de
OLAP
bases de dados de data marts j foi mencionado, mas uma das mais
abordagens radicalmente novo o surgimento dos chamados bases de dados em colunas ou
lojas de colunas. bases de dados Colunar no armazenam dados em linhas seqencialmente,
mas
horizontalmente em colunas. Isso resulta em uma srie de vantagens:
Poda-Mais consultas analticas pertencem somente a algumas colunas. Consultas
em bancos de dados baseados em linha sempre ler linhas completas a partir do disco,
mesmo
quando apenas duas colunas so selecionadas. Em uma loja de coluna, apenas os
selecionados
colunas precisam ser lidos. Esta caracterstica influencia fortemente o disco I / O,
que um dos limitadores de velocidade maior.
No h necessidade de indexao Porque uma loja de coluna j armazena os dados
coluna por coluna na ordem correta, cada coluna automaticamente sua
prprio ndice.
Porque compresso uma coluna sempre contm dados de um determinado
tipo de dados, os dados podem ser compactados de forma muito eficiente, reduzindo
ainda mais
disco I / O.
Somado a estas vantagens, as lojas de coluna mais comerciais, como Vertica,
ParAccel e XASOL pode ser executado em um processamento paralelo massivo (MPP)
cluster, o que refora ainda mais o desempenho dessas solues.
Ao considerar as alternativas de cdigo aberto, h trs produtos no valor de
vendo:
MonetDB (www.monetdb.com) um produto desenvolvido em holands Livre
Universidade de Amesterdo. Tem uma pegada muito pequena (aproximadamente 5
MB) e
projetado para funcionar principalmente na memria principal, o que explica a
impressionante
resultados de benchmark, mesmo para conjuntos de dados um pouco maiores de 10 e
20GB.
MonetDB recomendado para uso quando houver a necessidade de tempos de resposta
rpidos
conjuntos de dados menores (<10GB).
LucidDB (www.luciddb.org) um banco de dados de colunas concebido a partir do
solo com data warehousing e business intelligence em mente.
Captulo 6 Data Warehouse Primer 143
Ele tambm inclui recursos de ETL com extenses SQL especiais para construir
transformaes. Os desenvolvedores do Pentaho e LucidDB trabalhar em estreita
colaborao
juntos, o que torna esta uma alternativa vivel para pequenos data warehouse
ou dados implementaes mart. LucidDB um armazenamento de dados preferido para
a
Mondrian e tem suporte embutido para o designer Pentaho agregado. Em
Alm disso, Pentaho Data Integration contm um conector LucidDB nativas
a granel e carregador.
Infobright (www.infobright.com) Lanou uma edio de sua comunidade
banco de dados analticos em setembro de 2008 sob a licena GPL. O mais
caracterstica notvel do Infobright que ele age como um mecanismo de
armazenamento do MySQL,
assim voc pode usar o produto para aumentar a capacidade de armazenamento de
dados
do MySQL sem ter de executar ou aprender novas ferramentas. Infobright
capaz de lidar com volumes de dados de at 30 Terabytes e, portanto, um grande
companheiro para a sute de BI Pentaho. Um ponto de cautela, no entanto: o
verso de cdigo aberto no oferece suporte a manipulao de dados SQL INSERT,
UPDATEE DELETE declaraes. Dados precisa ser recarregado toda vez que se
voc precisa para fazer as atualizaes, tornando-se dificilmente utilizvel como um
armazm de dados
soluo. A verso comercial no tem essas limitaes.
Nenhum dos trs produtos mencionados aqui tm o processamento paralelo (MPP)
capacidades, da no pode haver limitaes de escalabilidade. No entanto, os dados
armazns fora do alcance Terabyte 10 ainda no so muito comuns, de modo a
maioria dos casos, essas alternativas podem ajudar na criao de um elevado desempenho
de arquitetura de dados do warehouse utilizando as solues de cdigo aberto.
Armazm de Dados Eletrodomsticos
O desenvolvimento final visvel no mercado de data warehouse o aumento
da assim chamada aparelhos. Ns todos sabemos que os aparelhos, como torradeiras ou
rdios
que s tm de ser conectado a uma tomada e voc est pronto e funcionando.
Aarmazm de dados do aparelho uma soluo plug-and-play que consiste em hardware
e software e tem como objectivo tornar o armazenamento de dados to fcil como torrar uma
fatia de
po. Porque este um mercado emergente, com apenas alguns fornecedores estabelecidos
e um monte de empresas que entraram recentemente no mercado, voc deve tomar
cuidado especial quando se considera uma destas solues.
Vrias empresas que comearam como vendedores de banco de dados analticos agora
parceiro
com empresas de hardware como a Sun (agora Oracle) ou a Hewlett Packard
entregar um aparelho completo. Um fenmeno interessante a adoo
da tecnologia open source dentro destes aparelhos. PostgreSQL, especialmente os
analisador de SQL, utilizada por muitos dos novos fornecedores. Greenplum, por exemplo,
no apenas com base a toda a soluo no PostgreSQL, mas tambm incorpora o aberto
biblioteca de fontes estatsticas Projeto de R para anlise avanada de dados e banco de
dados
minerao.
144 Parte II Dimensional Modelagem e Design de Data Warehouse
Uma das ltimas novos operadores no mercado o aparelho Kickfire
(www.kickfire.com), Que de particular interesse porque arquitetada como
um mecanismo de armazenamento do MySQL pluggable. Isso permite que os armazns de
dados desenvolvido para
MySQL com InnoDB ou MyISAM a ser migrado sem problemas
a um aparelho Kickfire. A empresa um dos poucos fornecedores de aparelho
ter publicado resultados de avaliao de desempenho em www.tpc.org e um
lder do preo / desempenho nos 100 e 300 Gigabyte benchmark TPC-H.
TPC-H uma referncia no setor de medio de desempenho de consulta de BI tpica
consultas como para determinar a quota de mercado ou de volume de vendas de
comunicao para um
determinado perodo.
Em Data Warehousing Demand
Com o advento da chamada computao em nuvem solues [com Amazon Elastic
Cloud Computing (EC2) da infra-estrutura sendo provavelmente o mais conhecido, mas
praticamente a nica soluo no mercado], ele est se tornando vivel para acolher um
armazm de dados ou at mesmo uma soluo de BI completa fora do firewall corporativo.
Solues para hospedagem de aplicativos em um centro de dados off-site j esto disponveis
desde o final dos anos noventa e foram oferecidos por Application Service Providers (ASPs).
Para distinguir os mais recentes desenvolvimentos do conceito ASP original, o
prazo Software como Servio ou SaaS foi introduzido, e s vezes as pessoas
mesmo falar de Banco de Dados ou Data Warehouse como um servio (DaaS, DWaaS3). A
grande diferena a arquitetura compartilhada, onde todos os clientes de um servio
partes uma soluo de infra-estrutura comum, no s a nvel tcnico, mas tambm a
o nvel de aplicao. Ao dividir os recursos disponveis de forma inteligente
(Tambm chamado de multi-tenant soluo), muitos usurios podem compartilhar os mesmos
servidores,
pedidos e licenas, tornando-a muito custo modo efetivo de operao.
Desenvolvimentos nesta rea esto avanando muito rpido por isso no podemos cobrir
qualquer fornecedor especfico ou oferecendo aqui (no so simplesmente demasiado muitos
deles), mas
na luta por uma viso completa precisvamos ressaltar a disponibilidade de
estas solues tambm.
Resumo
Este captulo apresenta uma ampla gama de conceitos e tecnologias relacionados com a
armazenamento de dados. Ns mostramos-lhe as seguintes coisas que vamos construir
para o resto do livro:
O que um data warehouse e como ele pode ajud-lo a atingir seus
objetivos de negcio
3 Qual
engraado, uma vez que a palavra holandesa Dwaas''''significa''Louco.''
Captulo 6 Data Warehouse Primer 145
A arquitectura global de um armazm de dados e todo o edifcio que constituem
blocos que podem ser identificadas dentro desta arquitetura
O objetivo de cada um dos blocos de construo do armazm de dados
Os principais desafios que enfrentam na construo de um armazm de dados: dados
qualidade, dados de desempenho, volume, capturando os dados alterados e adaptao
a evoluo das necessidades
Tambm destacamos a principal diferena entre os dois lderes do autor-
dades em modelagem de dados do armazm, Ralph Kimball e Bill Inmon, e apontou
por que ns escolhemos modelagem tridimensional e arquitetura de barramento para a nossa
exemplo de data warehouse.
Por fim, destacamos as principais tendncias em armazenamento de dados e ilustrado
como o Pentaho BI Suite, o banco de dados MySQL, e outros relacionados com fonte aberta
tecnologias caber dentro
CAPTULO
7
Modelagem de Negcios
Usando esquemas Star
Ao trabalhar com os dados do data warehouse, provvel que esquemas em estrela
so usados para entregar os dados para o usurio final. No diretamente, no entanto,
normalmente,
uma ferramenta de relatrio ou anlise usado para acessar os dados, enquanto os mais
avanados
os usurios podem usar uma ferramenta de consulta diretamente. No entanto, importante
observar que
esquemas estrela o veculo de escolha se trabalhar com um estilo Kimball
arquitetura de dados de nibus ou uma fbrica de informaes Inmon estilo corporativo.
NOTA H uma exceo a esta regra. Um analista avanado ou minerador de dados
muitas vezes precisa de acesso ao conjunto completo de dados no armazm de dados, assim
contornar os esquemas estrela criada em um data warehouse Inmon estilo
soluo. Essa discusso, entretanto, ser limitada a estrela acesso esquema.
O que um esquema em
estrela?
A primeira coisa que voc pode fazer : Por que esses modelos de banco de dados
chamado''Star
esquema?'' Provavelmente porque o diagrama de entidade-relacionamento deste tipo de
esquema se assemelha a uma estrela. O centro da estrela consiste em uma tabela fato
grande e
os pontos da estrela esto as tabelas de dimenso. A maioria dos usurios primeiro encontro
de uma estrela
esquema em um data mart de vendas com clientes, produtos, lojas, promoes e
tempo, como mostrado na Figura 7-1.
NOTA Apesar de usarmos cinco pontos para tornar o modelo se parecer com uma estrela, no de
meios necessrios para usar cinco pontos. Na verdade, mesmo uma tabela fato com apenas uma ou
duas
dimenso tambm chamado de esquema estrela.
147
148 Parte II Dimensional Modelagem e Design de Data Warehouse
Time
Promoo
Vendas
Fatos
Produto
Cliente Store
Figura 7-1: Star diagrama de esquema
a tcnica de modelagem que conta, no o nmero de tabelas de dimenso
utilizado. Um dos benefcios bvios de usar um esquema como este a sua simplicidade
e compreenso para os usurios finais. Muitas vezes, durante a fase de concepo do
um armazm de dados, esquemas estrela so usados para desenhar a traduo inicial de
questes de negcio em banco de dados diagramas lgicos.
NOTA Um diagrama simples e lgico ainda pode levar a uma maior complexidade tcnica
projeto que resulta em um modelo que menos compreensvel para o usurio final que o
projeto da placa inicial branco.
As tabelas de dimenso e tabelas de fato
A prxima pergunta , naturalmente: Qual a diferena entre a dimenso
e tabelas de fato, eo que torna algo uma tabela de fatos? Como voc vai ver
depois, a distino nem sempre clara, e h mesmo ocasies em que
uma tabela de dimenso em um esquema estrela pode tornar-se uma tabela de fatos de outra
estrela
esquema. Uma explicao simples que as tabelas de dimenso conter informaes
sobre as entidades de negcio (clientes, produtos, lojas) e as tabelas de fato sobre
eventos de negcios (vendas, transferncias, ordens). A diferena mais notvel a
as colunas mensurveis, tais como receitas, custos e itens, que fazem parte da
as tabelas de fatos. Alm disso, todos os diferentes ngulos e atributos que so necessrios
para resumir estes fatos so armazenados nas tabelas de dimenso. realmente muito
simples, se voc traduzir um pedido de relatrio tpicos, tais como''Mostre-me o total
valor da ordem por ms, por grupo de produtos''em um modelo tridimensional, como
apresentado na Figura 7-2. O item calculado de interesse (soma do valor do pedido)
um facto, o ms um tempo''''atributo pertencente dimenso de tempo e
Captulo 7 Modelagem de Negcios Usando esquemas Star 149
''Grupo''produto um produto de atributos pertencentes dimenso do produto.
A tabela de fatos, portanto, contm apenas as chaves estrangeiras apontando para a
dimenso
tabelas e atributos que podem ser agregados (elementos quantitativos). Dimenso
tabelas contm todos os atributos que descrevem uma perspectiva certa organizao
(Elementos qualitativos).
dim_date
Integer (4) [PK]: date_key
date_value: DATA (10)
date_daynr: TINYINT (1)
date_dayname: VARCHAR (10)
date_week: TINYINT (1)
date_monthnr: TINYINT (1)
date_monthname: VARCHAR (10)
SMALLINT (2): date_year
fact_orders
Integer (4) [PFK]: product_key
Integer (4) [PFK]: date_key
receitas: DECIMAL (6)
quantidade: SMALLINT (2)
shipping_cost: DECIMAL (6)
dim_product
Integer (4) [PK]: product_key
product_name: VARCHAR (10)
product_type: VARCHAR (10)
product_group: VARCHAR (35)
Figura 7-2: Star exemplo de esquema
Esta data mart lhe d muito pouca informao, pois contm apenas
algumas medies e duas dimenses. No entanto, um bom ponto de partida
ponto para ilustrar como funciona exatamente um modelo tridimensional:
Todas as linhas de fato so armazenados no mais baixo possvel granularidade nvel.
Por
granularidade, queremos dizer a granulao dos dados, uma tabela de fatos no nvel de
data
tem uma menor granularidade do que uma tabela de fatos no nvel do ms. A granularidade da tabela de fatos determinado pela combinao dos
granularidade das tabelas de dimenso. No exemplo, isto significa que para
cada combinao de produto e data de h um possvel fato linha. Nem todos os
combinaes devem estar presentes, claro!
Todas as medidas na tabela de fatos pode ser enrolada ou agrupadas pelos elementos
das tabelas de dimenso, de modo que este data mart pouco pode calcular sua receita
ms, ano e grupo de produtos ou por tipo e ano do produto, ou qualquer
outra combinao desejada.
Voc poderia argumentar que uma ordem tambm uma entidade empresarial e apenas a
ordem
linhas com as operaes especficas so fatos. De certa forma, essa suposio
correta. Este um caso onde a ateno especial necessrio na modelagem dos dados
marts. Mais adiante neste captulo vamos explicar o que necessrio uma ateno especial
e descrever outros tpicos mais avanados de modelagem dimensional. Por agora,
Basta manter a definio simples na mente.
Tabela de tipos de Fato
As tabelas de fatos nem sempre so baseados em transaces sozinho. Transacional tabelas
de fatos
so o tipo mais comumente usado, mas h um par de variaes que
precisa estar ciente. A primeira a acumulando instantneo peridico tabela.
Isso soa mais complicado do que realmente , a nica diferena entre
150 Parte II Dimensional Modelagem e Design de Data Warehouse
uma tabela de fatos regular e este so os campos de data vinculada a um processo especfico
que
precisa ser atualizada quando novos eventos ocorrem. Tomemos, por exemplo, World Class
processo de locao do filme, onde os DVDs so ordenados em uma data do pedido, enviado
sobre uma data de lanamento, e retornou em uma data de retorno. Porque no quero esperar
at que o processo est concludo para comear a digitar os dados, vamos comear por
adicionar
a linha de fato para o data warehouse, quando o pedido feito e, posteriormente,
acumular esta linha com as datas corretas como eles se tornam conhecidos.
Um tipo bem diferente da tabela de fatos o peridica instantneo, que como um
foto tirada a cada dia, semana ou ms. instantneos peridicos so usados quando
preciso congelar os dados que esto apenas indiretamente relacionadas com a transaco.
Um bom
exemplo, no armazm de dados WCM o inventrio de DVD. Os nveis de estoque
mudam constantemente e no h maneira de controlar essas longo do tempo por
usando uma tabela de fatos transacional. A nica opo aqui periodicamente tomar uma
instantneo que permite que voc relate sobre o aumento de nvel de estoque ou diminuio
ao longo do tempo.
Outra maneira de olhar para as tabelas de fatos de transaco e pelo instantneo
tipos de medidas que eles contm. Medidas na tabela de transao regular,
como receita de vendas, pode ser resumida em todas as dimenses, incluindo o tempo.
Estes so referidos como fatos aditivo ou medidas. As medidas em um peridico
tabela instantneo no pode ser facilmente resumida, pelo menos no quando vrios perodos
esto envolvidos. Resumindo os nveis de estoque semanal de DVD no lhe dar uma
estoque total anual! Estas medidas so chamados semi-aditivo, o que significa que
poder acrescent-los juntos (por exemplo, o inventrio total de todos os filmes que starring
Tom Cruise), mas precisa incluir um perodo de tempo ou de filtro para cortar os dados.
O ltimo tipo de medida o no-aditivos fato. Um bom exemplo desta
a temperatura ambiente. No faz sentido para resumir a temperatura
de salas diferentes ou perodos diferentes, apesar de voc sempre pode calcular
mdias.
NOTA A linguagem SQL no oferece suporte semi-aditivos e no aditivos
medidas, mas alguns servidores OLAP pode ser configurado para acomodar
exceo de agregao. Pentaho Mondrian (abordados no Captulo 15) no tem
suporte interno para medidas no e semi-aditivos.
A prxima parte do captulo aborda o SQL bsicos necessrios para a obteno de dados
de esquemas em estrela com tabelas transacionais e de fato se acumulando. Porque
esses dois tipos de tabela de fatos contm transaes, voc pode resumir com segurana
os nmeros que esto a.
Consultando esquemas Star
At agora, voc viu diagramas ligando tabelas de dimenso e de fato juntos, mas
em um banco estas so apenas as tabelas. As relaes nos diagramas so chave estrangeira
Captulo 7 Modelagem de Negcios Usando esquemas Star 151
restries, o que significa que no ser possvel inserir uma chave de produto em
a tabela de fatos ordens se essa chave no existir no dim_product dimenso
tabela. Obtendo dados do banco de dados outra coisa. Para isso, voc precisa
uma linguagem de consulta chamada Structured Query Language, ou SQL. Se voc no est
familiarizado com SQL, no se preocupe, o SQL que voc precisa para recuperar informaes
a partir de um esquema em estrela no muito complicado. E, embora este livro no um
texto SQL, cobrimos o bsico suficiente aqui para que voc possa comear a escrever
consultas para recuperar dados de data marts dados dimensionais. Tudo o que precisamos
para isso
o SELECT declarao, uma forma de juntando os diferentes quadros juntos, e um
compreenso de como grupo os resultados da consulta. Para comear, tem um
olhar para os blocos bsicos de construo de SQL para selecionar dados:
SELECT -Uma lista de colunas, constantes e expresses que deseja
recuperar a partir do banco de dados.
DA -As tabelas e exibies que contm os dados que voc precisa, incluindo
as relaes entre essas tabelas e exibies.
ONDE -As restries que voc deseja aplicar aos dados no selecionado
tabelas, exibies e expresses, excluindo as agregaes.
GROUP BY -Especifica o nvel de resumo da consulta. Todos os no-agregado
colunas e expresses na SELECT lista deve ser parte do GRUPO
POR declarao.
TENDO -Contm condies de resumir expresses, por exemplo, Tendo
soma (receitas)> 100000.
ORDER BY -Indica a ordem em que os resultados sero exibidos.
Se apenas a receita total necessrio que a tabela de fatos, no h necessidade de usar
JOINs ou GROUP BY clusulas, apenas o seguinte:
SELECT SUM (receita)
FROMfct_orders
Esta consulta pouco no lhe diz muito, assim voc pode adicionar a data
dimenso para o clculo da receita por ano:
SELECT
DA
JOIN
ON
GROUP BY
date_year, SUM (receita)
fct_orders
dim_date
dim_date.date_key fct_orders.date_key =
date_year
Agora voc tem uma consulta simples que a base para todas as consultas de outros
possveis
que pode ser executada contra um modelo de dados dimensional. A primeira linha com
o SELECT clusula diz que o banco de dados do conjunto de resultados ser semelhante. Em
seguida,
voc precisa dizer de onde os dados so recuperados usando o DA clusula.
152 Parte II Dimensional Modelagem e Design de Data Warehouse
Voc tambm quer JOIN uma outra mesa e voc precisa dizer que o banco de dados
colunas de juno ser baseada, neste caso, o date_key na dimenso
e tabelas de fato. Finalmente, os resultados so agrupados por todos os elementos do SELECT
declarao de que no fazem parte de uma funo agregada. Por exemplo, quando o
SELECT declarao parecido com este:
date_year SELECT, product_type, product_name, SUM (receita), SUM (quantidade)
o GROUP BY declarao deve ser
GRUPO PELA date_year, product_type, product_name
Para concluir esta consulta tudo que voc precisa para adicionar so os DA e JOIN
partes:
product_type, date_year, product_name,
SUM (receita), SUM (quantidade)
FROMfct_orders
JOINdim_date
ONfct_orders.date_key dim_date.date_key =
JOINdim_product
ONfct_orders.product_key dim_product.product_key =
GRUPO PELA date_year, product_type, product_name
SELECT
Os exemplos do SQL utilizado at agora ainda no o uso de apelidos. Um alias outra
nome que voc pode usar para se referir a uma tabela, coluna ou expresso. Embora eles
sejam
nem sempre necessrio, boa prtica sempre us-los. Adicionando o alias
total_revenue expresso SUM (receita) d mais sentido
coluna do resultado, e o uso de aliases para nomes de tabela permite uma notao abreviada
das condies de juno. Compare o seguinte JOIN clusulas para entender o que
queremos dizer com isso:
fct_orders DA
JOIN ON dim_date fct_orders.date_key dim_date.date_key =
versus
fct_orders FROM como f
JOIN dim_date SOBRE AS d f.date_key d.date_key =
H casos em que o uso de apelidos no opcional, mas necessrio. A
primeiro caso concreto em que os atalhos so, pelo menos, muito til quando o mesmo
nome da coluna aparece em mais de uma tabela do conjunto utilizado na consulta.
Suponha que no exemplo anterior voc quisesse incluir date_key na
conjunto de resultados. Como esta coluna parte da realidade como a tabela de dimenso,
o analisador de SQL no possvel determinar qual a tabela para escolher a coluna, assim
voc
Captulo 7 Modelagem de Negcios Usando esquemas Star 153
necessidade de incluir a referncia da tabela em seu SELECT declarao, por exemplo,
dim_date.datekey SELECT. Agora imediatamente bvio que o uso de uma
alias curto, como dvai poupar muita digitao. A instruo de consulta completa,
incluindo o uso de apelidos, agora a seguinte:
p.product_type, d.date_year, p.product_name,
SUM (f.revenue) AS total_revenue, SUM total_quantity (f.quantity) AS
FROMfct_orders AS f
JOINdim_date como d = ONf.date_key d.date_key
SOBRE AS JOINdim_product p = f.product_key d.product_key
GRUPO PELA d.date_year, p.product_type, p.product_name
SELECT
O segundo caso, onde alias no so apenas prticos, mas necessria quando
a mesma tabela usada em diferentes papis. Um exemplo uma pesquisa que pede para
todos
receitas por tipo de produto com data de fim em 2007 e uma data de lanamento em 2008:
SELECT
DA
JOIN
JOIN
JOIN
ONDE
E
GROUP BY
p.product_type, SUM (f.revenue) AS total_revenue
fct_orders AS f
dim_date SOBRE AS od f.order_date_key od.date_key =
dim_date como SD ON f.ship_date_key sd.date_key =
p dim_product SOBRE AS f.product_key d.product_key =
od.year = 2007
sd.year = 2008
p.product_type, d.date_year, p.product_name
A ONDE parte desta consulta abordado em mais detalhes em breve.
Junte-se a tipos
de
Nos exemplos usados at agora, usamos a clusula JOIN para combinar diferentes
tabelas. Embora isso seja tecnicamente correta, JOIN um atalho para a lista completa
declarao INNER JOIN. O termo interior significa que as entradas das colunas deve
tem um jogo em duas colunas. Isso nem sempre o caso, h, talvez,
produtos que no foram vendidos ainda. Usando um INNER JOIN entre os produtos
e ordens, portanto, gerar um conjunto de resultados que contm apenas os produtos para
que existe uma ordem. Para contornar essa limitao, voc tambm pode usar exterior
junta-se, que ir retornar as linhas vazias tambm. Os trs OUTER JOIN tipos so
ESQUERDA,DIREITOE FULL, E h tambm um especial CROSS JOIN que combine
qualquer valor da coluna de associao de tabelas com qualquer valor da tabela associada.
O conjunto de resultados de uma CROSS JOIN tambm conhecido como um produto
cartesiano. Para melhor
compreender os diferentes tipos de junes, voc pode usar os exemplos a seguir como
uma referncia. Todos os exemplos so baseados em duas tabelas, TABLE_A e TABLE_B, Cada
com duas colunas, id e valor.
154 Parte II Dimensional Modelagem e Design de Data Warehouse
uma tabela
+----+-------+
| Valor | id |
+----+-------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
+----+-------+
b tabela
+----+-------+
| Valor | id |
+----+-------+
| 1 | Vermelho |
| 3 | Blue |
| 5 | Amarelo |
+----+-------+
Um regular INNER JOIN entre as duas tabelas ir produzir um conjunto de resultados com
apenas os valores comuns de ambas as tabelas:
SELECTa.value AS a, b b.value AS
AS FROMtable_a um
INNER JOIN TABLE_B SOBRE AS b a.id = b.id
+-------+-------+
| A | b |
+-------+-------+
| A | Red |
| C | Blue |
+-------+-------+
A LEFT OUTER JOIN ir exibir todos os valores da tabela da esquerda na juno
instruo e exibe uma NULL valor para os valores na tabela direita sem
correspondncia id:
SELECTa.value AS a, b b.value AS
AS FROMtable_a um
LEFT OUTER JOIN TABLE_B SOBRE AS b a.id = b.id
+-------+-------+
| A | b |
+-------+-------+
| A | Red |
| NULL | B |
| C | Blue |
| D | NULL |
+-------+-------+
Captulo 7 Modelagem de Negcios Usando esquemas Star 155
A RIGHT OUTER JOIN exibe todos os valores da tabela da direita na clusula de juno
e exibe uma NULL valor para os valores na tabela esquerda sem correspondncia id:
SELECTa.value AS a, b b.value AS
AS FROMtable_a um
RIGHT OUTER JOIN TABLE_B SOBRE AS b a.id = b.id
+-------+--------+
| A | b |
+-------+--------+
| A | Red |
| C | Blue |
| NULL | Amarelo |
+-------+--------+
A FULL OUTER JOIN declarao no est disponvel no MySQL, mas outros
bases de dados como MS SQL Server e Oracle produziria o seguinte
sada de um FULL OUTER JOIN:
+-------+-------+
| A | b |
+-------+-------+
| A | Red |
| NULL | B |
| C | Blue |
| D | NULL |
| NULL | Amarelo |
+-------+-------+
A ltima opo, o CROSS JOIN, No necessita de colunas de juno de todos:
SELECTa.value AS a, b b.value AS
AS FROMtable_a um
CROSS JOIN TABLE_B AS b
+-------+--------+
| A | b |
+-------+--------+
| A | Red |
| A | Blue |
| A | Amarelo |
| B | Red |
| B | Blue |
| B | Amarelo |
| C | Red |
| C | Blue |
| C | Amarelo |
| D | Red |
| D | Azul |
| D | Amarelo |
+-------+--------+
156 Parte II Dimensional Modelagem e Design de Data Warehouse
Cruz junta so timos para criar relatrios de tabela cruzada em que voc quer ter uma
grade completa com todos os grupos de produtos no eixo y, e todos os meses no x
eixo, independentemente de dados para uma combinao especfica existe ou no.
DICA Recomendamos que voc use sempre a completa adeso clusulas; uso INNER
JOIN em vez de JOIN e LEFT OUTER JOIN em vez de LEFT JOIN.
Restries aplicveis em uma consulta
Na maioria dos casos, uma questo de negcio mais especfica do que as receitas de todos
os
produtos, todos os clientes, e todos os anos. E quando data marts conter milhes
de linhas de dados, tambm invivel para selecionar dados sem colocar alguns
restries na consulta. Por isso, a SELECT declarao tambm pode ser
estendida com uma ONDE clusula para filtrar apenas os dados de interesse. O mais simples
ONDE condio apenas um filtro em um determinado valor, por exemplo, date_year
= 2008 ou date_year> = 2008. A maioria dos operadores de comparao que voc j est
familiarizado com pode ser usado para definir as selees, como =,<,>,<=,> =
e <> ou ! =. Esses operadores comparam o contedo da coluna restrito
ou expresso, com um nico valor. Suponha que voc precisa para filtrar todos os clientes
que tem um sobrenome com trs caracteres ou menos. Ento voc pode usar o
Char_length funo para calcular o nmero de caracteres em uma string e
compare isso com o valor 3:
ONDE char_length (c.last_name) <= 3
As opes do passado, vamos apresentar aqui so os EM e Entre ... e operadores.
Usando EM, A parte esquerda da restrio pode ser comparado a mais de um
nico valor sobre o direito, por exemplo, para selecionar todos os clientes cujos nomes
comear com um A,E,IOu Q:
WHERE SUBSTRING (c.last_name, 1,1) IN ('A', 'E', 'I', 'Q')
O lado direito do EM comparao no precisa ser uma lista predefinida, mas
pode ser uma nova consulta, bem como, que nesse caso chamado de subconsulta.
Subconsultas
pode, naturalmente, tambm ser usado em combinao com todos os outros operadores de
comparao.
A Entre ... e operador pode ser usado para definir um limite inferior e superior
a uma restrio. Entre ... e no exatamente se comportam da maneira como voc pode
esperar que isso tenha cuidado ao usar este. Quando Entre ... e utilizado, como no
a condio P. PRODUCT_PRICE entre 1 e 5, Os valores 1 e 5 so
includos na restrio.
ONDE clusulas no podem ser colocados em qualquer lugar do SELECT declarao, h
regras muito rgidas para sua utilizao. As condies devem ser colocados logo aps o
Captulo 7 Modelagem de Negcios Usando esquemas Star 157
DA mas antes GROUP BY, Como no exemplo a seguir:
p.product_type, d.date_year, p.product_name,
SUM (f.revenue) AS total_revenue, SUM total_quantity (f.quantity) AS
FROMfct_orders AS f
INNER JOIN dim_date como d = ONf.date_key d.date_key
INNER JOIN dim_product SOBRE AS p = f.product_key d.product_key
WHERECHAR_LENGTH (c.last_name) <= 3
GRUPO BYd.date_year, p.product_type, p.product_name
SELECT
Combinando mltiplas restries
Se voc quiser usar mais de uma condio em uma ONDE clusula, voc pode combinar
estes com E e OU operadores. Para aplicar uma lgica mais complexa ou determinado grupo
declaraes em conjunto, abrindo e fechando parnteses so necessrios. Voc j
visto o Entre ... e operador, que na verdade uma abreviao da
usando duas comparaes utilizando > = e <=. Nesses casos complexos, voc
provavelmente vai querer usar parnteses para agrup-los tambm. O seguinte um
exemplo em que o uso de parnteses obrigatrio:
(D.year = 2007 d.month_nr E = 12) ou (d.year = 2008 d.month_nr E = 1)
Sem os parnteses, o conjunto de resultados estariam vazios, porque no existe
uma nica linha que satisfaz D. MONTH_NR = 12 e MONTH_NR D. = 1. Quando o
parnteses so usados, o conjunto de resultados inclui os dados de dezembro de 2007 e
Janeiro de 2008.
Restringir resultados agregados
At agora temos usado restries para filtrar os dados que foi armazenado no
banco de dados. A ONDE clusula s pode filtrar constantes, expresses, e colunas,
no agregados. H situaes em que os valores resultantes de agregao
precisam ser filtrados aps a GROUP BY clusula foi aplicada. Por exemplo,
quando voc est interessado apenas em clientes que tm uma receita total de pelo menos
100 dlares, necessrio resumir primeiro e filtrar depois. Isto pode ser conseguido por
usando o TENDO clusula:
SELECT
DA
INNER JOIN
GROUP BY
TENDO
c.first_name, total_revenue c.last_name, SUM (f.revenue) AS
fct_sales AS f
dim_customer AS C ON c.customer_id = f.customer_id
c.first_name, c.last_name
SUM (f.revenue)> = 100
158 Parte II Dimensional Modelagem e Design de Data Warehouse
Ordenao de Dados
A menos que voc aplicar uma ordem de classificao especfico, os dados retornados
exibido como um
lista, sem qualquer ordenao, o que torna difcil de navegar atravs de um resultado
definido. Ordenao de dados bastante simples, basta adicionar um extra ORDER BY
clusula em
consulta e adicionar as colunas que pretende ordenar os dados. A ordenao aplicada
Da esquerda para a direita na indicao da ordem. A ordenao padro crescente,
mas os dados podem ser requisitados descendente, bem, adicionando o DESC ordenao
especificao:
SELECT
DA
INNER JOIN
GROUP BY
TENDO
ORDER BY
c.last_name c.first_name, sum (f.revenue) AS total_revenue
fct_sales AS f
dim_customer AS C ON c.customer_id = f.customer_id
c.first_name, c.last_name
SUM (f.revenue)> = 100
c.last_name SUM (f.revenue) DESC,
NOTA O MySQL permite que voc use os nomes de alias na TENDO e ORDER BY clusulas
bem, mas a maioria dos bancos de dados no suportam isso.
isso a. Voc ganhou bastante conhecimento de SQL para ser capaz de consultar o
data marts iremos apresentar no restante do livro. Se voc quer aprender mais
sobre o SQL, existe um conjunto abundante de livros e sites disponveis. Mais
informaes especficas sobre a sintaxe SELECT do MySQL pode ser encontrada na
guia de referncia on-line em http://dev.mysql.com/doc/refman/5.1/en/select
. Html.
A arquitetura de barramento
A arquitetura de barramento de dados do armazm foi desenvolvido por Ralph Kimball e
amplamente descrita em seus livros O conjunto de ferramentas de Data Warehouse e Os
dados
Warehouse Lifecycle Toolkit. Ambos os livros so publicados pela Wiley Publishing
e cobrem o ciclo completo da construo, modelagem e manuteno de dados
armazns. O termo nibus refere-se ao fato de que a data marts diferentes
data warehouse so interligados por meio dimenses conformadas. Um simples
exemplo, pode explicar isso. Suponha que voc tenha as tabelas de dimenso para os
clientes,
fornecedores, e dimenses de produtos e pretende analisar os dados sobre vendas e
transaes de compra. No caso das operaes de compra, o cliente
ainda desconhecido por isso no muito til para incluir a dimenso do cliente no
estrela esquema de compra. Para as operaes de venda, a situao ligeiramente diferente:
Voc precisa de informaes sobre o cliente que comprou um produto e os
Captulo 7 Modelagem de Negcios Usando esquemas Star 159
fornecedor o produto foi adquirido. O desenho resultante para esta pequena
armazm de dados de exemplo mostrado na Figura 7-3.
dim_product
Integer (4) [PK]: product_key
Integer (10): product_id
product_name: VARCHAR (10)
product_type: VARCHAR (10)
product_group: VARCHAR (35)
fct_purchases
Integer (10) [PFK]: date_key
Integer (4) [PFK]: product_key
Integer (10) [PFK]: supplier_key
purchase_quantity: INTEGER (10)
purchase_cost: DECIMAL (8)
fct_orders
Integer (4) [PFK]: product_key
Integer (4) [PFK]: date_key
Integer (10) [PFK]: customer_key
Integer (10) [PFK]: supplier_key
receitas: DECIMAL (6)
quantidade: SMALLINT (2)
shipping_cost: DECIMAL (6)
dim_date
Integer (4) [PK]: date_key
date_value: DATA (10)
date_daynr: TINYINT (1)
date_dayname: VARCHAR (10)
date_week: TINYINT (1)
date_monthnr: TINYINT (1)
date_monthname: VARCHAR (10)
SMALLINT (2): date_year
dim_customer
Integer (10) [PK]: customer_key
Integer (10): customer_id
customer_name: VARCHAR (35)
dim_supplier
Integer (10) [PK]: supplier_key
Integer (10): supplier_id
supplier_name: INTEGER (10)
Figura 7-3: Exemplo de arquitetura de barramento
melhor comear com uma arquitetura de barramento de alto nvel antes da matriz de dados
processo Mart projeto iniciado. Figura 7-4 mostra um exemplo da matriz, onde todos
fatos negcio identificadas so colocados nas linhas e todas as dimenses identificadas
nas colunas. O nibus'''' formado pelo processo de negcio principal, ou o
fluxo natural dos acontecimentos dentro de uma organizao. No nosso caso, que seria
requisitar dos fornecedores, armazenagem e movimentao de estoque, recebimento de
clientes
encomendas, envio de DVDs, e gesto de devolues. Dentro de um tal negcio principal
processo fcil marcar todos os relacionamentos entre dimenses e fatos,
o que torna o processo de design fcil de gerenciar e pode tambm ser usado para
comunicar com os usurios de negcios quanto integralidade dos dados
armazm.
Lanamento
DVD
Armazm
Distribuidor Promoo
X
X
Cliente Empregado
As ordens de compra
Inventrio
Os pedidos dos clientes
Retorna
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Figura 7-4: nibus folha matriz
Website
X
Time
Data
160 Parte II Dimensional Modelagem e Design de Data Warehouse
Usando a arquitetura de barramento com dimenses adequadas o que permite a
coleo de data marts a ser tratado como um verdadeiro Enterprise Data Warehouse.
Cada tabela de dimenso concebido e mantido em apenas um local, e
existe um nico processo para carregar e atualizar os dados. Isso contrasta fortemente
com uma coleo de dados independentes marts, onde cada data mart individuais
projetada, construda e mantida como uma soluo pontual. Nesse caso, cada um dos
mart contm suas prprias dimenses e cada dimenso no tem
relao s dimenses semelhantes em outros dados marts. Como resultado desta forma de
de trabalho, voc pode acabar tendo de manter cinco ou mais produtos diferentes
e as dimenses do cliente. Ns opomos a isso fortemente tipo de''arquitetura''! Nossa
conselho sempre comear com o desenvolvimento e concordando com o alto nvel
nibus matriz para identificar todas as entidades de interesse para o data warehouse. S
aps a concluso desta etapa pode projetar o detalhado para a dimenso individual
e tabelas de fato ser iniciado.
Princpios de Design
Assim que voc comear a trabalhar com esquemas estrela de apoio s empresas comuns
perguntas que voc vai se adaptar rapidamente aos princpios de design subjacente. como
dirigir um carro com uma alavanca, o que parece complicado no comeo, mas
sente muito natural uma vez que voc pegar o jeito dele. Adaptar-se ao projeto bsico
princpios de modelagem esquema estrela pode ser ainda mais simples do que aprender a
unidade de uma alavanca. As prximas sees introduzir as seguintes princpios de design
que permitem a concepo de data marts de classe empresarial:
As chaves substitutas
convenes Nome e tipo
Granularidade e agregao
colunas de Auditoria
Data e hora
Desconhecido chaves dimenses
Usando chaves substitutas
Cada tabela em um banco de dados geralmente tem uma chave primria, que o identificador
nico
de um registro. Esta chave pode consistir de uma ou mais colunas, e qualquer tipo de dados
pode ser usado para essas colunas. As bases de dados usado como um sistema de origem
para um
armazm de dados freqentemente contm as chaves primrias consiste em vrias colunas.
Estas chaves primrias vm em todos os tipos e so ou banco de dados gerados ou
Captulo 7 Modelagem de Negcios Usando esquemas Star 161
fornecidos pelo usurio. O termo usado para se referir a essas chaves do sistema de origem
natural
chave, em oposio ao termo artificial ou substituto chave usada em um data warehouse.
chaves naturais geralmente contm informaes sobre a natureza do registro esto
referindo. Uma chave de produto pode, portanto, consistem em vrias partes indicando
coisas como departamento, nmero de reviso do modelo, nmero e tipo de produto.
Quando uma chave composto por uma combinao dessas peas ea chave j suficiente
para revelar a um usurio que os dados se trata, tambm referido como um chave
inteligente.
Do ponto de vista de data warehouse, no h nada sobre um smart smart
fundamental, pois eles ocupam espao desnecessrio e so difceis de construir e manter
ndices. Em um data warehouse, chaves substitutas deve ser utilizado, que
talvez o mais importante princpio do design na construo de um data mart com
esquemas estrela. Uma surrogate key um banco de dados gerado pelo identificador, sem
qualquer
significado inerente. Sua nica finalidade identificar um registro de dimenso
usando o menor tipo de dados possveis. A chave primria de uma tabela de dimenso
portanto, sempre composto por uma nica coluna. Isto importante porque os fatos
registros podem ser identificados normalmente pela combinao das chaves primrias das
as tabelas de dimenso.
Quando voc olhar para o diagrama na Figura 7-1, voc vai ver que cada um de vendas
fato (uma operao de venda individual) tem cinco chaves estrangeiras, para o produto, tempo
cliente, loja e promoes. Agora, suponha que o tempo''''voc usa um
tipo de dados datetime e para todas as outras chaves seu sistema de fonte original
chave primria. Suponha tambm que essas outras chaves so''''inteligente e ocupam 15
caracteres, que converte a 15 bytes. Voc acaba com uma chave de 68 bytes para o
tabela de fatos (4 15 mais 8 bytes para a data e hora). Com 100 milhes de linhas verdade,
voc
necessidade de aproximadamente 6,5 gigabytes para armazenar essas informaes. Usando
o substituto
chaves, isso pode ser reduzido abaixo de 20 bytes por chave (cinco inteiros), resultando em
1,9
GB. Isso 4,6 GB de espao em disco para ocupar menos e tambm (o que mais
importante)
menos disco I / O, quando uma consulta executada.
As chaves substitutas tm outras vantagens tambm:
H sempre apenas uma chave nica coluna para cada tabela de dimenso para que o
resultando ndice de chave primria ser menor.
Integer ndices so geralmente muito mais rpido do que os ndices de caracteres ou
datetime.
Eles permitem o armazenamento de mltiplas verses de um item em que o item
mantm a sua chave da fonte original, mas atribuda uma surrogate key nova.
Eles permitem lidar com as relaes opcional, valores desconhecidos e
dados irrelevantes, que, portanto voc pode evitar o uso de associaes externas em
seu
consultas.
As chaves substitutas podem ser gerados de duas maneiras: usando a funcionalidade de
banco de dados
(Auto-incremento valores ou seqncias) ou usando a ferramenta ETL para gerar
162 Parte II Dimensional Modelagem e Design de Data Warehouse
prximo valores fundamentais. Ns preferimos o ltimo porque algumas ferramentas ETL
necessidade especial
configurao para lidar com chaves de banco de dados gerado.
Naming e Convenes Tipo
A produo do armazm de dados pode conter vrias tabelas e exibies, todos com
muitas colunas de diferentes tamanhos e tipos. Como uma prtica recomendada, use
significativa
nomes, prefixos e sufixos para todos os objetos de banco de dados. Alm disso, institudo
orientaes para os tipos de dados utilizados no armazenamento de dados para aplicar nor-
padronizao e evitar a possvel perda de dados devido converso ou truncamento de
valores. Muitas organizaes j possuem um conjunto de diretrizes de design de banco de
dados
prontamente disponveis e voc pode melhorar ou desenvolver os seus prprios. Em
mnimo, voc deve seguir as convenes de nomenclatura prevista se forem
disponveis.
Para a nossa demonstrao de projectos de data mart, usaremos o seguinte conjunto de
regras:
Todas as tabelas de obter um prefixo (seguido por um sublinhado), indicando o seu
papel
ea funo no armazm de dados:
STG_ para o estadiamento
tabelas
HIS_ para tabelas de arquivo histrico
DIM_ para as tabelas de dimenso
FCT_ das tabelas de fatos
AGG_ de tabelas de agregados
LKP_ para tabelas de pesquisa
Toda a dimenso colunas de chave so nomeados depois que a tabela a que pertencem,
com-
o postfix e obter um _Casos postfix (para a coluna de chave dim_product
nomeado product_keyE assim por diante).
Todas as colunas de dimenso-chave do tipo menor inteiro no assinado
possvel. O MySQL tem cinco tipos inteiros diferentes, que variam de pequenos a
grandes. Inteiros podem ser definidos como ASSINADO ou UNSIGNED, Indicando se
tomam valores negativos e positivos, ou valores positivos sozinho. Para a tecla
colunas, use inteiros sem sinal.
TINYINT -1 Byte, 2 8 valores (0-255)
SMALLINT -2 Bytes, 2 16 valores (0-65532)
MEDIUMINT -3 Bytes, 2 24 valores (0-16,777,215)
INT ou INTEGER -4 Bytes, 2 32 valores (0-4,294,967,295)
BIGINT -8 Bytes, 2 64 valores (0-18,446,744,073,709,551,615)
Captulo 7 Modelagem de Negcios Usando esquemas Star 163
Usar nomes significativos para as colunas. Tentamos de todas as colunas de prefixo
nomes com o nome da tabela, a menos que se torna impraticvel faz-lo devido a
extremamente longos nomes de coluna.
Usar nomes padro para auditoria colunas. Essas so as colunas indicando
quando e quem ou o processo que inseriu o registro ou fizeram a ltima atualizao.
Evite o uso de palavras reservadas para objetos de banco de dados como tabelas,
colunas,
e pontos de vista. Utilizando palavras reservadas como grupo,tempo,vista,fim,campo,
atualizaoE assim por diante torna mais difcil trabalhar com esses objetos em consultas
porque eles devem ser citados para distingui-los as mesmas palavras
na linguagem SQL.
NOTA Inteiros em um banco de dados MySQL so ASSINADO Por padro, o que significa que
assumir valores negativos. Certifique-se de definir explicitamente inteiros para a chave
colunas como UNSIGNED para acomodar uma maior variedade de valores. Se voc omitir o
UNSIGNED palavra-chave, uma TINYINT aceitar valores de -128 a 127. Porque ns
geralmente comeam (auto-) A numerao de 1, quase a metade dos valores, ento, permanecer
no utilizados.
Granularidade e Agregao
Por granularidade, referimo-nos ao nvel de detalhe no qual os dados so armazenados nos
dados
armazm. A regra de ouro aqui para armazenar os dados no menor nvel de detalhe
possvel. Para uma empresa de varejo, isto significa que a operao de venda individual
nvel, para uma operadora mvel, o nvel recorde de detalhes de chamadas. Nos primeiros
dias
de armazenamento de dados, espao em disco era caro e limitado poder computacional,
mas com o estado atual da tecnologia de armazenamento e consulta, terabytes de dados
esto ao alcance da maioria das organizaes.
Um dos equvocos sobre esquemas estrela que as tabelas de fatos deve
ser sempre pr-agregados. Agregao pode ser uma coisa boa para aumentar a consulta
desempenho, mas s depois de carregar os dados no nvel mais baixo de detalhe.
muito fcil de ver se esse nvel mais baixo realmente carregado: Se voc precisa fazer
umsum () funo quando o carregamento de registros de fatos, voc no est carregando o
menor
nvel de detalhe. O raciocnio por trs do projeto de data warehouse para capturar
o menor nvel de detalhe muito simples. Voc pode sempre agregar dados quando
os detalhes esto disponveis, mas quando os dados no esto disponveis, impossvel
para adicion-los sem ter que reconstruir o armazm de dados inteiro.
A agregao pode ter um impacto dramtico no desempenho. Uma tabela que
dados agregados por ms, regio e categoria de produto para exibir em um
relatrio de gesto contm, provavelmente, mais de 1.000 vezes menor do que os dados
o menor nvel da tabela de fatos transao. Ns testemunhamos a velocidade aumenta
consulta
de uma mdia de 30 minutos a um par de milissegundos, usando agregado
tcnicas. Embora estes resultados so espetaculares, voc no deve esquecer que
164 Parte II Dimensional Modelagem e Design de Data Warehouse
o modelo de dados exposto ao mundo exterior (os usurios finais) a detalhada
granular. A existncia de tabelas de agregados deve ser invisvel ao fim
usurios, enquanto o redirecionamento de consultas a partir das tabelas de detalhe para os
agregados
deve ser manuseado por um ser inteligente governador consulta.
Como explicado no captulo 6, este mecanismo de consulta que regem ainda no est
disponveis em bancos de dados open source, mas, felizmente, voc pode usar o agregado
designer de Mondrian, pelo menos parcialmente beneficiar da criao automatizada e
uso de tabelas de agregados em sua soluo de data warehouse. Usando o agregado
designer, juntamente com um banco de dados em colunas, como LucidDB ou Infobright, voc
pode conseguir resultados muito bons consulta combinada com a disponibilidade de execuo
dados de fatos.
Auditoria Colunas
altamente recomendvel incluindo colunas de auditoria no data warehouse. Estes
colunas permitem rastrear dados de sua fonte original, e dizer-lhe
quando uma certa linha foi introduzido ou modificado e quem ou qual o processo
executou a operao. Sob operao normal, o processo de ETL cuida
de todas as alteraes aos dados no data warehouse, mas s vezes pode
necessrias para corrigir manualmente alguma coisa. Quando isso ocorre em um cuidado
construdos tabela de dimenso, importante ter o registro da tabela estas
alteraes automaticamente. Por razes de auditoria recomendamos o uso do
quatro colunas (pelo menos nas tabelas de dimenso):
Inserir hora
Insira processo em lote
timestamp Update
Processo de atualizao em lote
Normalmente os dados em um data warehouse carregado e atualizado em lotes. Para
Nestas situaes, recomendamos tambm usando uma tabela de lotes distintos, que
armazena
informaes sobre o horrio de incio e final do lote, nmero de registros
processado, a mquina o processo a correr, o nome ea verso da ETL
ferramenta que processou os dados, eo perfil do sistema (desenvolvimento, teste e
produo) utilizados. Pentaho Data Integration permite-lhe criar estes log
em ambas as tabelas de trabalho eo nvel de transformao.
A combinao de colunas de auditoria e um lote de identificao ajuda a encontrar e corrigir
problemas de dados no armazm de dados com mais facilidade. Eles tambm podem ser
usados para
demonstrar a veracidade dos dados ou, ainda mais importante, a carga correta de
dados incorretos dos sistemas de origem. Em 99 por cento dos casos, problemas de dados
so devido a erros no sistema de origem, no de erros no processo de ETL ou o
armazm de dados em si. Quando confrontados com as discusses inevitveis sobre o
fiabilidade dos dados no data warehouse, as colunas de auditoria so sua rede de segurana.
Captulo 7 Modelagem de Negcios Usando esquemas Star 165
Modelagem de Data e Hora
Data e hora parecem assuntos triviais no incio, mas quando voc pensa sobre isso por um
alguns segundos h muito mais do que isso. Por exemplo, pense em como voc
seriam responsveis por diferentes fusos horrios da sua organizao opera dentro Ou pense
sobre como lidar com os anos fiscais que esto fora de sincronia com o calendrio regular
ano. A semana de numerao na Europa baseada na ISO 3306, enquanto que no
semana EUA numerao comea em 1 a 1 de Janeiro, causando possveis diferenas na
resultados, quando uma subsidiria da UE relatrios de resultados semanais a uma cabea
norte-americana
escritrio. ISO tambm tem um clculo de anos diferentes, o que significa que o ano ISO
para uma data pode ser diferente do ano civil, da mesma data. E como que
que data do modelo e do tempo? Qual a granularidade que voc deseja usar? Damos-lhe
nossos pensamentos sobre o assunto aqui e um par de dicas e as melhores prticas para
obter
voc comeou, mas finalmente as decises de projeto devem ser feitas por voc com base
no caso em apreo.
Tempo de granularidade da dimenso
s vezes quando as pessoas comeam com a concepo de um modelo dimensional, que
acho que a data ea hora devem ser armazenados em uma tabela nica dimenso. Este
suposio talvez no seja totalmente errado, mas geralmente no o melhor um para
fazer. Suponha que voc queira ser capaz de referncia a dimenso de data e hora por
segundos. H 24 60 60 segundos em cada dia. Durante um ano, consistindo
de 365 dias, voc precisaria de 31.536.000 linhas na tabela de dimenso, e
porque voc geralmente armazenam 10 ou mais anos, que somam mais de 315 milhes
linhas. No se parece com uma abordagem sensata. A alternativa mais radical a
criar uma tabela de dimenso por parte de data e hora. Nesse caso, voc teria que criar
tabelas de dimenso para o ano, ms, dia, hora, minuto e segundo. Estas tabelas
Seria muito pequeno, mas seriam necessrios seis chaves estrangeiras na tabela de fatos.
Este tambm no uma aproximao muito boa. melhor ficar em algum lugar no meio
entre esses dois extremos, criando uma data e uma dimenso de tempo.
Mesmo no caso em que voc precisa para suas transaes referncia especfica
segundo, a dim_time tabela s contm 86.400 linhas. Nossa amostra WCM
armazm de dados utiliza uma dimenso de tempo por minuto, o que s 1.440 linhas.
Hora local Versus UTC
Ao lidar com o tempo, voc tambm deve considerar os desafios apresentados
quando a sua organizao abrange vrios fusos horrios. Nesse caso, pode ser
benfica para adicionar o tempo local e UTC para a tabela dimenso tempo para qualquer
transao pode sempre ser visto sob diferentes perspectivas.
166 Parte II Dimensional Modelagem e Design de Data Warehouse
HORA UTC
UTC um momento de padro internacional e anotao do tempo regido pela
Norma ISO 8601. A sigla um compromisso entre o TUC francs
'(Universel Temps Coordonne) e do Corte Ingls (Coordinated Universal
Time). Qualquer pessoa familiarizada com a terminologia militar deve ter ouvido falar de''Zulu
tempo'', que o mesmo que UTC. fusos horrios internacionais so apontados como UTC
mais ou menos um nmero de horas. Este deslocamento pode mesmo variar ao longo do tempo,
quando
pases alterar o vero comear poupana ou data de trmino, ou quando um governo
(Por exemplo, Venezuela) decide afastar-se as normas internacionais. A
deslocamento fixo em nossa tabela de dimenso de tempo , portanto, uma simplificao do
mundo real.
Data Smart Keys
H uma exceo para o uso do sentido surrogate keys-chave para
a dimenso de data. Ns preferimos usar um inteiro no formato AAAAMMDD para
duas razes. Em primeiro lugar, essa chave pode ser facilmente produzida a partir de uma
data de entrada
e, portanto, salva uma operao de pesquisa na tabela de dimenso de data. Segundo
e provavelmente mais importante o fato de que este esquema de numerao pode ser
usados para dividir suas tabelas de fato. As parties de tabela tambm pode obter um nome
com um
Nmero de extenso da data para identificar facilmente, como para todos os P_200808 agosto
2.008 transaes. Para alm destas duas razes, a utilizao de uma data-chave inteligente
proibida e no pode, em circunstncia alguma, ser usado diretamente em consultas sobre o
tabela de fatos sem participar da tabela dimenso correspondente data.
Handling Time Relativa
Em muitos casos, no estamos interessados em um determinado perodo de tempo, como um
semana ou um ms, mas quero saber o que um perodo especfico de tempo parece
em relao ao outro. A questo como configurar a dimenso de tempo para
lidar com o tempo relativo, como na semana passada, no ms passado, ou mesmo ms do
ano passado.
Claro, voc pode escrever o SQL para recuperar as linhas correspondentes da
banco de dados, mas depois voc nem precisa ajustar a declarao para cada novo perodo,
ou necessidade de usar as funes e expresses para fazer uma dinmica de afirmao. A
exemplos nos blocos de consulta a seguir mostram o que queremos dizer. A primeira consulta
recupera o resultado do ms passado e atual, mas as declaraes so
codificada:
SELECT
DA
d.year4 d.month_number, f.sum (receitas), enquanto receitas
fact_sales AS f
Captulo 7 Modelagem de Negcios Usando esquemas Star 167
INNER JOIN dim_date d ON f.order_date_key d.date_key =
WHEREd.year4 = 2008 E d.month_number entre 7 e 8
Uma verso dinmica poderia ser algo como isto:
SELECT
DA
INNER JOIN
ONDE
E
ENTRE
E
d.year, f.sum, d.month (receitas), enquanto receitas
fact_sales AS f
dim_date d ON d.date_key f.order_date_key =
d.year4 = EXTRACT (ano de NOW ())
d.month_number
EXTRACT (ms de agora ()) -1
EXTRACT (ms de agora ())
Isto ir funcionar bem, exceto quando o ms atual de Janeiro. Para evitar
codificao complexa como esta melhor adicionar colunas adicionais com o tempo
tabela de dimenso que podem ser atualizadas durante o processo de ETL. Como um
exemplo,
ns vamos usar duas colunas: current_month e last_month. Quando aplicvel, os
conter o valor 1, caso contrrio, 0. A mesma tcnica pode ser aplicada a
indicar o ano at data, ms a data, e assim por diante.
Outra tcnica que gostaramos de mencionar o uso de compensaes para ser capaz de
executar aritmtica de data de uma forma simples. Um bom exemplo disso o uso
das datas do calendrio juliano, que so valores inteiros consecutivos. Isto torna muito fcil
para filtrar os ltimos 30 dias ou 30 dias antes da data escolhida. Novamente, voc
pode expandir esta a semanas, meses e anos tambm. Ao definir o atual
semana, ms ou ano a 0 e em contagem decrescente, possvel ter uma
indicador do perodo atual e um meio de filtragem dos ltimos trs meses, a ltima
seis quartos, etc
A Tabela 7-1 mostra uma coleo parciais de linhas e colunas a partir do momento
dimenso para ilustrar esta tcnica. A data atual neste exemplo julho
1, 2009, com uma semana a partir de segunda-feira.
Nesta tabela, voc pode ver trs maneiras de lidar com o tempo relativo:
Nmero de Seqncia-A data do calendrio juliano um nmero inteiro que permite a
simples
aritmtica, por exemplo,''ltimos 30 dias.''Qualquer data pode ser usado como o
deslocamento (a partir
ponto). True / false indicadores-As colunas de semana passado e atual so
atualizado a cada semana. Recuperando a semana em curso uma questo de
adicionar
current_week = 1 a uma consulta.
Seqncia com offset 0-Isto combina as duas primeiras opes em um
coluna. semana em curso sempre 0, na semana passada -1, e assim por diante.
A terceira opo pode parecer a soluo ideal para lidar com tudo relativo
questes de tempo, mas h um prendedor. A corrente extra e ltima semana, com colunas
apenas 1 e 0 permitem fazer clculos tambm. Em muitos casos, necessrio
168 Parte II Dimensional Modelagem e Design de Data Warehouse
lado para ver a ltima semana em curso e de receitas a lado, e isto pode ser facilmente
realizado usando uma declarao como a seguinte:
p.product_type,
SUM (d.current_week f.revenue *) AS current_week,
SUM (d.last_week f.revenue *) AS last_week
FROMfact_sales AS f
INNER JOIN dim_date d ON f.order_date_key d.date_key =
INNER JOIN p dim_product ON f.product_key p.product_key =
WHEREd.week_sequence entre -1 e 0
SELECT
Tabela 7-1: Relativo colunas de hora
date_key
20090620
20090621
20090622
20090623
20090624
20090625
20090626
20090627
20090628
20090629
20090630
20090701
20090702
20090703
20090704
20090705
20090706
date_value
20-jun-09
21-jun-09
22-jun-09
23 jun-09
24-jun-09
25 jun-09
26 jun-09
27-jun-09
28-jun-09
29-jun-09
30-jun-09
1-Jul-09
2-Jul-09
3-Jul-09
4-Jul-09
5-Jul-09
6-Jul-09
date_julian
2455002
2455003
2455004
2455005
2455006
2455007
2455008
2455009
2455010
2455011
2455012
2455013
2455014
2455015
2455016
2455017
2455018
current_week
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
last_week
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
week_seq
-2
-2
-1
-1
-1
-1
-1
-1
-1
0
0
0
0
0
0
0
1
Captulo 7 Modelagem de Negcios Usando esquemas Star 169
Desconhecido chaves de dimenso
Alm das vantagens j mencionadas para a utilizao de chaves substitutas
(Ea explicao programados neste captulo da histria da manipulao dos dados
warehouse), h outra boa razo para usar chaves substitutas. s vezes
os dados sero carregados em uma tabela de fatos e nenhuma tecla correspondente
dimenso pode
ser encontrada com base na chave natural e / ou validade da dimenso
registro. Para esses casos, voc precisa de um mecanismo que armazena os dados de
qualquer maneira
para se certificar de que nenhum dado seja omitido durante o processamento. Por esta razo,
recomendamos ter um registro de desconhecidos em cada tabela de dimenso. Key
gerao de uma dimenso geralmente comea em 1, o que deixa o nmero 0 como um
candidato perfeito para a chave de dimenso desconhecida registro. Este registro deve
ter um valor de''''desconhecidos em todos os campos de atributo. Tabela 7-2 mostra uma
parcial
exemplo do registro desconhecido em uma tabela de dimenso do cliente.
Tabela 7-2: registro de dimenso Desconhecido
chave
0
source_id
0
nome
Desconhecido
endereo
Desconhecido
telefone
Desconhecido
Usamos o valor Desconhecido para informar os nossos utilizadores empresariais que estes
dados no
disponveis. Esta uma alternativa muito melhor do que permitir que NULL valores, que
muitas vezes confunde os usurios. Alm disso, quando NULL Os valores so usados em um
clculo que
pode provocar resultados errados. Um teste simples pode ilustrar isso; apenas o comeo
MySQL Query Browser e digite 'Resultado' SELECT. Isto ir retornar o texto
resultado '. Agora altere a declarao em 'Resultado' SELECT + NULL e ver o que
acontece.
Em alguns casos, um nico indicador desconhecido no suficiente. s vezes, a
dimenso no relevante para um fato especfico. Isso pode ocorrer quando a tabela de fatos
contm diferentes tipos de fatos. Um exemplo disso uma tabela, clique fato fluxo.
Ns gostaramos de armazenar todos os cliques em conjunto para poder calcular facilmente
total de pginas
pontos de vista, mas nem todos os cliques so os mesmos. Alguns so apenas cliques de
navegao, alguns
confirmar a transao, e outros o download de um arquivo. No caso de uma navegao
clique, uma referncia a um arquivo de download no relevante, mas porque ns no
permitimos
NULL valores em nossa tabela de fatos colunas de chave estrangeira, acrescentamos um
substituto especiais
chave com o valor no relevante tabela de dimenso para alm da
desconhecido chave.
Tratando alteraes Dimenso
Dimensional alteraes de dados constantemente. mover clientes, novos produtos so
introduzidas, os funcionrios tero um aumento salarial, armazns obter novos gestores, e
170 Parte II Dimensional Modelagem e Design de Data Warehouse
assim por diante. Um dos principais desafios na construo de um data warehouse a forma
de
adaptar a estas mudanas de modo a que toda a histria relevante capturado e
todas as operaes ligadas correta registros de dimenso histrica. Alguns dos
essas mudanas ocorrem com freqncia, outros apenas ocasionalmente. Algumas alteraes
afetam
um nico registro, e algumas envolvem tabelas completas, como a introduo de um novo
cliente classificao. E algumas mudanas so relevantes para armazenar em um
historicamente
maneira correta para a organizao, enquanto outros podem simplesmente substituir dados
antigos.
Por todas estas situaes, uma estratgia diferente pode ser aplicada, e juntos
eles formam as diferentes formas de manipulao dimenses de alterao lenta (SCDs). Em
sua primeira edio O conjunto de ferramentas de Data Warehouse, Ralph Kimball introduziu
trs
diferentes estratgias SCD: substituir, pilha e adicione. Essas estratgias so
respectivamente chamado SCD tipo 1, 2 e 3, sero descritas em breve. Ao longo dos
anos, muitas outras pessoas da comunidade de modelagem de banco de dados adicionados
novos
tipos e variaes do tipo original do SCD, a atual abordagem abrange
a manipulao de todos as possveis mudanas que podem ser aplicados a dados de origem
e
como lidar com essas mudanas de forma mais eficaz em um data warehouse.
O termo dimenses de alterao lenta um pouco enganador, no sentido
que voc pode ter a impresso de que estes tipos devem ser aplicadas ao
tabela de dimenso completa. Esta uma suposio incorreta de que ns gostaramos
para resolver antes de irmos. Cada coluna em uma tabela dimenso deve ser
tratado individualmente. Por isso, possvel que, para algumas colunas do tipo 1 utilizado,
enquanto para outros o tipo 2 abordagem ser a mais adequada. Outras estratgias
ou combinaes tambm podem ser usados, mas identificar qual estratgia deve ser
aplicada a cada coluna uma parte importante do processo de concepo. Ns vamos dar
algumas dicas de design no prximo captulo sobre como fazer isso e document-lo.
A histria no comea com o tipo 1, no entanto. Existe tambm um tipo 0,
significando tanto no fazer nada''''ou''substituir completamente.''Em ambos os casos, trata-se
no a uma estratgia recomendvel, excepto se se tratar tabelas de dimenso esttica. O
mais
exemplo proeminente destes so as dimenses Data e Hora. muito
improvvel que o valor do ano da data de 20 de janeiro de 2008 nunca vai mudar. O que pode
mudana, no entanto, uma classificao Ano Fiscal, mas, nesse caso, os valores
normalmente
ser substitudas (tipo 1) ou armazenado em uma coluna adicional (tipo 3).
NOTA Nem todos os atributos de dimenso sero utilizados para fins de anlise e, portanto,
nem todos so de interesse para correo histrica. Quais so os atributos analticos e
quais so os detalhes difere por setor e organizao. Em alguns casos, um telefone
nmero apenas um detalhe da dimenso do cliente, que pode ser substitudo quando um novo
valor extrado do sistema de origem. Em outros casos, o nmero de telefone
sendo usado para fins analticos e as mudanas precisam ser controladas. Quando ns
analisar as vendas, geralmente suficiente para o grupo pela cidade, no necessariamente pela rua ou
endereo. Nesse caso, a coluna cidade um atributo analtico e da coluna
endereo um detalhe simples.
Captulo 7 Modelagem de Negcios Usando esquemas Star 171
SCD Tipo 1: Substituir
Um tipo 1 dimenso mudando lentamente o mais bsico e no
exigir qualquer modelagem especial ou campos adicionais. tipo SCD 1 colunas apenas
ser substitudas por novos valores, quando eles vm para o armazm de dados.
Figura 7-5 mostra o que um registro de dimenso parece antes e depois da aplicao
Neste caso, o cliente mudou-se para um novo endereo
em uma determinada data.
Situao existente
_Casos Cliente
1
Nova situao
_Casos Cliente
1
Cliente _id
22321
Cliente _Nome
Humphries
Cliente _City
Toronto
Cliente _id
22321
Cliente _Nome
Humphries
Cliente _City
Vancouver
Figura 7-5: SCD tipo 1 exemplo
Sem o conhecimento adicional, voc no tem nenhuma maneira de identificar quando esta
mudana ocorreu, e mesmo se voc inserir uma coluna extra com uma modificada pela ltima
vez
timestamp voc s sabe que alguma coisa mudou dentro do registro, no
a coluna que a mudana ocorreu. Um tipo 1 substituir abordagem usada
para as colunas que so de interesse para os nossos usurios (caso contrrio, as colunas no
estive l no primeiro lugar), mas apenas o estado atual dos dados
relevantes, mesmo quando se olha para as transaes mais antigas. Lembre-se que quando
voc
substituir uma coluna como esta e executar uma consulta, todos os resultados vo mostrar o
contedo
da coluna como agora, no o valor anterior.
SCD Tipo 2: Adicionar linha
Tipo 2 no ''o''prximo passo em termos de funcionalidade e complexidade, mas
na verdade, uma categoria prpria.
tipo de suporte 2 SCDs com assistentes, macros e outros suplementos nos ltimos
par de anos, ento hoje voc vai ser duramente pressionado para encontrar uma ferramenta
sem que isso
apoio. Claro, Chaleira / PDI tambm tem essa funcionalidade na Dimenso
Pesquisa / passo Update. Mas o que exatamente ele faz? SCD tipo 2 a histria
preservao e permite que uma organizao para captar alteraes em uma dimenso
tabela para recuperar o histrico de dados corretos ao consultar o data warehouse.
Figura 7-6 mostra o mesmo exemplo do pargrafo anterior, mas agora
Voc pode acompanhar as mudanas atravs do tempo, acrescentando alguns campos
extras. H
mltiplas formas de modelar este ou armazenar vrias verses, a mais bsica
uma a de adicionar apenas um valid_from hora para o registro de dimenso. Omitindo
correspondente valid_to timestamp adiciona complexidade extra ao tentar
recuperar a verso correta da entrada, por assim marcar este como um imperativo
172 Parte II Dimensional Modelagem e Design de Data Warehouse
campo para este tipo de mudana tambm. Duas outras colunas extras podem muitas vezes
ser
encontradas no tipo 2 mesas de apoio: a current_record coluna indica a
verso atual do registro de dimenso, e um nmero de seqncia ou verso
que incrementado cada vez que uma nova verso do registro adicionado.
Agora voc pode fazer muitas coisas interessantes com esses dados. Suponha que o Sr. ou
Sra. Humphries um cliente regular e ordens algo cada ms.
O que acontece em sua tabela de verdade, quando estas operaes so carregados que o
processo de ETL olha para o registro de cliente vlido para cada cliente em particular
no momento do embarque. Isso significa que toda a ordem linhas de fatos para o cliente
com o ID 22321 (a origem do nmero de clientes do sistema) ir armazenar customer_key
1at 01 de maio de 2008, ea utilizao customer_key 2 a partir desse dia at a prxima
mudana para este cliente aplicada. A tabela de fatos exemplo exibido na
Figura 7-7.
Situao existente
Customer_key
1
Customer_id
22321
Customer_Name
Humphries
Customer_City
Toronto
Valid_from
1900-01-01
Valid_to
9999-12-31
Current_record
1
Nova situao
Customer_key
1
2
Customer_id
22321
22321
Customer_Name
Humphries
Humphries
Customer_City
Toronto
Vancouver
Valid_from
1900-01-01
2008-05-01
Valid_to
2008-04-30
9999-12-31
Current_record
0
1
Figura 7-6: SCD tipo 2 exemplo
fatos Vendas
Customer_key
1
1
1
1
2
2
2
2
Date_key
20080123
20080208
20080315
20080421
20080511
20080609
20080729
20080817
Product_key
123
221
332
334
221
432
554
101
Itens
1
2
1
1
2
3
1
2
Receita
5
10
5
5
10
15
5
10
Figura 7-7: Fatos com SCD tipo 2
Agora, quando voc quer saber como a receita foi gerada em muito
Toronto em 2008, e voc executar essa consulta, em setembro, a condio
onde customer_city = 'Toronto'. O registro de dimenso com o valor 1
para customer_key o nico registro que satisfaa essa condio. E porque
a associao est em customer_key, Apenas as quatro primeiras linhas da tabela de fatos so
recuperados para este cliente. Quando a condio onde nome_cliente =
"Humphries ', Ambos customer_id 1 e 2satisfaz a condio e todos o fato de
linhas sero retornadas.
Captulo 7 Modelagem de Negcios Usando esquemas Star 173
PROCESSAMENTO DE DADOS TIPO 2 SCD
Um processo de ETL, se a mo codificados ou codificados com uma ferramenta, precisa ter
vrios recursos para tratar alteraes do tipo 2 dimenso. Primeiro de tudo, o
dados de entrada devem ser comparados com os dados que j existe na
Dimenso da tabela. A sada deste processo o conjunto de dados de entrada com
bandeiras acrescentado para novas linhas (I para Inserir) a serem inseridos, as linhas existentes que
necessitam de
ser atualizado (U para atualizao), e possivelmente at mesmo excludo linhas que no
existe mais no sistema de origem (D para Excluir). Com base na I U, ou D
bandeiras, em seguida, o processo deve atribuir novas teclas de substituto no caso de insero
ou atualizaes. Inseres so fceis: a nova linha pode ser adicionada com o padro
definies para valid_to e current_record. Para obter uma atualizao adicional
transformao necessria: a linha existente precisa ser detectado (por isso o
current_record indicador muito til), o valid_to timestamps necessidade
a ser definida para o valor correto, e os current_record bandeira tem de ser definido
para um valor de 0, N, ou qualquer lgica que voc desenhou para ela. Em seguida, uma nova
registro com os dados atualizados ter que ser criada, uma surrogate key gerada,
ea data e hora apropriada e current_record bandeira precisa ser definido.
Como excluir dados dimensional fora de questo (que provavelmente ainda
referenciada por fatos existentes), os registros com uma bandeira excluir obter a sua valid_to
timestamp definido. Alm disso, outro indicador pode ser usado para marcar o registro
como excludo. Uma possvel soluo usar um valor diferente de 0 ou 1 para o
current_record pavilho.
Claro que h mais para captar a histria em um data warehouse, que
apenas a verso simples de correo histrica. Por exemplo, pensar sobre o
seguinte questo: o momento em que ns usamos para o valid_from e valid_to
timestamps? o momento de inscrio da alterao no sistema de origem? A
vez que os dados foram carregados no data warehouse? O tempo real no real
mundo, quando ocorreu o evento? Ou o momento em que fomos notificados da presente
evento? A terceira opo parece ser a verso mais adequada ea
melhor representao do evento real, mas como vamos controlar isso? Em alguns
indstrias, tais como o negcio de seguros, todas estas horas devem ser
e armazenados no data warehouse deve ter uma explicao completa para o histria da
histria, como chamado, tambm. Uma discusso mais aprofundada do problema est alm
do
escopo deste livro, mas queramos a levantar a questo para ser completo aqui.
Para o restante deste livro, vamos usar a verso padro da histria
conservao, como mostrado nos exemplos mostrados nas Figuras 7-6 e 7-7. Ns
tambm adicionar uma coluna de verso extra para capturar o nmero de alteraes feitas em
um
registro de origem particular.
174 Parte II Dimensional Modelagem e Design de Data Warehouse
SCD Tipo 3: Adicionar Coluna
O tipo 3 A estratgia exige pelo menos uma coluna extra na tabela de dimenso.
Quando os dados para um tipo de trs alteraes de coluna, o valor existente copiado para
o extra _old coluna enquanto o novo valor colocado na coluna regular.
Figura 7-8 mostra um exemplo disso.
Situao existente
_Casos Cliente
1
Nova situao
_Casos Cliente
1
Cliente _id
22321
Cliente _Nome
Humphries
Cliente _City
Toronto
Cliente _City_Old
Toronto
Cliente _id
22321
Cliente _Nome
Humphries
Cliente _City
Vancouver
Cliente _City_Old
Toronto
Figura 7-8: SCD exemplo do tipo 3
Isso pode parecer uma estranha forma de manter os valores anteriores primeira vista, e na
maioria dos
casos ela . S possvel lidar com uma verso anterior. Armazenamento adicional
mudanas requer uma coluna extra para cada verso que voc deseja manter. Mas
imaginar que as alteraes da estrutura da organizao completamente, ou completamente
nova estrutura do grupo produto introduzido. Nesses casos, onde todos os registros
mudana, ao mesmo tempo, faz sentido usar uma coluna extra. Manuseamento
essas grandes mudanas com um cenrio do tipo 2, duplica o nmero de registros em
sua tabela de dimenso e na maioria dos casos, apenas a nova estrutura dos dados
relevantes. A verso antiga mantida apenas para efeitos de referncia ou como uma
traduo
tabela.
SCD Tipo 4: Mini-Dimenses
modelagem dimensional Kimball introduz o termo mini-dimenso. Alguns
fontes afirmam que este um cenrio do tipo 4, outros usam o termo''4''tipo de
outros fins. As noes de tipo 4 e 5 SCDs foram introduzidas em 1998
por Michael Schmitz, um renomado especialista em armazenamento de dados e dimensionais
modelagem. Estamos em conformidade com essa classificao aqui, em contraste com outras
fontes
como a Wikipedia, que usa uma classificao diferente.
Mini-dimenses resolver dois problemas especficos com a mudana de dimenso
tabelas. Um problema ocorre quando as tabelas de dimenso ficar realmente grandes,
digamos, um
dimenso do cliente, com 150 milhes de linhas (elas existem!). O segundo problema
ocorre quando as mudanas acontecem com muita freqncia, causando a tabela de
dimenso
dobrar ou triplicar de tamanho a cada ano. O truque aqui a primeira a identificar quais
atributos analticos mudam muito freqentemente e coloc-los como um grupo em um
ou mais tabelas de dimenso em separado. O resultado disso um ou mais extra
chaves de dimenso na tabela de fatos.
Captulo 7 Modelagem de Negcios Usando esquemas Star 175
Aqui est um exemplo. Suponha que voc tenha uma tabela de clientes com grande
dimenso
os atributos cidade,regio,pas,gnero,birth_dateE renda. O primeiro
trs campos podem ser classificados como dados geogrficos, os trs ltimos tm mais
natureza demogrfica. Naturalmente, a descrio do gnero no muda muito
muitas vezes, mas provavelmente um dos principais atributos para fins analticos. Estes seis
campos pode ser posta em duas dimenses diferentes mini, um dim_geography
e um dim_demography.
Mini-dimenses fazer honra ao seu nome: Eles geralmente so muito pequenas,
no s no nmero de registros, mas tambm no nmero de atributos, como no presente
exemplo. H, no entanto, uma troca envolvidos, a fim de manter este nmero
de registros to pequenos quanto possvel. Quando um atributo como a renda usada em
uma mini-dimenso, impossvel para armazenar todos os possveis valores diferentes, assim
voc
necessidade de trabalhar com valores em faixas ou intervalos. Lembre-se que quando se
utiliza campos
A, B e C para uma mini-dimenso, o nmero de registros determinada pela
multiplicando o nmero de possveis valores de A, B e C. Ento, se cada idade a partir de
0-100 usado, o multiplicador j 101. Faz mais sentido definir
idade e faixas de renda, talvez 10 de cada, resultando em 100 registros. Multiplicado
pelos trs valores possveis para o gnero (masculino, feminino e desconhecidos) a
nmero de linhas no mini-dimenso ser de 300, que muito pequeno, por qualquer
padro. Mini-dimenses, com 100.000 linhas no so incomuns e com o
estado atual da tecnologia tambm no um problema. Se o mini-dimenses obter qualquer
maior do que isso, aconselhvel para redesenhar a tabela de dimenso e talvez dividir
-lo novamente em dimenses menores. Figura 7-9 mostra um exemplo de modelo de dados
com uma tabela de fatos e trs tabelas de dimenso das quais duas so mini-dimenses.
A fim de fazer este trabalho necessrio identificar a dimenso correta mini-
chave quando o carregamento de dados, o que requer uma sobrecarga extra. Por exemplo,
para
determinar a faixa etria pertence a um cliente, preciso calcular a idade
com base na data de carga e data de nascimento do cliente. O mesmo vale para a renda
banda e todos os outros atributos necessrios para determinar a dimenso correta mini-
chave. A recompensa, porm, enorme. De repente, muitas poucas mudanas podem ocorrer
a sua tabela de dimenso''principal''. A histria est perfeitamente coberta no fato de
tabelas usando o mini-dimenso chaves estrangeiras, e ainda por cima, voc tambm
acrescentou a chave de dimenso mini-curso para a tabela dimenso principal. Este ltimo
Alm disso permite ao usurio utilizar o mini-dimenses em conjunto com o
dimenso principal, sem a necessidade de tabela de consulta fato. Na verdade, este modelo
serve a dois propsitos: ele d o valor do registro atual dimenso, que
muito til para selecionar os grupos-alvo, por exemplo, para marketing direto
campanhas, mantendo a histria completa dos atributos de anlise na
tabela de fatos.
176 Parte II Dimensional Modelagem e Design de Data Warehouse
dim_geography
Integer (10) [PK]: geography_key
geography_city: VARCHAR (50)
geography_region_code: CHAR (2)
customer_region_name: VARCHAR (50)
customer_country_code: CHAR (2)
customer_country_name: VARCHAR (50)
dim_customer
Integer (10) [PK]: customer_key
Integer (10): customer_id
customer_first_name: VARCHAR (35)
CHAR (1): customer_middle_initial
customer_last_name: VARCHAR (30)
customer_address1: VARCHAR (50)
customer_address2: VARCHAR (50)
customer_postal_code: VARCHAR (10)
customer_city_name: VARCHAR (64)
customer_email_address: VARCHAR (64)
customer_telephone_number: CHAR (12)
customer_date_of_birth: DATA (0)
customer_website_name: VARCHAR (50)
Integer (10) [FK]: geography_key
Integer (10) [FK]: demography_key
valid_from: DATA (10)
valid_to: DATA (10)
Verso: INTEGER (10)
current_record: TINYINT (10)
last_modified: TIMESTAMP (10)
fact_orders
Integer (10) [PFK]: geography_key
Integer (10) [PFK]: customer_key
Integer (10) [PFK]: demography_key
receitas: DECIMAL (6)
quantidade: SMALLINT (10)
shipping_cost: DECIMAL (6)
rental_duration: INTEGER (10)
dim_demography
Integer (10) [PK]: demography_key
age_group: VARCHAR (10)
Sexo: CHAR (10)
income_group: VARCHAR (20)
Figura 7-9: Mini-dimenses
SCD Tipo 5: Tabela de histrico separada
At agora, as mudanas de dimenso tm afetado a forma como voc olha para sua consulta
resultados com relao ao fato de as linhas correspondentes. As diferentes estratgias
permitem identificar qual verso de um registro de dimenso era vlido no
tempo de uma operao, seja uma venda, uma movimentao de estoque, ou algum outro
evento empresarial. Tipo 5 um pouco diferente, pois no pode ser usado para
executar consultas analticas que utilizam a tabela de fatos tambm. Com o tipo 5, uma em
separado
tabela de histrico criado para uma tabela de dimenso com o nico propsito de informar
corretamente
capturar todas as alteraes a todos os atributos na tabela de dimenso. Um tipo 5 Estratgia
, portanto, alm dos tipos existentes e SCD deve ser utilizado em
conjunto com um ou uma combinao das outras estratgias. Tipo 5 histria
tabelas no devem ser utilizadas para consultas analticas envolvendo tabelas de fatos.
Figura 7-10 mostra um exemplo deste tipo de mesa junto com o pai
Dimenso da tabela.
Captulo 7
dim_customer
Integer (10) [PK]: customer_key
Integer (10): customer_id
customer_first_name: VARCHAR (35)
customer_last_name: VARCHAR (30)
customer_address: VARCHAR (50)
customer_postal_code: VARCHAR (10)
customer_city_name: VARCHAR (64)
customer_email_address: VARCHAR (64)
customer_telephone_number: CHAR (12)
--- --- Colunas adicionais omitido: NULL (0)
Modelagem de Negcios Usando esquemas Star 177
customer_hist
change_timestamp: TIMESTAMP (10) [PK]
Integer (0) [PFK]: customer_key
Integer (10): customer_id
SMALLINT (2) [FK]: change_type_id
customer_first_name: VARCHAR (35)
customer_last_name: VARCHAR (30)
customer_address: VARCHAR (50)
customer_postal_code: VARCHAR (10)
customer_city_name: INTEGER (64)
customer_email_address: VARCHAR (64)
customer_telephone_number: CHAR (12)
customer_change_type
SMALLINT (2) [PK]: change_type_id
first_name_changed: BIT (1)
last_name_changed: BIT (1)
address_changed: BIT (1)
postal_code_changed: BIT (1)
city_name_changed: BIT (1)
email_address_changed: BIT (1)
telephone_number_changed: BIT (1)
Figura 7-10: Tipo 5 tabela de histrico
Isto quase parece uma tabela de fatos, e realmente tem alguns dos mesmos
caractersticas como uma tabela de fatos. No entanto, no existem fatos reais: No h nada
para resumir, porque no existem elementos mensurveis. O nico disponvel
opo contar o nmero de clientes ou de mudanas, mas que poderia ser uma
atividade bastante interessante: Quantas vezes os clientes recebem um novo e-mail
endereo? Qual a taxa mdia mvel?
Observe tambm que o esquema apresentado na Figura 7-10 contm uma tabela de tipo de
mudana que
serve como uma tabela que indica exatamente o que os valores mudaram.
Tabela 7-3 mostra os primeiros registros desta tabela para que voc possa ter uma sensao
de
O que estes dados se trata.
Tabela 7-3: Cliente tabela tipo de alterao
telephone_n
umber_chan
ged
verdade
verdade
falsa
falsa
1
2
3
4
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
falsa
verdade
falsa
verdade
verdade
falsa
email_addre
ss_changed
postal_code
_changed
first_name_
changed
last_name_
changed
city_name_c
hanged address_ch
anged
change_typ
e_id
178 Parte II Dimensional Modelagem e Design de Data Warehouse
tipos de mudana so tambm um indicador perfeito para as questes de qualidade de
dados. Olha, para
exemplo, no nmero de tipo 4, onde s o nome da cidade ser alterado. muito
improvvel que isso acontea sem a mudana de endereo, cdigo postal e
possivelmente o nmero de telefone tambm. Independentemente de saber se voc substituir
valores existentes em sua dimenso de clientes, as mudanas devem ser controladas em
tabela de histrico. O efeito final uma pista de auditoria completa das mudanas na
dimenso
de dados. Lembre-se, contudo, que este tem uma funo diferente do que o normal
tabelas de dimenso e de facto utilizados para relatrios e anlise.
O exemplo descrito anteriormente apenas uma das muitas solues possveis
para a modelagem de uma pista de auditoria completa de dados. Outra abordagem comum
imitar
as tabelas de alterao ou registro usado por muitos sistemas de gerenciamento de banco de
dados para
replicao e sincronizao de dados entre dois ou mais bancos de dados. Alm da
dados alterados, essas tabelas de alterao conter a chave de registro, alterar data e hora,
eo indicador de mudana de tipo I, U ou D para Insert, Update e Delete.
s vezes antes e depois imagens esto presentes nesses quadros, comparveis
para um tipo de cenrio SCD 3.
SCD Tipo 6: Estratgias Hbridas
Tipo 6 realmente no existe, mas s vezes descrito como 1 +2 +3 = 6, indicando
que uma mistura de diferentes estratgias aplicadas a uma tabela nica dimenso.
Kimball d um exemplo disso em O Data Warehouse Lifecycle Toolkit. A
pedido de negcios comuns ''Eu quero ver todas as receitas do produto de acordo com
a verso atual do grupo de produtos.''Esta consulta no pode ser respondida se um
grupo de produtos tratada como um atributo do tipo 2, que geralmente o caso. Um
maneira de resolver isso adicionar um atributo do produto extra para a tabela de dimenso
onde a verso atual do grupo o produto armazenado para todas as verses do
produto. Tabela 7-4 ilustra esta caracterstica.
Tabela 7-4: Hybrid estratgia SCD
product_gro
up_curr
101
102
103
ABC
ABC
ABC
AcidRip
AcidRip
AcidRip
Software
Freeware
Open Source
Open Source
Open Source
Open Source
1-1-1900
13-3-2002
1-1-2009
12-3-2002
31-12-2008
31-12-9999
falsa
falsa
verdade
current_reco
rd
product_gro
up
product_na
me product_key
valid_from product_id
valid_to
Captulo 7 Modelagem de Negcios Usando esquemas Star 179
Usando esta tcnica de modelagem, voc ainda pode armazenar a verso correta
do produto em sua tabela de fatos para correo histrica, mas essa tcnica
tambm permite ao usurio olhar para esta informao, como se toda a histria foram
baseados em
a classificao do grupo atual do produto. Isto , no entanto, no muito flexvel
soluo e funciona apenas para um ou poucos atributos. Outra maneira de resolver este
problema juntar a tabela mesma dimenso na identificao de origem, e restringir
a tabela extra juntou no registro atual. Ao fazer isso, todos os atributos podem
ser usado como''''e, ao mesmo tempo recuperar o histrico completo do fato
tabela com base nas chaves SCD. A ltima opo adicionar uma dimenso adicional
tabela com apenas os valores de corrente na mesma. Esta tabela dimenso atual, em
seguida, ser
obter sua prpria chave na tabela de fatos. Uma desvantagem desta soluo que voc
precisa de um
coluna de chave extra na tabela de fatos para cada dimenso atual de adicionar este caminho.
Advanced Concepts Modelo Dimensional
Projetando um armazm de dados pode ser uma tarefa difcil, especialmente quando parece
que nenhuma das tcnicas descritas at agora resolver o seu problema especfico.
O que voc deve fazer quando, por exemplo, a sua dimenso de cliente realmente,
realmente grande, como 150 milhes de discos? Essa a questo das dimenses monstro.
Ou o que se pode existir vrios valores para uma entrada nica dimenso? O WCM
banco de dados tem um dim_dvd_release dimenso do produto, mas cada filme tem
mltiplos atores em campo. Como voc se este modelo? E o que dizer quando
tiver terminado de modelagem e h alguns atributos que no sobra
parecem se encaixar em algum lugar? As prximas sees mostram-lhe os conceitos
avanados
necessrias para resolver estes problemas e explorar a modelagem dimensional
tcnica.
Dimenses Monster
Mencionamos os 150 milhes de tabela de clientes registro antes. Talvez o seu
dimenso do cliente no to grande, mas mesmo com 5 milhes de registros, mantendo-se
a tabela de dimenso em uma janela de lote limitado pode ser bastante difcil.
Ns mostramos uma das solues para fazer uma melhor dimenso do monstro
o desempenho da consulta gerenciveis e otimizar: a mini-dimenses. Ainda assim,
quando a sua dimenso monstro contm uma grande quantidade de colunas de detalhe que
no ser
utilizadas para fins de anlise de qualquer maneira, pode ser uma boa idia de dividi-las em
uma tabela separada, tambm chamado particionamento vertical. A velocidade de consulta
em uma linha-base
banco de dados como o MySQL no determinada apenas pelo nmero de linhas, mas
tambm
pelo tamanho total de bytes de cada linha. Quando um banco de dados baseado em colunas,
como
Infobright, LucidDB ou MonetDB usada, esta penalidade eliminada pelo
fato de que os dados j esto armazenados em forma de coluna por coluna, o que
eliminando a necessidade de particionar a tabela mesmo.
180 Parte II Dimensional Modelagem e Design de Data Warehouse
Uma terceira opo particionar a tabela horizontalmente. Este um bem comum
tcnica para as tabelas de fatos que normalmente so divididos por perodo de tempo, mas
no
muito utilizados para as tabelas de dimenso. O problema com o particionamento horizontal
que uma chave de partio deve ser definida de tal forma que o particionamento do
faz sentido. O benefcio de particionamento horizontal reside no fato de que, quando
uma consulta analisado, o otimizador pode determinar quais as parties de usar e
que no, com base na chave de partio. A maioria das consultas envolvem uma data /
horrio
atributo, por isso quando se usa um esquema de particionamento baseada no tempo, isto
fcil. Se a sua
de dados particionada por ms ea consulta afeta apenas as vendas do ms passado, o
otimizador pode selecionar uma partio para recuperar os dados.
Com os dados do cliente no to simples. Voc no pode usar um campo de data para
partio porque nenhuma data disponvel relevante para suas consultas analticas.
Outros atributos que podem servir como uma chave de particionamento pode ser candidato
uma geogrfica ou demogrfica entidades, mas a escolha dessas entidades s
permite uma forma de cortar os dados, o que no pode ser mais relevante em
dos casos. Somado a isso, voc tem que levar em conta que o desenvolvimento ea
manuteno de um esquema de particionamento no uma tarefa trivial. Exige avanada
habilidades de administrao de banco de dados para configur-lo e integrar a
compartimentao
regime com o carregamento de dados de processos para o data warehouse. Para domar
dimenses monstro, a combinao de particionamento vertical eo uso de
adicional de mini-dimenses Parece, portanto, a melhor alternativa disponvel. Para
determinar quais colunas se separou para o mini-dimenso (s) voc precisa
olhar para um par de coisas:
Similarity-Que colunas contm informaes similares ou informaes
que logicamente agrupados, tais como atributos demogrficos.
Cardinalidade-How muitos valores diferentes podem ocorrer em uma nica coluna?
As colunas de baixa cardinalidade (como gnero) so candidatos ideais para
mini-dimenses.
Como volatilidade frequentemente valores em uma coluna de mudana ao longo do
tempo? Nomes
no mudam com muita freqncia; atributos demogrficos, como idade ou renda
grupo fazer.
Lixo, heterogneo, e dimenses de degenerao
Ao desenvolver o modelo dimensional, voc provavelmente vai acabar com alguns
atributos que no se encaixam em uma das tabelas acordadas dimenso. Este
geralmente o caso com os atributos que tm um significado em um processo como
ordem ou transferncia sinalizadores de status, tipo de ordem, ou condies de pagamento. O
possvel
solues para estes atributos, como deix-los na tabela de fatos, que se deslocam
lhes dimenses separadas, ou deix-los por completo todos tm os seus
desvantagens especficas. A tabela de fatos deve ser to estreito quanto possvel, para
adicionar
Captulo 7 Modelagem de Negcios Usando esquemas Star 181
colunas de texto uma m idia. Modelagem de cada atributo como uma dimenso separada
uma idia to ruim, e omitindo estes atributos significa que eles no podem
ser usada para qualquer anlise. A melhor soluo agrupar esses atributos em uma
tabela de dimenso separada, denominada lixo dimenso no lixo no sentido literal
mas como uma coleo de restos que precisam ser tratados de uma maneira elegante.
Na verdade, voc j viu vrios exemplos da forma como essas dimenses
so modelados no tipo SCD n 4. A nica diferena entre um
mini e uma dimenso de lixo o fato de que este ltimo contm muitas vezes alheios
Considerando que os atributos de atributos em uma mini-dimenso regular tm uma relao
de algum tipo e pode ser nomeado em conformidade.
dimenses Heterogneos so uma variao sobre este tema, onde diferentes tipos
de itens so agrupados em uma tabela nica dimenso. Porque a nossa demo
empresa de classe mundial de filmes, tem apenas um nico tipo de produto no estoque
no serve como um bom exemplo. Para este caso, no entanto, podemos facilmente encontrar
uma
bom exemplo no supermercado local. Produtos em um supermercado pode pertencer
em diferentes categorias, como alimentos, no-alimentares e bebidas. Os alimentos podem
tambm ser
classificados em vrias categorias com caractersticas muito diferentes. Quando
esses produtos so armazenados em uma nica dimenso do produto, voc acaba com um
mesa onde a maioria dos atributos ser irrelevante para um determinado produto.
Indicando a data de vencimento ou o valor calrico de uma vassoura simplesmente no faz
um monte de sentido. O desafio aqui encontrar o equilbrio certo entre a
tabela de produto nico, com muitos atributos inteis e dezenas de produtos diferentes
tabelas de dimenso que esto perfeitamente adaptados para uma categoria de produto
especfico. Em
Neste caso, no h melhor resposta, mas tudo depende da situao na mo.
dimenses Degenerada so um tipo ligeiramente diferente de raa. Estes so dimen-
ses que no existem realmente, mas deve conseguir um lugar no modelo dimensional
de qualquer maneira. Um bom exemplo o nmero de ordem. Nmeros de ordem pode ajudar
a
traar algumas das informaes contidas no data warehouse de volta para o sistema de
origem,
mas no h nenhuma ordem real dimenso. Todos os atributos da linha da ordem e da ordem
so modeladas no nvel mais baixo de granularidade, que o fato da linha fim.
Os atributos que fazem parte de um pedido, como data do pedido e do cliente, so
j se mudou para os fatos da ordem. No final deste processo, o que fazer
com o nmero de ordem, ento? No h nenhum ponto na criao de uma dimenso de
ordem
porque todos os atributos relevantes j so empurradas para o fato
mesa e dimenses relacionadas. Nestes casos onde voc acaba com um nico
atributo, basta adicionar o atributo tabela de fatos. Esse atributo no uma medida
objeto e tambm no uma chave estrangeira para uma tabela de dimenso, pelo que
chamado de
degenerar dimenso.
Dimenses de Interpretao de
Papis
Isto no sobre as dimenses realizao Romeu e Julieta, mas destina-se a
indicam que a mesma dimenso pode ser usado para atuar como mltiplos, semelhantes
182 Parte II Dimensional Modelagem e Design de Data Warehouse
dimenses. O exemplo bvio a dimenso de tempo, que pode ser usado,
ou melhor, deve ser utilizado para acomodar vrias ocorrncias de data e hora.
Olhando para um quadro tpico de vendas verdade, voc v data do pedido, data de envio,
receber
data, data de retorno, e data de pagamento e cinco datas, uma dimenso. Fisicamente
falando, todas as datas apontam para a mesma tabela dimenso data, logicamente, de
mais claro, eles no fazem, porque voc iria acabar com um conjunto de resultados vazio em
dos casos em que se aplicam restries de datas mltiplas. Tomemos por exemplo a consulta
para recuperar o valor total da ordem de DVDs ordenado em Dezembro de 2007, que
no foram devolvidos no prazo de cinco dias aps a expedio. Esta consulta envolve trs
tipos de datas, e quando todas as restries data exigida esto sendo definidas no
tabela de dimenso mesma data, voc acaba com um conjunto de resultados vazio ou, pelo
menos um
conjunto de resultados que no responder corretamente a pergunta. O SQL para ilustrar a
soluo correta para isso semelhante consulta foi utilizado quando se discute
apelidos de tabela (que basicamente o mesmo):
SELECT
DA
INNER JOIN
INNER JOIN
INNER JOIN
ONDE
E
E
SUM (f.revenue) AS ordervalue
fact_sales AS f
SOBRE AS dim_date o f.order_date_key o.date_key =
dim_date AS s ON f.shipping_date_key s.date_key =
dim_date AS r ON r.return_date_key r.date_key =
o.year4 = 2007
o.month_number = 12
r.julian_date s.julian_date> + 5
Agora fcil ver que se voc aplicar as ltimas duas restries para o mesmo
tabela, isso causaria um conjunto de resultados vazio, no possvel para uma data a ser
maior que na mesma data, mais cinco dias.
Outro exemplo relacionado ao banco de dados WCM o ator e diretor
da informao. Podamos combinar estas duas entidades em um nico role-playing
artista ou movie_person dimenso. Um monte de atores tornam-se mais tarde na administrao
sua carreira e s vezes at mesmo o oposto ocorre. Tomemos, por exemplo Quentin
Tarantino, que comeou sua carreira como diretor e mais tarde podero ser encontradas na
qualidade
em seus prprios filmes tambm.
Multi-valued dimenses e tabelas de Ponte
Uma das mais difceis de resolver problemas de modelagem dimensional a
vrios valores de dimenso. Novamente, a tabela de ator um exemplo perfeito: o nosso
clientes comprar ou alugar um nico DVD, mas este item tem geralmente mltiplos atores
aparecendo no filme. Dependendo do tipo de informao que gostaramos de
recuperar a partir do armazm de dados, existem duas solues possveis para resolver este
problema. O primeiro a lista dos atores em um campo de texto a nvel de cinema, como
na Tabela 7-5.
Captulo 7
Tabela 7-5: Ator lista como atributo
dvd_key
101
dvd_id
AA332
Modelagem de Negcios Usando esquemas Star 183
dvd_name
Lagarto Wars
dvd_actors
Harry Protz; Pine Neill, Will Grant
Isso bom para fins informativos e responde pergunta''O que
atores jogado no filme''X?, mas no pode ser utilizado para outros, mais interessantes,
perguntas como''Em que filmes jogou ator Y?''ou''Quais so os top 10
atores com base na receita de aluguel?''Para resolver este ltimo problema, voc precisa de
uma maneira
relacionar fatos mltiplos valores de dimenso mltipla. E porque voc no pode
diretamente criar relacionamentos muitos-para-muitos em um banco de dados voc precisa de
uma ponte
tabela para executar a tarefa. Figura 7-11 mostra a parte do depsito de dados
modelo com o ponte tabela.
dim_actor
Integer (10) [PK]: actor_key
Integer (10): actor_id
actor_first_name: VARCHAR (35)
CHAR (1): actor_middle_initial
actor_last_name: VARCHAR (35)
fct_rental
Integer (10) [PK]: rental_date_key
Integer (10) [PFK]: dvd_release_key
rental_value: DECIMAL (8)
dim_dvd_release
Integer (10) [PK]: dvd_release_key
Integer (10): dvd_release_id
dvd_release_title: INTEGER (10)
dvd_actor_brdge
Integer (10) [PFK]: dvd_release_key
Integer (10) [PFK]: actor_key
dvd_actor_factor: DECIMAL (8)
Figura 7-11: tabela da ponte dvd_actor
Note que neste diagrama, a tabela dvd_actor_bridge contm um
dvd_actor_factor de campo. Este um complemento necessrio tabela da ponte para
vigor SQL para retornar os resultados corretos. Se omitir o fator em nossos clculos
envolvendo os atores, a receita ser multiplicado pelo nmero de atores
ligado a um DVD especfico. Debate , naturalmente, aberto ao se este deve ser
uma diviso em partes iguais (10 atores, fator 0,1) ou que o protagonista recebe uma maior
fator (10 atores, dos quais um Brad Pitt, Brad conta para 0,55, para os outros
0,05 cada). Isso representa um problema quando voc quer uma resposta para a pergunta
''Como muita receita que geramos com o cinema, estrelado por Brad Pitt?''Em
Nesse caso, apenas um ator selecionado fazendo com que o fator para retornar um valor
que
muito baixa de modo que o fator de clculo deve ser omitido ou definido como o valor
1 neste caso. As coisas ficam realmente ruins quando queremos conhecer o nosso top 10
estrelas de cinema com base na receita total dos filmes que jogou dentro de alguns
esses atores podem ter co-estrelou em um ou mais filmes no passado, causando
resultados incorretos. A mensagem aqui : Tenha cuidado quando estes tipos de modelagem
de relacionamentos e ter certeza de que voc fornecer acesso apenas a ponte
relaes quando o usurio ou o analista trabalhar com os dados sabe exatamente o que
ele ou ela est lidando. Tambm possvel usar uma camada de abstrao, como
a camada de metadados Pentaho onde os objetos de clculo podem ser criadas vrias,
uma para cada caso especfico, uma definio estrita documentado. Captulo
12 ir mostrar-lhe como configurar isso.
184 Parte II Dimensional Modelagem e Design de Data Warehouse
Criao de hierarquias
As hierarquias so instrumentos muito teis para navegar apesar dos seus dados. A
hierarquia permite que um usurio para iniciar em um alto nvel de agregao (por exemplo,
pro-
duto categoria) e suporta a perfurao nos detalhes de uma dimenso particular.
A maioria das hierarquias ser implicitamente modelado dentro das tabelas de dimenso. Boa
Exemplos disso podem ser encontrados dentro da dimenso de data com a hie-time
Chies trimestre do ano-ms-dia ou na semana do ano, ou a dimenso do cliente com
pas-regio cep endereo. Essas so simples, hierarquias fixas, onde todos os
folhas na hierarquia tm a mesma profundidade''.''Ela comea a ficar interessante quando
voc
necessidade de modelar hierarquias de profundidade varivel tambm. A forma mais comum
de
construo de hierarquias de profundidade diferentes em um sistema de origem ter os
registros
em uma tabela de referncia outros registros na mesma tabela. Pense, por exemplo, de um
tabela de funcionrios, onde cada trabalhador registro aponta para um gerente, que tambm
um empregado. Nesse caso, as referncias da tabela em si, pelo que na maior parte se
refere
como um auto-associao. Oracle SQL contm um conectar-se antes declarao, que pode
atravessar essas rvores relacionamento. Isto tambm chamado recurso, mas este no
um
Instruo SQL ANSI padro para a maioria dos bancos de dados, incluindo MySQL, no
suporte a isso.
Felizmente, voc tambm pode usar tabelas ponte aqui. Usando a tabela da ponte para
hierarquias desequilibrada opcional, sem a tabela da ponte, a dimenso
tabela podem ser unidas tabela de fatos, como de costume. A tabela a ponte est l apenas
para
ajudar na navegao de hierarquias adicionais. por isso que estes quadros so ainda
por vezes referido como ajudante tabelas. Figura 7-12 mostra o banco de dados resultante
diagrama quando utilizando uma tabela de hierarquia de ponte.
fct_rental
Integer (10) [PK]: rental_date_key
Integer (10) [PFK]: employee_key
rental_value: DECIMAL (8)
Integer (10) [FK]: manager_key
employee_bridge
Integer (10) [PK]: manager_key
Integer (10) [PFK]: employee_key
TINYINT (1): nest_level
is_top: BIT (1)
is_bottom: BIT (1)
dim_employee
Integer (10) [PK]: employee_key
Integer (10): employee_id
employee_first_name: VARCHAR (35)
CHAR (1): employee_middle_initial
employee_last_name: VARCHAR (35)
Figura 7-12: Hierarquia ponte
Tabela 7-6 mostra o que os dados dessa tabela parece que quando os dados para o
relaes empregado-gerente adicionado, como mostrado na Figura 7-13.
Esta tabela ponte permite acumular os dados com base em qualquer questo
voc gostaria de perguntar. O cuidado necessrio, no entanto, se voc no adicionar todos
os necessrios
restries, h um risco de dupla contagem de alguns dos valores. Suponha que voc
quero a receita total do empregado 2 filtrando a chave do empregado. Sem
filtros adicionais sobre nest_level o conjunto de resultados dobrado porque employee_key
2 feita duas vezes. Esta tambm a grande desvantagem de uma ponte de hierarquia
tabela: Cada caminho de cada item para qualquer outro item na mesma rvore armazenado
em um registro separado. Como resultado, a tabela da ponte fica muito maior do que o
tabela de dimenso a que pertence.
Captulo 7 Modelagem de Negcios Usando esquemas Star 185
Tabela 7-6: Empregado contedos tabela da ponte
manager_key
1
1
1
1
1
2
2
2
3
employee_key
1
2
3
4
5
2
4
5
3
nest_level
0
1
1
2
2
0
1
1
0
is_top
Y
N
N
N
N
N
N
N
N
is_bottom
N
N
N
Y
Y
N
Y
Y
Y
Emp1
EMP2 Emp3
Emp4 Emp5
Figura 7-13: hierarquia desbalanceada
Uma alternativa ao uso de tabelas de ponte para o modelo de hierarquias desequilibrada
para forar o achatamento da hierarquia. As manchas em branco no diagrama so
simplesmente preenchido, repetindo os valores do nvel acima. Tabela 7-7 mostra que este
princpio.
Tabela 7-7: Achatada hierarquia desbalanceada
employee_key
1
2
3
4
5
MANAGER_ID
1
1
1
2
2
boss_id
1
1
1
1
1
186 Parte II Dimensional Modelagem e Design de Data Warehouse
Agora voc pode criar uma estrutura de navegao do patro para o empregado
nvel em todos os nveis conter uma relao com o nvel acima. O nmero de
colunas que voc precisa depende do nmero de nveis na hierarquia, h
h necessidade de a sobrecarga adicional de uma mesa de carteado. Existe um potencial
risco envolvido aqui: Uma hierarquia achatada assume um nmero fixo de nveis.
Se um outro nvel adicionado aos dados, a tabela de hierarquia resultante tem de ser
reestruturado novamente.
No importa qual utilizado para construir o modelo de hierarquia, a transformao
dos dados a partir de uma auto-juno relao ao posicionamento correto em ponte ou
tabelas de hierarquia no uma tarefa trivial.
Flocos de neve e dimenses de agrupamento
At agora, temos sido quase sempre falando sobre a desnormalizao de dados nos dados
dimenses mart. Como resultado, a consulta a juntar os caminhos para a tabela de fatos so
apenas um
nvel de profundidade. A nica excepo at agora foi o uso de tabelas para a ponte
multi-valorizados colunas de dimenso. Voc viu que a regra geral do polegar
quando data marts modelagem desnormalizar as tabelas de dimenso. Quando
voc levar isso para o extremo, voc pode desnormalizar ainda mais. A derradeira
modelo de dados desnormalizada consiste em uma nica tabela, pelo menos a partir do
usurio
ponto de vista. autor holands e consultor Dr. Harm van der Lek descritos
este como o Um conjunto de atributos Interface (AHV) conceito, em que todos os no-chave
atributos em um esquema estrela so publicados para o usurio final e / ou consulta como
uma ferramenta
lista nica. No outro extremo da escala, voc pode encontrar o totalmente normalizada
modelos de dados que so usados principalmente em sistemas de operao. dados
dimensionais
marts so posicionados no meio do caminho entre esses dois extremos.
Utilizando a normalizao do esquema em estrela normalmente chamado snowflaking,
para
indicar a semelhana deste tipo de esquema com um floco de neve real.
Figura 7-6 no captulo anterior apresentou um exemplo deste para o
cliente-regio do pas-relacionamento. Como acontece com qualquer modelo de data
warehouse
tcnica, h defensores e opositores da utilizao de flocos de neve em
dimensionais de data marts. Ralph Kimball ope-se firmemente com flocos de neve
com uma nica exceo, explicada na seo seguinte. Gostaramos
a outra lista de exceo, que chamado clustering. Este conceito
descrita em um artigo pelo Dr. Daniel Moody, que pode ser baixado em
http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-28/
paper5.pdf.
O artigo original de 2000, e no vero e outono de 2003 Moody
escreveu dois artigos subseqentes para o Data Warehouse Institute (TDWI), que
ainda digno de leitura. Estes artigos ltima gota o termo clustering e
introduzir o termo starflake, que se resume a mesma coisa. A questo
na mo causada por mltiplas referncias mesma tabela normalizada em
um data mart. No nosso exemplo WCM, temos esta situao com os clientes,
Captulo 7 Modelagem de Negcios Usando esquemas Star 187
armazns, empregados, fornecedores e todos eles de referncia da mesma regio
e mesa pas em seus campos de endereo. Em um esquema em estrela com rigor, ns
necessidade de construir quatro transformaes desnormalizao, uma para cada dimenso.
Neste caso, a Moody aconselha a se aglomerar na regio mesa pas / e fazer este
uma subdimenso partilhada por todas as quatro tabelas de dimenso. A regra de ouro que
assim como uma chamada garfo aparece no modelo de dados, a tabela de pesquisa no
desnormalizada mas usado como uma mesa de cluster. Uma bifurcao significa que dois
candidatos
referncia as tabelas de dimenso da mesma tabela de pesquisa, como voc pode ver na
Figura 7-14.
O diagrama mostra um exemplo de uma soluo estritamente normalizado esquerda
e estrela de um cluster ou esquema starflake direita.
dim_customer_purestar
Integer (10) [PK]: customer_key
INT (8): customer_id
customer_region_code: CHAR (2)
customer_region_name: VARCHAR (50)
customer_country_code: CHAR (2)
customer_country_name: VARCHAR (50)
dim_employee_purestar
INT (8) [PK]: employee_key
INT (8): employee_id
employee_region_code: CHAR (2)
employee_region_name: VARCHAR (50)
employee_country_code: CHAR (2)
employee_country_name: VARCHAR (50)
dim_customer_starflake
INTEGER (8) [PK]: customer_key
Integer (10): customer_id
INTEGER (8) [FK]: region_key
lkp_region
INTEGER (8) [PK]: region_key
region_code: CHAR (2)
VARCHAR (50) [AK]: region_name
country_code: CHAR (2)
country_name: VARCHAR (50)
dim_employee_starflake
Integer (10) [PK]: employee_key
Integer (10): employee_id
Integer (10) [FK]: region_key
Figura 7-14: esquema Starflake
Esta abordagem tem vrias vantagens. Primeiro de tudo, uma questo menor, mas o
tabela de dimenso fica um pouco menor. De maior importncia a manuteno da
tabelas starflake: As mudanas ocorrem apenas em uma mesa eo processo de ETL tem
apenas
para atualizar uma tabela em vez de dois ou mais. H desvantagens, bem como,
claro. Voc precisa criar exibies extras (quando o modelo de soluo em
antecedncia) ou usar apelidos na sua consulta extra, porque voc no pode fazer referncia
a
mesma tabela de consulta em uma consulta, onde clientes e funcionrios esto envolvidos.
A maior desvantagem, entretanto, que voc est criando dependncias no seu
ETL processo. Voc precisa ter certeza de que a regio / pas tabela de pesquisa
processado antes de as dimenses que usar essa tabela ou voc corre o risco de
inconsistncias em seu data warehouse.
Se voc quiser aderir a um modelo rigoroso esquema em estrela, o que significa um
nvel mximo de 1 para a junta entre fatos e dimenses, h tambm
outra soluo. Em vez de snowflaking as tabelas em cluster, voc pode tratar
-los como dimenses regulares. Isto significa que as chaves de dimenso faro parte do
a tabela de fatos tambm. Inconvenientes para essa forma de modelagem so que voc
sempre
necessidade de percorrer a tabela de fatos para chegar regio / pas de um cliente,
e claro que voc precisa teclas extras em sua tabela de fatos, o que pode torn-lo
desnecessariamente larga.
188 Parte II Dimensional Modelagem e Design de Data Warehouse
Estabilizadores
H, na opinio de Kimball, um nico caso permitido para o uso do
tcnica de floco de neve. Ele usa o termo guiga tabelas para descrever esta parti-
ular tipo de snowflaking, assim que ns gentilmente adotar a mesma palavra para isto para
evitar
qualquer confuso. Primeiro, vamos explicar o que entendemos por um outrigger: Suponha
que voc
tem um conjunto de atributos que so dependentes de um dos maiores da dimenso
nvel de atributos. Um exemplo so os dados Zipcensus, que contm um grande conjunto
de atributos analticos. CEP um atributo de nvel superior ao cliente (voc
pode ter vrios clientes compartilhando o mesmo cdigo de endereamento postal) e todos os
Zipcensus
atributos so dependentes CEP. Se voc armazenar todas estas colunas adicionais
na tabela de clientes, voc a desnormalizao um monte de dados e desordenar o
tabela de dimenso com um monte de atributos extra, neste caso, 112 atributos extras
alm do cdigo postal prprio. Figura 7-15 mostra um exemplo do Zipcensus
tabela estabilizadores em combinao com a dimenso do cliente.
dim_customer
Integer (10) [PK]: customer_key
Integer (10): customer_id
customer_first_name: VARCHAR (35)
CHAR (1): customer_middle_initial
customer_last_name: VARCHAR (30)
customer_address1: VARCHAR (50)
customer_address2: VARCHAR (50)
customer_postal_code: VARCHAR (10)
customer_city_name: VARCHAR (64)
customer_email_address: VARCHAR (64)
customer_telephone_number: CHAR (12)
customer_date_of_birth: DATA (0)
customer_website_name: VARCHAR (50)
Integer (10) [FK]: zipcensus_key
geography_key: INTEGER (10)
demography_key: INTEGER (10)
valid_from: DATA (10)
valid_to: DATA (10)
Verso: INTEGER (10)
current_record: TINYINT (10)
last_modified: TIMESTAMP (10)
lkp_zipcensus
Integer (10) [PK]: zipcensus_key
postal_code: VARCHAR (10)
populao: BIGINT (20)
housing_units: BIGINT (20)
110 --- --- outras colunas: OUTROS (0)
Figura 7-15: exemplo Outrigger
Tabelas Consolidao multi-gro
A ltima questo de modelagem um pouco diferente daquelas descritas assim
agora, uma vez que no aborda a modelagem de uma nica dimenso. O caso o seguinte:
suponha que voc tenha uma tabela de fatos contendo dados de nvel de transao e voc
quer
comparar estes valores reais para um oramento ou previso. A maioria das organizaes no
criar oramentos para o cliente individual e nvel de produto, mas fazer isso, por
exemplo, no ms e de nvel de grupo de produto, omitindo o cliente
e outras dimenses. Assim como voc acomodar essa diferena no
granularidade? Uma coisa muito clara: voc no pode comparar um valor mensal para
um dia, sem primeiro resumindo os valores dirios do nvel meses. Assim
Captulo 7 Modelagem de Negcios Usando esquemas Star 189
A primeira coisa necessria uma tabela resumida, fato que pode ser feito tanto em
A (tabela extra plus processo de carga) de forma fsica ou virtual (ver). O ltimo
mais fcil criar, mas pode ser proibitivo devido aos problemas de desempenho. A
tabelas de dimenso que acompanham devero estar disponveis no mesmo nvel, bem como,
quer pela criao de uma tabela separada ou criando um ponto de vista. (Lembre-se que,
quando
se juntar a uma tabela de fatos no nvel do ms com uma tabela de dimenso a nvel dia,
os resultados so multiplicados pelo nmero de dias no ms!)
Figura 7-16 mostra um exemplo com base no armazm de dados WCM que
contm tanto o oramento e os dados reais a um nvel consolidado de granularidade.
por isso que Ralph Kimball chama esse consolidada tabelas de fatos.
dim_region
region_key: INTEGER [PK]
customer_region_code: CHAR (2)
customer_region_name: VARCHAR (50)
customer_country_code: CHAR (2)
customer_country_name: VARCHAR (50)
dim_month
month_key: INTEGER [PK]
fact_budget_actual
region_key: INTEGER [PFK]
month_key: INTEGER [PFK]
dvd_genre_key: INTEGER [PFK]
targetrevenue: DECIMAL (6,2)
actualrevenue: DECIMAL (6,2)
month_number: TINYINT
month_abbreviation: CHAR (3)
MONTH_NAME: CHAR (12)
ano2: CHAR (2)
ano4: CHAR (4)
quarter_name: CHAR (2)
quarter_number: TINYINT
year_quarter: CHAR (7)
year_month_number: CHAR (7)
year_month_abbreviation: CHAR (8)
dim_dvd_genre
dvd_genre_key: INTEGER [PK]
dvd_release_genre: VARCHAR (35)
Figura 7-16: Real e oramento consolidado
As tabelas da Figura 7-16 podem ser criados diretamente a partir das tabelas existentes no
o data warehouse. Observe tambm que quando os dados esto disponveis em uma tabela
de dimenso
em um nvel mais alto de granularidade, ele mantido na tabela de dimenso derivada como
tambm. Este o caso para as colunas de trimestre e ano na dimenso ms,
e as informaes do pas na dimenso regio.
Resumo
Este captulo apresenta uma grande coleo de tcnicas de modelagem para trabalhar
com os dados dimensionais. Ns abordamos os seguintes assuntos:
esquema em estrela terminologia bsica e modelagem
Uma introduo ao SQL necessrios para consultar esquemas em estrela
Aplicando a arquitetura de barramento para colar todos os data marts para formar um
dimensional data warehouse empresarial
Um conjunto de princpios de design para usar na construo de um data
warehouse
As vrias estratgias para captar a histria do modelo tridimensional
190 Parte II Dimensional Modelagem e Design de Data Warehouse
Conceitos avanados que podem ser usados para a construo de dados dimensional
armazns
Como mencionado, recomendamos o Data Warehouse Toolkit srie por Ralph
Kimball e companhia sobre o assunto, e tambm recomendo vivamente uma visita ao
o site www.kimballgroup.com, Onde voc pode encontrar muitas dicas mais em
desenho dimensional.
CAPTULO
8
O Data Mart Processo de Projeto
Captulos 6 e 7 apresenta-lhe o armazenamento de dados, a tecnologia disponvel
e as tcnicas de modelagem predominante usado. Estes captulos constituiu uma base slida
fundamentao terica que voc pode construir em vez de realmente comear a desenvolver
e
criao de sua primeira solues reais. Agora hora de explicar os passos necessrios para
obter essas solues no lugar. Como explicado no captulo 6, um data warehouse
um processo, no um projeto. Um processo consiste em mais do que apenas tecnologia e
especialmente no caso de uma soluo de business intelligence, envolvendo o seu fim
usurios no processo essencial para seu sucesso.
Antes que voc possa iniciar a construo de um data warehouse ou data mart primeiro
o data warehouse, voc precisa saber o que voc quer colocar nele. Em
maioria dos casos existe uma demanda existente por uma soluo que ir entregar a
insights e relatrios necessrios para melhor gerir uma organizao. O primeiro passo
no processo do projeto identificar essas demandas, muitas vezes latente e converter
los em requisitos concretos para a soluo de business intelligence. Com o
necessidades identificadas, voc pode comear a projetar e construir um data warehouse
soluo que pode atender a essas demandas que oferecer sua organizao
valor real.
Anlise de Requisitos
O ponto de partida de qualquer projeto de data warehouse definir claramente o
requisitos do ponto de vista empresarial. Quantos dados sero provenientes
para a organizao, desde que as fontes, e em que condio? Que tipo
de informaes, em formatos que, a sua organizao precisa? Que se afastem-
mentos vai executar relatrios, quantas vezes, e em que dados? Quanto tcnica
191
192 Parte II Dimensional Modelagem e Design de Data Warehouse
conhecimento que os usurios tenham o seu negcio, eles precisam de um pacote de
relatrios ou
eles vo executar consultas ad hoc? E o mais importante, a informao que
ajudar os usurios a identificar se o negcio est ainda na trilha para alcanar
os objectivos definidos na estratgia corporativa? Com base nesses requisitos, uma
de negcios adequado deve ser desenvolvido. O negcio , em ltima anlise o
justificativa para o incio do projeto de data warehouse, em primeiro lugar. Sem
um caso de negcio, h obviamente nenhuma razo aparente para embarcar em um
frequentemente projeto caro e demorado como o desenvolvimento de uma base de dados
warehous-
ing soluo para sua organizao. Assim como voc reunir os requisitos e
desenvolver um business case (BC) para um projeto de data warehouse?
Primeiro, como explicamos nos captulos anteriores, um data warehouse e
soluo de inteligncia de acompanhamento de negcios so um meio para terminar. Este
fim''''
o que sobre tudo e deve ser descrito no BC em termos de negcios
beneficia de uma perspectiva de negcio. Em outras palavras, voc no quer para justificar
um investimento em tecnologia pela tecnologia, mas o valor pode
trazer para a organizao. A melhor maneira de se comear a envolver um ou mais chave
stakeholders e criam em conjunto o plano de negcios e requisitos.
Isso nos leva a um dos aspectos mais importantes, ou talvez o mais
aspecto importante, de uma equipe de projeto de data warehouse. A equipe deve ser
multi-disciplinar e consistem de duas pessoas tecnicamente qualificados e de negcios
usurios. Escusado ser dizer que, em todos os casos, o departamento de TI devem estar
envolvidos, bem
porque voc vai precisar de uma infra-estrutura de TI para executar o banco de dados e
relatrios. A prxima seo ajuda a identificar os usurios de negcios que sero
mais til na identificao de suas necessidades.
Obtendo o direito de usurio Envolvidos
Ausurio algum na organizao que ir trabalhar com o front-end-Pentaho
ferramentas para dashboards, relatrios e anlise. Normalmente, existem quatro tipos
de usurios:
One-click (consumidor) do usurio podem apenas consumir informao que est sendo
empurrada em um formulrio pr-formatado, geralmente por e-mail ou atravs de um
portal.
Dois cliques (reciclagem) do usurio-Usos um portal para procurar um painel ou
abre relatrios predefinidos. Pode abrir e atualizar documentos sob demanda,
mas pede-se preencher a interatividade somente envolvidos.
Multi-clique (construtor) do usurio podem trabalhar de forma interativa com os
apresentados
informao e pode criar relatrios adicionais e anlise com vistas
Ad-Hoc componente Relatrio e Mondrian frente JPivot.
Power User (analista), possvel criar relatrios usando o Designer de Relatrios e
cria novos modelos de Mondrian. Os usurios mais avanados tambm podem funcionar
com a bancada de minerao de dados Weka.
Captulo 8 O Data Mart Processo de Projeto 193
Curiosamente, estes tipos de usurios mapa para diferentes partes e os nveis da
organizao. Para o sucesso do seu projeto, sua primeira prioridade conseguir o
um-clique os usurios a bordo. Estas so as pessoas que alocam oramentos e pode
puxar as cordas direito de voc ir. Eles tambm so chamados gerentes, e
porque um projeto de data warehouse tende a exigir um oramento considervel e
tem um forte impacto e visibilidade dentro da organizao, seu desafio
convencer pelo menos um executivo de nvel C para patrocinar o projeto de data warehouse.
Com este patrocnio, fcil de atrair outros usurios-chave para se envolver.
Sem ele, voc ter um tempo difcil convencer a empresa que todo o esforo
ea despesa de valor.
O segundo grupo de pessoas geralmente maior. Eles tm a capacidade de
puxar a informao a pedido de um cliente de software de portal ou especiais
pedido. Apenas um pouco de treinamento necessrio para o uso dessas ferramentas,
geralmente um
Basta breve introduo para obter os usurios vo. Normalmente, a combinao
dos usurios de um e de dois cliques chamado usurios finais.
O terceiro grupo e os que voc estar trabalhando com a forma mais frequente
base pode ser encontrada no grupo de usurios clique com o boto multi. Esses usurios
podem ajud-lo
na definio de''que''do armazm de dados em termos da produo. Este
grupo geralmente composto por pessoas que j fornecem informaes para o
organizao sob a forma de planilhas Excel ou outros formatos similares, e normalmente
trabalham em departamentos como finanas ou marketing. No coincidncia que
a maioria dos projetos de data warehouse comear de qualquer uma instituio financeira,
vendas ou marketing
perspectiva, e essas pessoas podem explicar-lhe que o resultado final deve
aparncia.
O quarto grupo composto dos usurios avanados ou analistas. Eles podem fazer
sua vida muito fcil, porque eles provavelmente sabem onde os dados vem,
que a qualidade dos dados , e como ela pode ser integrada. Eles tambm podem
tornar a sua vida complicada, porque eles tm altas exigncias que so normalmente
no abrangidos durante a primeira iterao do data warehouse. Voc precisa deles
na equipe, mas tem que gerir as suas expectativas de antecedncia. Alm disso, ser muito
cuidado em fazer promessas para este grupo sobre o que vai e no vai ser
possvel na primeira fase do data warehouse.
Coleta de Requisitos
O processo de levantamento de requisitos requer a disponibilizao de uma chamada
analista de negcios. Em muitos casos, esta tarefa cabe a um consultor externo. Tanto
como ns gostaramos que voc vai contratar uma consultoria externa, h uma armadilha
possvel aqui
que voc deve estar ciente. No importa o quo experientes so essas pessoas, elas
No sei todos os cantos e recantos da organizao e da empresa
cultura. Os projetos de inteligncia de negcios mais bem sucedidos trabalham com insiders,
pelo menos em um papel de apoio. Um analista de negcios deve no apenas entender
o negcio, mas tambm precisa ser capaz de traduzir os requisitos de negcio em
194 Parte II Dimensional Modelagem e Design de Data Warehouse
a soluo certa. Ele ou ela tambm deve ser capaz de fazer essa traduo dos outros
caminho de volta, para explicar questes tcnicas da terminologia empresarial.
Uma maneira comum de recolha de requisitos a entrevista de usurios potenciais,
gestores e membros da equipe. Essas entrevistas devem ser realizadas por dois
pessoas, onde o analista de negcios tem o papel principal e geralmente acompanhada
por algum da equipe do data warehouse que tem discernimento na disposio
dados e funcionalidades das ferramentas que sero utilizadas. Explicando a entrevista
processo em profundidade est fora do escopo deste livro, mas o j mencionado
Data Warehouse Lifecycle Toolkit por Ralph Kimball um excelente recurso para
neste tpico.
Em muitos casos, j existe alguma forma de comunicao no local e estes
relatrios existentes, muitas vezes fazer um excelente conjunto de requisitos, ou pelo menos
uma boa
ponto de partida. Se este for o caso, ainda uma boa idia para realizar entrevistas para
afirmar o envolvimento do usurio no projeto, e determinar os pontos fortes
e fracos dos relatrios atuais.
Quer entrevistas ou outros meios de coleta de informaes utilizado, o
resultado final deve ser um conjunto bem definido de requisitos, anotadas na plancie Ingls.
Os requisitos devem ser agrupadas por actividade principal processos porque
seu data warehouse ser construda em torno de processos de negcios principais, tais como
vendas, reteno de clientes, gesto de armazns e finanas. O documento
deve conter no mnimo os seguintes dados:
Tpico-A principal rea ou processo a exigncia pertence.
Pblico-Quem a soluo para?
Dona-Quem ser o proprietrio do negcio da soluo?
demanda do usurio em texto explicando o que os usurios precisam e como eles iro
utilizar a soluo descrita.
Questes respondidas-A questes de negcios que sero respondidas por
a soluo. Captulo 5 contm vrios exemplos destas questes.
Benefcios para a empresa, que ser o ganho de organizao com a construo do
parte especfica do armazm de dados?
Como mecanismo de entrega as informaes sero disponibilizadas para
os usurios? Isso pode ser qualquer coisa, desde uma simples lista enviada por e-mail
para um
painel anlise interativa.
As fontes de informao, onde obter informaes adicionais sobre este requi-
mento disponvel, o que as pessoas possam ser feitas?
As fontes de dados, que sistemas ou bancos de dados podem ser usados para obter a
dados?
A cobertura dos dados Indicao- da integridade dos dados disponveis para
responder s questes de negcios.
Captulo 8 O Data Mart Processo de Projeto 195
A estimativa de custo indicao aproximada do tempo e investimentos necessrios
para desenvolver esta soluo.
Cada um desses documentos serve como um caso de pequenas empresas por conta prpria
e
deve se encaixar no caso de negcios global do projeto de data warehouse. Ao preencher
em todos os tpicos da lista, a coleta de requisitos tambm pode ser usado para
priorizar incrementos projeto.
Anlise de Dados
A fonte para cada soluo de data warehouse um dado. Os dados podem ser obtidos
de muitas fontes e cada fonte pode ter desafios especficos de recuperao
e transformar os dados para ser utilizado no data warehouse. Os seguintes
lista serve como um guia para ajudar voc a selecionar as fontes de dados e endereo certo
alguns dos desafios envolvidos:
A maioria dos sistemas ERP- organizaes de hoje executar um ou mesmo vrios
Enterprise Resource Planning (ERP) como SAP, Oracle Financials,
COMPI `re ou OpenERP (s para citar alguns). Estes sistemas se esforam para
supporte
o processo de negcios completos e abrangem tudo, desde contabilidade
a comprar para a fabricao de RH. Isto tambm significa que esses sistemas
so notoriamente complexo, o amplamente utilizado sistema ERP SAP R / 3 contm
mais de 70.000 mesas! Estes quadros, muitas vezes no podem ser acessados
diretamente, mas
expor seu contedo atravs de uma API ou camada outros metadados. Como
consequncia,
no o suficiente para ser capaz de se conectar ao banco de dados, que
frequentemente
proibidas pelas licenas de qualquer maneira. Voc precisa de um software
especializado para ser
capaz de ler os metadados do sistema e, como voc j deve ter adivinhado
j, muito poucas solues open source j esto disponveis que oferecem este
funcionalidade. Para Pentaho Data Integration, um comercial do plugin
A empresa alem ProRatio est disponvel. A soluo de ETL francs Talend
Open Studio tem um nativo de cdigo aberto conector SAP, mas se voc executar
E-Business Suite da Oracle, JD Edwards EnterpriseOne, ou qualquer dos outros
suites principais ERP, voc enfrentar alguns desafios na obteno de dados corretos.
sistemas de Home-grown-se a sua organizao desenvolveu a sua prpria sup-
sistemas de portabilidade, voc pode ter uma vantagem sobre as solues pr-
construdas
porque o conhecimento sobre as estruturas de dados subjacente j est dis-
capaz. Cuidado, porm, que nestes casos a documentao no pode ser
up-to-date, as pessoas que inicialmente desenvolveu o sistema pode ter deixado
da empresa, ou voc simplesmente no esto autorizados a acessar os dados dos
sistemas
diretamente.
sistemas mainframe Grande corporaes, como bancos ou seguros
empresas ainda dependem fortemente do mainframe para a sua informao essencial
196 Parte II Dimensional Modelagem e Design de Data Warehouse
necessidades de processamento. Isso significa que voc precisa para obter os dados do
mainframe, que pode ser uma tarefa desafiadora. A maneira mais fcil de obter
esses dados que ele seja entregue rea de carga do armazm de dados em um
padro de caracteres ASCII de arquivos separados.
Planilhas-A apenas um bom conselho quando uma organizao quer usar
planilhas como uma fonte de dados : no! Planilhas so freqentemente usados como
subsistemas completa, especialmente nos departamentos de finanas e contabilidade.
Sua grande vantagem a flexibilidade ea facilidade de uso, e exatamente
por que voc deve se recusar a aceitar as planilhas como uma fonte. Eles tambm usam
formatos de exibio que mostra os dados de uma forma formatada, mas ao ler
os dados diretamente contm algo completamente intil. Assim, mesmo que o PDI
capaz de planilhas de leitura, no torn-los parte do processo. Se
nenhuma fonte alternativa est disponvel (tpico de oramentos e previses), tm
o proprietrio da planilha, exportar os dados em uma pr-definidos e acordados
formato como um arquivo de texto ASCII.
bases de dados dos computadores de mesa Veja a entrada anterior para planilhas. No
h
uma regra muito simples para os quais fontes de dados podem ser aceites para os dados
armazm e que no pode: Se o sistema no suportado pela TI
departamento ou h apenas um usurio a manuteno do sistema, no perca
muita energia sobre ele.
Estruturado de dados externos Estruturada significa que os dados sejam entregues em
um formato bem definido por um terceiro, que disponibiliza esses dados, ser
on-line ou em qualquer outra forma. Bons exemplos destas fontes de dados so
os dados Zipcensus define que usamos para WCM ou os dados do mercado de varejo
que
pode ser obtido a partir de Nielsen.
-Mais de dados on-line e mais informaes podem ser obtidas diretamente
na web e consumido sob a forma de um servio Web ou feeds RSS. Pentaho
Integrao de dados contm todos os recursos para trabalhar com dados on-line.
Weblogs Esta- um caso especial de dados estruturados, pois voc vai precisar
um pouco de expresses regulares customizadas para rasgar as linhas de log separados
e
tornar a informao til fora dele.
XML O Extensible Markup Language (XML) tornou-se a lingua
franca do mundo da informtica. Todos os produtos da Pentaho armazenar suas (meta)
informaes em um formato XML, e muitos outros produtos so capazes de
exportao de dados em formato XML tambm. A entrega das informaes
no limitado a arquivos, a maioria dos sistemas de mensagens baseados em fila ou
entregar a sua
mensagens em formato XML tambm. A grande vantagem do XML que ele
basicamente um arquivo de texto, apenas como um ASCII regular por vrgula ou por
tabulao
arquivo. Isto significa que os arquivos XML podem ser abertos com qualquer editor de
texto para
visualizar o contedo. O desafio com arquivos XML, porm, que assim
flexvel que pode ser difcil de transformar a estrutura aninhada a uma utilizvel
Captulo 8 O Data Mart Processo de Projeto 197
formato relacional utilizado no data warehouse. Felizmente, ao contrrio de muitos outros
ferramentas de integrao de dados, o PDI tem um passo de entrada muito forte e pode
XML
RSS, leia tambm alimenta diretamente (que um formato XML).
Estivemos envolvidos em projetos de data warehouse desde o incio dos anos 90 e
descobriu que cada atribuio e caso diferente. Qualquer organizaes de tamanho
razovel,
nizao tem uma mistura de todas as fontes de dados descritas. s vezes a parte do ERP
da equao preenchida por um nico sistema financeiro ou de RH, e vrios
sistemas de home-grown ou feitos sob medida rodeiam este. Em nenhum dos projetos para
agora poderia todas as informaes necessrias ser encontrada em um nico sistema
integrado.
Todos os dados estruturados normalmente armazenado em um banco de dados relacional,
o que faz
facilmente acessvel, pelo menos do ponto de vista tcnico. O mais comum
dados adicionais no so armazenados em bases de dados consiste de oramentos,
estimativas, previses,
e planos de conta e normalmente mantida em planilhas. O desafio
para decifrar o contedo, estrutura, qualidade e significado de todos esses dados, e
isso o que voc precisa de documentao (se disponvel, do contrrio ela precisa ser
criado) e dados de perfil para.
Data Profiling
Dados perfis o processo de recolha de estatsticas e outras informaes sobre
os dados disponveis nos sistemas de origem diferente. A informao obtida
inestimvel para o design ainda mais do seu armazm de dados e processos de ETL.
perfis de dados tambm uma parte importante de qualquer iniciativa de qualidade dos
dados, antes
qualidade pode ser melhorada, uma linha de base tem de ser estabelecida, indicando quais
o estado atual dos dados . Perfil pode ser executada em trs diferentes
nveis:
Perfil de Coluna-Coleta estatsticas sobre os dados em uma nica coluna
Dependncia do perfil Cheques para as dependncias de uma tabela entre
diferentes colunas
Junte-se do perfil Cheques para as dependncias entre tabelas diferentes
O ponto de partida para definio de perfil sempre o perfil do nvel de coluna, que
gera informaes teis sobre os dados em uma coluna, incluindo, mas no
se limitam a:
Nmero de valores distintos, como muitas entradas exclusivas que a coluna
contm?
Nmero de NULL e valores vazios-How muitos registros no tm valor
ou um valor vazio?
valores mximos e mnimos, no apenas numricos, mas tambm para tex-
dados contratuais.
198 Parte II Dimensional Modelagem e Design de Data Warehouse
Numrica soma, mdia, mediana e desvio-padro Vrios cal-
Os clculos feitos sobre os valores numricos e distribuio de valor.
String e padres de comprimento so os valores armazenados corretamente? (Para
exemplo, alemo cdigos postais deve conter cinco dgitos).
Nmero de palavras, o nmero de caracteres maisculos e minsculos
contagens de freqncia, que esto no topo e no fundo Nitens em uma coluna?
A maioria dos dados de perfis ferramentas podem fornecer essas informaes e s vezes
at
mais. Ele fica mais complicado quando voc olha os perfis dentro de uma tabela nica para
identificar correlaes e interdependncias. Exemplos disso so as combinaes
de cdigo postal para cidade, a cidade-regio, e, regio para outro pas. Obviamente, uma
cidade
nome dependente de um cdigo postal, o nome da regio sobre a cidade, e os
pas na regio. A existncia destas dependncias violar o terceiro
forma normal, ento quando encontrar essas relaes em uma terceira forma normal
sistema de origem, voc deve tomar cuidado extra, principalmente em relao ao endereo
da informao. s vezes as relaes no so muito claras ou so mesmo confusas,
o que torna difcil a distino correta de entradas incorretas. Esta
exatamente a razo pela qual tantas caras endereo de correspondncia e limpeza
As solues existem. Tomemos, por exemplo, a combinao cidade-regio: H mais
de dez estados nos Estados Unidos com uma cidade chamada Hillsboro. Sem
conhecimento adicional dos cdigos de pas ou zip, difcil dizer se
um registro contm informaes erradas ou no. Para esses casos, voc vai precisar
informaes externas para validar os dados contra.
As relaes inter-table so mais fceis de perfil, simplesmente uma questo de ava-
equacionar a possibilidade de uma relao aplicada corretamente. Em um sistema de
entrada de ordem,
no deve ser possvel encontrar um nmero de cliente na tabela para que no
no existe na tabela de clientes. O teste mesma relao pode ser usada para encontrar
quantos clientes esto na tabela de clientes, mas no (ainda) na ordem
tabela. O mesmo se aplica aos produtos e detalhes dos pedidos, estoques e fornecedores,
e assim por diante.
Usando DataCleaner eobjects.org
Atualmente, o Pentaho BI Suite no contm dados de perfis de capacidades,
por isso vamos usar uma ferramenta chamada DataCleaner desenvolvidos pela comunidade
open source,
Comunidade eobjects.org. O software pode ser obtido a partir de http://datacleaner
. Eobjects.org e muito fcil de instalar. No Windows, basta descompactar
o pacote e iniciar datacleaner.exe. Em uma mquina Linux, depois descompactar-
o da tar.gz arquivo que voc primeiro precisa fazer o datacleaner.sh shell script
executvel para iniciar o programa. Se voc estiver usando o ambiente desktop GNOME
ente, isto muito fcil: basta o boto direito do mouse no arquivo e abra as propriedades.
Em seguida, v para a aba Permisses e marque a caixa de seleo antes de permitir a
execuo
Captulo 8 O Data Mart Processo de Projeto 199
arquivo como programa. Agora voc pode clicar duas vezes sobre o datacleaner.sh arquivo eo
programa ser iniciado. Se voc quiser uma maneira mais conveniente de iniciar o programa
da prxima vez, voc pode criar um atalho (no Windows) ou um lanador (no GNOME).
DataCleaner prev trs tarefas principais:
Perfil-Tudo as tarefas coluna perfis descritos anteriormente. A idia aqui
para obter insights sobre o estado dos seus dados. Assim, voc pode usar o perfil
tarefa, sempre que voc quiser explorar e tirar a temperatura do seu
banco de dados.
Validar-To criar e testar as regras de validao com os dados. Estes
regras de validao podem posteriormente ser traduzido (por mo) em Pentaho Data
validao de medidas de integrao. O validador til para a aplicao das regras
sobre os dados e controlar os dados que no estejam em conformidade com esses
regras.
Compare-To comparar dados de diferentes tabelas e esquemas, e
verificar a consistncia entre eles.
A partir dessas descries, claro que no DataCleaner
fornecer recursos de profiling tabela intra-como uma opo direta, mas h outros
maneiras de fazer isso com a ferramenta, como mostraremos mais tarde.
A primeira coisa que voc precisa, claro, uma conexo com o banco de dados que voc
quer
ao perfil. Para cada tipo de banco de dados, DataCleaner necessidades dos correspondentes
driver, que permite a comunicao entre a ferramenta ea base de dados.
Antes de explicar como adicionar drivers e conexes, vamos dar uma primeira olhada
nas funes disponveis. DataCleaner comea com o painel de tarefas Novo aberta,
que permite que voc escolha uma das trs opes principais: perfil, validar,
e Compare. Clique no perfil para iniciar uma tarefa de perfis novos. Voc ver um
tela vazia quase dois painis com algumas opes e os dados selecionados no
indicao no painel esquerda (ver Figura 8-1).
Figura 8-1: tarefa Criao de Perfil
200 Parte II Dimensional Modelagem e Design de Data Warehouse
Agora selecione Abrir banco de dados, selecione a entrada de SampleData DataCleaner
Na lista de conexo Named drop-down e clique em Conectar ao banco de dados. Todos
outros campos tm sido definido. Quando voc abre o n da rvore PBLICO
esquerda, clicando no +sinal, a lista com as tabelas exibida. Cada tabela
pode ser aberto individualmente, o que exibe as colunas disponveis. Para adicionar um
coluna para a seleo de dados, basta clicar duas vezes nele. Voc notar que a tabela
nome acrescentado ao campo de tabela (s), ea coluna para o campo de coluna (s).
Para remover uma coluna da seleo, clique duplo-lo novamente ou utilize Limpar
Seleo para remover completamente a tabelas e colunas selecionadas. O Preview
opo mostra uma amostra dos dados selecionados, o nmero de linhas a serem recuperadas
pode ser ajustado aps clicar no boto. O valor padro geralmente suficiente para
obter uma primeira impresso do contedo dos dados. Cada tabela comea seu selecionados
colunas exibidas em uma janela separada.
Ao lado da guia de seleo de dados o guia Metadados. Ao clicar nesta, o
metadados tcnicos das colunas selecionadas exibida. O tipo de campo, campo
comprimento e, especialmente, a indicao Nullable lhe dar uma primeira impresso de
o tipo de dados que podem ser esperados.
Adicionando tarefas perfil
Depois de selecionar algumas colunas para o perfil, voc pode adicionar perfis diferentes.
Dados
Cleaner contm as seguintes opes de perfil padro:
As medidas padro-Row contagem, o nmero de valores nulos, valores vazios,
valor maior e menor.
anlise String Porcentagem de caracteres maisculos e minsculos, por cento
idade de caracteres no-letra, nmero mnimo ou mximo de palavras,
eo nmero total de palavras e caracteres na coluna.
Time-anlise Menor e maior valor de data, acrescido de nmero de registros
por ano.
anlise do nmero-Maior, menor soma, mdia, mdia geomtrica, nor-
desvio padro e varincia.
Localiza-finder Padro e conta com todos os padres em uma coluna de caracteres.
Geralmente usado para nmeros de telefone, cdigos postais, ou outros campos que
devem
obedecer a um padro especfico alfa-numrico. exemplos padro 9999
aa (4 dgitos, espao 2 caracteres), (hfen trs personagens, trs dgitos) aaa-999.
Dicionrio matcher-Jogos as colunas selecionadas contra o contedo
de um arquivo externo ou outra coluna de banco de dados (um dicionrio'''').
Regex matcher-Jogos colunas contra uma expresso regular.
Data matcher mscara Jogos colunas de texto contra padres de data, esta
no pode ser usado com campos de data, apenas com campos de texto contendo a data
e / ou tempo de informao.
Captulo 8 O Data Mart Processo de Projeto 201
distribuio de valor Calcula o topo ea base valores de N em um col-
umn com base na sua freqncia, ou classifica o nmero de ocorrncias e
calcula a porcentagem de freqncia para cada valor. O valor para Npode
ser qualquer nmero entre 0 e 50, o padro 5.
A coleo de perfis em uma tarefa muito flexvel, possvel adicionar
perfis do mesmo tipo a uma nica tarefa. Cada tarefa pode ser salvo, bem como,
mas isso s vai salvar os perfis de conexo e de tarefas, no os resultados de perfil.
Esta ltima opo uma funo distinta e salva os resultados em um arquivo XML,
que infelizmente uma rua de sentido nico; DataCleaner no pode ler esses arquivos
de volta. Persistindo resultados de perfil faz parte do roteiro para futuros lanamentos.
Adicionando conexes de banco de dados
Uma das primeiras coisas a fazer, ao estabelecer o ambiente de dados de perfis
para adicionar os drivers de banco de dados e ao armazenamento correto das ligaes para
o seu prprio
bases de dados para facilitar a seleo. A primeira tarefa bastante simples e, no
DataCleaner tela principal, selecione Arquivo, Registro driver de banco de dados. H dois
maneiras de adicionar um novo driver. A primeira baixar e instalar automaticamente
elas. Esta opo est disponvel para MySQL, PostgreSQL, SQL Server / Sybase,
Derby, e SQLite. A segunda maneira de fazer isso para registrar manualmente uma
Jar. arquivo com os drivers. Para ajudar voc a encontrar os drivers, DataCleaner contm
a opo de visitar o site do driver para os drivers de banco de dados mais comuns,
tais como os de Oracle ou IBM DB2. Depois de baixar um driver, voc precisar
fazer referncia a ela, selecionando o arquivo e da classe driver correto. Para o MySQL, ns
usar o download automtico e instalar opo.
DICA Se voc j instalou o driver JDBC do MySQL, no h necessidade de download
-lo novamente, basta registar o seu vigor Jar. arquivo.
Adicionando a conexo para que voc possa selecion-lo na lista drop-down na
Abra a caixa de dilogo banco de dados um pouco mais complicado. Para isso, precisamos
de alterar
o arquivo de configurao DataCleaner, que pode ser encontrado no DataCleaner
pasta e chamado datacleaner-config.xml. Para editar arquivos XML, melhor
usar um editor de texto simples que compreende a sintaxe XML. Para o Windows
plataforma, o Notepad + + de cdigo aberto pode ser usado; em uma mquina Linux, apenas
direito do mouse no arquivo e abra com o editor de texto. Olhe para a parte do arquivo
que diz:
<-! Conexes nome. Adicione suas prprias conexes aqui. ->.
Abaixo desta linha h uma entrada vazia para o drop-down list, basta deixar
que onde ele est. A segunda entrada a conexo com os dados da amostra. Cpia
parte da amostra de dados que comea com feijo < e termina com </ Bean>, Incluindo
202 Parte II Dimensional Modelagem e Design de Data Warehouse
o comeo eo fim feijo tags. Cole-o logo abaixo da marca de fechamento da amostra
entrada de dados e ajustar a informao para refletir suas prprias configuraes. Abaixo est
a entrada, ele deve procurar a conexo com o banco de dados WCM no seu
mquina local:
class="dk.eobjects.datacleaner.gui.model.NamedConnection"> <bean
<property name="nome_qualquer" value="WCM MySQL database" />
<Nome da propriedade = "connectionString" value = "jdbc: mysql: / / localhost:
3306 "/>
<property name="username" value="yourusername" />
<property name="password" value="yourpassword" />
name="tableTypes"> <property
<list>
<value> TABELA </ value>
</ Lista>
</ Property>
</ Bean>
Para ter DataCleaner tambm ligar para o catlogo correto, no nosso caso o
Catlogo de WCM, uma linha extra deve ser adicionada abaixo da propriedade senha
linha, como este:
valor <property name="catalog" = "wcm" />
No recomendvel armazenar senhas em arquivos de texto simples, na verdade, ns
se opem fortemente a faz-lo, e neste caso voc pode deixar o campo de senha
vazia tambm. Nesse caso, voc precisar fornecer a senha cada vez que voc
criar um novo perfil de tarefa.
Para usar DataCleaner com outras fontes de nosso banco de dados WCM, voc pode
encontrar exemplos do elemento XML de feijo para outros bancos de dados populares no
documentao DataCleaner online.
Fazer um perfil inicial
O Profiler DataCleaner foi otimizado para permitir que voc faa uma vez
rpida e, ao mesmo tempo perspicaz perfil com pouco esforo. Para comear
com perfil, voc pode adicionar as medidas padro, String Anlise, Nmero
Anlise e Anlise Tempo perfis clicando repetidamente o perfil Adicionar
boto no canto superior direito da janela de tarefa perfil. Voc pode aplicar esses
perfis para todas as colunas de seu banco de dados para obter a percepo inicial.
Trabalhando com Expresses Regulares
As expresses regulares ou expresses regulares so uma forma de mascarar e descrever os
dados,
principalmente para fins de validao, mas tambm para encontrar certos padres em um
texto. Vrios
livros foram escritos sobre como trabalhar com expresses regulares, assim ns nos referimos
Captulo 8 O Data Mart Processo de Projeto 203
a informao existente aqui. Alm disso, o captulo 11 contm alguns exemplos
de como voc pode usar expresses regulares para analisar dados de websites. Dados
Limpador contm matcher uma regex como um dos perfis, bem como uma regex
validao como parte do validador. Antes que voc pode usar expresses regulares,
voc precisar adicion-los ao catlogo Regex DataCleaner na tela principal.
Inicialmente, este catlogo est vazio, mas fcil de adicionar regexes. Quando voc clica
regex Nova, trs opes aparecem. A primeira criar um homem novo regex
vamente eo ltimo conseguir uma regex do propriedades. arquivo. A segunda
a opo mais interessante: Ao selecionar Importar da RegexSwap,
uma biblioteca on-line aberto com uma grande coleo de expresses regulares existentes
para escolher
a partir de. tambm possvel contribuir com a sua prpria regexes ao RegexSwap
em http://datacleaner.eobjects.org/regexswap para outros (re) utilizao. Depois
importao de uma regex do RegexSwap, voc pode abri-lo a mudar seu nome e
a prpria expresso, e no h uma opo para testar a expresso, introduzindo
strings que voc deseja validar. Se o RegexSwap no satisfazer as suas necessidades, uma
vasta
nmero de expresses regulares esto disponveis em sites da internet de outros tambm.
O site http://regexlib.com, Por exemplo, contm regexes por telefone nos EUA
nmeros e cdigos postais. Outro site muito interessante, sobretudo se voc quiser aprender a
sintaxe de expresso regular, www.regular-expressions.info. Use o seguimento
ing etapas para tentar uma para os nmeros de telefone na nossa base de clientes WCM.
1. Uma expresso que ir coincidir com a maioria dos nmeros, com ou sem extenso
parecido com este:
(((\ D {3} \)) |?. (\ D {3} [- \ .]))? \ d {3} [-] \ d {4} (\ s (x \ d + ?)) {0,1} $
Clique regex novo na tela principal DataCleaner e criar um novo
expresso. D o nome de expresso e digite a expresso acima,
ou copi-lo a partir de amostras de WCM no site da companhia.
2. Salvar a expresso (voc pode, naturalmente, test-lo primeiro com um telefone real
nmero) e comear uma nova tarefa. Abra o banco de dados WCM e clique duplo
sobre o telephone_number campo na tabela de clientes.
3. Adicionar um perfil matcher Regex, ative a guia matcher Regex e selecione
somente o nome da expresso que voc criou. DataCleaner, por padro,
seleciona todos os regexes disponveis por isso, se este o nico disponvel j
selecionado. Caso contrrio, clique em nenhum Selecione primeiro e depois ativar os EUA
Nmero de telefone. Se o nmero de telefone a nica coluna nessa tarefa,
no h diferena entre a aplicao do jogo, para todos os dados selecionados, mas
melhor selecionar explicitamente a telephone_number coluna como um subconjunto
de dados.
Sua tela deve agora olhar como o exemplo na Figura 8-2.
Se voc no selecionar o nmero do telefone como um subconjunto de dados e adicionar
mais
colunas mais tarde, eles sero automaticamente digitalizados com a mesma regularidade
expresso, que no faz muito sentido na maioria dos casos.
204 Parte II Dimensional Modelagem e Design de Data Warehouse
Figura 8-2: Regex matcher definio
A caracterizao e explorao de resultados
Agora voc est pronto para o perfil dos nmeros de telefone, ento clique em Executar de
perfil para
iniciar o processo. DataCleaner ir exibir uma tela de status, onde voc tambm pode
acompanhar o andamento do processo perfil. Quando o perfil concludo, um
guia resultados adicionado tela, um para cada tabela que continha perfilado
colunas. Abra a guia ao cliente, ea tela de resultado deve ser algo
como na Figura 8-3.
Figura 8-3: resultados Profiler
Ns deliberadamente alterou um pouco os nmeros de telefone aqui para obter algumas
excees
e ser capaz de mostrar outro recurso interessante DataCleaner: perfurao at a
detalhes. Clicando na seta verde ao lado do abre trs excees encontradas
a tela mostrada na Figura 8-4.
Figura 8-4: Excees
Este no o fim, porm. Quando voc clica direita, voc ver dois de exportao
opes: uma para as clulas seleccionadas e uma para a tabela inteira. A ltima opo
Captulo 8 O Data Mart Processo de Projeto 205
tambm ir adicionar o cabealho da coluna para a rea de transferncia, o primeiro de cpias
apenas o
dados selecionados. As clulas selecionadas no precisam ser adjacentes. Ao usar a tecla
Ctrl
Voc pode, por exemplo, selecionar o cdigo do cliente e nmero de telefone e apenas
copiar as colunas para a rea. Depois disso, voc pode facilmente colar os dados
em uma planilha ou outro arquivo para posterior explorao.
Validao e comparao de dados
Validao funciona de forma semelhante como a tarefa de perfil, mas acrescenta algumas
capacidades. Voc pode verificar os valores nulos ou fazer uma verificao do intervalo de
valor para descobrir
se as entradas de coluna em uma queda entre um valor inferior e superior. A
caracterstica mais avanada a avaliao de JavaScript, que permite usar qualquer
JavaScript expresso para avaliar os dados. A diferena a sada: o val-
tarefa idation exibir apenas as entradas que no passarem nos testes com uma contagem
dos registros. O roteiro inclui DataCleaner futuros planos para integrar o
perfil e validao de tarefas e oferecer uma nica interface integrada para ambas as tarefas.
Na comparao dos dados permite a comparao de bases de dados diferentes ou
esquemas, ou comparar os dados com um arquivo. Portanto, essa tarefa pode ser usado para
verificar se todos os clientes no ordens tabela tambm existem no cliente tabela
e as funes idnticas comparao.
Usando um dicionrio para verificaes de dependncia Coluna
DataCleaner no fornece uma soluo out-of-the-box para verificar a combi-
naes de colunas, ou se uma coluna dependente contm um invlido
entrada com base nas informaes em outra coluna. H, no entanto, uma forma
para fazer essas anlises usando um dicionrio, combinadas com vistas banco de dados.
A DataCleaner dicionrio um arquivo de texto contendo os valores que podem ser usados
para
validar os dados em uma tabela de banco de dados. Por exemplo, voc pode baixar a ISO
mesa pas, armazenar os valores em um arquivo de texto, e usar este arquivo de texto como
um catlogo
para verificar as entradas em uma coluna pas. Se voc tomar um passo adiante,
tambm possvel armazenar vrios campos concatenados por linha e criar uma viso
no banco de dados, que concatena as colunas a serem validados no mesmo
caminho. Agora, a viso pode ser perfilado usando o dicionrio com a concatenadas
entradas, cada linha que no corresponde com os valores corretos no arquivo de texto
ser reconhecido pelo DataCleaner. Como uma alternativa ao uso de arquivos de texto,
tambm
possvel utilizar uma''verdadeira''banco de dados do dicionrio. Esta base de dados do
dicionrio necessidades
a ser adicionada ao arquivo de configurao DataCleaner como explicado no''Adicionar
Conexes de banco de dados''seo.
Solues Alternativas
Muito poucas alternativas open source existem para autnomos ou de dados incorporados
profiling. A ferramenta de modelagem de dados de SQLPower, que apresentamos em breve,
206 Parte II Dimensional Modelagem e Design de Data Warehouse
tem alguns recursos bsicos de perfis, e oferece uma Talend Profiler dados tambm.
Se qualquer uma dessas ferramentas de trabalho para voc, basta us-los. Outra
frequentemente utilizados
alternativa para criao de perfis de dados criar scripts personalizados para perfis de dados
SQL
finalidades. Recomendamos que isso s se voc tiver muito especializadas
requisitos que no so fornecidos fora da caixa por DataCleaner. Embora
est fora do escopo deste livro, possvel estender a DataCleaner
funcionalidade com suas tarefas de perfil do prprio cliente, que lhe d uma
soluo mais rpida, mais confivel e mais flexvel do que totalmente a partir de
zero.
Desenvolvimento do Modelo
Depois que as exigncias so claras, as fontes de dados corretos foram identifi-
cados, e os dados de perfis processo tiver fornecido suficientemente detalhada
informaes sobre o contedo ea qualidade dos dados de origem, voc pode comear por
desenvolvimento global de data mart modelo de dados. Antes de criar o real
modelo de dados detalhados em uma ferramenta de modelagem de dados, primeiro voc
precisa identificar quais
temas e medidas que voc ir criar na sua data mart inicial. a que
os requisitos criado anteriormente entram em jogo. Uma exigncia que cobre
''Cliente do produto de anlise de vendas''claramente precisa de ter os assuntos cliente,
produto,e tempo adicionado com as medidas receita de vendas e nmero de
itens. Sem descrever estas entidades em detalhes, possvel j a desenhar
o modelo de alto nvel, como mostrado na Figura 8-5.
Produto
Cliente
* Receita
* Itens Vendidos
Time
Figura 8-5: Alto nvel do modelo estrela
Este um ponto de partida perfeito para especificar melhor o contedo exato da sua
tabelas de dimenso e de fato, pois este modelo fcil de entender, mesmo para um
usurio de negcios no-tcnicos. O prximo passo no refinamento do modelo a
determinao
quais atributos devem fazer parte de cada dimenso. Ela ajuda a diferenciar
entre os atributos de anlise e de detalhe. Um atributo um campo de anlise que
ser usada para informar ou agrupar os dados sobre como um grupo de clientes, cidade,
gnero,
e ms. Detalhe atributos so em sua maioria de elementos descritivos, tais como o cliente
nomes, nmeros de telefone e endereo. Voc pode at considerar
deixando os detalhes atributos fora do armazm de dados completo. Isso no
Captulo 8 O Data Mart Processo de Projeto 207
sempre uma boa idia, no entanto. Suponha que voc queira gerar listas de discusso
directamente a partir do armazm de dados com base em algumas anlises, ou processo de
seleo;
voc vai precisar das informaes de endereo, nmeros de telefone, e-mail
endereos.
DICA Nos quadros de pequenas dimenses, a distino entre detalhe e analtica
atributos desprezvel, mas quando a tabela de dimenso fica muito grande, isso
distino auxilia na determinao de quais atributos podem ser movidos para uma
mini-dimenso.
Para cada atributo, voc precisa definir que tipo de dados e comprimento,
estar. Tambm uma boa idia para adicionar uma descrio de cada campo, o que pode
parecer
complicado no incio, mas este metadados adicionados muito til tanto para final
usurios e pessoas que sero a manuteno do sistema. Tabela 8-1 contm uma
exemplo parcial de uma dimenso de cliente. Uma coluna muito importante a
com o ttulo SCD (por tipo de Dimenso de Alterao Lenta). Isso determina
como as atualizaes para essas colunas sero tratadas pelo processo de ETL.
Tabela 8-1: dimenso Cliente
CAMPO
Customer_key
Customer_id
Customer_name
Customer_city
Customer_phone
_number
Customer_register
_date_key
ANLISE
N
N
N
Y
N
Y
TIPO
INT
INT
VARCHAR
VARCHAR
CHAR
INT
DISTNCIA
4
4
63
64
12
4
2
2
2
1
SCD DESCRIO
Substituto
chave de dimenso
Fonte original
chave do sistema
Nome completo (primeiro +
mdia +passado)
Nome da cidade
Telefone
nmero
Primeiro registo
data de cliente
Mais adiante neste captulo, vamos estender essa tabela com origem e transformao
informaes, bem como, inicialmente, mas para discutir e documentar a data mart
mesas, o arranjo mostrado aqui funciona bem.
Uma observao final sobre comprimentos de campo: Pode acontecer que o sistema de sua
fonte
esquema diz que o campo de nome da cidade de 64 caracteres de largura. Quando voc
perfil os dados, voc encontrar alguma coisa, ou seja, que o nome a maior cidade
apenas 30 caracteres (o que verdadeiro para o banco de dados exemplo WCM: STE Marthe
LA MADELEINE DU CAP). Por favor, no caia na armadilha de cortar a cidade
208 Parte II Dimensional Modelagem e Design de Data Warehouse
campo Nome na tabela de dimenso de 30 caracteres, nesse caso. O mesmo
se aplica a outros campos descritivos, tais como descrio do trabalho, ttulo do DVD, e assim
em. Mesmo que as entradas atuais so todos menores que o comprimento especificado
no significa que em algum momento algum no vai entrar um valor que excede
esse nmero. Isso pode levar tanto a uma entrada incompleta ou uma falha no
ETL processo, que precisa ser tratada. Tome sempre o comprimento da fonte
campos da tabela, no mnimo, para a meta de comprimentos de campo da tabela.
Especial ateno deve ser dada tabela de fatos e, especialmente, o
granularidade (nvel de detalhe) dos fatos. Os usurios corporativos deveriam acordar
sobre o significado de um nico registro. Quando olhamos para os fatos ordem em nosso
exemplo, a linha de ordem o menor nvel de detalhe e, assim, a granularidade da
o modelo.
Modelagem de dados com Power * Architect
At agora temos analisado os dados e trabalhou com aplicaes de escritrio para
documentar
nosso projeto. Agora hora de traduzir essa informao em um modelo de dados reais
em um banco de dados. Porque Pentaho BI um conjunto e no uma ferramenta de
modelagem de dados,
ir usar uma soluo de terceiros aqui tambm. H alguns dados de cdigo aberto
ferramentas de modelagem disponveis, mas a maioria deles tm capacidades limitadas. s
vezes
a limitao em termos de funcionalidade, por exemplo, voc no pode fazer engenharia
reversa
bases de dados existentes e, por vezes, a limitao das bases de dados a ferramenta pode
trabalhar com ele. Por estas razes, ns no vamos usar o MySQL Workbench. Ele pode
s podem ser utilizadas em conjunto com o MySQL ea verso de cdigo aberto um
despojado edio do comercial. DICA Assumimos uma compreenso bsica dos conceitos de modelagem de dados e teoria. Se
este no o caso, o livro Dominando Data Warehouse Design por Claudia Imhoff
et al. (Wiley, 2003) tem uma excelente introduo sobre o assunto e tambm fornece
um mergulho mais profundo em alguns dos conceitos de modelagem que introduzimos neste e nos
captulo anterior.
Ao olhar para uma ferramenta de modelagem de dados, certifique-se que pelo menos os
seguintes
funcionalidade est disponvel:
Multi-banco de dados de suporte Talvez voc deseja fazer engenharia reversa de uma
exis-
o de banco de dados Oracle e gerar um banco de dados MySQL a partir de uma
adaptao
modelo. Mais tarde voc pode decidir mudar para o PostgreSQL, mas se a ferramenta
no suporta isso, voc tem um problema.
Encaminhar engenharia Gerar novos objetos de banco de dados a partir de um
modelo.
A engenharia reversa Gerar um modelo de um banco de dados existente.
Captulo 8 O Data Mart Processo de Projeto 209
Modelo comparao Compare o modelo com o esquema de banco de dados (ou
vice-versa) e gerar scripts de modificao.
As ferramentas mais avanadas no mercado tambm oferecem recursos como verso
gesto e verso de comparao, a diviso entre as empresas, lgica e
modelos fsicos de banco de dados, recolher e expandir elementos grficos, e
caractersticas documentao. Os preos para ferramentas comerciais com um ou mais dos
esses recursos avanados variam de US $ 200 a US $ 5.000, mas se voc est projetando um
sistema de banco de dados de misso crtica para uma grande empresa, esses custos no
podem
ser um problema. Ns estaremos usando o cdigo-fonte aberto Power * Architect (P * A)
ferramenta
de SQLPower (www.sqlpower.ca), Porque um dos poucos ou talvez
mesmo a ferramenta de cdigo aberto apenas disponvel que suporta as quatro funes
na lista anterior. Power * Architect est disponvel para Linux, Windows e
Mac e pode ser baixado do site SQLPower. A verso para Windows
um instalador executvel, tal como qualquer outro programa do Windows, definindo o
programa em Linux leva um pouco mais de esforo (mas no muito). Download
o tar.gz arquivo e extra-lo para um diretrio de sua escolha. O programa uma aplicao Java
arquivo (Architect.jar), Que pode ser iniciado com o comando java-jar
architect.jar na linha de comando dentro da pasta Architect. Voc
tambm pode criar facilmente um lanador ou um novo item de menu para o programa.
Podemos acrescentar muito pouco ao Poder excelente guia de usurio * Arquiteto desde
por SQLPower. Como voc vai descobrir muito rapidamente, a ferramenta inclui ainda um
dados de perfis de opo. Para uma viso bsica sobre os dados, essa funcionalidade
suficiente
mas no existem validadores regex ou domnio, como em DataCleaner. Um outro
ponto de cuidado aqui: O profiler pode trabalhar em uma tabela completa apenas, e no em
colunas individuais. Perfil de tabelas muito grandes podem, portanto, ter uma longa
tempo para completar.
Mais prs e contras de ARQUITETO POWER *
Alguns recursos que voc pode encontrar em outras ferramentas, mas no em P * A uma seleo de
opes de exibio que permitem exibir somente o nome da tabela, ou somente a chave primria
campos, ou todos os campos. E embora haja um zoom in e out facilidade, isso funciona
para todo o modelo, no para uma rea selecionada. Mas tudo isso so questes de menor importncia
e no nos impediu de usar e recomendar esta ferramenta. Na verdade, h uma
Casal de caractersticas nicas no disponveis em qualquer outra ferramenta, como a ETL e
opes OLAP. Um gadget muito bacana (que pode realmente provar ser muito
til) a possibilidade de copiar as tabelas de um banco para outro. Imag-
ine voc tem um banco de dados Oracle e querem alguns quadros copiados para um MySQL
instncia. Basta criar uma conexo com bancos de dados e utilize a tabela de cpia
dados de opo no menu Ferramentas para selecionar uma tabela de um banco de dados de origem,
clique em um esquema de destino e clique em OK.
210 Parte II Dimensional Modelagem e Design de Data Warehouse
Construindo o Data Marts WCM
Depois de ter consultado o Poder guia do usurio * Arquiteto e fez-se
familiarizado com a ferramenta, hora de comear a construir data marts WCM. Voc
precisa de duas conexes para fazer isso, uma ao banco de dados WCM e outro para
WCM_DWH um novo banco de dados, que servir o armazm de dados.
Em muitos casos, o data warehouse ir puxar os dados de mais de uma fonte
do sistema. s vezes voc no vai mesmo ter acesso direto a estas bases de dados, ou
pelo menos no quando voc est projetando a data marts. Isso torna difcil para construir
o modelo baseado em um ou mais sistemas de origem. Se voc pode fazer e usar
conexes diretamente aos bancos de dados fonte, existem algumas vantagens quando
trabalhar com P * A. A ferramenta''''lembra os mapeamentos que voc faz quando
arrastar uma coluna a partir de uma conexo de fonte para o painel do projeto. Voc tambm
pode
ver isso no editor de propriedades da coluna, onde as duas primeiras linhas logo acima do
nome da coluna exibir o nome da fonte bases de dados e nome da fonte
coluna da tabela. Uma coluna que adicionada mo ir exibir o texto''Nenhum
''Especificado para o banco de dados e nome da coluna.
DICA Para abrir rapidamente as propriedades de uma tabela ou coluna, clique na tabela ou
nome da coluna e pressione Enter.
Voc provavelmente j viu o Criar Chaleira Job opo no menu de ETL
e questionou se esta uma forma rpida de construir postos de trabalho de transformao. A
resposta : depende. Se todas as colunas so mapeadas a partir de uma fonte
banco de dados, voc pode considerar a gerao de empregos como uma chaleira de incio
rpido para o seu
transformaes. Em todos os outros casos, essa opo intil, porque um trabalho s pode
ser criada se houver um mapeamento real.
DICA Com Power * Architect fcil migrar parte ou um banco de dados inteiro do
uma plataforma para outra usando a opo Criar Chaleira Trabalho. O trabalho pode ser Chaleira
criado como uma coleo de arquivos (um arquivo de trabalho de mais um arquivo de transformao para
cada
tabela) ou diretamente na Chaleira repositrio. Uma soluo ainda mais rpido usar a cpia
Quadros Assistente em Pentaho Data Integration (Spoon) diretamente.
O diagrama na Figura 8-6 exibe os pedidos do esquema de data mart, que
provavelmente a primeira vez que ser criado. Usando esta data mart, uma multido de
questes comerciais podem ser respondidas:
Quais gneros de filme ou sites geram mais receita?
Como eficazes so as promoes que o lanamento?
Quem so nossos clientes mais rentveis?
Como a nossa receita evoluindo ao longo do
tempo?
Qual a relao entre os nossos sites e grupos demogrficos?
Em que hora do dia em que os clientes, o lugar mais pedidos?
dim_dvd_releasedvd_release_key: INTEGER (10) [PK] dvd_release_aspect:
VARCHAR (10) dvd_release_id: INTEGER (10) dvd_release_title: INTEGER (10)
dvd_release_release_date: DATA dvd_release_rating_code (10): VARCHAR (10)
dvd_release_rating_desc: VARCHAR (35) dvd_release_genre: VARCHAR (35 )
dvd_release_studio: VARCHAR (20) dvd_release_ean: VARCHAR (35)
dvd_release_status_code: VARCHAR (15) dvd_release_sound: VARCHAR (20)
dvd_release_versions CHAR (13) dvd_rental_duration: CHAR (13) dvd_release_upc
SMALLINT (10) dvd_rental_price: dvd_purchase_price (10) DECIMAL : DECIMAL
(10) valid_from: valid_to (10) DATA: verso (10) DATA: SMALLINT (10)
last_modified: INTEGER (10) is_current TIMESTAMP (10)
dim_promotionpromotion_key: INTEGER (10) [PK]
promotion_id: INTEGER (10) promotion_name:
INTEGER (10) promotion_start_date: DATA (10)
promotion_end_date: DATA promotion_type (10):
VARCHAR (35) promotion_website_title: VARCHAR
(50) promotion_website_uri: VARCHAR (60 ) valid_from:
DATEvalid_to: DATEversion: TINYINT (3)
last_modified: INT (8) current_record TIMESTAMP
dim_websitewebsite_key: INTEGER (10) [PK]
website_id: INTEGER (10) website_title:
VARCHAR (50) website_uri: valid_from
VARCHAR (60): DATA (10) valid_to: verso
(10) DATA: INTEGER (10) is_current:
SMALLINT (10 ) last_mofidied:
TIMESTAMP (10)
dim_warehousewarehouse_key: INTEGER (10) [PK] warehouse_id:
INTEGER (10) warehouse_name: VARCHAR (35) warehouse_address1:
VARCHAR (50) warehouse_address2: VARCHAR (50)
warehouse_postal_code: VARCHAR (10) warehouse_city_name:
VARCHAR (64) warehouse_region_code: CHAR (2 )
warehouse_region_name: VARCHAR (50) warehouse_country_code:
CHAR (2) warehouse_country_name: VARCHAR (50)
warehouse_email_address: VARCHAR (64)
warehouse_telephone_number: CHAR (12) valid_from: valid_to (10)
DATA: verso (10) DATA: INTEGER (10) is_current : SMALLINT (10)
last_modified: TIMESTAMP (10)
dim_datedate_key:
INTEGER (10) [PK]
date_value: (10) DATA
<<total de 40 colunas>>
Integer (10)
dim_zipcensuszipcode: CHAR (5) [PK] Estado: CHAR (2) populao: BIGINT (19) housingunits:
BIGINT (19) landareameters: BIGINT (19) waterareameters: BIGINT (19) landareamiles: DUPLO
(17) waterareamiles: DUPLO (17 ) latitude: longitude DUPLO (17): DUPLO (17) numstates:
BIGINT (19) pop: BIGINT (19) popedu: BIGINT (19) hh: BIGINT (19) fam: BIGINT (19)
hhunits: BIGINT (19) hhmedincome : DUPLO (17) hhssincome: DUPLO (17) hhnossincome:
DUPLO (17) faminc000_010: DUPLO (17) faminc010_015: DUPLO (17) faminc015_020:
DUPLO (17) faminc020_025: DUPLO (17) faminc025_030: DUPLO (17) faminc030_035:
DUPLO (17) <<total de 113 colunas>>: DUPLO (17)
dim_timetime_key: INTEGER (10)
[PK] time_value: CHAR (5)
time_hour: INTEGER (2)
time_minute: INTEGER (2)
time_daypart: VARCHAR (15)
dim_demographydemography_k
ey: INTEGER (10) [PK]
age_group: VARCHAR (10)
gnero: CHAR (10)
income_group: VARCHAR (20)
fact_ordersfact_order_key: INTEGER (10) [PK] website_key: INTEGER (10) [FK]
customer_key: INTEGER (10) [FK] dvd_release_key: INTEGER (10) [FK] promotion_key:
SMALLINT (5) [FK] local_order_date_key: INTEGER (10 ) [FK] local_order_time_key:
INTEGER (10) [FK] demography_key: INTEGER (10) [FK] customer_order_id: INTEGER
(10) from_warehouse_key: INTEGER (10) [FK] to_warehouse_key: INTEGER (10) [FK]
utc_order_date_key: INTEGER ( 10) [FK] utc_order_time_key: INTEGER (10) [FK]
shipping_date_key: INTEGER (10) [FK] delivery_due_date_key: INTEGER (10) [FK]
delivery_date_key: INTEGER (10) [FK] return_due_date_key: INTEGER (10) [FK]
return_date_key: INTEGER (10) [FK] order_status_key: INTEGER (10) [FK] receitas:
quantidade (6) DECIMAL: SMALLINT shipping_cost (10): order_to_delivery_lag (6)
DECIMAL: INTEGER (10) rental_duration: INTEGER (10)
dim_order_statusorder_status
_key: INTEGER (10) [PK]
order_status_id: INTEGER
(10) order_status_desc:
VARCHAR (15)
dim_customercustomer_key: INTEGER (10) [PK] customer_id: INTEGER (10)
customer_first_name: VARCHAR (35) customer_middle_initial: CHAR (1)
customer_last_name: VARCHAR (30) customer_address1: VARCHAR (50)
customer_address2: VARCHAR (50) customer_postal_code: VARCHAR (10 )
customer_city_name: VARCHAR (64) customer_region_code: CHAR (2)
customer_region_name: VARCHAR (50) customer_country_code: CHAR (2)
customer_country_name: VARCHAR (50) customer_email_address: VARCHAR (64)
customer_telephone_number: CHAR (12) customer_date_of_birth: DATA
customer_website_name (0) : VARCHAR (50) demography_key: INTEGER (10) [FK]
valid_from: valid_to (10) DATA: verso (10) DATA: INTEGER (10) current_record:
TINYINT (10) last_modified: TIMESTAMP (10) CEP: CHAR (5) [FK]
Figura 8-6:
Pedidos de
data mart
212 Parte II Dimensional Modelagem e Design de Data Warehouse
O diagrama contm a concluso das encomendas data mart, mas, para maior clareza, ns
abreviou o data dimenso, que abordado no pargrafo seguinte. A
dim_zipcensus tabela tambm est includa em uma forma abreviada. Primeiro, vamos
ter um olhar para o diagrama e explicar algumas das escolhas que fizemos.
Fato tabela para evitar duplicaes, ns explicitamente adicionado um banco de dados
gerado
fact_order_key como uma chave primria para a tabela. H tambm um casal
de entradas calculado: order_to_delivery_lag e rental_duration. Estes
clculos no esto definidos no banco de dados, mas fazem parte da ETL
processo.
Demografia dimenso Este uma tabela de dimenses regulares, mas ns
necessidade de os dados do cliente durante o processo de carregamento para
determinar a
valor correto. Por favor, note que existem dois caminhos possveis de juno entre
fact_orders e dim_geography: uma direta e uma via dim_customer.
No modelo do usurio final, precisamos criar um alias extra para dim_geography
para contornar isso.
Regio / pas Baseada na nossa discusso no captulo 7 sobre
starflakes poderamos ter snowflaked regio e pas medida que ocorrem
em ambos os dim_warehouse e dim_customer mas ns decidimos fazer o
esquema em estrela como''pura''possvel.
Para colunas de Auditoria clareza que deixou as colunas de auditoria batch_insert,
batch_update (Que em lotes inseridos ou atualizados o registro?), E
dt_insert e dt_update (Quando o registro foi inserido e atualizado?).
colunas SCD2-A tabelas de dimenso para o tempo, o status do pedido, data e
demografia no contm os campos de gesto de mudana lenta
tipo 2 dimenses, porque estes quadros so considerados estticos ou
totalmente do tipo 1 (substituir).
DICA tabelas Power * Architect pode ser dada a sua prpria cor na barra de ttulo. Voc pode
usar este recurso para diferenciar as tabelas de dimenso e de fatos e fazer
mesas especiais, tais como a dimenso da demografia e da mini-Zipcensus
tabela outrigger facilmente reconhecvel.
Gerando o banco de dados
Com P * A, a criao do modelo fsico de dados muito simples. Primeiro voc precisa
para se certificar de que o catlogo de destino ou o esquema existe e adicionar uma conexo
para
neste catlogo. Com a opo do menu Ferramentas Forward Engineer, P * A pode gerar
o SQL para a criao de tabelas e ndices em vrios dialetos SQL. Clique
OK, para que a ferramenta gera o script e exibi-lo em um painel de visualizao. Agora
voc tem duas opes: executar o script diretamente usando a conexo selecionada
informao, ou copiar o contedo do painel para a rea de transferncia para uso em um
ferramenta externa. Se voc quiser modificar o script antes da execuo, ter
Captulo 8 O Data Mart Processo de Projeto 213
usar a opo de copiar, porque no possvel alterar o script no
painel de visualizao.
Dimenses gerar esttica
Nosso projeto inicial mart de dados contm duas tabelas estticas que no recebem os seus
dados
dos sistemas de origem, mas ser gerada usando scripts. A primeira a
dimenso temporal, que contm uma linha para cada minuto em um dia (1440 registros).
A dimenso de data especial e pode ser configurado para acomodar-resposta
eliminao de muitas questes relacionadas ao tempo, como voc viu no Captulo 7. Embora
no
h regras rgidas para as colunas que devem estar presentes em uma dimenso de data,
Tabela 8-2 mostra a estrutura de uma dimenso de data que lhe dar uma grande
de flexibilidade quando se trabalha com questes relacionadas ao tempo. A dimenso de data
apresentado tem uma granularidade de um dia, por isso a cada dia no calendrio traduz
em um nico registro. Observe tambm que a tabela no realmente esttica como a data
relativa
colunas precisam ser atualizados toda noite. Ento verdade que a gerao da tabela
um processo de um tempo, um outro processo necessrio para manter a tabela atualizada.
Voc deve ter notado que o ttulo contm a tabela''norte-PT''adio.
Nomes e abreviaes para dias, meses e trimestres pode variar para cada
linguagem, e voc precisa encontrar uma maneira de acomodar este em sua soluo. No
duas alternativas para implementar isso. A primeira a de adicionar campos adicionais
para cada idioma na tabela de mesma data, eo segundo a criao de separar
tabelas que contm apenas as colunas descritivo para cada idioma. Ns
preferem a ltima vez que oferece mais flexibilidade. O parente colunas de data
s precisam ser armazenados e mantidos, uma vez que permanecem os mesmos
independentemente da linguagem utilizada.
No s uma questo de nomes diferentes em linguagens diferentes, alguns
partes da data pode variar tambm. O primeiro dia da semana diferente
em pases europeus (segunda-feira) do que nos Estados Unidos (domingo), e
a maioria dos pases europeus aderem ao padro ISO 8601 para a numerao
semana e ano. Isto significa que um nmero de semanas em que os EUA poderiam diferir
na mesma semana no Reino Unido Por esta razo, foi includo o _ISO colunas
para a semana, ano, e na semana do ano. importante quando voc est construindo uma
base de dados
armazm para uma organizao multinacional de ter estas diferenas em
conta e tentar acordar um modo padro de usar estes nmeros. Outras
colunas que voc pode precisar em sua prpria situao so indicadores perodo fiscal.
Nem todas as organizaes usam o ano civil como o seu ano fiscal, e quando esta
o caso, voc deve incluir o ano fiscal, o ms fiscal, e em seu trimestre fiscal
dimenso de data tambm. A lista de entradas possveis quase ilimitado; ns
indicadores de visita para o dia de trabalho e nmero de dias teis no ms e
semana, os indicadores para as frias com referncias a tabelas que contm descries
de viagens internacionais e religiosas, e assim por diante. Ns limitamos nossa concepo de
o padro de campos de calendrio e as respectivas colunas de tempo relativo, mas
sinta-se livre para experimentar outros conceitos em seu prprio data mart.
214 Parte II Dimensional Modelagem e Design de Data Warehouse
Tabela 8-2: Data dimenso (EUA-PT)
CAMPO
date_key
date_value
date_julian
date_short
date_medium
date_long
date_full
TIPO
INT
DATA
INT
CHAR
CHAR
CHAR
CHAR
DISTNCIA
4
4
4
12
16
24
32
DESCRIO
dimenso Substituto
chave
Data-valor do dia
Arredondado data do calendrio
juliano
valor de texto curto para a data
Valor mdio de texto para
data
Long valor de texto para a data
texto completo o valor para a data
EXEMPLO
20091123
23-11-2009
2455159
11/23/09
23 de novembro de 2009
23 de novembro de
2009
Segunda-feira,
23 de novembro de
2009
2
23
327
0
0
0
0
Segunda-feira
Seg.
47
3
47
0
1
day_in_week
day_in_month
day_in_year
is_first_day_in
_month
is_first_day_in
_week
is_last_day_in
_month
is_last_day_in
_week
day_name
day_abbreviation
week_in_year
week_in_month
week_in_year
_ISO
is_weekend
is_weekday
TINYINT
TINYINT
SMALLINT
TINYINT
TINYINT
TINYINT
TINYINT
CHAR
CHAR
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
1
1
2
1
1
1
1
12
3
1
1
1
1
1
Nmero de dias na semana
Nmero de dias em
Ms
Nmero de dias no ano
1 para o primeiro dia, 0 para
outros
1 para o primeiro dia, 0 para
outros
1 para o ltimo dia, 0 para
outros
1 para o ltimo dia, 0 para
outros
Nome completo do dia
Nome abreviado do dia
Nmero da semana
Semana nmero no ms
Nmero da semana
1 para o Sat-Sun
1 para Mon-Fri
Captulo 8 O Data Mart Processo de Projeto 215
CAMPO
month_number
MONTH_NAME
Ms
_abbreviation
ano2
ano4
year2_iso
year4_iso
quarter_number
quarter_name
year_quarter
YEAR_MONTH
year_week
year_week_iso
current_week_cy
current_month_cy
last_week_cy
last_month_cy
current_week_ly
current_month_ly
last_week_ly
last_month_ly
ytd_cy_day
ytd_cy_week
ytd_cy_month
ytd_ly_day
ytd_ly_week
ytd_ly_month
TIPO
TINYINT
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
TINYINT
CHAR
CHAR
CHAR
CHAR
CHAR
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
TINYINT
DISTNCIA
2
12
3
2
4
2
4
1
2
7
7
7
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
DESCRIO
Nmero de meses em
ano
Nome completo do ms
Nome abreviado do ms
indicador do ano Curta
Long indicador do ano
Curta indicador do ano ISO
Long indicador do ano ISO
Nmero de quarto
Texto valor do trimestre
Valor Ano trimestre
valor de Ano-ms
semana do ano o valor
ISO valor de semana do ano
*
*
*
*
*
*
*
*
*
*
*
*
*
*
EXEMPLO
11
Novembro
Novembro
09
2009
09
2009
4
Q4
2009-Q4
2009-11
2009-47
2009-47
1
1
0
0
1
1
0
0
0
0
0
0
0
0
Continuou
216 Parte II Dimensional Modelagem e Design de Data Warehouse
Tabela 8-2 (Continuao)
CAMPO
current_year
last_year
week_sequence
TIPO
TINYINT
TINYINT
INT
DISTNCIA
1
1
4
DESCRIO
*
*
0 para a semana em curso, -1
para a anterior, uma para a prxima,
e assim por diante
0 para o ms atual, -1
para a anterior, uma para a prxima,
e assim por diante
EXEMPLO
1
0
0
month_sequence INT 4 0
*
Consulte a seo''Special Data Fields e Clculos''mais adiante neste captulo.
Uma ltima observao sobre a gerao das tabelas de data e hora: Pode ser tentador
incluir a definio destas tabelas diretamente em um Pentaho Data Integration
SQL transformao, mas ento voc ter que criar um cdigo de banco de dados especfico
para
gerar a tabela. Ao utilizar uma ferramenta de modelagem de banco de dados dados
independentes para
isso, manter o projeto genrico, o que torna mais fcil alternar para outro
banco de dados quando necessrio.
Especial campos de data e Clculos
Captulo 7 j introduziu a current_week e last_week colunas. Em
Tabela 8-2 e nossa amostra de data warehouse, estendemos esta construo com
campos adicionais que so grandes para comparar diferentes perodos de tempo. Estes
campos so todos do tipo TINYINT e s pode ter valores 0 ou 1, o que significa que
podemos us-los em clculos. As abreviaturas cy e ly so para a corrente
ano e no ano passado, ytd para o ano at data, ea ltima parte, dia,semanaOu
Ms Indica os perodos cumpridos para comparar.
Neste caso, segunda-feira da semana nmero 47, o que significa que todas as datas
com um nmero de 46 semanas ou menos vai ter o valor 1 para ytd_cy_week. A
coluna ytd_ly_week conter o valor 1 para todos os dias do ano anterior
(Neste exemplo, 2008) que tm um nmero de 46 semanas ou menos. Para relatar
receita deste ano at a ltima semana em relao ao mesmo perodo do ano passado
pode ser realizada facilmente com a seguinte consulta:
p.product_type SELECT
, SUM (d.ytd_cy_week f.revenue *) AS ytd_current_year
, SUM (d.ytd_ly_week f.revenue *) AS ytd_last_year
, ROUND (SUM (f.revenue d.ytd_cy_week *) /
SUM (f.revenue * d.ytd_ly_week) * 100,0) como ndice de
FROMfact_sales AS f
INNER JOIN dim_date SOBRE AS d f.order_date_key d.date_key =
INNER JOIN dim_product SOBRE AS p = f.product_key p.product_key
Captulo 8 O Data Mart Processo de Projeto 217
O que acontece na consulta anterior que para cada linha na tabela fato,
o valor da receita multiplicado pelos valores dos campos ytd_cy (semana)
e ytd_ly (semana). Em seguida, os resultados desses clculos esto resumidos
e agrupadas por tipo de produto. Tabelas 8-3 e 8-4 mostram um exemplo de como isso
realmente funciona.
Tabela 8-3: Relativo clculos de data
PRODUCT_TYPE YTD_CY RECEITAS YTD_LY O VALOR YTD_CY YTD_LY
Blu-ray3010300
DVD
DVD
Blu-ray
Blu-ray
DVD
Blu-ray
DVD
40
25
33
21
56
45
35
1
0
0
1
0
0
0
0
1
0
0
0
1
1
40
0
0
21
0
0
0
0
25
0
0
0
45
35
Tabela 8-4: resultado relativo data definida
PRODUCT_TYPE
Blu-ray
DVD
YTD_CY
51
40
YTD_LY
45
60
NDICE
113
67
A grande vantagem do uso dessas reas especiais que voc no precisa
combinar vrias consultas, cada um com seus prprios filtros, para gerar a necessria
relatrios. De fato, possvel obter todos os resultados e as comparaes de perodo
o armazm de dados em uma nica consulta, o que simplifica bastante a construo do
consultas e relatrios. Outros elementos comuns em vendas e anlise de receitas
so movimento totaliza e mdias. Para este tipo de clculo, o total das
ltimos 12 meses (para um total anual ou em movimento MAT) comparado com o total
dos 12 meses anteriores aos 12 ltimos. Para uma comparao ms a ms, voc
tambm pode calcular a MAT por ms para eliminar as influncias sazonais
os clculos e obter uma melhor viso sobre a evoluo das vendas reais. Para calcular
um tapete, a seqncia de ms uma grande ajuda, mas o SQL necessrio um pouco mais
complexa, pois voc vai precisar de um caso declarao para determinar se um perodo
218 Parte II Dimensional Modelagem e Design de Data Warehouse
devem ser includos no resultado final. A instruo a seguir ir calcular
o MAT e MAT - 1 ano:
SUM (CASE WHEN * f.revenue d.month_sequence entre -12 e -1
Ento 1 ELSE 0 END) AS mat1,
SUM (CASE WHEN * f.revenue d.month_sequence entre -24 e -13
Ento 1 ELSE 0 END) AS mat2
Captulo 13 fornece vrios exemplos de como voc pode usar a data
e dimenso de tempo para simplesmente analisar os resultados sem ter que depender de
frmulas complexas no prprio relatrio. Na maioria dos casos, mais fcil para modelar
esses
construes diretamente no banco de dados, o que economiza tempo mais tarde, no edifcio
o modelo de meta ou nos relatrios.
Fonte para Alvo Mapeamento
A etapa ltimo projeto antes que possamos comear a construir os processos reais de ETL
identificar os mapeamentos do sistema de origem (s) para o data warehouse de destino.
Uma boa maneira de comear pelo primeiro desenho os fluxos de dados de alto nvel, no
nvel da tabela
sem se preocupar muito com os detalhes. Figura 8-7 mostra um exemplo de
esse mapeamento de alto nvel, onde ns fingimos as tabelas pas ea regio vm
de outra fonte (banco de dados mestre). O diagrama mostra apenas uma parte
o armazm de dados completo, claro, e exibe o mapeamento lgico, no
o fsico. O mapeamento fsico provavelmente incluir intermediria
tabelas de teste que so usados para armazenar os dados extrados dos sistemas de origem
ser transformados e carregados em suas tabelas de dimenso destino final.
customer_
ORDER_LINE
customer_
fim
banco de dados WCM
fact_orders
Data Warehouse
armazm
banco de dados WCM
dim_
armazm
regio
Data Warehouse
pas
banco de dados Master
Figura 8-7: Alto nvel de mapeamento
Captulo 8 O Data Mart Processo de Projeto 219
Agora que ns determinamos que a nossa data mart olhar como e feito um
mapeamento global do sistema de origem para as tabelas de data mart. A prxima etapa
criar o mapeamento detalhado em nvel de campo. Este processo no de fonte para
alvo, mas na verdade o contrrio. Ns j sabemos que a nossa meta
deve ser semelhante, ento agora hora de encontrar as fontes de direito e as
transformaes
para obter os dados. Voc trabalha a partir de destino para a fonte porque possvel que haja
nenhuma fonte disponvel para os campos de determinada meta. Quando voc trabalha''para
trs''da
as tabelas de destino, essas lacunas so capturados mais cedo do que quando se trabalha
para a frente''''
a partir das fontes. Para cada campo de destino (veja a Figura 8-1 para um exemplo),
precisamos
identificar os seguintes elementos:
Sistema-In nosso caso, a maioria dos campos so originrios do banco de dados WCM,
mas
as chaves geradas e colunas de auditoria no tem um sistema de origem. Eles
so preenchidos a partir da ETL processo, que pode ser inserido como o sistema de
origem
para estas colunas.
Quando esquema aplicvel, digite o nome do esquema do banco de dados ou
catlogo.
Quando a Objetos aplicvel, digite o nome da tabela, exibio ou armazenados
procedimento que serve como fonte para a coluna.
Campo-A nome do campo no objeto de origem.
O tipo de dados tipo de dados da coluna.
Durao-O comprimento da coluna.
Descreve-Transformao os passos necessrios para converter o valor de
o sistema de origem para o valor correto da meta. Isso pode (e deve!)
incluem pesquisas com outras tabelas tambm.
Comentrios adicionais- observaes que podem ajudar o programador de ETL para
construir as transformaes de dados correto.
DICA Com DataCleaner, voc pode facilmente selecionar as tabelas de origem e cpia da
Gerao de mesa a partir da guia de metadados em uma planilha. Isto lhe dar
o esquema, campo, objeto de dados, tipo e comprimento, que voc pode usar para
ampliar as informaes de mapeamento.
Depois de concludo o mapeamento global e detalhada, voc deve verificar
a integralidade de seus esforos de modelagem com os usurios de negcios.
no quer magoar a ter uma anlise tcnica por um DBA, se tiver um
ao redor. O mais importante verificar se o modelo gerado pode ser
utilizado para responder s questes de negcios que foram inicialmente apresentados
pela comunidade de utilizadores. Se no, voc deve identificar as partes que faltavam e
voltar prancheta de desenho para ajustar o modelo e mapeamento. Basta fazer
certeza de que o modelo inicial capaz de lidar com as prioridades do negcio
as partes interessadas. Se o seu projeto fsico e lgico acaba por ser completa,
voc est pronto para avanar com o desenvolvimento dos processos de ETL.
220 Parte II Dimensional Modelagem e Design de Data Warehouse
Resumo
Este captulo introduziu-lhe duas peas importantes do software em seu
ferramentas: eobjects DataCleaner e SQLPower Dados * Arquiteto. DataCleaner
permite analisar os dados de origem e informar sobre as questes de qualidade que
possam surgir, e Dados * Arquiteto ajuda na construo do modelo fsico de dados
para os data marts, e finalmente, o data warehouse. Como tal, este captulo
atua como uma ponte entre os captulos mais tericos anteriores e mais
captulos prticos que se seguem. Ns abordamos os seguintes itens para come-lo em
seu caminho com o seu primeiro data mart:
Os diferentes grupos de usurios que voc precisa para entender e trabalhar
com
A anlise dos dados e os desafios envolvidos com acesso a diferentes fontes
de dados
O objetivo da caracterizao de dados, com uma introduo ao uso de dados
profiling ferramenta para avaliar a estrutura de dados, contedo e qualidade
Uma introduo modelagem de dados com dados * Arquiteto
O projeto da ordem de data mart fatos que vamos utilizar no restante
do livro para a prestao de ETL, anlise e exemplos
Um modelo mais refinado da dimenso de data com o benefcio adicional
de operaes aritmticas em datas avanadas e simplificao do processo de
comunicao
As informaes de mapeamento final necessrio para criar as transformaes ETL
Parte
III
Integrao de dados e ETL
Nesta parte
Captulo 9: Primer Pentaho Data Integration
Captulo 10: Projeto Pentaho Data Integration Solutions
Captulo 11: Implantando Solues Pentaho Data Integration
CAPTULO
9
Pentaho Data
Integrao Primer
Quando o projeto do data warehouse estabilizado, um processo deve ser projetado
para preencher o data warehouse com dados. Ns usamos o termo geral integrao de dados
para descrever o conjunto de atividades que resultem ou contribuir para o preenchimento de
o data warehouse. Pentaho oferece uma coleo de ferramentas conhecidas coletivamente
como
Pentaho Data Integration que so projetados para suportar essa tarefa.
Este captulo fornece algumas informaes bsicas sobre a integrao de dados
processo de imigrao em geral. Ns fornecemos uma viso geral dos dados Pentaho
ferramentas de integrao, e explicar em detalhe como essas ferramentas podem ser usadas
para projetar
e criar uma soluo de integrao de dados para carregar o data warehouse.
Viso geral de integrao de dados
De um modo geral, a palavra''integrao''denota um processo que constitui um todo
de vrias partes. O termo''''integrao de dados geralmente entendida como a
processo que combina dados de diferentes fontes para fornecer uma nica compre-
preensvel vista sobre todos os dados combinados. Um exemplo tpico de integrao de dados
seria uma combinao dos dados de um sistema de inventrio do armazm com a de
o sistema de entrada de modo a permitir o cumprimento fim de estar diretamente relacionado
s mudanas
no inventrio. Outro exemplo de integrao de dados est se fundindo ao cliente e
dados de contacto do gerenciamento de relacionamento com clientes do departamento
separado
sistemas corporativos em um sistema de gesto de relacionamento com clientes.
Na introduo a este captulo, afirmou que compreende a integrao de dados
as atividades que resultam no preenchimento de um data warehouse. Esta uma considervel
simplificada noo de integrao de dados no que diz respeito sua definio geral, mas
223
224 Parte III Integrao de dados e ETL
pode ser justificada, ao considerar que um devidamente concebidos data warehouse
automaticamente fornece uma viso unificada dos dados de diferentes sistemas.
Nesta seo, vamos explicar algumas das caractersticas fundamentais dos dados
processo de integrao e de seus componentes para fornecer o contexto necessrio para
os leitores que so completamente novos para o tpico. Uma discusso detalhada sobre
integrao de dados est alm do escopo deste livro. Felizmente, muitos bons
livros esto disponveis, que abrangem este tema, como O ETL do Data Warehouse
Toolkit por Ralph Kimball e Caserta Joe (Wiley, 2004).
Atividades de Integrao de Dados
Uma forma de compreender a integrao de dados decompor o processo de
encher o depsito de dados em uma srie de atividades distintas. Nesta subseo
Ns descrevemos um nmero de tipos essenciais de atividades de integrao de dados.
Em um nvel muito alto, o problema do preenchimento de um armazm de dados consiste
em
apenas trs grandes tipos de actividades:
Extrao de aquisio dados de um ou mais sistemas de origem. Para
exemplo, a obteno e carregar todos os registros de clientes que foram adicionados
ou alterados desde o ltimo carregamento de dados.
Transformao Mudar a forma e / ou contedo dos dados para adequ-lo
na estrutura do data warehouse de destino. Por exemplo, olhando para cima
estado e do pas nomes para valores de chave.
Carregando -Na verdade, o armazenamento de dados no data warehouse de
destino.
Essas trs atividades-Extrao, Transformao e Carga so freqentemente
referidas pela sigla ETL.
Em alguns casos, o ETL termo entendido literalmente, e levado para
significa que as atividades individuais de extrao, transformao e carregamento
so realmente executados nessa seqncia. A partir desta escola de pensamento, o
termos relacionados ELT (Extrao, carga, transformar) e ETLT (Extrao, transformao,
carga,
transformao) foram introduzidos para fazer justia ao fato de que os dados transformando-
atividades podem ser aplicadas por qualquer um RDBMS (ELT), ou por um tcnico
especializado
ferramenta fora do RDBMS (ETL), ou ambos (ETLT).
Embora possa haver alguns contextos onde ela vantajoso usar
esses diferentes termos, a distino no explorado mais adiante neste livro.
Em vez disso, preferem usar apenas o termo de ETL, sem limitar de antemo o que
componentes de software so ocupadas com a transformao dos dados. Como voc deve
ver, Pentaho Data Integration perfeitamente capaz de transferir certas tarefas
o RDBMS, e no faz nada para impedir que o RDBMS de participar de dados
transformao. Portanto, ns tratamos de ETL como um termo guarda-chuva que pode
implicar
em vez de excluir ELT e ETLT.
Captulo 9 Primer Pentaho Data Integration 225
ETL apenas uma classificao muito ampla de atividades de integrao de dados. Dentro
cada um dos principais processos de Extrao, Transformao e Carga, podemos
identificar uma srie de atividades de apoio. Alguns destes esto listados abaixo:
Para a extrao podemos discernir:
Change Data Capture-In extrao muitos casos, limitada parte
de fonte de dados que mudou desde a ltima extraco. O processo de
identificar os dados alterados chamado Change Data Capture.
preparao de dados -Nem sempre possvel ou eficiente imediatamente
transformar os dados extrados. Muitas vezes, o extrato armazenada temporariamente
at que
entra no processo de transformao. Isso chamado dados de teste.
A transformao um processo amplo e variado. No possvel fornecer
uma lista exaustiva das actividades descritas, mas algumas atividades tpicas so:
Os dados de validao de dados validao o processo de verificar a fonte
dados esto corretos, e possvel filtrar dados invlidos.
limpeza de dados -Data limpeza o processo de correo de dados invlidos.
Decodificao e renomear -Em muitos casos, os dados brutos do sistema de origem
no adequado para fins de notificao, pois contm os nomes obscuros
e cdigos. Uma grande parte do processo de transformao est ocupada com
convertendo isso para um nome mais descritivo e user-friendly e etiquetas.
Agregao-geral, aplicaes de BI apresentar dados agregados para o
utilizadores finais. s vezes, os agregados so calculadas de forma antecipada como
parte da
processo de transformao.
A gerao ea gesto - Novas linhas de dimenso so excepcionalmente
identificados por chaves substitutas, que devem ser gerados. Para armazenar
dados de fatos novos, estas chaves devem ser procurados.
No processo de carregamento, podemos discernir duas atividades
principais:
Carregando as tabelas de fatos-geral, tabelas de fato crescer pela adio de novas linhas.
s vezes, as linhas existentes so atualizados para refletir um novo status.
Carregamento e manuteno de tabelas de dimenso-Nova linhas de fatos podem dar
origem a linhas de dimenso.
Vamos olhar para essas atividades em mais detalhes nas subsees a seguir.
NOTA Esta no uma lista exaustiva, embora estas atividades so bastante tpicos.
Voc pode encontrar muito uma viso completa das atividades de ETL no artigo Ralph Kimball
''Os 38 subsistemas de''ETL na http://www.intelligententerprise.com/
showArticle.jhtml? articleId = 54200319.
226 Parte III Integrao de dados e ETL
Extrao
A primeira etapa em todo o processo de integrao de dados a aquisio de dados.
Este processo geralmente chamado extrao.
Muitas vezes, a fonte de dados um sistema de banco de dados relacional que faz parte de
trs
fim de algum aplicativo operacional. Nestes casos, pode ser possvel
acesso fonte de dados diretamente atravs de uma conexo de dados. Neste caso,
extrao pode ser uma tarefa relativamente fcil. No entanto, nem sempre pode ser vivel
para ter acesso direto ao sistema de banco de dados back-end.
Pode haver polticas em vigor que probem o acesso de banco de dados alm dos
aplicao operacional. Os sistemas operacionais so cada vez mais esperadas ou
obrigado a estar sempre disponvel, e o impacto de um processo de aquisio de dados
pode simplesmente ser incompatvel com estes requisitos. Nestes casos, os dados
pode ter de ser extrados dos dados do sistema de backup ou arquivos de log do banco de
dados.
Outro fator que pode complicar a extrao o fato de que, muitas vezes, no
todos os dados de origem podem ser adquiridos no mesmo local. Pode haver mltiplas
sistemas operacionais em uso a partir do qual os dados devem ser adquiridos. De fato, o
obrigao de comunicar atravs de mltiplos sistemas de informao muitas vezes a
conduo
fora por trs de BI e data warehousing projetos.
Change Data Capture
Change Data Capture (CDC) o processo de rastreamento de alteraes de dados na fonte
sistemas, a fim de atualizar o armazm de dados em conformidade. Por um lado,
CDC um processo que conduz a extrao, pois os dados precisam ser adquiridos somente
at o ponto em que faz a diferena em relao ao estado actual da
o data warehouse. Por outro lado, o CDC tem tambm funcional e lgica
facetas, pois determina em que medida o armazm de dados capaz de
registrando a histria do negcio.
H uma srie de mtodos para implementar praticamente CDC:
Gravao de dados''natural''caso dos sistemas operacionais. Em muitos casos,
os principais eventos so registrados como parte do processo de negcios operacionais.
Para
exemplo, o registro do cliente, colocao de pedidos e expedio de ordem so
normalmente registadas a nvel da data no sistema operacional.
Usando dados sequenciais chave nos sistemas de origem.
Journaling com banco de dados gatilhos. Em sistemas de banco de dados de muitos,
possvel
adicionar gatilhos para o banco de dados de esquemas de aplicaes operacionais.
Lendo banco de dados de log.
Data Staging
Extrao de dados pode ter um impacto considervel sobre o desempenho e dis-
capacidade do sistema operacional de fonte. Muitas vezes, existe uma obrigao estrita de
Captulo 9 Primer Pentaho Data Integration 227
manter a quantidade de tempo gasto na extrao de um mnimo em uma tentativa de
diminuir o impacto sobre as operaes normais, como entrada de dados. Normalmente, esses
limitaes de tempo no deixa tempo suficiente para completar o processo todos os dados
antes
armazenando-o no armazm de dados.
Para alm da durao efectiva do processo de extrao, a questo da
tempo tambm pode entrar em jogo. Em no poucos casos, dados de vrios distintos
sistemas operacionais podem precisar de ser combinado antes de ser alimentada em dados
armazm. Muitas vezes no se pode confiar em todos os sistemas de origem para ser
simultaneamente
disponveis para a extrao.
Para lidar com estes problemas, os dados so normalmente armazenados temporariamente
em uma chamada
rea de teste imediatamente aps a extrao. Esta abordagem permite a extrao
atividades a serem realizadas no quadro menor tempo possvel, porque o tempo no
gasto espera de tratamento posterior. Ele tambm permite a sincronizao de
processos que combinam dados de fontes distintas chegam em momentos diferentes.
Na maioria dos casos, a rea de preparao de dados simplesmente um banco de dados
relacional que
especificamente concebido para servir como um amortecedor entre os sistemas de origem e
os
data warehouse. Isso nos leva a uma outra vantagem de preparao de dados. Porque
os dados so armazenados em um sistema de banco de dados distintos, ndices que podem
ajudar a melhorar
o desempenho do tratamento dos dados podem ser livremente adicionadas sem
alterando o sistema de origem.
Validao de dados
Uma vez que os dados so adquiridos (e possivelmente armazenado em uma rea de teste),
h geralmente
algum processo no local para avaliar a validade dos dados. Dados invlidos devem ser
tratados de forma diferente do que os dados vlidos, pois pode manchar a confiabilidade dos
dados
armazm. Detectando dados invlidos uma condio indispensvel para o tratamento de
forma diferente.
No contexto da ETL e validao de dados, os dados so considerados invlidos, quando
ela contm erros lgicos. Isso ocorre quando so encontrados registros de origem
que jamais poderia ter sido inscrito, se todas as restries implementadas pelo
aplicao de origem (e seu sistema de banco de dados subjacente) havia sido executada.
Por exemplo, os dados para os campos obrigatrios podem estar faltando, ou valores em um
campo
pode contradizer os valores em outro campo, como quando cai uma data de entrega
antes da data da ordem correspondente.
Pode parecer desnecessrio para verificar se h erros lgicos quando os dados so
adquiridos
de aplicaes e sistemas de banco de dados que so conhecidos para fazer cumprir
rigorosamente
restries. No entanto, a realidade que no h nenhuma maneira de avaliar os dados
validade que no sejam realmente verificar. Se a fonte de dados invlidos acidentalmente
termina no armazm de dados, pode ser descoberto pelo usurio final. Isso pode
levar desconfiana geral do armazm de dados e apoio integrao de dados
os processos.
Fazendo validao de dados uma parte dos dados de resultados do processo de integrao
benefcio imediato. Se no houver dados invlidos for pego, ele oferece a paz de esprito
228 Parte III Integrao de dados e ETL
que o sistema de origem pode ser confivel. Por outro lado, se os dados invlidos so
capturados pode solicitar apoio extra para o projeto de integrao de dados, pois
oferece uma oportunidade nica para melhorar o sistema de origem.
De limpeza de dados
Em muitos casos, possveis problemas com os dados de origem so conhecidos
antecipadamente e
processos podem ser criados para ajudar a corrigir os dados que seriam invlidos.
Isso conhecido como limpeza de dados.
A soluo mais simples para lidar com dados invlidos para descart-lo. Embora esta
impede que os dados invlidos de manchar a confiabilidade dos dados conhecidos correta
isso geralmente no uma opo aceitvel. A melhor soluo manter conhecidos
dados invlidos de lado, e, se possvel, corrigi-lo.
Manter os dados invlidos, desde que ele est marcado e classificados em conformidade,
tem muitas vantagens. No futuro, de alguma forma pode ser encontrada para corrigir ou
caso contrrio conciliar os dados invlidos para que ele possa ser carregado depois de tudo.
Pode ser
vale a pena usar os dados invlidos como meio de prova, na tentativa de convencer qualquer
responsveis para reparar ou melhorar o sistema de origem. Por exemplo, ns
pode obter nmeros de telefone a partir de um sistema de CRM em todos os tipos de formatos
diferentes:
alguns podem conter um cdigo de pas, enquanto outros podem omitir isso. Alguns podem
contm um cdigo de rea, e outros podem omitir isso. Os cdigos de pas pode ser denotado
usando um + outros podem utilizar um 0. s vezes contm nmeros de telefone
parnteses, traos ou caracteres de espao para facilitar a leitura. Em muitos desses casos
podemos analisar os nmeros de telefone e padronizar a notao. Em alguns casos,
podemos fazer um palpite com base no endereo do cliente para o preenchimento de um
omitido cdigo do pas ou cdigo de rea.
Outra possibilidade carregar os dados invlidos, depois de devidamente marcao dele.
Como os dados invlidos esteja marcada como tal, podem ser includas ou excludas da
analisa a critrio do usurio. Ele tambm permite que os usurios finais para inspecionar a
natureza
dos dados invlidos, e que lhes permite fazer um julgamento informado com
em conta a qualidade dos dados. Essa abordagem tambm pode atuar como uma alavanca
para corrigir os dados
problema de qualidade na origem, porque todos os interessados podem agora ver o impacto
dos dados invlidos em seus relatrios por si.
Decodificao e Renomeando
Renomeando e decodificao esto entre as atividades de transformao mais bsica.
Embora humilde por natureza, estes so talvez os tipos mais ubquo de
transformaes.
Decodificando ocorre quando os valores de um campo no sistema de origem so mapeados
a outros valores no sistema de destino. Por exemplo, um campo de origem contendo a
valores 1e 0pode ser descodificada em valores mais compreensvel Sim e
No no sistema de destino.
Captulo 9 Primer Pentaho Data Integration 229
Renomeando ocorre quando o nome de um determinado campo na fonte dado
um novo nome no sistema alvo. Por exemplo, um campo que chamado zip na
sistema de origem pode acabar como postal_code no sistema de destino.
importante perceber que, normalmente, nem decodificar nem renomear adicionar
qualquer informao no sentido formal. No entanto, essas atividades podem ajudar a
tornar os dados mais acessveis para o usurio final. Isto particularmente verdadeiro quando
o
sistema de origem usa abreviaturas de nomes de campo ou valores de campo.
Key Management
Captulo 6 explicou que as tabelas do data warehouse no uso natural
chaves primrias. Todas as tabelas de dimenso tm substituto chaves primrias, e de facto
tabelas so associadas s tabelas dimenso usando somente referncias a estes substitutos
chaves. Os valores para essas chaves no devem ser provenientes de sistemas de origem
que alimentam o armazm de dados (com a possvel exceo da dimenso data
tabela). Em vez disso, eles devem ser gerados como parte do processo de integrao de
dados.
Agregao
H vrios casos em que o processo de integrao de dados envolve a agregar o
o de dados.
As tabelas de dimenso podem conter atributos que so obtidos por agregao.
Por exemplo, uma tabela de dimenso do cliente podem conter atributos, tais como
montante total despendido. Carregando tabelas agregadas com pr-calculados, agregados
mtricas podem ser necessrias para melhorar o desempenho de determinados relatrios e
ROLAP
cubos.
O Pentaho Analysis Server (Mondrian) um servidor ROLAP que pode levar
vantagem de tabelas agregadas. Pentaho fornece tambm a agregao Pentaho
Designer, que especialmente adaptado para a criao e manuteno de agregados
tabelas para essa finalidade. Por esta razo, discutimos agregao no captulo 15
ao invs de neste captulo.
Dimenso e Manuteno de Tabelas Ponte
A maioria das tabelas de dimenso no so estticos. Seu contedo necessidade de se
adaptar de acordo
para adies e mudanas que ocorrem nos sistemas de origem.
H exemplos simples, tais como novos produtos que precisam ser adicionados
tabela de dimenso do produto. Exemplos mais complexos incluem manipulao
vrios tipos de alterao lenta dimenso. Mesmo exemplos mais complexos
ocorrer quando a tabela de dimenso necessita de apoio para a navegao ao longo de uma
recursiva
relao pai-filho.
Guardar as alteraes nas tabelas de dimenso uma das responsabilidades nobre
vnculos do processo de integrao de dados.
230 Parte III Integrao de dados e ETL
Carregando Tabelas de fatos
Carregando as tabelas de fato a atividade mais importante da integrao de dados
o do processo. O processo de integrao de dados precisa superar uma srie de
desafios ao carregar as tabelas de fatos.
Em muitos casos, a enorme quantidade de dados de fato em si um desafio. Dimenso
chaves devem ser consultadas para cada linha que ser armazenado na tabela de fatos,
eo desempenho muitas vezes um problema, especialmente quando muitas tabelas de
dimenso
esto envolvidos, que tendem a ser grandes se (como de produtos e clientes
tabelas). Mtricas devem ser armazenados corretamente, e s vezes, mtricas adicionais
precisam ser calculadas, tambm. Para complicar ainda mais as coisas, alguns tipos de fato
tabelas exigem linhas existentes para ser atualizado para refletir as mudanas no estatuto
sistemas de origem.
Pentaho Data Integration Conceitos e Componentes
Solues Pentaho Data Integration so construdas a partir de dois tipos diferentes de
objetos:
Transformaes
Empregos
O corao do produto Pentaho Data Integration formado pela Pentaho
dados do motor de integrao. Este motor um componente de software que capaz de
interpretar e executar trabalhos e transformaes, assim, realizar o
dados reais de tarefas de integrao em conformidade. Alm do motor, Pentaho
Integrao de dados oferece uma srie de ferramentas e utilitrios para criar, gerenciar e
transformaes lanamento e empregos.
Todas as ferramentas Pentaho Data Integration e componentes esto disponveis para down-
carga como um nico Zip. arquivo. Este arquivo pode ser encontrado na rea de downloads da
a pgina do projeto Pentaho em sourceforge.net / projects / pentaho. Pentaho
integrao de dados no requer um procedimento de instalao separada que no
descompactar o download.
Para uma viso geral de alto nvel dos componentes de integrao Pentaho de dados,
consulte
Figura 9-1.
Os componentes so descritos nas seces seguintes.
Ferramentas e Utilitrios
Pentaho Data Integration compreende o seguinte conjunto de ferramentas e utilitrios:
Spoon-A IDE integrao grfica de dados para criar transformaes
e empregos
Cozinha-A ferramenta de linha de comando para a execuo
de trabalhos
Pan-A ferramenta de linha de comando para a execuo de
transformaes
Captulo 9 Primer Pentaho Data Integration 231
Carte-A servidor para executar trabalhos leves e transformaes em um
host remoto
NOTA Como voc pode ver, um tema culinrio foi usado para nomear as ferramentas. Este
esquema de nomeao de volta aos dias em que o software que agora conhecido como
Pentaho Data Integration foi criado. O produto original foi chamado Chaleira
(Ou realmente chaleira, que um acrnimo recursivo para Chaleira Extrao,
Transformao, Transporte, Meio Ambiente e de carga). A chaleira termos,
Chaleira e Pentaho Data Integration podem ser usados alternadamente.
Sistema de Informao
Fonte Alvo
Efeito fsico
Extrato Transformar Carga
Pentaho Data Integration
Data Integration Engine
Trabalho
Mecanismo
Chamada
Transformao
Mecanismo
Executar
Trabalho Transformao
Interno
Representao
INCIO Transformao Trabalho Extrato Transformar Carga
Ferramentas e Utilitrios
Lanamento:
Cozinha, Carte
Desenvolver: Colher
Lanamento:
Pan
Carregar, Salvar
Repositrio
(RDBMS)
Armazenado
Representao
. KJB
Arquivos
. KTR
Figura 9-1: dados Pentaho ferramentas de integrao e de componentes
232 Parte III Integrao de dados e ETL
O Mecanismo de Integrao de Dados
O mecanismo de integrao de dados responsvel por interpretar e executar os dados
trabalhos de integrao e transformaes. Empregos e as transformaes so realmente
manipuladas por diferentes partes do motor. No entanto, porque os empregos podem conter
transformaes e execuo de um trabalho pode resultar na execuo de uma ou mais
transformaes, geralmente mais conveniente considerar o mecanismo de trabalho e
o mecanismo de transformao como um todo (o motor de integrao de dados).
O mecanismo de integrao de dados fisicamente implementado como uma biblioteca
Java.
As ferramentas de front-end usar uma API pblica para que o motor de executar trabalhos e
transformaes em seu nome, em resposta a interao do usurio.
Usando o motor desta forma no se limita s ferramentas de front-end: O
motor pode ser usado por qualquer aplicao. O mecanismo de integrao de dados tambm

includo no servidor de BI Pentaho, permitindo que os trabalhos e as transformaes a serem
executada como parte de uma seqncia de ao.
Repositrio
Empregos e as transformaes podem ser armazenados em um banco de dados do
repositrio. O front-end
ferramentas podem se conectar ao banco de dados e transformaes de carga e definio de
postos de trabalho
es armazenadas no repositrio. Usando o repositrio tambm oferece uma maneira fcil
para mltiplos desenvolvedores a colaborar quando se trabalha em uma integrao de dados
soluo.
Note-se que o repositrio no um requisito. Quando no
trabalho com o repositrio, as transformaes e os trabalhos so armazenados como arquivos
em um
formato XML. Neste caso, um sistema de controle externo a verso, como subverso
ou CVS pode ser utilizado para facilitar a colaborao.
Empregos e Transformaes
Agora que explicamos as ferramentas e componentes, hora de tomar uma anlise mais
olhar para os trabalhos e transformaes.
J mencionamos que o mecanismo de integrao de dados e interpreta
executa trabalhos e transformaes. Isto sugere uma semelhana entre os trabalhos e
transformaes, por um lado e um programa de computador os arquivos de cdigo-fonte em
o outro. No entanto, h boas razes para rejeitar essa noo.
Normalmente, o cdigo de um programa de computador de origem composta de um
conjunto de mais
instrues literal, e cabe ao programador para garantir que esses instru-
es juntos alcanar o efeito desejado. Para a maior parte, as transformaes
e emprego no consistem de um conjunto literal de instrues. Pelo contrrio, o emprego ea
trans-
formaes so declarativas de natureza: eles especificam um determinado resultado que
ser alcanado, e deix-lo at o motor de descobrir uma maneira de conseguir
esse resultado. Outra maneira de coloc-la dizer que o mecanismo de integrao de dados

Captulo 9 Primer Pentaho Data Integration 233
orientada por metadados: transformaes e trabalhos contm informaes sobre os dados,
o sistema de origem, eo sistema alvo, e ao executar um trabalho ou transfor-
informao, esta informao utilizada para realizar as operaes necessrias para alcanar
o resultado. Isso feito sem gerar o cdigo do programa intermedirio.
A diferena entre o computador de cdigo-fonte do programa e do emprego e trans-
formaes tambm evidente na forma como estes so desenvolvidos. O cdigo fonte
normalmente baseados em texto, e desenvolvido por declaraes de digitao de acordo com
a
gramtica da linguagem de programao (codificao). Em contraste, o emprego ea trans-
formaes so desenvolvidas de uma forma bastante grfica. Eles so criados por
arrastar e soltar elementos em uma tela e conect-las
para formar um grfico ou diagrama. Este processo semelhante ao desenho de um
fluxograma.
Transformaes e empregos podem conter elementos que possam envolver o script, mas
esta uma excepo e no a regra.
Transformaes e empregos so ambos constitudos por um conjunto de itens que so
interligados por lpulo (Veja a seo seguinte). A este respeito, h uma
similaridade entre as transformaes eo emprego. Esta semelhana torna-se especialmente
resulta na representao visual, como ambas as transformaes e os trabalhos so
descrito como grficos.
No entanto, um olhar mais atento as transformaes e os trabalhos revela que a seme-
dades so realmente poucos em nmero e bastante superficial na natureza. H
diferenas importantes nos conceitos subjacentes empregos e transformaes,
ea semntica dos seus elementos constitutivos e lpulo so muito diferentes
um do outro. Esperamos que isso ficou claro pela leitura do seguinte
sees.
Transformaes
Uma transformao Pentaho representa uma tarefa ETL em sentido estrito. Trans-
formaes so orientadas a dados, e sua finalidade extrair, transformar e
carregar dados.
A transformao consiste de uma coleo de etapas. Um passo denota uma particular
operao em um ou mais registro de crregos. As etapas podem ser conectados por lpulo.
A hop como um gasoduto atravs do qual os registros podem fluir de uma etapa para
outro passo.
Um fluxo de registro uma srie de registros. Um registro uma coleo de valores que
est estruturado de tal forma que cada valor est associado com exatamente um de campo.
A coleo de campos associados com todos os valores em um registro chamado de registro
tipo. Todos os registros em um fluxo de registro deve ser do mesmo tipo de registo.
Cada campo tem um nome que deve ser exclusivo dentro do tipo de registro. Campos
definir propriedades, como tipo de dados eo formato que, coletivamente, descrever o
natureza de qualquer valor associado com o campo. Essas propriedades formam o seu valor
metadados (Dados sobre dados''''). De maneira semelhante, o tipo de registro constitui a
metadados do registro. Veja a Figura 9-2, para uma representao grfica destes
conceitos.
234 Parte III Integrao de dados e ETL
Etapa
(Meta)
Gravar Stream
MetadataData
Registro 1
Tipo de registro
Campo 1
Campo ...
Campo N
propriedades
propriedades
propriedades
Record ... 1Value
Record N 1Value
Valor ...
Valor 1 Valor ...
Relao N
Valor ... Nvalue
Relao N
Hop
Etapa
(Fonte)
Figura 9-2: Passos, lpulo e recorde crregos
etapas de transformao produzir registros de forma contnua. Registros
viajar atravs de sada da etapa do lpulo imediatamente aps serem produzidos
at chegar ao passo do outro lado do lpulo. L, a chegada
registros esto na fila e esperar para ser consumido pela etapa de recebimento. Para cada
registro de entrada, a etapa de recebimento realiza algumas operaes pr-definidas.
Normalmente, isso gera registros de sada, que so ento empurrados para a etapa de
registro de sada de fluxo.
Uma coisa importante a perceber sobre todo o processo que as etapas do trabalho
simultaneamente e de forma assncrona. Ao executar uma transformao, as etapas
que sabem para gerar linhas baseado em alguma fonte de dados externos
basta comear a gerar filas at a fonte de dados est esgotada. Records
imediatamente o fluxo para os prximos passos a jusante, onde so processados o mais
rpido
possvel que eles chegam: as etapas a jusante, no espere para o montante
etapas para terminar. Desta forma, os registros de gotejamento, atravs da transformao.
A operao realizada por uma etapa de transformao depende do tipo de
o passo ea forma como ele est configurado. H um pouco de variedade na etapa
tipos. Alguns tipos de etapas de gerar um registro de sada nica para cada entrada
registro. Outros tipos de etapas de agregao de um grupo de linhas de entrada em um nico
Captulo 9 Primer Pentaho Data Integration 235
sada de linha. No entanto, outros tipos de medidas podem dividir uma nica linha de entrada
em uma coleo
de registros de sada. Para alguns tipos de etapas, os fluxos de sada tm o mesmo
tipo de registro como os fluxos de entrada, mas outros tipos de etapa pode adicionar, remover
ou
renomear campos a partir dos registros de entrada.
Algumas das etapas de transformao disponveis so discutidos em detalhe no
Captulo 10.
Empregos
Normalmente, os trabalhos so compostos de uma ou mais transformaes. Por exemplo,
para
carregar um esquema em estrela, normalmente voc construir uma transformao para fazer
o
extraco em si, e construir uma transformao para cada tabela de dimenso, e
uma transformao para carregar a tabela de fatos. A Emprego seria usado para colocar todos
esses
transformaes na seqncia correta (primeiro extrato, em seguida, carregar todas as
dimenses
tabelas, e ento carregar a tabela de fatos). Como transformaes, trabalhos consistem em
uma
nmero de itens interligados, mas a semelhana termina a.
Os trabalhos so processuais e orientado para a tarefa, em vez de orientadas a dados. Os
itens
aparecendo em empregos so chamados entradas de emprego, e denotam a execuo de um
determinado
tarefa. A ligao entre as etapas de um trabalho denota a ordem seqencial
dessas tarefas.
Execuo de uma entrada de emprego sempre resulta em um estado de sada. Isto usado
para
saber se a tarefa de base foi executada com xito. Dependendo
sobre o valor do status de sada, a execuo do trabalho continua com a adequada
entrada de trabalho subseqente.
Ao comparar a natureza das entradas trabalho para as etapas de transformao, a chave
diferena que as etapas de transformao operar em fluxos de dados. entradas de Job
operar no estado de sada resultante da execuo da tarefa.
entradas de emprego so tipicamente usados para executar transformaes, mas tambm
podem
ser usado para executar outras tarefas de apoio, tais como o esvaziamento tabelas de dados,
iniciar a transferncia de arquivos de um host remoto, ou enviar uma mensagem de correio
electrnico.
Pentaho empregos so discutidos em mais detalhes nos Captulos 10 e 11.
Plug-Arquitetura na
Pentaho Data Integration apresenta uma arquitetura plug-in. Passos, bem como trabalho
entradas podem ser implementadas separadamente do principal produto de software
componentes chamados plug-ins. Plug-ins podem ser carregados dinamicamente, sem
recompilar o ncleo.
Atualmente, existem muito poucos de terceiros plug-ins para o Pentaho Data
Integrao. Alguns deles so de cdigo fechado e est disponvel sob os termos de um
licena comercial. Muitos outros so licenciados sob alguma forma de cdigo aberto
licena.
236 Parte III Integrao de dados e ETL
Comeando com uma colher
Spoon o nome do Pentaho Data Integration grfica de desenvolvimento
ambiente. Ele pode ser usado para criar transformaes e empregos.
Nesta seo, voc aprender como usar Spoon. Aps iniciar o aplicativo,
e falar brevemente sobre alguns dos principais elementos da interface do usurio, voc vai
rapidamente comear a construir uma''Ol, Mundo! transformao''para se familiarizar
com a interface do usurio. Ns, ento, apresentar a voc alguns economizam tempo
funcionalidades que podem ajudar voc a solucionar problemas de forma eficiente. Em
seguida, voc vai
aprender a trabalhar com conexes de banco de dados e aumentar a''Ol, mundo!''
exemplo, para colocar esse conhecimento em prtica.
Iniciando o aplicativo Spoon
Spoon pode ser iniciado executando o script de inicializao colher no inte-Pentaho
grao diretrio home. Para os sistemas Windows, o script chamado Spoon.bat.
Em sistemas Windows, voc tambm pode iniciar Kettle.exe. Para sistemas baseados em
UNIX,
Este script chamado spoon.sh.
NOTA Usurios de sistemas baseados em UNIX precisa habilitar permisses de execuo para
o script antes de execut-lo:
$ Chmod ug + x spoon.sh
Todos Pentaho ferramentas de integrao de dados so iniciadas atravs de um script, assim que voc
poderia muito bem
permitir que as permisses de execuo para todos eles:
$ Chmod ug + x *. sh
Depois comea a colher, voc ver uma tela inicial. Algum tempo depois, um dilogo
aparece, solicitao de credenciais repositrio. Vamos explorar as possibilidades
do repositrio no Captulo 11. Por enquanto, voc vai trabalhar sem um banco de dados
repositrio. Para continuar, clique no boto com a legenda no repositrio.
Opcionalmente, voc pode limpar o Presente esta caixa de dilogo na inicializao para evitar
a caixa de dilogo de aparecer na prxima vez que voc abre Spoon.
A janela principal do aplicativo deve aparecer. Voc pode ver uma colher
dicas janela mostrando uma dica do dia, e, opcionalmente, voc pode limpar o Show
dicas na inicializao? caixa para impedir que ele aparecer na prxima vez que voc
Spoon aberto. Prima Fechar para fechar a janela de dicas Spoon.
A janela do aplicativo Spoon, mostrado na Figura 9-3, dividido em uma das principais
espao de trabalho direita e um painel lateral esquerda. A principal rea de trabalho pro-
nece uma guia de interface / pgina para trabalhar com todas as transformaes e abriu
postos de trabalho.
Inicialmente, uma pgina de boas-vindas especiais podem aparecer automaticamente no
espao de trabalho
logo aps o aplicativo iniciado. Tambm possvel que a pgina de boas-vindas aparece
Captulo 9 Primer Pentaho Data Integration 237
em seu navegador de Internet. A pgina inicial contm links teis
o funcionrio Pentaho documentao de integrao de dados, bem como para a comunidade
recursos e blogs de desenvolvedores.
Figura 9-3: A janela principal Spoon
Se voc gosta, voc pode impedir que a pgina de boas-vindas aparecer, limpando
Mostrar a pgina de boas-vindas na caixa de arranque na caixa de dilogo Opes. As
Opes
dilogo pode ser aberto usando o menu principal (Menu Editar Opes).
Um mundo simples''Ol,!''Exemplo
Spoon oferece uma nica interface de usurio para criar e projetar os postos de trabalho e
transformaes. Apesar de postos de trabalho e as transformaes so tipos completamente
diferentes
das coisas, h muitas semelhanas na maneira como eles so representados visualmente,
e isso se reflete em uma interface quase idntica para projet-los.
A melhor maneira de se familiarizar com a interface do usurio comear a construir uma
Mundo muito simples''Ol!''Exemplo, o estilo de ETL. Isso descrito em detalhes no
o restante desta seo.
Construindo a Transformao
As instrues seguintes descrevem em detalhes como construir uma transformao
que extrai os nomes das pessoas a partir de um arquivo de texto para gerar um''Ol, mundo!''
mensagem. Finalmente, as mensagens so armazenadas em um arquivo de texto novo.
1. Usando um editor de texto simples como o Notepad (Windows) ou vi
(Sistemas baseados em UNIX), crie um arquivo texto com o texto na Listagem 9-1. Nome
238 Parte III Integrao de dados e ETL
o arquivo hello_world_input.txt e salv-lo em algum lugar voc encontra
conveniente.
Listagem 9-1: O contedo do hello_world_input.txt
Nome
George Clooney
Daniel Lay Lewis
Johnny Depp
Tommy Lee Jones
Viggo Mortensen
2. Iniciar Spoon (se ele no estiver em execuo) e criar uma nova transformao
escolhendo Arquivo nova transformao a partir do menu principal. Um novo
pgina aberta automaticamente no espao de trabalho, ea transformao
tambm adicionado exibio em rvore no painel lateral, como mostrado na Figura 9-
4.
Alm de utilizar o menu principal, voc pode criar uma transformao por
usando o atalho do teclado Ctrl + N, ou usando a barra de ferramentas: Barra de
ferramentas
Nova Transformao. O boto da barra de ferramentas mostrada na Figura 9-4.
Figura 9-4: Usando a barra de ferramentas para criar uma nova transformao
3. No painel do lado, mudar de modo de visualizao para o modo Design, clicando em
o boto Design. No modo Design, o painel lateral exibe uma exibio de rvore
contendo um nmero de pastas que representam categorias de tipo de etapa. Expanda
a pasta chamada de entrada que fica no topo da rvore.
4. Arraste o item de input do arquivo de texto marcado a partir da pasta de entrada e solte-o
Pgina da transformao para criar um novo passo, como mostrado na Figura 9-5.
Quase todos os passos requerem alguma forma de configurao para controlar a sua
comportamento. Passos so configurados atravs de sua janela de configurao, que
pode ser levantada, clicando duas vezes o passo, ou escolhendo Editar etapa
a partir do menu de contexto do passo.
Captulo 9 Primer Pentaho Data Integration 239
PASSOS: tipos, criar, mover, E RETIRAR
Observe que o cone voc arrastou a exibio de rvore era um tipo degrau, vez
do que um passo real. Abolindo o tipo de passo para a tela, voc criou
um passo real desse tipo.
Passos tambm podem ser criados usando o menu de contexto de transformao. Para
exemplo, o texto de entrada em degrau de arquivos tambm podem ser adicionados clicando no
Pgina de transformao e escolhendo Nova etapa de entrada de entrada de arquivo de texto.
Uma vez que uma etapa criado, ele pode ser colocado em qualquer lugar da transformao
pgina usando drag-and-drop. Basta colocar o ponteiro do mouse sobre a etapa e
em seguida, pressione e segure o boto esquerdo do mouse. Movendo o ponteiro do mouse agora
arraste a passo ao longo at que o boto do mouse liberado.
Para excluir uma nica etapa, boto direito do mouse para abrir o menu de contexto do passo;
em seguida, escolha Excluir etapa.
Figura 9-5: A pgina de transformao com o seu primeiro passo
240 Parte III Integrao de dados e ETL
Uma coisa que pode ser configurado para todas as etapas o nome. Cada passo
tem um nome que deve ser exclusivo dentro da transformao. O nome
tambm usado como uma legenda para a etapa na pgina de transformao. Na
janelas de configurao, o nome da etapa aparece sempre antes de qualquer outra
opes de configurao.
Por padro, o nome da etapa o nome do seu tipo de passo, possivelmente
seguido de um nmero para garantir o nome exclusivo. Por enquanto, voc
pode deixar o nome padro (arquivo de entrada de texto), mas geralmente o padro
nome seria alterado para refletir a propsito da etapa dentro do
transformao (em oposio a um rtulo que s descreve o funcionamento
executada). Especificando um nome descritivo para as etapas fundamental para a
concepo
transformaes sustentvel.
Outros elementos de configurao que se repetem com freqncia em diferentes etapas
de
tipos so pginas de guia para as opes relacionados a um grupo e grades para
configurar o
campos de dados da etapa crregos. No entanto, a maioria dos disponveis
opes de configurao depende do tipo de etapa.
5. Na pgina de transformao, clique duas vezes no arquivo de entrada de texto passo
para abrir
sua janela de configurao. Na pgina da guia do arquivo da caixa de dilogo, use o
boto Procurar
boto para selecionar o hello_world_input.txt arquivo. Em seguida, clique em Adicionar
boto para atribuir o arquivo para a grade de arquivos selecionados.
Em seguida, clique na pgina guia Contedo e defina a lista suspensa Formato na
metade inferior do formulrio para misto.
6. Finalmente, ative a ficha de Campos, e clique no boto Get Campos. Este
boto diz Colher para digitalizar os dados para descobrir os campos na entrada. Voc
primeiro ser solicitado o nmero de linhas de varredura. Voc pode deixar o
nmero padro (100) para agora. Aps a confirmao, uma janela mostrando o
resultados da verificao ser exibida. Isso tudo mostrado na Figura 9-6.
Note-se que um campo foi descoberto, e note o mnimo eo mximo
valores. Feche essa janela, e observe o campo a ser adicionado Campos
grade. Feche a janela de configurao clicando em OK.
NOTA Aps criar e configurar uma etapa, voc sempre pode voltar a abrir o
janela de configurao e reviso de suas propriedades. No entanto, para rpida inspeo,
Spoon oferece funcionalidades mais conveniente a partir do menu de contexto do passo.
Os campos de entrada Show e Show campos de opes de sada pode ser usado para inspecionar o
tipo de registro da entrada e sada de fluxos, respectivamente. Estas opes de trazer um
janela que exibe uma grade que contm uma linha para cada campo no crrego
mostrando o nome do campo, tipo de dados e nome da etapa, onde o campo foi
originalmente criado.
Captulo 9 Primer Pentaho Data Integration 241
A etapa de entrada de arquivo de texto no espera um fluxo de entrada, e isso est devidamente
indicado na janela pop-up. A janela para a opo Mostrar campos de sada
mostrado na Figura 9-7.
Figura 9-6: Definindo os campos com o boto Get Campos
Figura 9-7: Os campos de sada para a etapa de arquivo de entrada de texto
7. Adicionar Encontre o tipo de etapa constantes na categoria Transform, e
adicionar um para a transformao perto a etapa de introduo de texto de arquivo. Abra
a sua
janela de configurao e digite o seguinte duas linhas na grade de Campos
(Ver Figura 9-8):
Nome: mensagem; Tipo: String; Valor: Ol
Nome: exclamao; Tipo: String; Valor:!
242 Parte III Integrao de dados e ETL
NOTA Spoon suporta selees criao de uma ou mais etapas. Isso ajuda muito
facilita o trabalho com vrias etapas, porque isso lhe permite mover ou remover
todas as medidas includas na seleo de uma vez. passos escolhidos so reconhecveis pelos seus
borda preta grossa.
Voc pode selecionar uma etapa individual, basta clicar nele. Normalmente, isso desfaz a
seleo anterior. No entanto, se voc pressionar e segurar a tecla Ctrl e clicando em um
etapa desmarcada ir adicion-lo seleo, e clicar em um j selecionado
etapa ir remov-lo da seleo.
Voc tambm pode selecionar todos os passos de uma rea retangular ao apontar o mouse para um
lugar vazio na pgina de transformao, pressionar e segurar o boto do mouse
e arrastando o ponteiro do mouse para outro local vazio abaixo e direita
do ponto de partida. Uma faixa de borracha''''aparece e quando o boto do mouse
lanado, todas as medidas que se situam entre os limites da faixa de borracha tornam-se
a nova seleo.
Figura 9-8: A etapa constantes Adicionar
O lpulo pode ser criada para direcionar o fluxo de sada de uma etapa para a entrada
fluxo de outro. Neste exemplo, voc quer criar um salto a partir do
Texto etapa arquivo de entrada para as constantes Adicionar passo para adicionar os
campos
Adicionar ao passo que os registros constantes do fluxo de sada do Texto
arquivo de entrada em degrau.
Para criar um salto, segure a tecla Shift e arraste a etapa de origem para
a etapa de destino. A tecla Shift pode ser liberado depois de deixar o
Captulo 9 Primer Pentaho Data Integration 243
etapa. Quando no estiver segurando a tecla Shift, a etapa s movido, mas no
conexo feita. Alternativamente, se voc tiver uma roda do meio do mouse,
basta pression-lo na etapa de origem, mant-lo pressionado e mover para a
alvo etapa. Existe ainda uma outra maneira de criar um pulo: ativar o Vista
modo no painel lateral e se a visualizao em rvore n correspondente
para a transformao expandido. Em seguida, boto direito do mouse no n do lpulo
abrir o menu de contexto. No menu de contexto, clique em Novo para trazer
o dilogo de lpulo. Neste dilogo, voc pode simplesmente ligar-se passos
selecionando as etapas de origem e destino nas caixas de lista.
Um pulo exibido como uma linha traada a partir da etapa de origem para o destino
etapa. A linha tem uma ponta de seta um pouco alm do centro da linha,
apontando para fora da etapa de origem e de destino para a etapa.
8. D um salto a partir da etapa de introduo de texto de arquivo para a etapa de
constantes Adicionar
arrastando o arquivo de entrada de texto passo para o passo constantes Adicionar
enquanto
segurando a tecla Shift. Isso tambm mostrado na Figura 9-8.
DICA Normalmente, quando voc adicionar mais passos e mais e ao lpulo, a transformao pode
comeam a parecer um pouco confuso. Para evitar isso, voc pode alinhar horizontal ou verticalmente
etapas. Para alinhar verticalmente vrias etapas, selecione as etapas e pressione para cima
chave de seta (para alinhar os topos das etapas selecionadas para o incio da etapa que
mais prximo do topo da tela) ou a tecla seta para baixo (para alinhar a parte inferior da
etapas selecionado para o fim da etapa que est mais prximo do fundo do
tela). Da mesma forma, voc pode alinhar os passos horizontalmente usando a esquerda e direita
teclas de seta.
9. Em seguida, crie um texto passo a sada do arquivo (da categoria de sada) e adicione
uma
hop para ele a partir do Passo constantes Adicionar. O resultado mostrado na Figura
9-9.
Figura 9-9: O exemplo a transformao de trs etapas
10. Abra a janela de configurao para a etapa de produo de texto do arquivo e defina
Nome da propriedade em um arquivo chamado hello_world_output na
mesmo diretrio que o hello_world_input.txt arquivo. (Nota da Extenso
propriedade definida por padro para txt, Razo pela qual no incluiu os
. Txt extenso ao especificar a propriedade Filename).
Ative a ficha de Campos, e pressione o boto para obter campos automat-
camente preencher a grade Campos. Depois disso, pressione o boto de largura
mnima e
ajustar o comprimento dos campos de comprimento varivel para gerar mais compacto
244 Parte III Integrao de dados e ETL
sada. Note que a ordem dos campos corresponde exatamente seqncia de
dos passos de onde se originam: o primeiro Nome campo gerado por
Texto etapa arquivo de entrada, ento o Mensagem e exclamao campos adicionados
pela etapa de constantes Adicionar.
Boto direito do mouse sobre a linha que define o Nome campo e no menu pop-up
menu escolher o item Mover para baixo para que a ordem final dos campos
Mensagem, Em seguida, NomeE, em seguida exclamao. Alternativamente, voc pode
selecionar
a linha da grade correspondente ao Nome campo e pressione o cursor
para baixo. Clique em OK para fechar a janela de configurao.
O texto passo a sada do arquivo e seu dilogo campos so mostrados na Figura 9-10.
GRADES DE CAMPO
etapas de transformao Muitos exigem mltiplos campos a serem configurados. Em muitos
casos, o dilogo de configurao oferece uma grade como voc s viu em Campos
guia da etapa de sada de arquivo de texto. Normalmente, um boto Get Campos est presente a auto-
automaticamente preencher a grade. Ao preencher um grid no-vazia neste homem
ner, voc ser solicitado a fazer uma escolha para lidar com os campos existentes. A
Adicionar novas escolhas so, adicione todos e claras e adicionar todos, com o comportamento bvio
para
cada escolha.
Linhas na grade podem ser selecionados clicando neles, e vrios
seleo pode ser feita mantendo a tecla Ctrl pressionada enquanto seleciona as linhas. Linhas
so adicionados, basta digitar em uma nova linha aps o ltimo existente. Excluir
linhas selecionadas feito usando a tecla DEL. Manter linhas selecionadas (excluindo todos os
desmarcada linhas) feito usando Ctrl + K.
A lista dada aqui no exaustiva, aqui apenas para dar uma idia. Se
voc quer um panorama completo das possibilidades, clique com o boto direito sobre uma grade para
ver a sua
menu de contexto.
11. Est feito agora com o actual edifcio da transformao. Esta uma
bom momento para salvar a transformao, usando o arquivo item Salvar do
menu principal. Salve a transformao como hello_world_transformation em
mesmo diretrio que voc salvou o arquivo de entrada. O arquivo deve ser au-
camente obter o . KTR extenso, que a abreviao de''Chaleira Transformao.''
NOTA Note-se que um boto Save tambm est disponvel na barra de ferramentas. Alternativamente,
voc
tambm pode usar o atalho do teclado Ctrl + S.
Executando a Transformao
Voc pode executar a transformao activa de dentro Spoon atravs dos seus principais
menu com a opo MenuTransformationRun. Alternativamente, voc
pode usar o atalho do teclado F9 ou o boto "Run (o verde-cheia
seta apontando para a direita).
Captulo 9 Primer Pentaho Data Integration 245
Figura 9-10: O texto passo a sada do arquivo e os seus campos de dilogo
Ao executar a transformao, um dilogo com o ttulo executar um transfor-
informao aparece em primeiro lugar. Vamos discutir este dilogo em detalhes mais adiante
neste
captulo e, novamente, no captulo 11, mas agora voc pode simplesmente pressionar o
lanamento
boto na parte inferior da janela.
A Execuo Painel de Resultados
Depois de lanar a transformao, a execuo de painel de resultados torna-se visvel
na parte inferior do espao de trabalho. Este painel fornece um nmero de pginas de guia
que oferecem funcionalidade til para monitorar uma transformao. Por padro, o Passo
Mtricas pgina da guia ativado e, por enquanto, vamos nos limitar a maior parte
usando esta pgina guia, bem como a pgina de registo. Todas estas pginas de guia ser
discutidos em mais detalhes no Captulo 11.
Se tudo funcionasse como deveria, o painel de Execuo deve agora olhar
semelhante Figura 9-11. Na grade de Mtricas etapa, voc ver exatamente trs
linhas (uma para cada etapa da transformao).
Todas as linhas devem indicar que esto com acabamento na coluna de ativos (em
do lado direito da grade). Se uma ou mais linhas na grade tem um fundo vermelho,
ea coluna Active mostra o estado parado, ocorreu um erro enquanto
executar a transformao. A seo''Verificando a Transformao''
mais adiante neste captulo pode lhe dar algumas pistas sobre o que correu mal.
NOTA
superior no sentido vertical. Para fazer isso, coloque o ponteiro do mouse exatamente entre os
superior da barra de ttulo do painel e na parte inferior do espao de trabalho. Voc pode encontrar o
246 Parte III Integrao de dados e ETL
''''Pega colocando o ponteiro do mouse direito no texto da barra de ttulo do painel e
lentamente movendo-se em direo ao fundo da rea de trabalho at que o ponteiro do mouse
cone muda para um cone de redimensionamento.
Voc pode alternar a visibilidade do painel usando Hide / Show alternar Resultado da Execuo
botes encontrados na barra de ferramentas. Os cones destes botes so mostrados na Figura 9-12.
Voc tambm pode controlar a visibilidade usando a janela padro cones que aparecem na
do lado direito na barra de ttulo do painel.
Figura 9-11: A transformao final
Figura 9-12: Alternar a visibilidade do painel de Resultados da Execuo
A sada de
A hello_world_output.txt arquivo que voc criou anteriormente agora deve conter
Ol, <name>! mensagens como aquelas mostradas na Listagem 9-2.
Listagem 9-2: O contedo do hello_world_output.txt
messageNameexclamation
Ol, George Clooney!
Ol, Daniel Day-Lewis!
Ol, Johnny Depp!
Ol, Tommy Lee Jones!
Ol, Viggo Mortensen!
Captulo 9 Primer Pentaho Data Integration 247
Verificao de consistncia e Dependncias
Voc s fez uma jogada mais caprichosa de imediato executar o seu trans-
formao, sem sequer realizar os controlos mais bsicos. Concedido, o
transformao muito simples, mas mesmo assim, h um nmero impressionante
de coisas que poderiam dar errado. As sees a seguir apresentam algumas informaes
bsicas
verificaes que voc sempre deve executar.
Consistncia lgica
A coisa mais bsica verificar se a transformao logicamente
consistente. Por exemplo, se um passo opera em um campo particular, segue-se que
que o campo deve estar presente no fluxo de dados de entrada, e considerado um
erro se este no for o caso. Outro tipo de erro ocorre quando o registro de fluxos de
incompatveis com layouts so''misto.''Isso ocorre quando duas recorde crregos
ter um layout de registro diferentes esto conectados mesma etapa. H mais
variedades de questes lgicas, como as etapas com sada nem entrada nem
saltos e os passos que esto ligados de uma forma circular.
Dependncias de recursos
Outra coisa a verificar se todos os recursos que so usados pelo trans-
formao esto realmente disponveis. Por exemplo, o nosso''Ol, Mundo! Exemplo''
se refere a um arquivo de entrada e um arquivo de sada. transformaes do mundo real so
susceptveis
a depender de conexes de banco de dados e sobre a disponibilidade dos objetos de banco
de dados
como tabelas e, talvez, seqncias ou procedimentos armazenados. Obviamente, h
ser um problema de execuo tal transformao se esses recursos no so
disponveis.
Verificando a Transformao
A opo Verificar no menu de transformao pode ser usado para verificar lgica
erros, bem como a disponibilidade de recursos como arquivos e banco de dados
tabelas. Escolhendo esta opo aparece uma janela intitulada Resultados da transformao
verifica mostrando cada problema potencial como uma linha em uma grade.
utilizar linhas de cores de semforo para indicar a gravidade da questo: linhas verdes
indicar a seleo est bem, as linhas vermelhas indicam os erros, e as linhas amarelas
indicam
avisos. Selecionando a opo "Exibir resultados na parte inferior da
janela de resultado revela os resultados de todos os cheques que passaram sem nenhum
problema,
fornecendo uma viso geral de tudo o que poderia ter dado errado. No
tambm podem ser linhas observao no resultado, que no tem nenhuma cor especial na
todos. Estas linhas so relatados pelos controlos, que atualmente no podem ser executadas.
Veja a Figura 9-13 para obter um exemplo do que a validao dos resultados para o''Ol,
Mundo''transformao pode parecer.
248 Parte III Integrao de dados e ETL
Figura 9-13: Verificando a transformao
Ao verificar o''Ol, Mundo!''Transformao exemplo, voc pode encontrar
uma linha de observao no relatrio, como mostrado na Listagem 9-3.
Listagem 9-3: Uma observao no resultado da verificao
Stepname
Texto de arquivo de sada
Resultado
2 - Observao
Observao
Especificaes de arquivo no so verificadas.
Este resultado ocorre se o arquivo de sada ainda no existe no momento da validao
a transformao. Spoon gostaria de verificar se possvel gravar o
arquivo de sada, mas no possvel concluir que a verificao at que o arquivo realmente
existe.
Trabalho com o Banco de Dados
acesso RDBMS uma das funcionalidades bsicas de qualquer produto de integrao de
dados.
Pentaho Data Integration oferece suporte incorporado para mais de 30 diferentes
produtos de banco de dados. Isso inclui todos os produtos conhecidos RDBMS, tais como
IBM DB2, Microsoft SQL Server, MySQL, PostgreSQL e Oracle, e muitas
menos conhecidos, como Kingbase, Gupta, MonetDB e outros.
JDBC ODBC e conectividade
Ao longo do Pentaho BI Suite, conectividade de dados baseado em JDBC e
Pentaho Data Integration no excepo. Alm do suporte JDBC nua,
Spoon oferece suporte adicional para uma grande coleo de produtos RDBMS,
protegendo o usurio de detalhes especficos do driver, como o formato exato da
a seqncia de JDBC contato, apresentando frequentemente utilizados opes em um
amistoso
maneira. Mesmo se no houver direta suporte embutido para um RDBMS especial,
ainda possvel se conectar a ele usando uma conexo JDBC genricos, oferecendo uma
driver JDBC compatvel est disponvel para esse RDBMS particular.
Captulo 9 Primer Pentaho Data Integration 249
JDBC um padro muito bem estabelecido, ea maioria dos vendedores de RDBMS fornecer
drivers JDBC para o seu RDBMS. Mas, mesmo se nenhum driver JDBC est disponvel,
muitas vezes ainda possvel se conectar usando a conectividade ODBC.
ODBC conectividade fornecida por uma ponte JDBC-ODBC, que
essencialmente um driver JDBC que pode atuar como um proxy para ODBC
motorista. Isso permite o acesso a qualquer RDBMS para o qual existe um driver ODBC
disponveis. Como a conectividade ODBC adiciona uma camada extra, deve ser evitado
se possvel. Dito isso, pode ser a nica opo no caso de haver simplesmente no
existe um driver JDBC.
Por padro, Pentaho integrao de dados usa ponte Sun JDBC-ODBC para
ODBC conectividade. Este driver est includo na edio padro do Sol
JDK. No entanto, sempre possvel recorrer a qualquer terceiro JDBC-ODBC
ponte. Qualquer driver JDBC compatvel sempre pode ser utilizada com um genrico
JDBC de conexo, e isso inclui todas as pontes de terceiros JDBC-ODBC.
Criando uma conexo de banco de dados
Conexes de banco de dados so definidos dentro de transformaes e de emprego. Para
criar
uma ligao da barra de ferramentas, clique em Novo e escolha a opo de conexo.
A janela de conexo do banco aparece.
NOTA Existem algumas maneiras de criar uma conexo de banco de dados alm de utilizar
a barra de ferramentas.
Para criar uma conexo usando o painel lateral, certifique-se o painel lateral est no modo Visualizar
e trazer o menu de contexto da pasta Conexes abaixo do n que
representa a transformao em curso. No menu de contexto, escolha Novo.
As conexes tambm podem ser criados a partir de dentro as janelas de configurao de qualquer
banco de dados relacionados com as etapas de transformao. Essas etapas conter uma caixa de lista
para a escolha
uma conexo existente, e voc pode usar o novo e editar botes, respectivamente,
criar ou modificar a conexo configurada.
Finalmente, voc pode usar o atalho F3 para iniciar uma conexo com o banco
assistente, que oferece um processo passo-a-passo para preencher dados de conexo
propriedades.
O lado esquerdo da janela de conexo do banco contm uma lista de categorias
dos tipos de coisas que podem ser configurados. Na verdade, especificando essas
propriedades
feito no preenchimento de formulrio no lado direito da janela. O contedo deste
forma so sincronizados de acordo com a categoria selecionada no lado esquerdo da
dilogo. As categorias so:
General-Basic propriedades, tais como o tipo de banco de dados, nome do host, porta
nmero, e assim por diante so configurados aqui. O nome da conexo deve
tambm ser especificado aqui.
250 Parte III Integrao de dados e ETL
Avanado-Este categoria pode ser usado para especificar algumas opes que afetam
como identificadores de banco de dados so tratados por todas as etapas usando esta
conexo.
tambm pode ser usado para especificar uma ao personalizada, sempre que tal
ligao
inicializado.
Opes-A JDBC padro define um caminho comum para configurar o JDBC
propriedades especficas do driver. Estes podem ser especificados aqui.
Connection Pooling- agrupamento de opes.
Clustering-Estes opes podem ser usadas para criar um grupo de conexes
que so usados em um ambiente de cluster e tambm com o particionamento.
Veja a Figura 9-14 para obter um exemplo do dilogo Conexo de Banco de
Dados.
Figura 9-14: Tpico opes de configurao para conexes JDBC
Por padro, a categoria Geral selecionada. As propriedades nesta categoria
so suficientes para todos os casos de uso comum. Iremos descrever as outras categorias
Captulo 9 Primer Pentaho Data Integration 251
mais adiante neste captulo. Os seguintes itens so encontrados no lado esquerdo da
formulrio de propriedades em geral, e deve ser preenchido para cada ligao:
Nome da conexo-In neste campo, um nome deve ser especificado que
identifica neste contexto, dentro da transformao. Passos
que exigem uma conexo de banco de dados referem-se a uma conexo usando esta-
o nome.
Tipo de conexo-Este lista usada para escolher um dos muitos banco de dados
produtos para conectar-se.
Access-Aps voc especificar o tipo de conexo, esta lista fornece a
mtodos de ligao disponveis para o RDBMS especificado. Na maioria dos casos,
um JDBC ODBC e uma opo mostrada. Para todos os tipos de conexo que
suporte JDBC, esta lista tambm contm uma opo de JNDI. A opo ser JNDI
ser explicada no captulo 11.
O lado direito do formulrio de propriedades exibe um quadro de configuraes que contm
opes de configurao que so especficos para o tipo de conexo especificado e
mtodo de acesso. conexes JDBC para um RDBMS, que diretamente suportado
geralmente requerem as seguintes propriedades:
Nome do Host-A nome de domnio ou endereo IP do computador onde
o servidor de banco de dados reside. Para um servidor de banco de dados local, este
deve
normalmente localhost ou 127.0.0.1, mas voc tambm pode tentar deixar o campo
em branco.
O nmero de porta- host TCP / IP onde o servidor de banco de dados est escutando
os pedidos de conexo. Em muitos casos, o valor padro para o RDBMS's
porta automaticamente preenchidos
Nome de Usurio e Senha-A credenciais para fazer logon no banco de dados
servidor.
Para RDBMSs muitos, isso tudo o que necessrio para estabelecer uma conexo JDBC.
Pentaho Data Integration usa essa informao para carregar o driver apropriado,
e para gerar a seqncia de JDBC adequado contato para estabelecer a conexo.
Para conexes ODBC, propriedades como host e credenciais j esto
configurada na fonte de dados ODBC. Portanto, as conexes ODBC requerem
somente o nome de uma j existente fonte de dados ODBC (DSN).
s vezes, as opes extras esto disponveis para um tipo de conexo particular. Para
exemplo, para uma conexo Oracle, a forma tambm fornece caixas de texto para especificar
que tablespaces para uso de tabelas e ndices. Outro exemplo aparece
na Figura 9-14, que mostra o resultado Use Streaming direito checkbox Cursor
abaixo da caixa de texto de senha.
252 Parte III Integrao de dados e ETL
Testando conexes de banco de dados
Aps configurar a conexo, uma boa idia test-lo. O boto de teste
na parte inferior da caixa de dilogo Conexo de banco de dados pode ser usada para
descobrir se
pelo menos possvel para Pentaho Data Integration para se conectar ao especificado
banco de dados. Aps pressionar o boto de teste, uma caixa de mensagem aparece. Se o
teste
for bem sucedida, a caixa de mensagem deve ser semelhante ao mostrado na Figura 9-14.
Se o teste no for bem sucedida, a caixa de mensagem ir exibir um rastreamento de pilha
grande,
que pode ser usado para analisar o problema.
Embora o rastreamento de pilha pode ser assustadora, os problemas se resumem a
erros de ortografia nas credenciais ou erros de digitao no nome do host ou nmero da porta.
Geralmente, o topo da StackTrace exibe uma mensagem til fornecer uma justa
chance de resolver o problema.
Como as conexes de banco de dados so usados
conexes de banco de dados so consultados por todas as etapas de transformao ou
entradas de emprego
que precisam trabalhar com um banco de dados. As janelas de configurao dessas etapas
e entradas de emprego fornecer alguns meios de estabelecer a conexo, explorando seus
banco de dados associado ou at mesmo criar um novo.
conexes de banco de dados especificado no Pentaho Data Integration so realmente
mais apropriadamente denominado de banco de dados descritores de conexo. Este um
importante
momento porque uma conexo''tal''pode muito bem traduzir em mltiplas
muitas vezes, as ligaes reais do ponto do servidor de banco de vista.
Por exemplo, pode haver muitos passos em uma transformao que se referem a
o descritor de conexo mesmo. Quando essa transformao executada,
todas essas etapas, normalmente aberto sua prpria instncia da conexo,
cada um dos quais corresponde a uma''ligao''real ao nvel RDMBS.
Isto significa que, por padro, voc no pode confiar em mudanas de estado dentro de um
conexo. Um exemplo tpico so as operaes de banco de dados: voc no pode sim-
ply confirmar ou reverter uma transformao, pois cada etapa abre o seu prprio
conexo, e cada um vai usar a sua prpria transao, que completamente inde-
independente das operaes mantidas pela conexes abertas pelo
outras etapas.
Agora que identificamos a diferena entre o Pentaho Data Inte-
grao ligaes e conexes de banco de dados''real'', no vamos ser exigente em
nossa terminologia. Ns iremos usar a conexo de expresso''''para se referir a uma conexo
objeto do descritor no Pentaho Data Integration, e vamos fazer uma explcita
distino se faz sentido faz-lo para o tpico em questo.
Captulo 9
Usando transaes
Primer Pentaho Data Integration 253
Em princpio, as conexes Pentaho Data Integration so apenas descritores-recipes
que podem ser utilizados repetidamente por vrios passos para estabelecer um real, fsico
conexo com o banco. Isto significa que uma transformao pode ser
ligada muitas vezes ao mesmo tempo usando o descritor mesma conexo.
Mltiplas conexes permitem que o trabalho a ser paralelizado, o que bom para
desempenho.
s vezes, vrias conexes fsicas no so desejveis. Por exemplo,
Tendo uma conexo fsica separada para cada passo significa que o estado da sesso
(Como o status da transao) no se traduz em vrias etapas: cada
etapa, ou seja, cada ligao fsica, tem seu prprio estado (e, portanto, suas prprias
transao).
Se voc realmente precisar, voc pode garantir que cada descritor de conexo realmente
corresponde exatamente a uma conexo fsica. Para fazer isso, verifique a fazer o
caixa transformao banco de dados transacional na pgina separador Diversos
da caixa de dilogo Propriedades de Transformao. Para abri-lo, selecione Menu Transforma-
Configuraes o.
Um banco de dados habilitado''Ol, Mundo!''Exemplo
Agora que voc aprendeu a criar uma conexo de banco de dados, voc pode
melhorar a''Ol, Mundo! transformao''e adicionar algum suporte de banco de dados.
Para manter as coisas simples, voc simplesmente adicionar uma etapa que grava o''Ol''
mensagens para uma tabela do banco, alm do arquivo de sada.
1. Abra o''Ol, Mundo! Transformao exemplo''se ele no estiver aberto.
Escolha Menu Transformao Configuraes para abrir a Transformao
De dilogo Propriedades. Na caixa de texto Nome de Transformao, tipo hello_
Salvar arquivo comoworld_transformation_with_db. Em
seguida, escolha Menu
e salvar a transformao como hello_world_transformation_with_db
. KTR no mesmo diretrio onde a transformao original est armazenado.
NOTA Estritamente falando, poderamos ter criado a cpia da transformao
sem editar o nome na janela de configurao de transformao. Dito isto,
uma boa idia fazer isso porque usa o nome Spoon entrou aqui como a exibio
ttulo para a transformao. Ao editar o nome, voc pode evitar qualquer confuso quanto ao
transformao que voc est modificando.
2. Criar uma conexo de banco de dados chamado Target Database. Escolha o SQLite
como
o tipo de conexo, e Nativo (JDBC) como mtodo de acesso. Na
254 Parte III Integrao de dados e ETL
Configuraes frame, tipo <path> / hello_world.sqlite onde <caminho> stands
para o caminho do sistema de arquivos, onde a transformao est armazenado.
Especifique -1 para
do Porto. Deixe o Nome do Host, Nome de Usurio e Senha campos em branco.
Clique no boto Test para verificar a conexo do banco funciona corretamente.
NOTA Optamos por criar uma conexo de banco de dados SQLite para este exemplo. SQLite
um banco de dados incorporado leve relacional. A principal razo para esta escolha
para permitir uma configurao rpida para aqueles leitores que no tm um servidor de banco de dados
criado.
SQLite exige apenas a capacidade de criar e modificar um arquivo.
Se voc tem um servidor de banco de dados criado, voc pode tentar se conectar a esse lugar.
Note que usamos a barra para separar o caminho do banco de dados
nome do arquivo hello_world.sqlite. Mesmo que a barra no normalmente
usados em caminhos do Windows, isso, de fato, funciona.
3. Arraste a tabela tipo de etapa de sada da categoria na sada do lado
painel e mova-o sobre o salto entre as constantes de Adicionar e arquivo de texto
etapas de sada. Se posicionados direita, a linha usada para representar o salto ser
engrossar, como mostrado na Figura 9-15, e voc ser perguntado se deseja
dividir o salto. Solte a passo l. Isto ir inserir a etapa de sada de mesa
entre as constantes e as etapas Adicionar Texto de arquivo de sada. A sada hop
a partir de Adicionar etapa constantes automaticamente conectado entrada de
a etapa de sada de mesa, eo hip entrada da etapa de produo de texto do arquivo
igualmente ligado sada da etapa de sada de mesa, assim, a diviso do
hop original. Confirme que voc deseja dividir o salto e, opcionalmente, verifique
o No perguntar de novo opo para evitar ser solicitado no futuro.
NOTA A etapa menu de contexto contm a opo Detach, que o exato
oposto da diviso saltos: destaca a etapa da sua lpulo, sem descartar
se o lpulo.
Figura 9-15: Dividindo uma hop existentes
4. Abra a janela de configurao da nova etapa de sada da tabela. Nota
que a caixa de listagem de conexo j est definido para o nome do banco de dados
Captulo 9 Primer Pentaho Data Integration 255
conexo. Na caixa de texto tabela de destino, tipo de hello_world_output. Em seguida,
pressione o boto SQL na parte inferior da janela de configurao. A
Simple SQL Editor abre contendo uma instruo SQL CREATE TABLE declarao, como
mostrado na Figura 9-16, para criar o hello_world_output tabela. Note-se que
voc pode editar o mapa gerado para o contedo do seu corao. Pressione o boto
Boto Executar para criar a tabela. Outra janela se abre, o que deve
indicar a instruo foi executada com sucesso. Fech-lo, e tambm perto do
SQL janela do editor.
DICA Voc tambm pode chamar o editor SQL diretamente a partir do contexto da conexo
menu, que pode ser levantada com o boto direito do mouse a entrada de conexo no
barra lateral.
Figura 9-16: Gerando declaraes CREATE TABLE
5. Executar a transformao. Verifique o painel de resultados para a execuo de quaisquer
erros.
A tabela agora deve conter linhas.
6. Na barra lateral, alternar para o modo de Exibir e clique com o alvo
Banco de dados de conexo. No menu de contexto, escolha a opo Explorar.
Isto abre a janela Database Explorer. Na vista de rvore, abra o
N Tables e clique no hello_world_output tabela para selecion-lo. Em seguida,
clique na primeira prvia de 100 linhas boto para examinar o contedo da
tabela. Uma janela de visualizao aberta, e voc deve ver algo semelhante
ao que mostrado na Figura 9-17.
256 Parte III Integrao de dados e ETL
DICA O SQL Explorer tambm pode ser chamado de dentro da configurao passo
dilogos de todos os passos dados relacionados.
Figura 9-17: Visualizando dados da tabela atravs do Database Explorer
Banco de Dados Gerenciamento de Configurao de Conexo
conexes de banco de dados fazem parte de transformaes e de emprego. Isso significa que
uma conexo pode ser reutilizado dentro, mas no atravs de transformaes e / ou
postos de trabalho. Isso representa algo como um problema de manuteno na concepo de
uma base de dados
soluo de integrao que consiste em vrias transformaes e emprego (que
quase sempre o caso).
Felizmente, existe uma maneira de lidar com isso. Transformaes e os trabalhos so
associado a um arquivo compartilhado de objetos. O compartilhamento de arquivos objetos
armazenado no local
mquina, e pode ser usado para armazenar conexes de banco de dados (entre outras
coisas).
Todos os objetos no arquivo de objetos compartilhados so automaticamente disponveis para
todos os trabalhos e
transformaes.
NOTA Por padro, Spoon usa um nico arquivo de objetos compartilhados por usurios do sistema
operacional. Este arquivo
chamada shared.xml e armazenados no . Chaleira diretrio abaixo home do usurio
diretrio. O arquivo compartilhado de objetos pode ser configurado na pgina da guia Misc
Propriedades de transformao ou propriedades dilogo Job, respectivamente.
Para armazenar uma conexo de dados no arquivo de objetos compartilhados, abra o con-
fio Bluetooth menu de contexto e escolha a opo Compartilhamento. O nome da conexo
agora aparece em negrito na barra lateral. Neste ponto, voc deve salvar o
transformao.
Captulo 9 Primer Pentaho Data Integration 257
ATENO Infelizmente, o ato de compartilhar a conexo no em si
considerado como uma mudana. Isso significa que, se no houver alteraes no salvas antes
compartilhando a conexo, logo aps salvar a transformao partilha ser
no guardar a conexo com o arquivo de objetos compartilhados.
Voc pode ver se acha o trabalho de colher ou transformao mudou. Uma forma de
descobrir olhar para a barra de ttulo da aplicao. Se que exibe o texto''(alterado)''
aps a legenda documento, as alteraes sero salvas. Outra maneira verificar
se o rtulo na aba da pgina exibido em negrito.
Se voc estiver usando o banco de dados do repositrio, o problema discutvel. O
repositrio
lojas de conexes de banco de dados global. Todas as transformaes e do emprego num
repositrio pode acessar automaticamente todas as ligaes, mesmo se elas foram criadas
de outro emprego ou transao.
Conexes de banco de dados genricos
Se voc deseja se conectar a um RDBMS para as quais no suporte embutido est disponvel
na colher, voc pode tentar estabelecer uma conexo de banco de dados genricos. Neste
caso,
primeiro voc deve obter um driver JDBC para o RDBMS. Estes geralmente podem ser
obtidos a partir do fornecedor de banco de dados, muitas vezes, sem nenhum custo extra.
Os drivers JDBC so normalmente distribudos como Jar. arquivos (arquivos Java). Antes
voc pode usar o Jar. arquivo (ou melhor, o seu contedo), voc deve garantir Pentaho
Integrao de dados pode carreg-lo. Isto conseguido atravs de cpia do Jar. arquivo para
o
libext / JDBC diretrio, que est localizado abaixo do diretrio de instalao do
Pentaho Data Integration.
Para criar a conexo, abrir a janela de conexo do banco, como costume
maneira. Selecione a entrada de genricos no banco de dados lista Tipo de conexo, e
selecionar Nativa (JDBC) na lista de acesso. As seguintes propriedades so
disponveis no quadro de configuraes:
Customer Connection URL-Este onde voc especifica o JDBC contato
string (chamado de URL JDBC terminologia). O formato deste URL
jdbc: string> <driver especficas. Consulte a documentao do
driver especfico que voc deseja usar para descobrir exatamente o que o formato de
a seqncia especfica do driver.
Custom Class Name Driver-A driver JDBC real uma classe Java. A
nome completo qualificado (nome do pacote, seguido por um ponto, seguido do
nome da classe) desta classe devem ser especificados aqui. Como o formato do
URL, essa informao tambm especfica do driver. Voc deve procur-lo na
documentao fornecida com o motorista.
Nome de usurio e senha credenciais para fazer logon no RDBMS.
Estes dados no so especficas do driver. Eles correspondem a uma conta em seu
banco de dados do sistema.
258 Parte III Integrao de dados e ETL
Figura 9-18 mostra um exemplo de uma conexo JDBC genrico para LucidDB.
Figura 9-18: Uma conexo JDBC genrico para LucidDB
Tambm possvel utilizar o ODBC como um mtodo de acesso para o banco de dados
genricos
conexo. Isso requer apenas o nome de um dos dados j configurado ODBC
fonte.
Resumo
Neste captulo, voc aprendeu sobre os processos de ETL e atividades envolvidas
no preenchimento do data warehouse. Alm disso, voc aprendeu sobre um nmero
de actividades de apoio, tais como a captura de mudana de dados, validao de dados, e
decodificao e renomeao.
Introduzimos tambm Pentaho Data Integration ferramenta, tambm conhecida como Kettle.
Voc aprendeu que o PDI consiste em um mecanismo de integrao de dados que podem
executar tarefas
e transformaes. Alm disso, o PDI apresenta uma srie de ferramentas e utilidades
para criar e executar trabalhos e transformaes.
Captulo 9 Primer Pentaho Data Integration 259
Transformaes so orientadas a dados e consiste de etapas, que so operados
no registro crregos. etapas de transformao podem ser conectados atravs de saltos,
permitindo que os registros de fluxo de uma etapa para a outra. Os trabalhos so processuais
na natureza, e consistem em entradas de emprego, que so executados seqencialmente
tarefas.
Normalmente, os trabalhos de conter transformaes, entre outros tipos de medidas.
Voc tambm aprendeu os conceitos bsicos de colher, que a ferramenta para criar PDI
emprego e transformaes. Voc construiu o seu primeiro Mundial''Ol,!''Transformao
em Spoon. Depois disso, voc aprendeu sobre as conexes de banco de dados, e prorrogado
o''Ol Mundo! transformao''para armazenar o resultado em um banco de dados.
Voc deve agora ter uma base razovel para o Captulo 10, em que voc
vai aprender a usar esse conhecimento e habilidades para encher o World Class Filmes
data warehouse.
CAPTULO
10
Pentaho Data Projetando
Solues de Integrao
No captulo anterior, apresentamos um conjunto de ferramentas e utilitrios que fazem
at Pentaho Data Integration (PDI). Ns demos um pouco de ateno extra para os dados
integrao Spoon ferramenta de design, e deu duas orientaes para familiarizar
o leitor com sua interface de usurio. Neste captulo, voc aprender como colocar essas
habilidades para utilizar para construir as transformaes e os trabalhos que so usados para
preencher o Mundo
Classe armazm de dados de filmes.
Este captulo oferece uma abordagem prtica, com foco em problemas comuns e
solues prticas. Apesar de usar o World Class data warehouse Filmes
como exemplo, acreditamos que a maioria dos problemas encontrados so comuns a
a maioria dos armazns de dados. Os mtodos utilizados neste captulo so de modo algum
a nica soluo possvel. Ao contrrio, optaram por uma srie de abordagens para
familiariz-lo com os recursos mais necessrios do Pentaho Data Integration.
A melhor maneira de ler este captulo para baixar todas as transformaes PDI
e emprego a partir do site deste livro em www.wiley.com / go / pentahosolutions assim
voc pode facilmente abri-los, verificar todos os detalhes, execute um preview, ou mais.
NOTA Alm dos exemplos e exerccios discutidos neste captulo, voc est
encorajados a dar uma olhada nas amostras includas com PDI. Voc pode encontr-los em
o amostras diretrio que est localizado no diretrio home do PDI. A amostras
prprio diretrio contm um empregos e um transformaes subdiretrio contendo
amostra de trabalhos e transformaes. A amostras diretrio tambm contm um mapeamento
diretrio que ilustra o uso de subtransformations.
Para alm destes exemplos, voc tambm deve ter um olhar para os dados Pentaho
Integrao documentao. A referncia a Passo wiki.pentaho.com / exposio
/ EAI / Pentaho Data Integration + + + Passos ea referncia de trabalho na entrada
261
262 Parte III Integrao de dados e ETL
mostrar wiki.pentaho.com / EAI / Pentaho Data + + + Integrao Trabalho
+ Entradas so recursos especialmente grande para obter novas idias para a construo de PDI
solues.
Tabela Gerando Dimension Data
Quase todos os projetos de data warehouse contm tabelas de dimenso poucos que podem,
em grande medida, ser preenchida com os dados gerados. Um exemplo bem conhecido
a dimenso de data. Tambm conhecida, mas menos utilizadas so o tempo
e dimenses da demografia.
Nesta seo, primeiro discutir brevemente a prtica de utilizar banco de dados armazenados
procedimentos para carregar esses tipos de tabelas de dimenso. Ns, ento, rapidamente
mover-se sobre
e explicar como fazer isto usando o Pentaho Data Integration para esta tarefa.
Isso proporciona uma grande oportunidade para conhecer melhor Spoon e um
algumas de suas etapas de transformao de base. Isto ir estabelecer uma base importante
para
sees subseqentes.
Usando Stored Procedures
Um mtodo comum para gerar dados para uma dimenso de data a de criar um banco de
dados
procedimento armazenado que usa funes de data do RDBMS alvo.
NOTA Uma desvantagem de usar um procedimento armazenado do banco de dados que ele precisa
ser
escrito mais e mais para cada RDBMS destino diferente, como h geralmente
diferenas sintticas com relao a ambos os idiomas o procedimento armazenado ea
built-in funes de data e hora. Por esse motivo (e outros explicado mais adiante neste
captulo), na verdade ns no recomendamos essa abordagem, mas por uma questo de
integralidade que inclua o tema de qualquer maneira.
A ttulo de exemplo, um procedimento simples MySQL armazenados para carregar uma
dimenso data
Sion mostrado na Lista 10-1. Neste caso, a funo interna DATE_FORMAT
(Em negrito) usado para gerar mltiplas representaes do valor de data.
Listagem 10-1: Um simples (parcial) MySQL procedimento armazenado para carregar uma dimenso de data
CREATE PROCEDURE p_load_dim_date (
p_from_date DATA
, P_to_dateDATE
)
BEGIN
DECLARE v_date DATE DEFAULT p_from_date;
ENQUANTO v_date <p_to_date DO
INSERT INTO dim_date (
date_key
, Data
Captulo 10 Projeto Pentaho Data Integration Solutions 263
, Date_short
, ...
) VALUES (
v_date + 0
, V_date
,DATE_FORMAT (v_date, '% Y-%% c-d')
, ...
);
SET v_date: = v_date + intervalo de 1 dia;
Fim Enquanto;
END;
Carregando um Dimension Data Simples
Todos os problemas de compatibilidade causados pelo uso de procedimentos de banco de
dados armazenados podem
ser superado simplesmente evit-los. Isso pode parecer mais fcil do que realmente ,
mas para o carregamento de uma dimenso de data que o processo bastante simples
e fcil de implementar diretamente no Pentaho Data Integration.
Para evitar complexidade desnecessria, primeiro iremos usar um pouco simplificado
verso da tabela de dimenso de data. Sua CREATE TABLE declarao apresentada
na Lista 10-2. Como voc pode ver, esta tabela de dimenso de data simplesmente fornece
uma
nmero de diferentes formatos para uma data.
Listagem 10-2: CREATE de uma tabela simplificada data dimenso
CREATE TABLE dim_date (
date_key
date_value
date_short
date_medium
date_long
date_full
day_in_week
day_in_year
day_in_month
is_first_day_in_month
is_last_day_in_month
day_abbreviation
day_name
week_in_year
week_in_month
is_first_day_in_week
is_last_day_in_week
is_weekend
month_number
month_abbreviation
MONTH_NAME
ano2
INTEGER
DATA
VARCHAR (12)
VARCHAR (16)
VARCHAR (24)
VARCHAR (32)
SMALLINT
SMALLINT
SMALLINT
VARCHAR (10)
VARCHAR (10)
CHAR (3)
VARCHAR (12)
SMALLINT
SMALLINT
VARCHAR (10)
VARCHAR (10)
VARCHAR (3)
SMALLINT
CHAR (3)
VARCHAR (12)
CHAR (2)
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
264 Parte III Integrao de dados e ETL
ano4
quarter_name
quarter_number
year_quarter
year_month_number
year_month_abbreviation
PRIMARY KEY (date_key),
UNIQUE KEY (date_value)
);
CHAR (4)
CHAR (2)
SMALLINT
CHAR (7)
CHAR (7)
CHAR (8)
NO
NO
NO
NO
NO
NO
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
Figura 10-1 mostra uma transformao to simples. A transformao
dividido em quatro partes distintas: Preparar, entrada e sada de Transformao,
e na Figura 10-1 voc pode ver algumas notas para indicar isso.
Figura 10-1: Uma transformao simples para carregar uma tabela de dimenso de data
NOTA Voc pode colocar anotaes em qualquer lugar na tela de transformao ou de trabalho.
Embora as notas no so um substituto para a documentao, eles so um conveniente
meios para esclarecer a inteno da transformao.
Para adicionar uma nota, clique com o boto direito sobre a tela para abrir o menu de contexto. Escolha
Novo
Observe no menu de contexto. Uma caixa de dilogo na qual voc pode digitar o texto para
sua nota. Quando terminar de editar, clique em OK para fechar a janela e coloque a nota sobre
Captulo 10 Projeto Pentaho Data Integration Solutions 265
a tela. Uma vez que a nota colocada na tela, voc pode usar o mouse para arrastar
para um novo local. Para editar uma nota existente, clique duas vezes nele. Para remov-lo,
boto direito do mouse sobre a nota e escolha nota Excluir no menu de contexto.
Aqui est um resumo do que acontece nessa transformao:
1. Criar dim_date: Questes as instrues SQL necessrias para o alvo
banco de dados para criar a dim_date Dimenso da tabela.
2. Faltando Data: Gera uma linha que representa uma data especial que
usado para representar todas as datas em falta ou inaplicvel.
3. Gerar linhas com Data Inicial: Gera uma linha por dia de calendrio.
As linhas tm um campo que especifica a data inicial.
4. Dias Seqncia: Adiciona um campo inteiro para incrementar as linhas geradas
pela etapa anterior.
5. Calcular e Formato Datas: O inteiro incrementado adicionado
data inicial, resultando em uma seqncia de dias de calendrio.
6. is_first_day_in_month, is_first_day_in_week, is_last_day_in_month,
is_last_day_in_week e is_weekend: Essas etapas mapa de dados numricos
ao texto que est a ser armazenado na tabela de dimenso.
7. Carga dim_date: As linhas de fluxo de entrada so inseridos no
dim_date tabela.
Os captulos seguintes analisam as etapas de transformao e suas configu-
rao em detalhes.
CREATE TABLE dim_date: Utilizando o Execute SQL Script Etapa
Na Figura 10-1, a etapa Criar dim_date do tipo Execute o script SQL. Este
tipo de medida pode ser encontrado na categoria Scripts; seu cone (mostrado na parte
superior da
Figura 10-1) aparece como um pergaminho com uma etiqueta de SQL.
A etapa de obras, executando os comandos SQL especificado no script
propriedade contra a conexo especificada. Voc pode usar a propriedade script
para especificar uma ou vrias instrues SQL, separados por ponto-evrgula. No
h nenhuma restrio no que diz respeito forma ou tipo de instrues SQL que
compem o roteiro, enquanto eles so sintaticamente vlida de acordo com a
RDBMS subjacente a conexo especificada. Etapas do tipo Executar SQL
so especialmente teis para a execuo de comandos DDL.
Figura 10-2 mostra como a etapa foi configurado para a amostra de trans-
o mostrado na Figura 10-1. Como voc pode ver na figura, o script contm
duas demonstraes: uma DROP TABLE declarao a cair na tabela em caso de ele j
e existe uma CREATE TABLE declarao para definir a tabela. A lgica por trs
266 Parte III Integrao de dados e ETL
soltando e depois de (re) criar a tabela que isso torna mais fcil adicionar ou
remover colunas.
Figura 10-2: Configurando o SQL Execute passo para executar mltiplas instrues SQL
A etapa de execuo de script SQL um pouco mais de um pato estranho quando
comparado a outros
tipos de etapas de transformao, porque no particularmente orientadas a dados. Por
padro, as etapas deste tipo executar apenas uma vez antes de qualquer das outras etapas
so executados.
NOTA Ao executar uma transformao, todos os passos so primeiramente inicializados. Isso chamado
o inicializao fase. As aces preparatrias, como a abertura de arquivos e banco de dados
conexes, mas tambm substituindo as variveis (ver Captulo 11 para mais informaes
sobre as variveis) e preparar declaraes de banco de dados geralmente so executadas na
inicializao fase. Aps todos os passos foram iniciados, as etapas entre a
fase de execuo e iniciar linhas de processamento.
Por padro, o Executar etapa SQL executa instrues SQL apenas uma vez no
inicializao fase. Por esta razo, a transformao de exemplo mostrado na
Figura 10-1 no precisa de nenhum hop para conect-lo ao restante da
transformao: o SQL ser executado antes de outras etapas do
transformao iniciar linhas de processamento de qualquer maneira. possvel conduzir a execuo do
SQL
usando dados de um fluxo de entrada. Um cenrio como este discutido em detalhe mais tarde
neste captulo na seo''pesquisa''Staging Valores.
Observe que as etapas entrar na fase de inicializao de forma assncrona, e no particular
da ordem. Isso significa que voc deve garantir que o trabalho feito na inicializao
fase de um passo em particular no dependem de concluda a fase de inicializao
Captulo 10 Projeto Pentaho Data Integration Solutions 267
de outro passo. Por exemplo, o DROP e CREATE declaraes no Criar
etapa dim_date na Figura 10-1 no pode ser executado separadamente cada um no seu prprio
etapas de execuo do SQL, pois no haveria garantia de que o DROP declarao
seria executado antes do CREATE declarao.
Falta de data e gerar linhas com a data inicial: O Gere
Passo Linhas
Na Figura 10-1, faltando as etapas de data e gerar linhas com data inicial so
da Gerar linhas do tipo degrau. Esse tipo encontrado na categoria de entrada e seus
cone aparece como um martelo ao lado de uma escada (ver a linha de entrada da figura 10-
1).
Sem surpresa, o objetivo desta etapa gerar linhas. As etapas deste tipo de
so normalmente configurados definindo um valor para a propriedade para especificar o limite
nmero de linhas para gerar. Opcionalmente, um nmero de campos com constante
Os valores podem ser especificados. Figura 10-3 mostra como as linhas com Gere inicial
Data passo da transformao mostrado na Figura 10-1 foi configurado.
Figura 10-3: Configurando o passo Gerar linhas para obter 10 anos de valor dos dias
Para as linhas com a etapa Gerar data inicial, que especificou um limite de 3660
(Que um pouco mais de 10 anos no valor de dias). Na grade de Campos, que
especificado um nico campo chamado initial_date, Que serve como a data de incio
para a dimenso de data. Observe que especificamos o Data como tipo, o valor
20000101E formatar o aaaammdd. O valor representa a data do calendrio
de 1 de janeiro de 2000. O tipo e formato so necessrias para explicar a Spoon
como interpretar esta data. Voc vai encontrar muitos outros exemplos de data
formatao na subseo''a etapa Selecionar Valores''mais tarde nesta seo.
Para a etapa de Data Desaparecidas, que especificou um limite de 1 (um). Em vez de
especificar apenas um campo para a data inicial, ns adicionamos campos que representam
um
268 Parte III Integrao de dados e ETL
data em falta ou inaplicvel. Para o date_value e date_key domnios, foi utilizado
os valores 0001-01-01 e 10101 , respectivamente. Quando voc carrega as suas tabelas de
verdade,
Voc deve se lembrar de usar essa chave para qualquer NULL datas. Para os campos de texto
desta data especial utilizou-se o rtulo No Aplicvel,N / AOu NA dependendo
sobre o espao disponvel.
DICA Digitar todos os campos para a etapa de Data ausentes podem ser um pouco entediante. Voc
pode
poupar tempo e esforo por criar a primeira parte genrica do
transformao e, em seguida, acrescentando os passos para inserir essas linhas especiais.
Depois de ter definido o destino final de carga dim_date etapa, voc pode clicar com o boto direito sobre
ele
e escolha a opo Mostrar campos de entrada no menu de contexto. Uma grade aparece
com os campos de fluxo de entrada. Clique na primeira linha da grelha para selecion-lo e, em seguida
selecionar todas as linhas usando as teclas Ctrl + A atalho de teclado. Em seguida, copiar a grade para o
clipboard usando Ctrl + C. Voc pode ento colar que na grade de Campos do desejado
Gerar etapa linhas usando Ctrl + V.
Este mtodo, pelo menos, ajudar a preencher os nomes de campo e tipos. Voc pode precisar
para remover alguns dados colados das colunas restantes e ainda precisa
digite os valores campo. No entanto, ele geralmente lhe poupar algum tempo e esforo, e
mais importante, evitar erros, porque este mtodo garante que o layout de registro
o fluxo de sada ir coincidir com a etapa de destino.
Depois de configurar a etapa Gerar linhas, voc pode clicar no boto Preview
Para ver um exemplo das linhas que sero gerados na visualizao Examine
dados de dilogo (veja a Figura 10-3).
Dias Seqncia: A etapa Seqncia Adicionar
Os Dias etapa seqncia na Figura 10-1 de D seqncia tipo. Este tipo de
do passo pode ser encontrado na categoria Transform. As etapas deste tipo de trabalho por
adio de um campo inteiro de novo incremento para as linhas de fluxo de entrada. Sua
cone aparece como um crculo nmero 2 (ver Figura 10-1).
Na transformao da amostra, o objetivo deste campo para gerar os dados
para calcular uma seqncia de datas no calendrio. (O clculo real discutido
na prxima subseo.) A etapa seqncia Adicione pode ser configurado para trabalhar em
qualquer uma das seguintes formas:
Para desenhar o prximo valor a partir de uma seqncia de base de dados. Alguns
RDBMSs (tais
como Oracle e PostgreSQL) oferecem um esquema seqncia especial de objeto que
projetado especialmente para proporcionar substituto valores-chave, que pode ser
utilizados pela etapa de Seqncia Adicionar.
Para incrementar um contador mantido pelo mecanismo de transformao.
Nosso uso do tipo de seqncia Adicionar os dias passo seqncia, usa o ltimo
opo. A configurao da etapa de seqncias de dias mostrado na Figura 10-4.
Captulo 10 Projeto Pentaho Data Integration Solutions 269
Figura 10-4: Configurao da etapa de seqncias de dias
Em Nome do valor da propriedade, o nome day_sequence fornecido para o
campo que ir conter o nmero de seqncia. O Uso contador para gerar o
caixa sequencial selecionado para usar um contador mantido pela trans-
o do motor. Na transformao da amostra, a propriedade nome opcional Counter
deixado em branco. Se necessrio, poder ser preenchido para forar a seqncia de
mltiplos Adicionar
passos para tirar um e mesmo balco. Para o incio de valor, o valor
0(Zero) foi especificado explicitamente (em vez do padro de um) para assegurar que
a data inicial especificada na etapa Linhas Gere realmente a data de incio
para a dimenso de data.
Calcular e formatar datas: a Etapa Calculadora
Na Figura 10-1, a calcular e formatar passo Datas usa um Calculadora passo para
gerar todas as representaes data para carregar a dimenso de data. A calculadora
passo encontrada na categoria de Transformao. No novidade que o cone representa
uma calculadora de mo.
A etapa Calculator permite que voc escolha a partir de um nmero de pr-
clculos. Dependendo do tipo de clculo, que utiliza at trs campos
como argumentos, gerando um novo campo para o resultado, que adicionado
sada de fluxo. Os campos de argumento pode ser retirado do fluxo de entrada, mas
Tambm a partir dos campos de sada gerado na etapa calculadora mesmo, permitindo-lhe
a pilha de clculos em cima uns dos outros.
Na transformao da amostra, o passo da calculadora est configurado como mostra a
Figura 10-5.
Na grade de Campos, uma srie de expresses so criadas para calcular vrias
representaes da data do calendrio.
270 Parte III Integrao de dados e ETL
Figura 10-5: Usando a calculadora para calcular passo dias
Clculo # 1 usa a expresso Dias Data A + B para adicionar o valor do
day_sequence campo gerado pela etapa de Seqncia Adicionar ao initial_date
campo que foi especificado na etapa Linhas Gerar. Isso gera um novo campo
chamada data, Que representa a data do calendrio. Este data campo usado
pelos clculos a seguir para gerar representaes data alternativa. Para
integralidade, a Listagem 10-3 mostra como este clculo foi configurado.
Listagem 10-3: Adicionando a seqncia at a data inicial para a obteno dias
Nova fieldCalculationField aField BTYPE
-------------------------------------------------- --------------------
Data date_value A + B Daysinitial_dateday_sequenceDate
Clculos # 2 a # 15 na verdade, no fazer um clculo adequado.
Pelo contrrio, estes usam o Crie uma cpia de um campo de expresso para duplicar a
date_value campo que o resultado de clculo # 1 e aplicar um determinado
formato para convert-lo para um valor String. Isso gera uma srie de alternativas
Captulo 10 Projeto Pentaho Data Integration Solutions 271
representaes da data do calendrio, aos quais so atribudos um nome de acordo com
o nome da coluna de destino. A seqncia de formato celebrado a mscara de converso
coluna da grade de Campos. Para converses de data para string, a mscara deve ser
especificada usando a notao tambm utilizado para o java.text.SimpleDateFormat
Java classe. A configurao desses campos mostrada em detalhes na Lista 10-4.
Listagem 10-4: Usando seqncias de formato para formatar datas
Nova fieldCalculationFld mscara AConversion
-------------------------------------------------- ----------------------
date_keyCreate uma cpia de um campo date_value aaaammdd
date_shortCreate uma cpia de um campo date_value aa-mm-dd
date_mediumCreate uma cpia de um campo date_value MMM yyyy d,
date_longCreate uma cpia de um campo date_value MMMM yyyy d,
date_fullCreate uma cpia de um campo date_value EEEE, MMMM d, yyyy G
day_in_yearCreate uma cpia de um campo date_value D
day_abbreviationCreate uma cpia de um campo de EEE date_value
day_nameCreate uma cpia de um campo de EEEE date_value
week_in_yearCreate uma cpia de um campo w date_value
week_in_monthCreate uma cpia de um campo date_value W
month_abbreviation Criar uma cpia de um campo de date_value MMM
month_nameCreate uma cpia de um campo date_value MMMM
year2Create uma cpia de um campo aa date_value
year4Create uma cpia de um campo aaaa date_value
DICA Para obter mais informaes sobre a notao das mscaras de formato de data, d uma olhada
http://java.sun.com/j2se/1.5.0/docs/api/java/text
/ SimpleDateFormat.html.
Clculo usa o # 16 Dia da semana da data de um expresso para calcular
um valor inteiro correspondente ao dia til para gerar os valores para
o day_in_week coluna da tabela de dimenso de data. Para garantir o resultado
est formatado como um nmero inteiro, definir a mscara de converso para o smbolo hash
(#). No faria sentido calcular isso simplesmente aplicando uma adequada
seqncia de formato, tal como fizemos para expresses # 2 a # 16. Infelizmente,
a seqncia padro de formatao apropriadas no parece existir, razo pela qual
ns usamos um clculo para fazer o trabalho.
Clculo # 17 calcula o month_number de campo, utilizando a expresso
Ms da data de um sobre o data de campo. Embora esse valor poderia ter sido
obtida atravs da converso para o tipo String e aplicando a seqncia de formato M,
o Ms da data de um expresso recupera o valor como uma expresso inteira,
o que nos permite us-lo para calcular o nmero trimestre em clculos # 24
e # 25. Seria bom para calcular trimestres, tambm, usando uma seqncia de formato, mas
assim como o day_in_week nmero, este no suportado.
Clculo # 18 calcula o day_in_month campo utilizando a expresso Dia
do ms da data de um. Como o clculo de n 17, que poderamos ter feito isso, basta
Convertendo para string e aplicando o dseqncia de formato, mas usando este
expresso, obtemos o valor como um inteiro, o que nos permite (indiretamente)
272 Parte III Integrao de dados e ETL
descobrir se o dia atual passa a ser o ltimo dia do ms em
clculos # 26 a # 28.
A configurao dos clculos de # 16, # 17 e # 18 mostrado na Lista 10-5.
Listagem 10-5: Obtendo o dia da semana eo nmero de meses usando predefinidos
clculos
Nova fieldCalculationField mscara ATypeConversion
-------------------------------------------------- --------------------
day_in_weekDay da semana da data Adate_value Integer #
month_number ms da data Adate_value Integer #
Dia day_in_month do ms da data date_value A Integer #
Os clculos''''# 19 a # 23 use o Defina o campo de valor constante
Aexpresso para definir uma srie de valores constantes que so utilizadas no final
alguns clculos. Porque ns s precisamos temporariamente estes clculos, vamos definir
o Remover propriedade para Y, O que impede os campos resultado destes clculos
a ser adicionado ao fluxo de sada. Voc pode rever a configurao destes
clculos na Lista 10-6.
Listagem 10-6: Definindo constantes na etapa Calculadora
Nova fieldCalculationFld ATypeRmv
-------------------------------------------------- ---------------------------
temp_quarter_prefixSet campo para o valor constante AQStringY
campo Definir temp_months_in_quarter a constante valor A3Integer Y
temp_add_monthSet campo para o valor constante A2Integer Y
campo de valor constante temp_dashSet A-Barbantinho
Clculos # 24 e # 25 juntos compem o clculo do quar-
Nmero ter. Clculo # 25 faz o clculo real, realizando um
Integer diviso do temp_month_number por temp_months_in_quarter. A
temp_month_number de campo foi obtido pela soma dos dois constante
month_number. Assim, em janeiro deste ano, ir avaliar a (1 + 2) / 3 = 1, Em
Fevereiro deste ser (2 +2) / 3 = 1E assim por diante at abril de onde obtemos
(4 +2) / 3 = 2 e assim por diante. Note que no h clculo em separado predefinidos
para a diviso de nmero inteiro. diviso de nmero inteiro realizada automatica-
mente quando se aplica o A / B expresso de argumentos inteiros e configurao
o tipo de resultado tambm inteiro. A configurao dos clculos de # 24 e # 25
mostrado em detalhe na Lista 10-7.
Listagem de 07/10: Calculando o nmero trimestre usando diviso inteira
fieldCalculation Novo Campo aField B
-------------------------------------------------- --------------------
temp_month_number A + Bmonth_numbertemp_add_month
quarter_numberA / Btemp_month_numbertemp_months_in_quarter
Captulo 10 Projeto Pentaho Data Integration Solutions 273
Clculos # 26 a # 28 faz um clculo que pode ser usado para
ver se o valor atual da data campo passa a ser o ltimo dia do
ms. Isto feito subtraindo o valor do dia no ms do
data atual daquele do dia seguinte. Se os dois dias consecutivos
Acontece que no mesmo ms, a diferena ser de 1 (um). Se no dia seguinte
acontece de mentir no prximo ms, o resultado ser um nmero negativo
entre 27 (28/01) e 30 (1-31). Clculo # 26 calcula o dia seguinte
adicionando a uma constante para o valor da data de campo. No clculo # 27,
o dia no ms de que no dia seguinte calculado e, finalmente, no clculo
# 28, a diferena calculada. Os resultados dos clculos # 26 e # 27 so
intermedirios e so descartados, especificando Remover Y =. O resultado final
mantido na diff_days_curr_day_next_day campo, que ser utilizado fora
este passo para calcular o valor da coluna atual. A configurao desses
clculos mostrado em detalhe na Lista 10-8.
Listagem de 08/10: Calculando o ltimo dia do ms
Nova fieldCalculationField aField B
-------------------------------------------------- --------------------
next_dayDate A + B Daysdate_valueadd_day
next_day_in_monthDay do ms da data Anext_day
diff_daysA - B next_day_in_monthday_in_month
O # 29 # 33 clculos por meio do uso A + B expresso para concatenar
algumas das seqncias previamente calculado para obter representaes para trimestre
_name,year_quarter,year_month_numberE year_month_abbreviation. Como
com a diviso inteira, no h nenhum operador de concatenao de string separadas, mas
aplicao da expresso A + B aos campos do tipo de dados String tem exactamente
nesse sentido. Os detalhes dos clculos finais, # 23 e # 29 so mostrados na
Listagem 10-9.
Listagem de 09/10: Clculo do trimestre e concatenando strings
Nova fieldCalc.Field aField B
-------------------------------------------------- -----------------------
quarter_nameA + Btemp_quarter_prefixquarter_number
temp_year_stringA + Byear4temp_dash
year_quarterA + Btemp_year_stringquarter_name
year_month_numberA + Btemp_year_stringmonth_number
year_month_abbreviationA + Btemp_year_stringmonth_number
A Etapa Mapper Valor
Os passos seguintes so todas baseadas no Valor Mapper tipo de etapa:
is_first_day_in_month
is_last_day_in_month
274 Parte III Integrao de dados e ETL
is_first_day_in_week
is_last_day_in_week
is_weekend
O valor do passo Mapper pode ser encontrado na categoria de Transformao. Sua
cone mostra uma seta conectando as letras A e B (veja a Figura 10-1).
O valor traduz etapa Mapper valores de um campo nos fluxos de entrada
com os valores especificados em uma lista. O valor da traduo pode ser usado para
substituir o valor original do campo no fluxo de entrada ou gravados em um
novo campo, que adicionado ao fluxo de entrada. Opcionalmente, um valor padro pode
ser especificado em nenhum caso de os valores na lista corresponde ao valor da
fluxo de entrada. Um exemplo muito simples mostrado na Figura 10-6, que retrata
a configurao do passo marcado is_first_day_in_month.
Figura 10-6: Mapeamento de dados inteiro para rtulos de texto com o passo Mapper Valor
Conforme mostrado na Figura 10-6, esta etapa levar o valor do day_in_month
campo do fluxo de entrada e cria um novo is_first_day_in_month campo
para manter os valores traduzidos. Existe apenas um valor para mapa: Somente quando o
day_in_month campo acontece a ter o valor 1 (um) caso a string Sim
ser devolvido. Especificando o valor No no padro sobre os no-correspondncia
propriedade, o valor No ser devolvido em qualquer outro caso.
A configurao do is_first_day_in_week e is_last_day_in_week
medidas inteiramente anlogo ao da etapa is_first_day_in_month. Ambos
Essas etapas usam o day_in_week campo do fluxo de entrada e retornar o
valor Sim no caso de um valor especfico (1 e 7 para is_first_day_in_week e
is_last_day_in_week respectivamente), casado, e No em qualquer outro caso.
Novamente, as duas etapas escrever o valor para um novo campo do fluxo de sada
(is_first_day_in_week e is_last_day_in_week respectivamente).
A configurao da etapa is_weekend quase exatamente o mesmo. Este
etapa converte os valores da day_in_week campo do fluxo de entrada
para uma nova is_weekend campo no fluxo de sada, mas desta vez, dois valores so
Captulo 10 Projeto Pentaho Data Integration Solutions 275
mapeada: ambos os valores 1 e 7 so mapeados para Sim, E novamente No retornado por
padro.
dim_date Carga: A etapa de sada de mesa
O passo final na transformao mostrada na Figura 10-1 rotulado de carga
dim_date e com base no Sada de mesa etapa. Esta etapa de obras, inserindo o
registros do fluxo de entrada em uma tabela do banco de dados. Voc pode encontrar a
Tabela
Sada na categoria de sada. Seu cone uma seta apontando para um tambor verde
cilindro (Figura 10-1).
Na etapa dim_date carga, a etapa de sada da tabela usada para inserir os dados
criados nesta transformao em dim_date tabela que foi criada em
O primeiro passo da transformao, a etapa de execuo do SQL. Voc j
encontrou a etapa de sada de Mesa em nosso banco de dados de transformao walk-
atravs do captulo anterior. No, no incomoda a configurao do
mapeamento entre os campos do fluxo de entrada e as colunas da tabela
porque os campos no fluxo de entrada j foi combinado as colunas da tabela. Em
esta transformao, as coisas so um pouco diferentes. O fluxo de entrada contm ainda uma
alguns campos que no correspondem a qualquer colunas da tabela, como initial_date,
day_sequenceE diff_days_curr_day_next_day. Outra coisa que o
data campo do fluxo de entrada deve ser mapeado para o date_value coluna
da dim_date tabela. Figura 10-7 mostra parte da configurao.
Figura 10-7: Mapeamento de colunas especficas do fluxo de entrada nas colunas da tabela
A fim de mapear campos para colunas, primeiro voc tem que selecionar a especificar
campos de banco de dados caixa de seleo. Voc pode ento ativar o banco de dados ficha
de campos
276 Parte III Integrao de dados e ETL
e use o Get campos de pgina para preencher a grade com todos os campos presentes no
fluxo de entrada. Voc pode selecionar e remover os campos que voc no precisa, e
escreva o nome da coluna correspondente na coluna de campo Tabela, conforme necessrio.
Caractersticas Dimension Data mais avanada
Agora que voc aprendeu a preencher uma dimenso de data simples, voc pode estender
o projeto e adicionar mais passos para personalizar a dimenso de data para o seu
gosto. O design dimenso de data a partir do captulo 8 menciona um par de
possveis melhorias, tais como ISO incluindo o ano e os nmeros da semana especial
campos de data, e clculos para facilitar a comparao entre o ano em curso com o
ano anterior, e com suporte a locales e lnguas diferentes.
ISO semana e ano
A etapa Calculator (mostrado na Figura 10-5) fornece o Semana de ISO8601
Uma data e ISO8601 Ano da Data A expresses. Usando esses, trivial
estender a tabela de dimenso de data com a norma ISO semana e atributos ano.
Passado e atual Indicadores Ano
Manter os indicadores ano passado e atual discutido no Captulo 8
implica uma actualizao regular a tabela de dimenso de data. Alternativamente, voc pode
integrar os clculos necessrios extra diretamente na transformao
que gera as linhas de dimenso de data e simplesmente truncar e em seguida atualize
a tabela de dimenso de data em sua totalidade. A atualizao da tabela faz sentido se
data de sua dimenso contm informao que difcil de gerar (como
feriados). Neste caso, voc iria construir uma transformao separada para fazer o
atualizaes. Truncado e dimenso atualizar a data na sua totalidade mais
simples, porque voc s precisa manter uma transformao.
Calculando os valores dos indicadores envolve algumas etapas extra. Em primeiro lugar,
voc precisa de um passo para introduzir a data atual para que voc possa comparar com o
datas geradas pela transformao. A maneira mais fcil de fazer isso por
adicionar um Get System Info etapa. Esta etapa permite definir novos campos. Ele oferece
uma
caixa de listagem com uma srie de itens de informao diferentes do sistema, incluindo o
atual
data. Neste caso especfico, o item que voc precisa chamado sistema de data (fixa),
que ir preencher o campo com o sistema de data / hora como determinado na etapa de
inicializao fase.
Usando uma calculadora passo, voc pode dissecar a data do sistema em partes, como
data
ano, ms, semana e dia para que voc possa compar-los com os correspondentes
campos na tabela de dimenso de data. Da mesma forma, voc pode usar a calculadora para
a etapa
calcular o ano anterior, ms e semana.
Para, finalmente, calcular os valores para os campos de bandeira pode utilizar a frmula
etapa, encontradas na categoria scripts. A etapa da Frmula permite que voc use frmulas
com uma sintaxe semelhante utilizada em programas de planilhas como o Microsoft
Captulo 10 Projeto Pentaho Data Integration Solutions 277
Excel ou do OpenOffice.org Calc. Por exemplo, para calcular o valor do
current_year coluna, voc deve criar um novo campo na etapa da Frmula chamado
current_year e especificar uma frmula como esta:
IF ([ano4] = [current_year_number], 1, 0)
Observe que a frmula no precedido por um sinal de igual, como seria o caso
em programas de planilhas. Neste exemplo, ano4 o ano4 coluna do
dim_date mesa, e current_year_number a parte do ano da data do sistema
tal como calculado pela etapa anterior calculadora. Observe que voc precisa para incluir
campos entre colchetes. IF () uma das funes internas fornecidas pela
Frmula etapa. Esta funo recebe trs argumentos: expresso de um primeiro Boolean
(No nosso caso, a comparao ano), em segundo lugar, o valor a retornar se o primeiro
argumento verdadeiro e, finalmente, o valor a retornar se o primeiro argumento falso.
Note-se que os argumentos da funo so separados com ponto e vrgula.
Usando essa tcnica, voc pode adicionar quantos campos quiser para calcular o
bandeiras.
Internacionalizao e suporte de locale
Java oferece suporte embutido localidade. Porque PDI programado em Java,
relativamente fcil de tocar para o sistema local de Java e us-lo para formatar datas
e os nmeros de uma maneira dependente de localidade. Ns descrevemos o mtodo em
poucas palavras.
IDP oferece a modificao Javascript tipo de etapa de Valor na categoria scripts.
Usando este tipo de etapa, voc pode usar o JavaScript para datas processo gerado
por sua transformao. A modificao Javascript passo valor baseado na
o Mozilla Rhino motor de JavaScript, que permite criar uma instncia e
acessar objetos Java. Desta forma, voc pode criar um java.util.Locale
objeto para a localidade desejada e usar essa data para o formato usando o
java.text.SimpleDateFormat.
O procedimento descrito em detalhes no http://rpbouman.blogspot.com/
2007/04/kettle-tip-using-java-locales-for-date.html.
Carregando uma dimenso de tempo simples
A dimenso do tempo aparece no cliente e esquemas Pedidos de estrelas
o World Class data warehouse Filmes. Assim como a dimenso de data, a maioria
dos dados da dimenso de tempo podem ser gerados, seja com um banco de dados
procedimento armazenado ou um Pentaho Data Integration transformao. Ns j
discutida a desvantagem de banco de dados usando procedimentos armazenados para este
tipo
de trabalho. Por esta razo, ns preferimos fazer isso usando uma transformao PDI.
Uma transformao simples para carregar o dim_time tabela na wcm_dwh banco de dados
mostrado na Figura 10-8.
278 Parte III Integrao de dados e ETL
Figura 10-8: Uma transformao simples para carregar a dimenso de tempo
Aqui est um resumo dos trabalhos dessa transformao:
1. Criar dim_time: Este um passo executar script SQL para criar o alvo
tabela de dimenso de tempo.
2. Gerar 24 Horas e gerar 60 Minutos: Estes so os dois Gerar
Linhas etapas que criam as linhas que compem as horas e minutos de
a dimenso de tempo. O Limite da Gerar etapa Horas 24 est definido para 24
porque h 24 horas por dia. Da mesma forma, o limite do Gere
60 Minutos passo definido como 60, porque h cerca de 60 minutos por hora.
3. Seqncia horas (0 .. 24) e Minuto Seqncia (0 .. 60): Estes so os dois Adicionar
Seqncia de passos, que adicionam um campo inteiro para incrementar as linhas de
entrada
para representar as horas e minutos, respectivamente. Em ambos os casos, o incio
no valor for definido para 0 (zero) e o incremento deixado para o padro de 1 (um).
4. Combine: Esta uma juno de linhas (produto cartesiano) etapa. Esta etapa rene
as linhas de hora e minuto linhas de sua entrada crregos.
5. Calcule o tempo: Nesta etapa, calculadora, a hora / minuto so combinaes
analisado em um valor Date, que ento convertido em um valor String usando
uma seqncia de formato de reter apenas parte do tempo.
6. dim_time Carga: Este um passo de sada da tabela para inserir as linhas geradas
no dim_time tabela de destino.
Ao olhar para a Figura 10-8, voc v que, exceto para a etapa Join Linhas
esta transformao usa os mesmos elementos bsicos como a transformao de carga
a dimenso de data mostrado na Figura 10-1.
Em comparao com a transformao para carregar a dimenso de data, no h
algo radicalmente diferente sobre a forma como esta transformao gera a sua
Captulo 10 Projeto Pentaho Data Integration Solutions 279
de dados. A transformao para carregar a dimenso de data foi totalmente linear,
e os dias em que conduziu a transformao foi obtida pela adio de
dias para a data inicial. Nesta transformao, as linhas Gerar e Sequncia
etapas so independentes uma da outra. O tempo real do dia obtida pela
combinando os dados dos dois crregos e, em seguida, analisar uma data fora do
combinados valor / hora, minuto. Esta abordagem seria menos prtico para carregar
uma dimenso de data: embora voc pode configurar fluxos separados para gerar anos
e meses, isso no to fcil para a parte do dia a contar da data porque o nmero
de dias depende do ms e se o ano um ano bissexto.
Combine: a etapa Join linhas (produto cartesiano)
A etapa Combine na Figura 10-8 de Junte-se linhas (produto cartesiano) tipo.
Isto encontrado na categoria Associaes. Seu cone, visvel na Figura 10-8, um conjunto
de
elos da cadeia.
A associao de linhas (produto cartesiano) passo funcionalmente anlogo ao
INNER JOIN operao em SQL, a diferena que ela opera no registro
fluxos de entrada e no as tabelas do banco.
NOTA Embora a associao de linhas (produto cartesiano) passo funcionalmente anlogo
para um banco de operao de juno, deve-se muito cuidado para no consider-lo como um
substituio. Como regra geral, voc no deve usar essa etapa para evitar a escrita
SQL, em vez disso, voc deve considerar usar este passo no caso de voc no pode usar SQL. Para
exemplo, quando voc quer se juntar as linhas de duas tabelas que esto disponveis no
a mesma conexo, voc provavelmente deve usar um passo de entrada de tabela e especificar o
SQL adequadas para resolver o problema.
Um caso de uso tpico para a juno de linhas (produto cartesiano) etapa quando voc quiser
criar um produto cartesiano de conjuntos de dados entre servidores de banco de dados ou fontes de
dados.
Embora voc possa configurar uma condio de juno para a juno de linhas (produto cartesiano)
etapa, voc deve considerar usar o Merge Join passo no caso de voc querer usar
complexos tipos de juno e / ou condies.
A etapa de obras, combinando os registros de todos os seus fluxos de entrada em um
registro de novo composto, que enviado para o fluxo de sada. O homem-particular
ner na qual os registros so combinados conhecido como o produto cartesiano. Para
dois fluxos de entrada, o resultado criado por sorteio a cada um dos registros provenientes
a partir do Horrio de Seqncia (0 .. 23) a etapa com todos os registros vindos de
Seqncia hora (0 .. 60) passo. O fluxo de sada resultante tem tanto uma hora
e um minuto campo, e contm 24 60 (= 1440) linhas, que juntas formam
acima de toda hora / combinaes possveis minutos, a partir das 00:00 atravs 23:59.
Para este uso particular da etapa Join linhas (produto cartesiano), apenas um
pequena quantidade de configurao necessria, mas para a integralidade, a configu-
rao de dilogo mostrada na Figura 10-9.
280 Parte III Integrao de dados e ETL
Figura 10-9: A janela de configurao da etapa Join linhas (produto cartesiano)
A associao de linhas (produto cartesiano) passo sempre pressupe que uma entrada
fluxo a''corrente''principal. Voc pode especificar esta etapa na etapa principal para ler
da propriedade. Este fluxo de unidades de''''da etapa: a etapa consome um registro
da corrente principal, e em seguida, cria registros combinao com cada um dos
registros da entrada de outras correntes. Quando todas as combinaes so criadas, a
procede passo com o prximo registro da corrente principal.
Para melhorar o desempenho, a juno de linhas (produto cartesiano) etapa usa
na memria cache para todos os fluxos de entrada, exceto o fluxo de entrada principal. A
tamanho do cache fluxo de entrada pode ser especificada definindo o nmero de
linhas para cache no mx. cache propriedade de tamanho. Se o nmero de linhas em uma
fluxo de entrada excede o tamanho de seu cache, as linhas so gravadas em um temporrio
arquivo. O padro para o mx. propriedade tamanho do cache de 500, o que excede o
nmero de registros a partir de qualquer fluxo de entrada em nossa transformao, para que
possamos
estar confiante de nenhum arquivo temporrio sero necessrios.
NOTA Os registros do fluxo principal no precisa ser armazenado em cache porque o
Junte-se linhas (produto cartesiano) passo sempre olha exatamente um registro de que
stream em qualquer momento. Por esta razo, voc sempre deve especificar o fluxo de
que contm a maioria das linhas como a etapa principal para ler. Em nosso
transformao, vamos definir o passo principal para ler a seqncia de minuto (0 .. 60)
passo nesse sentido.
Se necessrio, voc pode especificar em qual diretrio os arquivos temporrios devem ser
armazenadas, definindo a propriedade de diretrio Temp. O padro para essa propriedade
%%%% Java.io.tmpdir, O que denota o valor de uma varivel interna referente
com o padro de diretrio de arquivos temporrios Java. (Para mais informaes sobre
Captulo 10 Projeto Pentaho Data Integration Solutions 281
variveis, consulte a seo Usando variveis''''no captulo 11). Se voc gosta, voc pode
tambm especificar o prefixo para os nomes dos arquivos temporrios, o que til
principalmente para
fins de depurao.
Embora seja possvel especificar uma condio de juno para a juno de linhas
(cartesiana
etapa do produto), recomendvel usar um Merge Join etapa vez que esta permite
melhor controle sobre a condio de juno e tipo de associao.
Calcular Tempo: Mais uma vez, a etapa Calculadora
Na transformao mostrado na Figura 10-8, a calcular passo de tempo baseada
na etapa de calculadora. Ns j discutimos este tipo de passo extensivamente em
Calcular o ttulo''e formatar datas: a Etapa calculadora''no incio
neste captulo. Para completar, vamos mostrar a configurao especfica utilizada para
calcular o tempo na Figura 10-10.
Figura 10-10: Usando o passo Calculadora para calcular a hora do dia
Clculo # 4 o mais importante, como ele concatena represen-corda
taes do hora e minuto campos e converte o resultado para um campo do
Data tipo usando o formato H: m. Ao reformatar novamente, o time_key e
time_value campos so gerados, o que corresponde diretamente ao time_key
e time_value colunas na dim_time tabela.
Carregando a dimenso Demografia
A World Class Movie Database usa uma demografia mini-dimenso para
gesto da dimenso grande cliente. A transformao para carregar o
dimenso que a demografia mostrado na Figura 10-11.
282 Parte III Integrao de dados e ETL
Figura 10-11: Uma transformao para carregar a dimenso da demografia
Aqui est um resumo do que est acontecendo nessa transformao:
1. Criar dim_demography: Esta etapa Execute SQL cria o real escurecer
_demography tabela de dimenso na wcm_dwh banco de dados.
2. Criar stage_demography: Esta etapa Execute SQL cria uma estgio
_demography tabela na wcm_staging banco de dados. Ns descrevemos o efeito
desta tabela em detalhe na prxima seo.
3. Sexo e Gnero sucesso de idade, e Seqncia, idade e renda e
Seqncia de Renda: Os pares de gerar linhas e etapas Adicionar Sequncia
gerar os dados em bruto que faz os possveis valores para sexo, idade
grupo e grupo de renda, respectivamente.
4. Sexo no rtulo: Esta etapa mapper Valor converte os valores da
Sexo passo em seqncia Masculino e Feminino rtulos, que devem ser armazenados
na gnero coluna das tabelas de destino.
5. Faixa Etria e Grupo de Renda: Essas etapas Calculadora gerar o
adequados os valores limites para a idade e grupo de renda, e tambm
criar etiquetas bem legvel para identificar o grupo.
Captulo 10 Projeto Pentaho Data Integration Solutions 283
6. Combine Todos: Assim como fizemos durante o carregamento do dim_time dimenso,
usamos
Junte-se a um passo de linhas (produto cartesiano) para fazer todas as combinaes
possveis
os registros de todos os fluxos de entrada. 7. Demografia seqncia de teclas: Esta etapa Adicionar Seqncia usado para gerar
valores-chave que sero usadas para identificar as linhas da dim_demography
tabela.
8. Demografia Desconhecido: Esta etapa Gerar linhas cria uma nica linha
que pode ser usado sempre que a linha demografia adequada no pode ser
encontrado.
9. stage_demography carga e dim_demography carga: Estes Out Mesa
colocar os passos executados em paralelo para carregar os dados demogrficos a partir
da entrada
fluxos de entrada da pea Demografia Seqncia e Desconhecido
Demografia etapas.
Compreender o stage_demography e dim_demography
Tabelas
As transformaes que voc viu at agora, sempre usou uma nica tabela de destino. Este
atos de transformao em duas tabelas:
A dim_demography tabela na wcm_dwh banco de dados, que o real
demografia tabela de dimenso. Esta tabela criado no Create-dim_de
etapa mamografia e carregado na etapa dim_demography Load.
A stage_demography tabela na wcm_staging banco de dados, que serve
como uma tabela de pesquisa para procurar a chave da tabela de dimenso. Essa tabela
criado na etapa stage_demography Criar e carregado na carga
stage_demography etapa.
O motivo para exigir duas tabelas, esperamos tornar clara quando
olhar para a definio do dim_demography Dimenso da tabela. A CREATE TABLE
declarao para a dim_demography tabela mostrado na Listagem 1-10. Na listagem,
voc v que, alm da demography_key, Apenas os rtulos legveis
para o gnero,age_group e income_group so armazenados no dim_demography
tabela.
Listagem 1-10: A instruo CREATE TABLE da tabela de dimenso dim_demography
CREATE TABLE dim_demography (
demography_key SMALLINTNOT
age_groupVARCHAR (10) no
genderVARCHAR (10) no
income_groupVARCHAR (20) no
PRIMARY KEY (demography_key)
);
NULL,
NULL,
NULL,
NULL,
284 Parte III Integrao de dados e ETL
Agora, suponha que voc queira carregar clientes para o dim_customer ou
fact_customer tabelas. Em ambos os casos, voc precisa para armazenar o valor apropriado
para o demography_key como parte da linha do cliente. Mas supondo que voc tem
idade do cliente, renda e gnero, um grande desafio para usar esses
dados para a pesquisa dim_demography tabela.
Para superar nossa incapacidade de utilizar o dim_demography tabela diretamente para
procurar o demography_key, Introduzimos o stage_demography tabela na
wcm_staging banco de dados. A stage_demography tabela armazena os demography_key
e gnero rtulo, bem como os valores inteiros reais que formam o
limites das faixas etrias e de renda. A CREATE TABLE declarao para a
stage_demography tabela mostrado na Listagem 10-11.
Listagem 10-11: A instruo CREATE TABLE da tabela de dimenso dim_demography
CREATE TABLE stage_demography (
demography_keySMALLINTNOT NULL,
genderVARCHAR (10) NOT NULL,
min_age_groupSMALLINTNOT NULL,
max_age_groupSMALLINTNOT NULL,
min_income_group INTEGERNOT NULL,
max_income_group INTEGERNOT NULL,
PRIMARY KEY (demography_key),
UNIQUE (
min_age_group, max_age_group,
min_income_group, max_income_group,
gnero
)
)
Dado um valor para o sexo, renda e idade, bastante simples
procurar o demography_key no presente stage_demography tabela. Alm
exigindo um valor correspondente na gnero coluna, temos de exigir que
o valor para a idade seja igual ou maior que o valor da min_age_group
coluna, mas inferior ao valor do max_age_group coluna. Da mesma forma, o
valor de renda devem estar entre os valores na min_income_group e
max_income_group colunas, respectivamente. Iremos discutir o processo de pesquisa em
mais detalhes posteriormente neste captulo, quando descrevemos o carregamento do
dim_customer
e fact_customer tabelas.
Gerando Idade e Grupos de Renda
Os grupos de idade e renda so gerados usando um suplemento etapa Seqncia
com um valor alterado para o incremento de propriedade. O incremento definido como um
por padro. Para os grupos de gerao de renda, ns usamos um incremento de 10.000. Para
grupos de idade, usamos um incremento de 5 e um valor inicial de 15. (Classe Mundial
Filmes no alugar ou vender DVDs para os menores).
Captulo 10 Projeto Pentaho Data Integration Solutions 285
Nas etapas seguintes, calculadora, o valor utilizado para o incremento
usada para calcular o limite (exclusive) superior do grupo, tendo o
valor da seqncia se como o limite inferior (inclusive). As etapas da calculadora
tambm gerar uma etiqueta legvel para cada grupo. Por exemplo, o
grupo de renda de R $ 10.000 a $ 20.000 rotulado como R $ 10.000 - $ 20.000. Para
integralidade, a configurao da etapa de Renda Calculadora Grupo apresentada
na Figura 10-12.
Figura 10-12: Calculando e formatao de grupos de renda
Mltiplos Fluxos de entrada e sada
A transformao na Figura 10-12 mostra uma caracterstica interessante PDI. A
Demografia seqncia de teclas e as etapas Desconhecido cada uma, duas Demografia
sada de lpulo. Para essas duas etapas, a sada de lpulo so levados mesa
Sada stage_demography Carga passos e dim_demography carga, que
consequentemente, tem duas entrada de lpulo.
Voc j viu um exemplo de um passo que pode aceitar a entrada de vrios
crregos, quando cobria a associao de linhas (produto cartesiano) etapa. No entanto,
h uma diferena em relao entrada do lpulo Output Table
etapas. A natureza da associao de linhas (produto cartesiano) operao simplesmente
pressupe pelo menos dois fluxos de entrada. Um produto cartesiano de uma nica entrada
no
no faz sentido porque a operao definido pela combinao de dois dados
ou mais fluxos. Mas para a etapa de sada de mesa, um nico fluxo de entrada faz
sentido, e podemos legitimamente perguntar-nos que o significado de
um fluxo de entrada extra neste caso.
A maioria das etapas de transformao pode manipular um nico tipo de fluxo de entrada.
Mas
no h nada errado com os registros de entrada aceitar mltiplos fluxos
desde que tenham registro de layouts idnticos. Outra maneira de colocar que
para a maioria das etapas, no importa onde se originam os registros de entrada, desde
como todos tm as mesmas propriedades. A entrada lpulo simplesmente despejam seus
registros no buffer de entrada da etapa de recebimento, independentemente da origem.
286 Parte III Integrao de dados e ETL
O mesmo vale para fluxos de sada. A maioria dos tipos etapa gerar registros de sada
que todos tenham o mesmo layout. No h nenhuma razo para que todos esses registros
devem
ser enviados a um nico salto de sada. Eles poderiam muito bem ser enviado
vrios fluxos. Note que isso no totalmente simtrico em relao ao
mltiplos fluxos de entrada. No caso de mltiplos saltos de sada, h duas
diferentes maneiras de enviar os registros para fora:
Os registos podem ser copiados, o envio de todos os registros de sada para todos os de
sada de lpulo.
Isso til para enviar os mesmos dados ao longo de vrios caminhos para paralelo
transformao. Na Figura 10-11 voc pode dizer que os dados esto sendo copiados
porque este indicado pelo meio pequeno cone de cpia em todo o salto.
Os registros podem ser distribudos em forma de rodzio sobre todas sada
lpulo. Isto essencialmente as parties do fluxo de sada, o envio de apenas uma parte
de todos os registros de sada para baixo cada salto.
O mtodo de distribuio pode ser configurado atravs do menu de contexto do
etapa. No menu de contexto, localizar o submenu circulao de dados. L, escolha
quer distribuir dados para os prximos passos ou copiar dados para os prximos passos.
Na transformao mostrado na Figura 10-11, a seqncia de teclas Demografia
e as etapas Desconhecido Demografia esto configurados para copiar todos os dados para
todos
fluxos de sada. Isso faz sentido porque precisamos de todos os dados estejam disponveis
em
o data warehouse, bem como a rea de preparo.
Carregando Dados da Fonte Sistemas
At agora, ns s carregado as tabelas de dimenso com base nos dados gerados. No
entanto,
A maioria das tabelas no data warehouse so preenchidos com dados provenientes de vrios
tabelas de banco de dados em um sistema de origem e, por vezes, os sistemas de mltiplas
fontes.
Nesta seo, vamos dar uma olhada em algumas das consideraes, questes
e solues que entram em jogo quando o carregamento de dados do armazm com as tabelas
dados provenientes de sistemas de origem. Comeamos por introduzir alguns conceitos e
em seguida, continuar a descrever solues Pentaho Data Integration para carregar o Mundo
Classe armazm de dados de filmes.
Encenao valores de pesquisa
A World Class possui um banco de dados de filmes nico valor_procurado tabela que
serve como referncia para as listas de relativamente pequeno e fixo de valores pr-definidos.
Todos
Os valores que pertencem a uma lista tm o mesmo tipo de pesquisa. A lookup_type
tabela usada para armazenar o nome da tabela e da coluna para que a lista de
valores se aplica.
No projeto do data warehouse, a maioria das referncias valor_procurado
tabela de reaparecer como atributos de dimenso normalizada. Por exemplo, no
dim_promotion tabela, o promotion_type coluna carregado a partir dessas linhas
Captulo 10 Projeto Pentaho Data Integration Solutions 287
em valor_procurado que se refere ao uso do promotion_type_lookup coluna
na promoo tabela.
Os dados do valor_procurado e lookup_type tabelas quase nunca muda.
As alteraes devem ser esperadas apenas se o sistema de origem atualizado para uma
nova
verso.
Precisamos de os valores de pesquisa com tanta frequncia, e as mudanas ocorrem muito
raramente
que faz sentido para puxar todos os dados do valor_procurado mesa para
armazenamento permanente na rea de teste. Enquanto estamos aqui, ns pde apenas
como
tambm armazenar os valores para cada tipo de pesquisa em sua prpria tabela. Cada lista
individual
de valores de pesquisa ser muito pequena, o que deve fazer pesquisas e se junta como
mais rpido possvel.
O stage_lookup_data Trabalho
Para carregar os valores de pesquisa na rea de preparao, criamos um Pentaho Data
Integrao do trabalho. Criando um novo emprego muito parecido com a criao de uma
nova transformao.
Voc pode criar uma nova tarefa a partir do menu (escolhendo novo arquivo de trabalho) ou
a partir da barra de ferramentas. Alternativamente, voc pode usar Alt + Ctrl + N.
O trabalho de carregar os valores de pesquisa na rea de teste mostrado na
Figura 10-13.
Figura 10-13: Um trabalho de carregar os valores de pesquisa na rea de preparo
NOTA No captulo 9, discutimos as diferenas mais importantes entre os trabalhos
e transformaes. No vamos repetir essa discusso, mas gostaramos de salientar
vez que as transformaes e empregos podem ser parecidos, mas so tipos muito diferentes
das coisas. A principal diferena para se manter em mente que os trabalhos consistem em entradas de
emprego,
que representam a execuo de uma tarefa, enquanto as transformaes consistem
etapas de transformao que representam uma operao no registro crregos. Lpulo
entradas trabalho conectando representam uma seqncia de execuo, enquanto que o lpulo conexo
etapas de transformao representa um fluxo de registros.
Aqui est um resumo do que est acontecendo no presente
trabalho:
START-Este o ponto de entrada para execuo do trabalho.
extract_lookup_type e extract_lookup_value-By execuo dessas
transformaes, os dados so lidos a partir do valor_procurado e lookup_type
tabelas do sistema de origem e, temporariamente armazenados.
288 Parte III Integrao de dados e ETL
stage_lookup_data-Este transformao l os dados do tem-
armazenamento temporrio e carrega-lo para as tabelas na rea de teste.
Mail Failure Sucesso e-mail Estes entradas de emprego enviar uma notificao
mensagens de e-mail para informar se o trabalho de falha ou sucesso.
As inscries de trabalho esto ligados uns aos outros com lpulo. O verde lpulo
(Que servem para ligar as cinco entradas de emprego ao longo da fileira de cima) indicam o
normal
caminho de execuo: se uma entrada de trabalho concludo com sucesso, a execuo
reiniciada s
a entrada de trabalho encontrada na outra extremidade da sada hop verde. Na Figura 10-13,
o caminho de execuo normal, forma uma seqncia de entradas de trabalho que comea na
entrada de trabalho rotulado como Iniciar e termina com a entrada de trabalho marcado Mail
Sucesso.
Todas as entradas, mas primeiro emprego e por ltimo tambm tem um segundo, de cor
vermelha de sada
hop para a entrada de trabalho marcado Falha Mail. O vermelho lpulo indicar um erro
execuo do caminho. O caminho de execuo de erro inserida sempre que uma entrada de
trabalho no
No possvel executar com xito. Se uma entrada de trabalho no tem um salto de erro de
sada,
execuo sem xito de que a entrada no trabalho far com que o trabalho como um todo a ser
abortada com erro.
Voc pode alterar as propriedades de um salto com o boto direito do mouse e escolha de
um
ao a partir do menu de contexto. Para modificar se o salto ser seguido
em caso de sucesso ou fracasso, escolha a opo apropriada na avaliao
submenu. Isso tambm mostrado na Figura 10-13.
A entrada do incio do trabalho
A entrada do incio do trabalho uma entrada especial de trabalho que denota o ponto de
entrada de um
emprego. Esta entrada de emprego encontra-se na categoria Geral, e seu cone um verde
seta (ver figura 4-13).
Este tipo de passo pode ter apenas um salto de sada que incondicionalmente
seguido. incio da execuo do trabalho com a entrada de trabalho encontradas na outra
extremidade
do hip sada da entrada do incio do trabalho. Todo trabalho deve ter exatamente um
entrada de trabalho deste tipo.
A janela de configurao da entrada do incio do trabalho contm uma srie de opes
para agendar a execuo do trabalho. Detalhes sobre a programao de trabalho so
discutidos em
Captulo 14.
Job Entradas Transformao
O trabalho extract_lookup_type entradas, extract_lookup_value e stage_lookup
_data so todos Emprego entradas Transformao. Este tipo de entrada de trabalho
encontrado no
Geral da categoria. O cone (visvel na Figura 10-13) mostra quatro setas que visa
um ponto central.
Na janela de configurao, o arquivo de transformao que est a ser executado
pode ser especificado no campo Nome da Transformao. Alternativamente, se voc
estiver conectado a um repositrio, voc pode usar o nome de Transformao e
campos Repositrio Directory para especificar uma transformao armazenados no
repositrio.
Captulo 10 Projeto Pentaho Data Integration Solutions 289
(Usando o repositrio coberto extensivamente no Captulo 11.) Em ambos os casos, uma
boto est disponvel direita para procurar transformaes. Para rapidamente
aberta a transformao especificada, boto direito do mouse e escolha a etapa do Open
opo de transformao.
Figura 10-14 mostra a janela de configurao da entrada de emprego Transformao
rotulados extract_lookup_type.
Figura 10-14: A transformao do emprego de dilogo configurao de entrada
Na Figura 10-14 o nome da transformao de arquivo especificado como $ {Interno
. Job.Filename.Directory} / extract_lookup_type.ktr. Isto denota o arquivo
extract_lookup_type.ktr que residem no mesmo diretrio que o arquivo de trabalho
prpria, conforme explicado em detalhe no Captulo 11.
A janela de configurao contm muitos mais imveis que poderiam ser
configurada. Voc vai encontrar alguns deles mais tarde neste captulo.
Mail Failure Sucesso e-mail
Na Figura 10-13, as entradas de emprego rotulados Mail sucesso eo fracasso so do Correio
o tipo de correio, indicado por um cone de envelope. Isto pode ser encontrado no Correio
categoria.
A entrada de emprego Mail projetado para enviar uma mensagem de e-mail com o Sim-
ple Mail Transfer Protocol (SMTP). Seu objetivo principal fornecer informaes bsicas
notificao de status do trabalho de execuo (fracasso, sucesso, ou o progresso).
290 Parte III Integrao de dados e ETL
Configurao da etapa e-mail no particularmente difcil, embora o nme-
mero de opes de configurao pode ser um pouco assustador no comeo. A configurao
dilogo contm quatro pginas guia. Na pgina endereos, mostrado na Figura 10-15,
voc deve especificar pelo menos um endereo de e-mail vlido no endereo de destino
propriedade. Opcionalmente voc tambm pode configurar endereos de CC e BCC. Em adi-
o para o endereo de destino, o nome do remetente e as propriedades endereo do
remetente
so obrigados pelo protocolo SMTP e deve ser especificado. Voc pode opcionalmente
especificar um Endereo de resposta e alguns dados adicionais de contato, como o
nome e nmero de telefone da pessoa de contato. Para o sucesso tpica / insucesso
notificaes, seria enviar notificaes para o suporte de TI, pessoal e especificar
detalhes de um membro da equipe de integrao de dados como o remetente. Figura 10-15
mostra a ficha de endereos.
Figura 10-15: A ficha de endereos na janela de configurao da entrada de emprego Mail
Voc deve especificar os detalhes do servidor SMTP na pgina do guia Servidor
mostrados na Figura 10-16.
Voc obrigado a fornecer, pelo menos o nome do host ou endereo IP do
seu servidor SMTP. Opcionalmente, voc pode fornecer a porta para usar. Por padro,
a porta 25 (padro SMTP) usado. Na maioria dos casos, servidores SMTP requerem
autenticao de usurio. Para habilitar a autenticao, verifique a autenticao de Uso
caixa e fornecer o nome de usurio e senha na autenticao
usurio e campos de senha de autenticao, respectivamente. Mais e mais frequentemente,
servidores SMTP requerem autenticao segura atravs de um protocolo, como SSL
(Secure Sockets Layer) ou TLS (Transport Layer Security). Voc pode especificar
autenticao segura, selecionando a opo Usar autenticao segura e
escolher o protocolo apropriado na caixa de listagem Secure tipo de conexo. Nota
Captulo 10 Projeto Pentaho Data Integration Solutions 291
que a comunicao de rede para um protocolo de autenticao segura em geral
emprega uma outra porta. Para SSL, a porta padro 465. Contate seu local
administrador da rede ou do sistema para obter esses dados.
Figura 10-16: A pgina da guia Servidor na janela de configurao da entrada de emprego Mail
Voc pode especificar o contedo real da mensagem na guia Mensagem de e-mail. Este
ficha de registro mostrado na Figura 10-17.
Figura 10-17: O Email Mensagem guia na janela de configurao da entrada de emprego Mail
292 Parte III Integrao de dados e ETL
O assunto da mensagem eo corpo esto especificados no assunto e comentar
propriedades, respectivamente. Voc pode usar livremente o texto e incluir referncias
varivel
para essas propriedades. Por padro, o PDI inclui um breve relatrio da situao da
transformao no corpo da mensagem, logo aps o contedo fornecido no
Comentrio propriedade. Para evitar que esse relatrio de status de ser includa, selecione
Apenas envie o comentrio na caixa de correio do corpo. Opcionalmente, voc pode
selecionar
Use o formato HTML no corpo da mensagem a enviar em formato HTML e-mail. Alguns e-mail
os clientes usam cabealhos prioridade da mensagem. Se quiser, voc pode selecionar o
Gerenciar
opo de prioridade para permitir isso. Quando esta estiver ativada, voc pode definir a
prioridade
Importncia e propriedades.
O extract_lookup_type e extract_lookup_value
Transformaes
O objetivo da extract_lookup_type e extract_lookup_value trans-
formaes recuperar os dados do lookup_type e valor_procurado
tabelas do sistema de origem. O design de ambas essas transformaes
extremamente simples: um passo de entrada tabela executa um SQL SELECT declarao
sobre a
respectiva tabela. O fluxo de sada da etapa de entrada da tabela liderada imediatamente
a uma etapa da produo de texto de arquivo que grava os dados em arquivo. Figura 10-18
mostra a
concepo do extract_lookup_type transformao.
Figura 10-18: O projeto da transformao extract_lookup_type
O objetivo dessas transformaes extrair os dados to rapidamente quanto
possvel a partir da base de dados mundial de filmes de classe. Embora seja possvel
tem a loja de transformao dos dados diretamente no wcm_staging banco de dados,
ns preferimos descarregar os dados em um arquivo de texto, porque esta mais rpido.
Pode-se
argumentam que, para estas quantidades de dados, escrevendo diretamente para uma tabela
no estadiamento
rea deve ainda oferecer bom desempenho. Isso pode ser verdade, mas escrever
desempenho no a principal preocupao desta extrao. A quantidade de tempo
precisamos de ocupar o sistema de origem a principal preocupao, que por isso que ns
optar pela soluo mais rpida possvel.
NOTA Neste projeto, os dados so puxados atravs da rede e armazenados em um arquivo no
o sistema de arquivos do host rea de preparo. Isto pode no ser a melhor soluo quando
lidar com grandes volumes de dados. Se h um risco de congestionamento da rede, pode ser
melhor para descarregar os dados para um arquivo no sistema do sistema de origem do arquivo e
compactar
o arquivo antes de transferir para a rea de preparo de host.
Este um trade-off: A compresso aumenta a carga da CPU no sistema de origem. Em
Alm disso, este cenrio aumenta a complexidade da implantao da integrao de dados
Captulo 10 Projeto Pentaho Data Integration Solutions 293
soluo, porque ela torna-se distribuda. No entanto, bom saber que voc pode
faz-lo. Ferramentas para distribuir solues Pentaho Data Integration so discutidos em
Captulo 11.
A Transformao stage_lookup_data
O objetivo da stage_lookup_data transformao para carregar a pesquisa
dados em tabelas no wcm_staging banco de dados. A transformao mostrado
na Figura 10-19.
Figura 10-19: A transformao stage_lookup_data
Aqui est um resumo do que est acontecendo nessa transformao:
1. Extrato lookup_type e Extrato valor_procurado: Estes arquivos de entrada de texto
etapas analisar os arquivos de texto criado pelo extract_lookup_type e
transformaes extract_lookup_value em um fluxo de registros.
2. Calcule table_name: Esta etapa calculadora utiliza os dados da
Extrato lookup_type para gerar um nome de tabela para a tabela de teste.
O nome da tabela adicionada ao fluxo de sada no table_name de campo.
3. Verifique se o preparo tabela existe, as linhas de filtro, e as etapas existe tabela de
preparao:
Verifique se o preparo Tabela etapa existe usa o table_name campo para ver
se a tabela de teste existe. O resultado da seleo alimentado no filtro
linhas etapa. Se a tabela de teste existe, a execuo continua diretamente com o
Encenao etapa existe tabela. Caso contrrio, a transformao faz um desvio
e continua com a etapa Criar tabela de preparao. Este um Execute SQL
passo que ir criar a tabela de teste de destino, e depois continua na
Encenao etapa existe tabela.
4. Stream de Pesquisa e Ordenao de etapas de pesquisa Tipo: O Stream etapa de
pesquisa
junta-se, essencialmente, os fluxos de dados provenientes das duas etapas de entrada de
arquivo de texto
com base no lookup_type_id campo, que est presente em ambos os extratos.
Isso adiciona o table_name campo para cada uma das linhas de entrada do
Extrato valor_procurado. A Ordem de pesquisa tipo necessrio para o
294 Parte III Integrao de dados e ETL
operao correta da etapa de pesquisa de fluxo, que assume o principal
fluxo de dados (o que vem a partir do extrato valor_procurado) classificada
valor de chave.
5. Guarde o estadiamento Table: Tabela insere sada etapa os valores de pesquisa
na tabela de preparao adequado especificado pela table_name de campo.
Ns j discutimos a entrada de arquivo de texto, calculadora, e as etapas de sada de mesa
das sees anteriormente neste captulo e no anterior. Vamos agora brevemente
discutir os passos que ns no encontramos antes.
Verificar se existe tabela de preparao: a tabela existe Etapa
Na Figura 10-19, a etapa rotulada Verificar se tabela existe Staging da Mesa
Existe tipo. Esta etapa encontrado debaixo da categoria Pesquisa e seu cone um
tambor com uma marca de seleo.
Como est implcito pelo seu nome, a Mesa etapa pode verificar se existe uma tabela
acessvel
sobre a conexo com o banco especificado. A janela de configurao da tabela
Existe passo mostrado na Figura 10-20.
Figura 10-20: A janela de configurao do passo existe tabela
A conexo de banco de dados especificado pela propriedade Connection. O valor
para a propriedade denominada campo TableName o nome do campo na entrada
fluxo que transmite o nome da tabela. Neste caso, o campo chamado table_name
e se origina na etapa table_name Calcular. A propriedade fieldname Resultado
usado para especificar o nome do campo que conter o resultado da verificao.
Este campo Boolean adicionada ao fluxo de sada da etapa.
O Filtro de Passo linhas
O filtro de passo linhas usado para escolher adequadamente entre duas alternativas
caminhos de acordo com o resultado da etapa de Existe tabela. O Filtro de linhas o passo
encontradas na categoria Transformao e seu cone um funil (ver Figura 10-19).
O filtro de passo linhas fornece funcionalidade If-Then-Else base. A configura-
rao da primeira etapa mostrado na Figura 10-21.
Captulo 10 Projeto Pentaho Data Integration Solutions 295
Figura 10-21: A configurao da etapa Filtrar linhas
Na etapa Filtrar linhas, voc pode especificar uma condio, adicionando uma ou mais
comparaes. Na Figura 10-21, a apenas uma comparao adicionado, que verifica se
o valor da table_exists campo (que se originou a partir da tabela existe
etapa) igual constante booleana Y.
NOTA Em Pentaho Data Integration, valores booleanos so representados usando o
constantes da cadeia Ye Npara verdadeiro e falso, respectivamente.
Se necessrio, comparaes mltiplas pode ser combinada com a lgica habitual
operadores. Para adicionar mais de uma comparao, clique no cone de adio na
parte superior direita da rea do estado. Voc pode clicar no recm-adicionada
comparao com a edit-lo e escolher um operador lgico, como E ou OU combinar
as comparaes.
O filtro de passo deve ter duas linhas de sada de lpulo. As etapas na outra extremidade
da sada de lpulo pode ser selecionado no drop-down list caixas para configurar
ramificao. Enviar a 'verdadeira' de dados para a etapa ser executada no caso, a condio
avalia para TRUE, e Enviar "falso" dados para a etapa ser executada em contrrio.
Neste exemplo, optamos por continuar com a etapa Criar tabela de teste no
caso, o table_exists campo FALSE.
Criar Staging Quadro: Execuo de SQL dinmico
A etapa de teste Criar tabela do tipo Executar SQL. Ns descrevemos este
tipo de passo, anteriormente neste captulo, na seo''CREATE TABLE dim_date:
Utilizando o Execute''Passo SQL Script.
At agora, todas as transformaes que temos discutido usado o SQL Execute
passo para criar a tabela de destino, e essa transformao no excepo. No
No entanto, uma diferena importante na forma como essa etapa faz parte do
transformao. Em todas as transformaes anteriores, a etapa de execuo do SQL
apareceu
separado do restante da transformao, uma vez que no estava ligado a
qualquer das outras etapas. Nessa transformao, a etapa de execuo do SQL parte do
o fluxo de dados, e tem um salto de entrada e sada como as outras etapas.
296 Parte III Integrao de dados e ETL
Na transformao mostrado na Figura 10-18, o script SQL dinmico
e parametrizado com dados de fluxo de entrada. Para ser mais especfico, o SQL
script um modelo para um CREATE TABLE declarao que contm um espao reservado para
o nome da tabela. O espao reservado indicado com um ponto de interrogao. O SQL
modelo de declarao mostrado na Listagem 10-12.
Listagem 10-12: Um modelo de declarao de CREATE TABLE com espao reservado para nome de tabela
CREATE TABLE? (
lookup_value_idINT
, Lookup_textVARCHAR (50)
, Lookup_type_idINT
, Lookup_type_table_name VARCHAR (64)
, Lookup_type_column_name VARCHAR (64)
, PRIMARY KEY (lookup_value_id)
, UNIQUE (lookup_text)
)
A configurao da etapa Criar Tabela Staging mostrado na Figura 10-22.
Na janela de configurao, a execuo de cada opo de linha est selecionado.
Isso permite que o script SQL a ser executada para cada linha de chegada por meio de
o fluxo de entrada e no apenas uma vez na fase de inicializao do
transformao. Alm disso, o table_name campo especificado nos parmetros
grade. Ao manusear uma linha do fluxo de entrada, o espao reservado (s) em
o script SQL so substitudos com o valor do (s) domnio (s) especificado
na grade. O resultado CREATE TABLE instruo executada, a criao de um
nova tabela.
O Passo do manequim
A encenao da tabela etapa existe um passo Dummy. A etapa Dummy pode ser
encontradas na categoria transformao e seu cone (visvel na Figura 10-19) uma
cabea de manequim.
A etapa Dummy passa os dados da sua fluxos de entrada para sua sada
fluxo (s) e no fazer nada. Apesar de no representar uma verdadeira pera-
o, til para juntar e dividir recorde crregos. Isso merece alguma
explicao.
Quando discutimos a transformao para o carregamento dos dim_demography
dimenso, que explicou que a maioria das etapas pode ter vrias entradas e
registros de fluxos de sada do mesmo tipo, porque o tipo de operao por-
formado pela etapa no influenciada pela origem ou destino dos registros.
Mas alguns passos so projetados para operar em mltiplos fluxos de entrada diferentes,
e alguns passos de gerar mltiplos fluxos de sada diferente. Muitas vezes, isso implica
Captulo 10 Projeto Pentaho Data Integration Solutions 297
as correntes podem ter layouts registro diferente, mas a caracterstica definidora
que o passo projetado para conectar um significado diferente para diferentes correntes.
Figura 10-22: Configurando o SQL Execute passo para aceitar um parmetro e executar uma vez
para cada linha
Por exemplo, na transformao mostrada na Figura 10-19, o filtro passo linhas
gera dois fluxos de sada com uma semntica diferente: o ramo 'verdadeiro' e
o ramo 'falso'. Como voc vai aprender em detalhes na prxima subseo, o Stream
Busca aceita duas entradas diferentes correntes, ou seja, um fluxo de dados principal e
uma pesquisa de fluxo. Olhe novamente a Figura 10-19. Observe as informaes''pequena''
(I) a meio caminho cone abaixo do salto, saindo da etapa Dummy para o crrego
etapa de pesquisa. Este cone indica que este realmente um fluxo de entrada especial,
que considerado a ter um papel distinto do fluxo de entrada principal.
Quando isso acontece, os dois ramos que saem das linhas de filtro passo juntos
formam a fonte dos dados de pesquisa para a etapa de pesquisa Stream. Assim, a fim de
permitir que o fluxo passo Pesquisa para usar todos os dados de ambos os ramos, que tm
ser reunidos de alguma forma os dados podem ser tratadas como um nico fluxo
novamente. Este o lugar onde o passo Dummy entra em jogo. Liderando as duas correntes
para a etapa do manequim o equivalente funcional de um SQL UNIO operao.
A Corrente Pesquisa Etapa
O Stream etapa de pesquisa encontra-se na categoria Pesquisa e seu cone um
lupa.
298 Parte III Integrao de dados e ETL
O Stream etapa de pesquisa aceita duas entradas diferentes fluxos. Um fluxo
considerado o principal fluxo, eo fluxo de outro a pesquisa de fluxo.
A etapa de obras, observando-se um registro da pesquisa de fluxo para cada linha
no fluxo principal com base no resultado de uma comparao de valores de campo. Para
o correcto funcionamento desta etapa, os registros da principal corrente deve ser
classificadas de acordo com os campos que so usados para fazer a pesquisa. A
configurao
para o fluxo de pesquisa utilizado na transformao para carregar os valores de pesquisa
na rea de teste mostrado na Figura 10-23.
Figura 10-23: A configurao da etapa de pesquisa Stream
Usando a lista de Passo pesquisa drop-down, voc pode selecionar quais passo fornece
a pesquisa de fluxo de entrada. Ao clicar no boto Get Fields, voc pode preencher o
chave (s) para procurar o valor da (s) grelha. Na coluna Campo dessa rede, voc pode
especificar os campos do fluxo principal. Na coluna LOOKUPFIELD, voc pode
especificar os campos correspondentes da pesquisa de fluxo. Com o Get pesquisa
boto de campos, voc pode encher a especificar os campos a recuperar grade. Isso
preenche a grelha
com todos os campos da pesquisa de fluxo. Campos nesta rede ser adicionada
fluxo de entrada para gerar o fluxo de sada. As caixas abaixo desta rede
podem ser utilizados para otimizar o algoritmo de pesquisa. A seleo Preservar a memria
opo garante que as linhas do fluxo de pesquisa sero compactados.
Isso reduz os requisitos de memria para a etapa, mas vai exigir mais
ciclos de CPU para comprimir (e descompactar) os dados.
A chave e valor so exatamente uma caixa campo inteiro pode ser ativado
no caso, a chave que liga o rio principal eo fluxo de pesquisa consiste em
um campo Integer nica e apenas um campo inteiro obtido a partir da pesquisa
Captulo 10 Projeto Pentaho Data Integration Solutions 299
crrego. Esta caixa permite uma otimizao que permite a pesquisa de dados para
ser armazenados de forma mais eficiente, o que economiza memria e aumenta o
desempenho. Se
o tamanho de registro dos registros de pesquisa grande, voc pode ativar o uso classificado
caixa de lista para economizar memria.
Classificar em Lookup Type: o tipo Etapa Linhas
Na Figura 10-19, a Ordem de pesquisa do tipo degrau do tipo passo Classificar linhas. Este
passo encontrada na categoria de Transformao. Voc pode ver a correspondente
cone na Figura 10-19.
Esta etapa demora um fluxo de entrada no triados e cria um fluxo de sada ordenada
baseado na especificao de um conjunto de campos. Opcionalmente, voc pode especificar
que
apenas nico (com base em valores de chave) linhas devem ser passados para o fluxo de
sada.
A janela de configurao mostrado na Figura 10-24.
Figura 10-24: A janela de configurao do passo Classificar linhas
Voc pode rapidamente preencher a grade de Campos utilizando o boto Get Campos. Se
desejar,
voc pode configurar o sentido de ordenao (ascendente ou descendente). Para campos
do tipo String, voc pode especificar se a honrar ou ignorar as diferenas de
letras maisculas.
Pentaho Data Integration tenta realizar uma espcie de memria. Por padro,
5.000 linhas podem ser ordenadas na memria. Alm de 5.000 linhas, o algoritmo escreve
resultados de classificao intermediria para arquivos temporrios para economizar memria.
Se voc quiser
classificar mais de 5.000 linhas e voc sabe que o jogo vai caber na memria, voc pode
definir o tamanho da propriedade Sort para o nmero mximo de linhas que voc deseja
classificar.
Voc tambm pode usar o limite de memria livre (em%) propriedade para controlar
uso de memria. Aqui voc pode especificar a quantidade de memria que sero
usados para classificar as linhas antes de armazen-classificados para um arquivo temporrio.
A quantidade de
memria est especificada como uma porcentagem da quantidade total de memria disponvel
para a mquina virtual Java.
300 Parte III Integrao de dados e ETL
Voc pode configurar o local onde os arquivos temporrios so escritos por especificar-
o da propriedade do diretrio de classificao. Voc tambm pode especificar o prefixo
TMP-arquivo, que
ser usado para prefixar os nomes dos arquivos temporrios escrito por esta etapa.
Isso til principalmente para fins de depurao. Se voc achar que o temporrio
arquivos esto crescendo muito grande, voc poderia considerar selecionando o TMP
Compress
Arquivos de caixa. Isso pode ajudar a economizar espao em disco e, potencialmente,
aumentar a per-
desempenho (devido reduo de I / O). Compresso viro a um custo de aumento
Carga da CPU.
Guarde o estadiamento da tabela: Utilizar uma etapa de sada de mesa para carregar
Vrias tabelas
A etapa final da transformao mostrado na Figura 10-19 uma mesa de sada
etapa. Ns discutimos este tipo de passo em detalhes na subseo''Load
dim_date: A etapa de sada de mesa''no incio deste captulo.
Em todas as transformaes descritas anteriormente, foi utilizada a tabela para a etapa de
sada
inserir dados em uma nica tabela de destino. Neste caso, usamos o passo para carregar
mltiplas tabelas de destino. Isso configurado selecionando o o nome da
tabela definida em uma caixa de campo e especificando o table_name campo na
Campo que contm o nome da propriedade da tabela.
A Dimenso Promoo
Esta seo demonstra como carregar o dim_promotion Dimenso da tabela.
Este processo relativamente simples para um nmero de razes:
A tabela de dimenso muito pequena: ele no contm muitas colunas, nem
ela contm muitas linhas.
Promoes so estticos e no mudam ao longo do tempo. Portanto, ns no
necessidade de acompanhar uma histria de promoo. Isso simplifica o carregamento
processo consideravelmente.
Promoes esto em vigor por um perodo fixo de tempo. Isto torna mais fcil
captar as variaes dos dados.
No caso de Classe Mundial Filmes, a promoo mapas tabela de dimenso
somente a tabelas de origem poucos que esto disponveis no mesmo sistema.
Ao desenvolver um plano para carregar uma tabela de dimenso, as seguintes conside-
es entram em jogo:
Mapeamento-In quais tabelas e colunas do sistema de origem que o
dados de dimenso originou? Como essas tabelas relacionadas entre si?
O mapeamento deve ser previamente conhecidos como um produto secundrio da
dados de projeto do armazm. No entanto, o desenvolvedor de integrao de dados
pode
no ter sido envolvido no processo de design de banco de dados, necessitando de um
reviso do mapeamento pretendido.
Captulo 10 Projeto Pentaho Data Integration Solutions 301
As alteraes de dados, que tipo de mudanas que voc espera ver na fonte
tabelas, e que mudanas devem ser refletidas nos dados de dimenso?
Quantas mudanas voc espera estar lidando com, e quais so as
Estima volumes de dados?
Sincronizao-How Com que freqncia voc deseja sincronizar os dados em
a tabela de dimenso com o sistema de origem? Como isso se relaciona com o
disponibilidade real do sistema de origem e data warehouse?
Responder a estas perguntas no oferecer uma soluo pronta, mas
isso no ajudar voc a ganhar uma compreenso do problema. Essa sub-
em p um pr-requisito para o desenvolvimento de uma soluo que possa satisfazer as
requisitos do projeto de data warehouse.
Promoo de mapeamentos
Voc pode encontrar detalhes sobre os mapeamentos para o dim_promotion tabela
Captulo 8. Para o dim_promotion tabela, voc v que existem trs fontes de
tabelas:
promoo -Este quadro constitui a principal fonte de dados para o escurecer
_promotion dimenso. Para cada linha da promoo tabela, haver
exatamente uma linha na dim_promotion tabela.
site -No sistema de origem, o promoo tabela tem uma chave estrangeira para
o site tabela para apontar o site que apresenta a promoo.
No entanto, no armazm de dados, atributos descritivos do site
tabela so dobrados no dim_promotion tabela, que um exemplo de
desnormalizao.
valor_procurado -Isso muito similar ao site quadro: a promoo tabela
tem uma chave estrangeira para a tabela para apontar o tipo de promoo, e os
descrio textual do tipo dobrado diretamente no de-normalizados
dim_promotion tabela.
Dados Alteraes Promoo
Agora que est claro qual a tabela que ser o carregamento de dados, devemos
analisar que tipo de alteraes de dados (incluses, alteraes, remoes) ser
afeta a dimenso da promoo. Devemos tambm estimar as alteraes quantas
esperamos ver ao longo do tempo, e que os volumes de dados esto envolvidos.
Para o promoo tabela, ns esperamos ver principalmente as adies. O volume de
mudanas deve ser bastante baixa: mesmo se assumirmos uma nova promoo
iniciado em cada site Filmes Classe Mundial em uma base diria, ns
ainda estar lidando com apenas 1.500 linhas por ano.
Tambm devemos esperar algumas atualizaes sobre promoes existentes. No
improvvel que uma promoo de sucesso pode ser estendida para durar mais
302 Parte III Integrao de dados e ETL
originalmente planejado. Mesmo se pode descartar essa possibilidade, ainda devemos
levar em conta a possibilidade de que um erro entrou na fonte
sistema seja corrigido posteriormente. Por exemplo, se uma data errada termina
acidentalmente foi especificado na criao da promoo, provvel que
o erro ser corrigido mais tarde, actualizando a data de trmino. Outro
possibilidade que uma linha de divulgar errado pode ser substituda por uma correta
um, ou at mesmo removido.
Apesar de todos esses cenrios, ns esperamos ver um certo nvel de estabilidade.
Por exemplo, ns no esperamos uma promoo que j terminou a
mudar ou ser removido. Alm disso, parece razovel supor que o
data de incio das promoes que j comearam permanece fixo e
que essas promoes no so subitamente removidas. claro que, se ns
pode fazer essas hipteses de que o negcio eo sistema de origem,
mas estes so os pressupostos que far para a Classe Mundial Filmes
banco de dados.
Para a tabela site, esperamos ver um nmero muito pequeno de linhas de
todos os tempos. Durante um perodo de um ano ou assim, um novo site pode ser
acrescentado.
Modificaes de linhas j existentes poderia ocorrer em uma base muito raras devido
a eventuais alteraes no ttulo do site, e talvez a URI.
Assumimos os dados da pesquisa de permanecer esttico em todos os momentos. Ns
esperamos muito
algumas linhas aqui.
Sincronizao de Freqncia
Acontea o que acontecer, voc deve sempre assegurar que as promoes que ocorreram em
o passado, bem como promoes que esto atualmente ativos so carregados no
Dimenso da tabela. Se voc no fizer isso, voc no ser capaz de carregar as tabelas de
fatos
como fact_customer e fact_order porque no pode ser capaz de pesquisa
a chave para dim_promotion Dimenso da tabela.
Considerando que as promoes podem ser adicionados ou corrigidos durante cada
dia de trabalho, parece sensato para garantir que as promoes so carregados diariamente
base.
O load_dim_promotion Trabalho
Ns criamos um trabalho chamado load_dim_promotion para carregar a dimenso da
promoo.
mostrado na Figura 10-25.
O trabalho consiste de duas transformaes principais:
extract_promotion Isola- e extrai o conjunto de promoes a partir do
tabela da promoo no sistema de origem que pode ter mudado desde a
ltimo carregamento.
load_dim_promotion -Na verdade carrega os dados para o dim_promotion
tabela de dimenso do data warehouse.
Captulo 10 Projeto Pentaho Data Integration Solutions 303
Figura 10-25: O trabalho load_dim_promotion
Como no trabalho de carregar a tabelas de pesquisa, usamos as entradas de emprego Mail
para
fins de notificao.
A Transformao extract_promotion
A transformao extract_promotion a primeira transformao na carga
_dim_promotion trabalho. Sua finalidade extrair essas linhas de promoo
o sistema de origem que pode ter mudado desde a ltima vez que carreguei o
dim_promotion dimenso. A transformao mostrado extract_promotion
na Figura 10-26.
Figura 10-26: Extrao de dados de promoo com a transformao extract_promotion
304 Parte III Integrao de dados e ETL
A transformao de obras como esta:
1. Contagem dim_promotion: Esta etapa de entrada de mesa rende uma nica linha com
um
coluna que contm a contagem do nmero de linhas na dim_promotion
tabela. Este utilizado mais tarde para determinar se uma carga inicial deve ser
realizada.
2. Calcule a data de carga de stage_promotion: Esta etapa de entrada de tabela calcula
um valor para promotion_start_date que pode ser usado para selecionar todas as
promoes
linhas do sistema de origem que pode ter mudado desde a ltima vez
ns sincronizados a tabela dim_promotion.
3. Junte-se a linhas: Isto usado para criar um nico registro da entrada de dados criado
pelas duas etapas anteriores.
4. Verifique promotion_empty dim: Este filtro passo linhas utiliza a contagem de
dim_promotion para determinar se preciso fazer uma inicial ou um regular
carga.
5. Menor data de carga correspondente ea data da carga inicial: Uma dessas datas
escolhidos para determinar o conjunto de linhas que sero obtidos a partir da fonte
do sistema.
6. Selecione data de incio da promoo: Descarta qualquer campos desnecessrios do
crrego, a fim de ser capaz de passar um nico parmetro para o extrato
promoo etapa dados.
7. O extrato de promoo etapa dados realmente extrai os dados do
tabela da promoo no sistema de origem.
8. A promoo da loja extrato etapa grava os dados extrados promoo
do sistema de origem para um arquivo para processamento posterior.
Determinar as alteraes nos dados de Promoo
Para determinar quais linhas para extrair, raciocina do seguinte modo:
Se o dim_promotion tabela est vazia, ento estamos lidando com uma inicial
carga, e temos de extrair todo o conjunto de promoes a partir da fonte
do sistema.
Se o dim_promotion tabela no estiver vazia, ela ser preenchida por dois tipos de
registros promoo:''''promoes activas, ou seja, os registros para os quais a
promotion_end_date reside no futuro e''acabado''promoes, os
promoes para os quais a promotion_end_date est no passado.
Para manter o controle de alterar os registros de promoo, ns apresentamos uma tabela
de preparao
chamada stage_promotion. Para executar cada transformao, que ir carregar as linhas
a partir do extrato e armazen-los aqui. Manter esses dados nas tabelas de preparo
permite rastrear todas as alteraes na tabela de dimenso com a fonte,
Captulo 10 Projeto Pentaho Data Integration Solutions 305
que uma grande ajuda na soluo de problemas. A CREATE TABLE declarao para a
stage_promotion tabela mostrado na Listagem 10-13.
Listagem 10-13: A instruo CREATE TABLE para a tabela stage_promotion
CREATE TABLE wcm_staging.stage_promotion (
promotion_idSMALLINTNOT NULL,
website_idSMALLINTNOT NULL,
promotion_titleVARCHAR (50) NOT NULL,
promotion_type_lookup SMALLINTNOT NULL,
promotion_start_date DATENOT NULL,
promotion_end_dateDATENOT NULL,
extract_filenameVARCHAR (255) NOT NULL,
extract_linenumberINTEGERNOT NULL,
load_timestampTIMESTAMPNOT NULL
DEFAULT CURRENT_TIMESTAMP
);
Observe que a estrutura desta tabela muito parecida com a do original promoo
tabela. A diferena que esta tabela tem trs colunas extra:
Extrair nome de arquivo -O nome do arquivo usado para carregar os dados novamente.
linenumber Extrato -Isto usado para armazenar o linenumber no extrato.
Isto torna mais fcil de carregar uma parte do extrato deve precisamos
faz-lo no futuro.
Load_timestamp -Um timestamp gerado automaticamente.
Listagem 10-14 mostra o SQL usado para determinar a data de carga.
Listagem 10-14: Usando SQL para determinar promoes que podem ter sido alterados
SELECT MIN (promotion_start_date) data_inicial
FROMstage_promotion
ONDE promotion_end_date> load_timestamp
O corao da consulta mostrada na Listagem 14/10 formado pelas ONDE
condio. Todas as linhas que tm uma data maior que a data final de carga ltima pode
mudaram entretanto, por isso devemos trat-los.
Agora considere o que aconteceria se o stage_promotion tabela est vazia.
Bem, ele iria retornar um valor NULL. Agora considere o que acontece no caso
Rodamos o direito de consulta depois que terminar de carregar a dim_promotion e
stage_promotion tabelas. Neste caso, estamos up-to-date para o momento e
A consulta tambm retorna zero linhas.
Porque no podemos distinguir facilmente entre esses dois casos de zero
linhas, ns explicitamente verificar se a tabela de dimenso est vazio. Isso feito
306 Parte III Integrao de dados e ETL
usando um simples SELECT COUNT (*) . . . script. Se o resultado for zero, pode ser
certeza de que nada foi carregado, e usamos 1900-01-01. Caso contrrio, use a data
determinado pelo script mostrado na Listagem de 10-14, e us-lo como parmetro para
a etapa de extrao atual. Figura 10-27 mostra como o campo de data utilizado como um
parmetro.
Figura 10-27: Usando a data como parmetro para uma entrada em degrau Tabela
Conforme mostrado na Figura 10-27, um ponto de interrogao usado na instruo SQL
onde o valor deve ser inserido. Alm disso, os dados da lista Inserir etapa
caixa deve ser usado para apontar exatamente quais dados passo ser recebido.
Salvando o extrato e passando sobre o nome do arquivo
As linhas extrados so salvos no disco usando um simples texto etapa arquivo de sada.
Para obter um melhor controle sobre a extrao e conseguir uma melhor manutenibilidade
do trabalho como um todo, ns usamos alguns recursos PDI para trabalhar com arquivos. A
configurao da etapa de produo de texto do arquivo mostrado na Figura 10-28.
Note-se que foram selecionados a data Incluir no nome do arquivo e incluir o tempo em
Nome caixas. Isto assegura que teremos nomes bastante originais para
extratos. Tambm escolhemos os nomes Adicionar ao resultado checkbox. Isso permite que
o nome do arquivo a ser passado entre dois ou mais transformaes no trabalho.
Levantando o arquivo e carregar o Extrato
A transformao load_dim_promotion segue imediatamente o extract_pro-
movimento de trabalho. O objetivo deste trabalho ler o extrato na rea de preparo e
carregar a tabela dim_promotion. Figura 10-29 mostra a transformao inteira.
Captulo 10 Projeto Pentaho Data Integration Solutions 307
Figura 10-28: Configurando nomes de arquivo com data e hora e passar o arquivo para o resultado
Figura 10-29: Carregando o extrato em dim_promotion
Aqui est um rpido resumo do que est acontecendo nessa transformao:
1. O Obter arquivos de etapa resultado: Esta etapa obrigatria para pegar o arquivo
que foi criado pela transformao extract_promotion.
2. leia promoo extracto: Esta uma entrada de texto comum que ns configuramos
para pegar o arquivo criado pela transformao anterior.
3. stage_promotion carga: Isso carrega o extrato no stage_promotion
tabela.
4. Pesquisa tipo de promoo e do site de pesquisa: Estes passos so usados para
encontrar e adicionar campos a partir do site relacionados e tabelas de referncia de
valor.
5. Inserir / dim_promotion Update: Esta etapa utilizada para carregar o
dim_promotion tabela. Se uma linha de promoo novo, ele ser adicionado. Se
uma linha de promoo j existia, os seus valores so substitudos com a
valores atuais.
308 Parte III Integrao de dados e ETL
Resumo
Neste captulo, voc expandiu suas habilidades PDI. Voc aprendeu a:
Executar SQL
Gerar linhas
Formatar nmeros e datas
Efetuar clculos
Junte-se a correntes
Split crregos
Criar postos de
trabalho
Passe os arquivos entre as transformaes
Alm das muitas coisas abordadas neste captulo, h ainda mais
coisas que no cubra. Por favor, consulte o site do livro para download de todos os
transformaes e empregos para carregar o World Class armazm de dados de filmes.
CAPTULO
11
Implantando Dados Pentaho
Solues de Integrao
Como voc aprendeu nos captulos anteriores, durante a concepo eo desenvolvimento
fase, a soluo Pentaho Data Integration (PDI) executada utilizando principalmente
Spoon. Aps a fase de desenvolvimento, a soluo de integrao de dados normalmente
mudou-se para um ambiente de servidor, seja para testes ou de produo
finalidades.
No servidor, transformaes e empregos no so geralmente lanados utilizando
uma ferramenta grfica do usurio, como Spoon. Em vez disso, as medidas so tomadas para
assegurar a
execuo automatizada. Dependendo dos requisitos da integrao de dados
soluo, a execuo pode ser agendada ou conduzido de maneira contnua por
algum processo em segundo plano. De qualquer forma, o administrador deve agir no sentido
de tomar as
soluo fora do ambiente de desenvolvimento para coloc-lo para trabalhar em seu alvo
plataforma. Ns nos referimos a este processo como implantao.
H mais a implantao do que instalar o software e configurao
de execuo automtica. As medidas devem ser postas em prtica para permitir que o
sistema
administradores para verificar rapidamente, e se diagnosticar, necessrio e reparao, o
soluo de integrao de dados. Por exemplo, deve haver alguma forma de notificao
para confirmar se a execuo automtica do ocorrido. Alm disso, os dados
devem ser reunidos e analisados para medir o quo bem os processos so
executados. Ns nos referimos a essas atividades como monitoramento.
Neste captulo, apresentamos uma viso geral dos recursos e ferramentas que voc pode
usar para organizar a implantao e acompanhar sua soluo PDI. O objetivo do presente
captulo no para ditar como voc deve administrar as suas solues de PDI. Em vez disso,
Neste captulo deve fornecer informaes suficientes para tomar decises informadas
decises sobre quais ferramentas e estratgias de melhor atender s suas necessidades.
309
310 Parte III Integrao de dados e ETL
Configuration Management
Empregos e transformaes dependem de recursos como diretrios do sistema de arquivos,
arquivos e servidores de banco de dados. Durante o desenvolvimento, esses recursos so
normalmente
reservados para fins de desenvolvimento. Por exemplo, em vez de apontar um
transformao dos sistemas de fonte real, de desenvolvimento ou verso de teste do
o sistema de origem usado. Da mesma forma, a sada da transformao dirigido
para uma verso de desenvolvimento ou teste do sistema de destino.
Para a implantao, todos os elementos que so especficos para o ambiente de
desenvolvimento
mento tambm devem funcionar correspondente no sistema de destino. Em alguns casos,
pode ser possvel fazer isso sem alterar a soluo. Por exemplo, em
no caso de recursos de arquivo, pode ser possvel usar consistentemente caminhos relativos,
que so resolvidos dinamicamente em tempo de execuo. Em outros casos, algo
deve acontecer para apontar os componentes da soluo de integrao de dados para o
recursos adequados para o ambiente de destino.
Uma maneira de oferecer os recursos certos para a plataforma alvo modificar
a transformao ou o trabalho em conformidade. No entanto, este no um muito bom
soluo. Pode ser simplesmente muito trabalho para substituir todas as referncias ao banco
de dados
servidores e coisas do gnero em toda a soluo. Mais importante, h uma visvel
possibilidade de modificao de um emprego ou transformao ir introduzir erros.
A melhor maneira de prever os recursos adequados de alguma forma parametrizar todos
componentes que so dependentes do ambiente. Desta forma, estes dados
pode ser fornecido em tempo de execuo, sem alterar o trabalho ou a transformao em si.
Ns nos referimos a todos os dados dependentes de ambiente como o configurao. O
processo de
responsvel por manter esses dados e fornecendo-lhe a soluo chamada
gerenciamento de configurao. Existem algumas construes que permitem a configurao
gesto:
Variveis de configurao empregos e transformaes
conexes JNDI para o gerenciamento de conexes de banco de
dados
Um repositrio para gerenciar vrios desenvolvedores trabalhando nos mesmos dados
soluo de integrao, e tambm para gerenciar as conexes de banco de dados
Esses tpicos so discutidos em detalhe no restante desta seo.
Usando variveis
A maioria das propriedades de etapas, as entradas de emprego e conexes de banco de
dados pode ser param-
eterized usando variveis. As variveis so espaos reservados para os valores. Durante a
execuo,
os valores reais para essas variveis se torna conhecido, ea ocorrncia de
cada varivel substitudo pelo seu valor de tempo de execuo. Para ser mais preciso, o real
substituio da varivel com o valor ocorre na inicializao da etapa
Captulo 11 Implantando Solues Pentaho Data Integration 311
fase, e permanece fixa durante a fase de execuo (a inicializao e
fases de execuo so explicados no Captulo 10 na seo''CREATE TABLE
dim_date: Utilizando o Execute SQL''Passo Script).
NOTA etapas de transformao, muitas vezes permitir que as propriedades de ser parametrizada
por
reas especficas do fluxo de entrada. Embora este dispositivo pode s vezes ser usados
para a gesto de configurao, muitas vezes melhor manter uma clara separao
entre a transformao de dados reais (que o domnio dos campos) eo
configurao do ambiente especfico (o que melhor feito com variveis).
Variveis em propriedades de configurao
Nos dilogos de configurao, um cone de sinal vermelho minsculo dlar aparece no lado
direito
das propriedades onde as variveis podem ser inscritas. Este cone mostrado na
Figura 11-1.
Figura 11-1: O cone varivel
Para se referir a uma varivel, voc pode usar uma sintaxe semelhante ao UNIX ou
variveis de ambiente Windows. O cdigo a seguir mostra duas alternativas
maneiras de se referir a uma varivel chamada foo:
$ {Foo}
%%%% Foo
Isso perfeitamente vlido para incorporar referncias variveis dentro de uma propriedade
literal
valor. Por exemplo, a Figura 11-2 mostra a janela de configurao de um arquivo de texto
etapa de sada que usa a varivel os_user para parametrizar parte do arquivo
caminho do sistema para o arquivo de sada.
Figura 11-2: Incorporar referncias variveis nos valores dos imveis
312 Parte III Integrao de dados e ETL
NOTA Se voc no quer o tipo da varivel, voc tambm pode usar o teclado
atalho Ctrl + Barra de espao, que traz uma lista onde voc pode selecionar o desejado
varivel. Por exemplo, a Figura 11-3 mostra a lista de opes de todas as variveis disponveis.
Observe a dica exibir o valor atual da varivel.
Figura 11-3: Escolher as variveis de uma lista
Variveis de Usurio
Como o nome implica, variveis definidas pelo usurio so criadas pelo usurio. A os_user
varivel mostrado na Figura 11-2 um exemplo tpico de tal definidos pelo usurio
varivel. Variveis definidas pelo usurio obter o seu valor em uma das seguintes
maneiras:
As transformaes podem criar e / ou alterar o valor das variveis usando um
Definir Variveis etapa.
Um conjunto de variveis de entrada de emprego esto disponveis para ajustar as
variveis a partir de um trabalho.
Em Spoon, voc pode definir valores padro das variveis por posto de trabalho e por
transfor-
maes na grade que aparece no canto inferior direito do Executar uma
transformao e executar um trabalho de dilogos. Na fase de desenvolvimento, esta
permite a utilizao de variveis, mesmo quando a execuo do trabalho ou de
transformao
autnomo dentro Spoon.
Em Spoon, voc pode criar e atribuir variveis globais no Envi Set-
variveis ente dilogo. Voc pode chamar isso de dilogo atravs do menu Editar
Ambiente valores definidos. Usando Ambiente MenuEditShow
Valores, voc pode inspecionar todas as variveis disponveis e seus valores. Ambos
desses dilogos so teis para o desenvolvimento ou testes mltiplos empregos ou
transformaes que dependem de um conjunto comum de variveis.
inscrita como <NAME> = Valor par na
kettle.properties arquivo. Este arquivo reside no . Chaleira Diretrio
sob o diretrio home do usurio.
Variveis pode ser
Captulo 11 Implantando Solues Pentaho Data Integration 313
NOTA Para sistemas baseados em UNIX, a localizao da kettle.properties
/ Chaleira home / <user> /..
Para o Windows, esta geralmente C: \ Documents and Settings \ <usurio> \ chaleira..
variveis definidas pelo usurio que so definidas no kettle.properties arquivo tem
escopo global. Isso significa que eles sejam acessveis em todos os postos de trabalho e
transformaes. Para
Defina a entrada de passo variveis e trabalho, o escopo pode ser definido na varivel
coluna mbito tipo, conforme mostrado na Figura 11-4.
Figura 11-4: Escolhendo uma varivel do escopo de uma etapa Definir Variveis
Os escopos disponveis so:
Vlido no trabalho de pai-Este o espao est disponvel tanto para o conjunto de
variveis
etapa de transformao, bem como a entrada de emprego. Variveis com este escopo
esto disponveis no trabalho que contm a entrada de transformao ou de emprego
, respectivamente. Outras transformaes constantes que o trabalho tambm pode se
referir a
da varivel.
Vlido no emprego atual-Este o espao est disponvel para o conjunto de variveis
Emprego entrada. Variveis com este escopo esto disponveis no trabalho que
contenham
e as transformaes e os trabalhos nela. Funcionalmente neste mbito
equivalente ao Vlido no mbito de trabalho dos pais disponveis no conjunto
Variveis etapa de transformao.
Vlido no pai-av de emprego Este o espao est disponvel para o conjunto
Variveis etapa de transformao. Variveis com este escopo esto disponveis
no trabalho que contm essa transformao (o pai) e tambm no
trabalho que contm esse trabalho (pai-av). Todos os trabalhos e as transformaes
contido pelo trabalho de avs pode fazer referncia ao valor, tambm.
Vlido na raiz de emprego Variveis com este escopo esto disponveis no
alto nvel de emprego e todos os trabalhos e as transformaes directa ou
indirectamente
314 Parte III Integrao de dados e ETL
continha referncias nele pode varivel. Este espao apoiada por
tanto passo da transformao e da entrada de emprego.
Vlido na Mquina Virtual Java (JVM)-O varivel um verdadeiro global
varivel e visvel a todos os trabalhos e as transformaes que acontecem a rodar
na mesma instncia da mquina virtual Java. Este espao suportada
tanto pela etapa de transformao e da entrada de emprego.
ATENO Use variveis com o escopo da mquina virtual com cautela. Em cenrios
onde uma mquina virtual Java utilizado para executar vrias instncias do PDI
motor, como durante a execuo dentro do servidor de BI Pentaho, todos os trabalhos em execuo
referem-se
para a mesma instncia da varivel. Isso, certamente exclui qualquer utilizao
caso em que o valor da varivel que precisa ser mudado. Se o valor for
mudou, todos os trabalhos que fazem referncia a varivel quase que imediatamente ver o novo valor
da varivel.
Variveis internas
Built-in variveis refletem propriedades das coisas que tm a ver com a execuo
ambiente de tempo e Pentaho Data Integration si. Essas variveis so
pr-definidos, e os valores so automaticamente preenchido pelo motor.
Built-in variveis incluem o nome da etapa de transformao de corrente, o
Local da transformao em curso, bem como o nome do sistema operacional.
Variveis Exemplo: Conexes de banco de dados dinmico
Para ilustrar como realmente usar variveis, vejamos um exemplo prtico
que ilustra como voc pode usar variveis para gerenciar a conexo de banco de dados
configurao. No exemplo, as variveis so utilizadas para configurar o MySQL
conexo, mas os mesmos princpios se aplicam a qualquer conexo com o banco.
1. Criar uma nova transformao e armazen-lo como set_variables em um diretrio
no sistema de arquivos. Adicione um passo Gerar linhas da categoria de entrada.
Configure o passo, adicionando o HOST,DB,PORT,USURIO,SENHAE
TABELA variveis, como mostrado na Figura 11-5. Observe os valores inscritos no
Valor padro da coluna da grade e da definio do tipo varivel alcance.
Executar a transformao uma vez, isso ir criar as variveis do Spoon
ambiente. Isso torna mais conveniente para se referir a essas variveis
a partir de outras transformaes e trabalhos que voc pode estar projetando.
NOTA Observe que no set_variables etapa, a senha inserida na plancie
texto. Isto constitui um risco de segurana, como qualquer um que pode ler o
arquivo de transformao tambm pode ler a senha. Este risco de segurana podem ser mitigados
usando senhas ofuscado. Ofuscado senhas so discutidos em mais
detalhes na seo''Usando senhas de banco de dados ofuscado''mais adiante neste captulo.
Captulo 11 Implantando Solues Pentaho Data Integration 315
Figura 11-5: Definindo variveis
2. Criar uma outra transformao chamada count_rows e armazen-lo no mesmo
localizao como set_variables transformao. Adicionar um banco de dados MySQL
conexo chamada Fonte e usar referncias variveis para a conexo
propriedades, como mostrado na Figura 11-6.
Figura 11-6: Uma conexo de banco de dados variveis
Note-se que todas as propriedades no quadro Configuraes so parametrizados
usando
referncias de variveis. (A Senha valor da propriedade mostrado como uma srie
316 Parte III Integrao de dados e ETL
de asteriscos, embora o seu valor realmente $ {PASSWORD}.) Teste o
conexo. Em caso de falha, a causa mais provvel que voc se esqueceu de
executar o set_variables transformao (ou talvez um erro de digitao ou
mais dos valores).
NOTA Embora as propriedades da conexo pode ser parametrizado com variveis, voc
no pode usar variveis para definir dinamicamente o tipo de conexo com o banco.
No entanto, existe uma soluo para essa limitao que possa atender s suas necessidades.
Voc pode criar uma conexo de banco de dados genricos, e usar variveis para parametrizar
o Custom URL de conexo e Custom Class Driver propriedades de nome. Este
permite que voc alterne entre, digamos, um banco de dados MySQL para um banco de dados Oracle
dependendo dos valores das variveis.
Esta soluo pode no ser adequado em todos os casos. Em uma conexo JDBC especfico,
o tipo de configurao de banco de dados SQL influncias que dialeto usado pelo PDI para
comunicar ao banco de dados. Alguns passos se comportam de maneira diferente dependendo do
recursos do banco de dados, e por essa razo alguma funcionalidade no est disponvel
para conexes de banco de dados genricos.
3. D um passo de entrada de tabela e configur-lo para usar o Fonte conexo.
Digite a seguinte instruo SQL:
'$ {Tabela}' SELECT table_name como
, COUNT (*) AS row_count
FROM $ {tabela}
A varivel TABELA aparece duas vezes na instruo SQL: uma vez como no
DA clusula, quando o seu valor ser utilizado como identificador de tabela, e uma vez
entre aspas simples no SELECT lista, onde usado como uma string
literal. Certifique-se de verificar as variveis substituir no script? caixa de forma que
estes
instncias de uma varivel so substitudos com o valor da TABELA varivel
em tempo de execuo.
ATENO Na instruo SQL anterior, as variveis so substitudas por suas
valor quando a transformao inicializado. Devido a substituio de variveis
basicamente, uma ao de substituio de texto simples, pode levar a resultados inesperados quando
us-lo para gerar SQL (ou script em geral). Se o valor da TABELA varivel
no um identificador simples, mas contm caracteres que tm um significado de suas prprias
na linguagem SQL, um erro de sintaxe poderia ocorrer. No pior caso, a
instruo SQL resultante pode mesmo ser prejudicial e entregar o resultado errado ou
apagar acidentalmente dados.
Por esta razo, deve-se evitar o uso de variveis no script, se possvel. Para a Tabela
passo de entrada, muitas vezes voc pode usar parmetros ao invs de variveis. Os parmetros so
espaos reservados para o valor de expresses, e so indicados com um ponto de interrogao. Eles
Captulo 11 Implantando Solues Pentaho Data Integration 317
pode aparecer em qualquer lugar onde voc normalmente pode ter um valor de expresso como um
literal ou uma referncia de coluna. No caso do exemplo anterior, a varivel em
o SELECT lista podem ter sido omitidas, usando um parmetro para que a primeira parte
da declarao seria:
SELECT? AS table_name
4. Adicionar um texto passo a sada do arquivo, e adicionar um salto de entrada da tabela
entrada em degrau. Configure o passo e editar o Nome do arquivo propriedade assim que l
Internal.Transformation.Filename.Directory $ {} / $ {tabela}
como mostrado na Figura 11-7. Observe as duas variveis separadas por uma barra. A
primeira uma varivel interna que lhe permite construir caminhos de sistema de
arquivo relativo
para o local de transformao. A segunda uma varivel definida pelo usurio
que foi criado quando voc executou o set_variables transformao.
Figura 11-7: arquivo de sada varivel
DICA Voc pode usar o atalho Ctrl + Barra de espao do teclado para abrir uma lista dos actuais
variveis e selecion-los. Conclua a configurao, adicionando o table_name
e row_count campos, pressionando o boto Get Campos na guia Campos.
5. Criar um emprego e guarde-o no mesmo local que as transformaes. Adicionar
uma entrada de trabalho START e duas entradas de emprego Transformao. Configurar
um
das etapas de transformao. Renome-lo para set_variables e modificar o
transformao propriedade filename para que ele l
$ {} Internal.Job.Filename.Directory set_variables.ktr /
Note que este semelhante ao Nome do arquivo configurao para o arquivo de texto-para
fora
colocado na etapa count_rows transformao: esta varivel tem o efeito de
fornecendo um caminho de sistema de arquivo relativo ao do trabalho atual. Criar um
hop
a partir da entrada START para o set_variables Emprego entrada. Renomeie o outro
entrada de transformao do emprego para count_rows e aponte para o count_rows
318 Parte III Integrao de dados e ETL
transformao. D um salto que vai do set_variables entrada para o trabalho
count_rows Emprego entrada. Seu trabalho agora deve ser semelhante Figura 11-8.
(Note que na figura, o contedo das entradas do trabalho de transformao
Tambm so mostrados a seguir o trabalho real. Isso adicionado para o
esclarecimento sobre
tela, o trabalho se parece com a metade superior da Figura 11-8.) Execute o trabalho.
Figura 11-8: Um trabalho com uma conexo de dados variveis
Neste exemplo, voc criou um trabalho que chama duas transformaes. O primeiro
transformao utiliza o conjunto de variveis passo para criar um nmero de definido pelo
usurio
variveis. Essas variveis, em seguida, tornou-se disponvel a nvel do trabalho de chamada.
A transformao subsequente pegou as variveis utilizadas e seus valores
para configurar uma conexo de banco de dados. Alm disso, os caminhos de arquivo foram
criados em relao
para o local do trabalho e arquivos de transformao usando as variveis.
Mais sobre a etapa Definir Variveis
Do ponto de vista do gerenciamento de configurao, claro que o uso de
variveis internas contribui para a facilidade de gerenciamento de configurao. Relativa
eliminar caminhos hard-wired caminhos do emprego e transformaes, tornando-
mais fcil a transferncia de arquivos a partir do ambiente de desenvolvimento para a
implantao
ambiente sem quebrar a soluo de integrao de dados.
Pode ser menos claro como as variveis definidas pelo usurio criadas pelo conjunto
etapa Variveis melhorar a gesto de configurao. No exemplo, parece
as propriedades de configurao para a conexo do banco de dados ainda so codificados
dentro de uma transformao, eles simplesmente se mudaram de uma transformao
para o outro. No entanto, ainda uma melhoria se voc considerar que
transformaes mais como row_count podem ser adicionados ao trabalho. Estes
outras transformaes podem usar as mesmas variveis para definir o seu banco de dados
conexes no exatamente da mesma maneira, permitindo que todos os parmetros de conexo
para
todo o trabalho a ser alterada pela transformao de edio de um nico.
Assim, o conjunto de variveis passo pode ser usado como um nico ponto de definio
para
parametrizar recursos como conexes de banco de dados para um trabalho inteiro, ou
nomes de arquivos e diretrios. Embora esta seja uma boa coisa, ainda indesejvel
Captulo 11 Implantando Solues Pentaho Data Integration 319
que o set_variables transformao teria de ser editado para ajustar o
transformao para trabalhar em outro ambiente.
Felizmente, o conjunto de passo variveis no se limita aos valores padro usados
no exemplo. Pelo contrrio, o modo normal de operao a utilizao do fluxo de entrada
Variveis da etapa Definir como preencher os valores. Desta forma, os dados de configurao
pode
ser armazenados em um recurso externo para qualquer trabalho ou transformao. Isso
permite que o
configurao a ser gerenciado usando arquivos ou tabelas de dados ou quaisquer dados
fonte pode ser lido por Pentaho Data Integration.
Defina variveis Gotchas Etapa
Um ponto importante a lembrar que o conjunto etapa de transformao de variveis
existe para que as transformaes podem transmitir dados de configurao para os empregos
e
outras transformaes. Voc no deve tentar usar o conjunto de variveis para o passo
transmitir informaes dentro de uma mesma tarefa, e / ou transformao.
Voc no pode de forma confivel as duas variveis definir e utilizar dentro de um mesmo
trans-
formao, porque a substituio de varivel ocorre na fase de inicializao.
Na fase de execuo, o valor permanece fixo at o trabalho ou a transformao
est terminado. Se voc achar que voc gostaria de definir as variveis usando dados de um
transformao para configurar as etapas subseqentes da mesma transformao, a
soluo criar um novo trabalho com duas transformaes. Dessa forma, voc pode definir
as variveis na primeira transformao, e us-los na outra.
Lembre-se tambm que o conjunto de variveis etapa exige exatamente uma linha de
entrada.
Voc pode achar que contra-intuitivo que o conjunto de variveis etapa no suporta
vrias linhas de entrada, mas tente imaginar como seria trabalhar nos casos em que
a transformao parte de um trabalho. O nico trabalho que considera a varivel como
depois
a transformao inteira executado. O trabalho no pode ver qualquer um dos valores da
variveis poderiam ter tido durante a transformao, ela s pode ver o que
valor foi modificada pela ltima atribudo varivel.
Usando conexes JNDI
Na seo anterior, voc aprendeu a usar as variveis para a configurao
de gesto. Embora as variveis, a soluo mais flexvel para lidar
com mltiplas configuraes, eles tm a desvantagem de que os postos de trabalho e
transformaes precisam ser projetado especialmente para se beneficiar deles.
Existe uma forma alternativa para gerenciar as configuraes de conexo do banco de
dados.
Voc pode considerar usar JNDI em vez de conexes JDBC puro.
O que o JNDI?
JNDI (''''Gindy pronunciado) um acrnimo para Java Naming and Directory
Interface. JNDI uma forma geral, para atribuir um nome para se referir a um recurso muito
muito qualquer tipo, tais como conexes de banco de dados, URLs, arquivos e classes.
320 Parte III Integrao de dados e ETL
NOTA JNDI parte da plataforma Java. muito usado em muitos Java
aplicaes para resolver problemas de configurao. Por exemplo, uma parte considervel da
arquivos de configurao do servidor de BI Pentaho usar JNDI para gerenciar os componentes. Em
Alis, se voc deseja executar suas transformaes e emprego no interior do Pentaho BI Server,
JNDI deve ser a sua forma preferida de criar conexes PDI, como voc pode gancho
nas conexes JNDI configurada no nvel do servidor.
Uma discusso completa sobre JNDI est fora do escopo deste livro. Se voc gosta, voc pode descobrir
mais sobre JNDI no site da Sun: http://java.sun.com/products/jndi/.
No mbito do PDI, uma conexo JNDI simplesmente uma chamada de conexo JDBC
para que os detalhes da conexo exata so armazenados fora das transformaes
e do emprego. Sempre que as transformaes e os trabalhos devem se referir ao JNDI con-
interligao, fazem isso apenas usando o nome da conexo. Sempre que o real
conexo com o banco de dados precisa ser criada, o nome resolvido para o
dados de configurao, que so realmente utilizados para instanciar a conexo.
Criando uma conexo JNDI
Para criar uma conexo JNDI, usar um editor de texto para abrir o arquivo jdbc.properties
localizado no simples jndi diretrio sob o diretrio home PDI.
NOTA A jdbc.properties arquivo simplesmente parte de um JNDI particular
implementao fornecida pelo PDI. Outras aplicaes, tais como o BI Pentaho
servidor, tm implementaes mais avanadas JNDI, que exigem uma diferente
configurao do procedimento.
Muito provavelmente voc vai descobrir que o arquivo contm um nmero de linhas j. Voc
necessidade de adicionar linhas para configurar o nome da classe do driver, JDBC seqncia
de conexo,
nome de usurio e senha, e uma linha genrica para identificar que este recurso JNDI
uma conexo de dados. A sintaxe geral mostrada na Lista 11-1.
Listando 11-1: Sintaxe para conexes JNDI em jdbc.properties
<jndi-name> / tipo = javax.sql.DataSource
<jndi-name> motorista / = totalmente qualificado da classe JDBC driver name>
<jndi-name> / url = <Driver e conexo connectstring> especficas
<jndi-name> / user = usurio do banco de dados>
<jndi-name> user / password = banco de dados>
DICA Se voc tiver dificuldade para descobrir os valores exatos para o nome da classe do driver
e / ou a seqdeconexao, voc pode achar esta dica til. Primeiro, crie um ordinrio
JDBC de conexo na caixa de dilogo Database Connection. (Este processo descrito em
detalhes no Captulo 9.) Em seguida, pressione o boto Lista de recursos na parte inferior do
Captulo 11 Implantando Solues Pentaho Data Integration 321
Database de dilogo Connection. Isto traz uma lista de propriedades para o banco de dados
conexo. Olhe para as propriedades nomeadas Classe Driver e URL. Figura 11-9
mostra um exemplo de um recurso de lista.
Figura 11-9: Determinao da classe do driver JDBC e URL com a lista de recursos
Listando 11-2 mostra que cinco linhas como pode parecer para criar um JNDI
conexo chamada wcm para se conectar ao wcm banco de dados.
Listagem 11-2: Um exemplo de conexo JNDI para o banco de dados WCM
#
# Uma conexo JNDI para o banco de dados chamado WCM wcm
#
wcm / tipo javax.sql.DataSource = # define uma conexo JNDI DB
wcm / driver com.mysql.jdbc.Driver = # nome do driver de classe Java
url wcm / = jdbc: mysql: / / localhost / mca # JDBC URL (seqdeconexao)
wcm / user = # wcm nome de usurio do banco de dados
senha wcm / mca = # senha para o usurio do banco de dados
ATENO Esteja ciente de que a senha do banco de dados armazenada em texto simples
jdbc.properties.
Depois de adicionar os detalhes necessrios para a jdbc.properties arquivo, voc ainda precisa
para criar a conexo no nvel de transformao ou de trabalho. Neste caso, voc
necessidade de selecionar o tipo apropriado de conexo ao MySQL (que esta informao
no faz parte da configurao do JNDI em jdbc.properties), Defina o tipo de acesso
a JNDI, em seguida, digite o nome do JNDI.
Conexes JNDI e Implantao
Se voc sempre usam conexes JNDI, voc no precisar alterar o seu emprego
e transformaes, nem preciso passar o parmetro adequado
valores durante a execuo. Tudo que voc precisa fazer garantir que tanto o
desenvolvimento
ambiente e do ambiente de implantao esto configurados para suportar todos os
utilizados nomes JNDI.
322 Parte III Integrao de dados e ETL
Por exemplo, se voc deseja executar tarefas e transformaes no ambiente PDI-
mento da plataforma de implantao, voc precisar modificar o jdb.properties
arquivo l em conformidade. Se a sua plataforma de distribuio consiste no Pentaho
servidor de BI, voc vai precisar usar o console de administrao para configurar o
adequadas nomes JNDI em que acabar tambm.
Trabalho com o Repositrio PDI
Virtualmente todos os componentes em Pentaho Data Integration pode interagir com um
repositrio. O repositrio um banco de dados relacional que utilizado para armazenar
empregos, transformaes e objetos, como conexes de banco de dados.
Usando um repositrio pode ajud-lo a organizar o desenvolvimento, bem como implantar-
mento de solues de integrao de dados. O repositrio pode ser utilizado por mltiplos
desenvolvedores simultaneamente, formando assim um local de armazenamento centralizado.
Porque
o repositrio apenas um banco de dados, pode ser feito como um, e os relatrios podem ser
correr contra ele.
Usando um repositrio tambm simplifica o gerenciamento de configurao de banco de
dados
conexes. No repositrio, conexes de banco de dados so armazenados como separar
objetos que podem ser reutilizados em vrios trabalhos e transformaes.
O restante desta seo descreve como usar o repositrio quando
trabalhar com ferramentas Pentaho Data Integration, como colher de cozinha, e
Pan. A seo''rodando dentro do Pentaho BI Server''mais adiante neste captulo,
descreve como usar um repositrio de PDI para a execuo de tarefas e transformaes como
seqncia de componentes de ao.
Criando um Repositrio PDI
Voc pode criar um novo repositrio utilizando a caixa de dilogo Selecione um repositrio
Spoon.
Este dilogo aberta por padro quando voc inicia o Spoon, a menos que voc modificou o
opes para evitar esse comportamento. Voc pode controlar isso usando o Show repositrio
na caixa de dilogo de inicializao na janela de opes. Voc tambm pode invocar o
dilogo a partir do repositrio Spoon. Isto feito atravs dos seus principais
RepositoryConnect ao repositrio ou usando themenu usando Menu
atalho do teclado Ctrl + R. O repositrio de dilogo mostrada na Figura 11-10.
Voc pode criar um novo repositrio, premindo o boto Novo no repositrio
dilogo. Uma caixa de dilogo informaes do repositrio intitulado abre. Neste dilogo, voc
deve
especificar a conexo do banco de dados para se conectar ao repositrio.
conexes de banco de dados para o repositrio no so diferentes de Pen-ordinria
Taho banco de dados conexes Integrao. No h requisitos especiais
para um determinado RDBMS, voc deve ser capaz de usar todos os produtos populares,
como o Microsoft SQL Server, MySQL, Oracle, PostgreSQL e sem nenhum problema. Veja
Captulo 9 para obter informaes sobre como criar conexes de banco de dados.
Captulo 11 Implantando Solues Pentaho Data Integration 323
Figura 11-10: O dilogo repositrio
NOTA No momento da redao deste artigo, no possvel usar o SQLite como o
sistema de banco de dados subjacente. Se voc est procurando uma soluo de banco de dados
integrado
para o repositrio, voc pode tentar H2 ou Derby.
Quando voc seleciona a conexo de banco de dados, clique no boto Criar para
criar um novo repositrio. Ou, para atualizar um repositrio existente, clique no
Boto Upgrade. No entanto, h uma srie de coisas a considerar
Ao atualizar um repositrio existente. Portanto, a atualizao coberto por um
subseo mais adiante neste captulo.
NOTA Criando o repositrio envolve a criao de tabelas de banco de dados. Voc deve
assegurar a conta especificada na conexo com o banco tem privilgios suficientes
para esta tarefa.
Depois de confirmar que voc realmente deseja modificar o banco de dados, o repositrio
as tabelas so criadas no banco de dados especificado. Note que isto no ir criar um
novo esquema. As tabelas do repositrio so criados no esquema definido no
nvel conexo.
Conectando-se ao repositrio
Para utilizar um repositrio para ler e guardar solues PDI, primeiro voc deve
estabelecer uma conexo a um. Isso feito especificando as credenciais de um
repositrio do usurio na caixa de dilogo Repository (ver Figura 11-10). Especifique o nome
324 Parte III Integrao de dados e ETL
do repositrio do usurio no campo Login ea senha nas
de campo. Em seguida, clique em OK.
NOTA Credenciais para o repositrio do usurio so diferentes dos dados da conta
associado com a conexo do banco de dados que usado para o repositrio.
Um recm-criado repositrio vem com dois usurios pr-definidos:
A admin usurio (a senha padro: admin) Tem privilgios totais para o
repositrio, e deveriam ser usados principalmente para criar novos usurios do
repositrio de
para os desenvolvedores ETL.
A convidado usurio (a senha padro: convidado) S pode ler a partir do reposicionamento-
histria, e deve ser usado para explorar o repositrio.
Normalmente, voc poderia criar outros usurios e configurar os para executar
tarefas especficas com o repositrio. Repositrio de gerenciamento de usurios descrito
em detalhes na seo''Repositrio Administrando Contas de Usurio''mais adiante neste
captulo.
Depois que uma conexo a um repositrio criado, automaticamente ser Spoon
us-lo. Por exemplo, quando conectado a um repositrio, as aes Salvar Arquivo
Abrir Arquivo e correspondem a armazenar e carregar a partir do repositrio.
Quando no h nenhuma conexo ativa dessas aes padro para armazenamento e
carregamento
arquivos do sistema de arquivos.
Voc sempre pode desconectar-se do repositrio, escolhendo o Disconnect
repositrio opo do menu Repositrio, ou usando o atalho do teclado
Ctrl + D.
NOTA Dentro Spoon, s vezes pode ser confuso quando voc tem que trabalhar com
mltiplos repositrios. Para descobrir rapidamente se voc estiver conectado e ver que
repositrio que voc est conectado, olhar para o ttulo da janela do aplicativo principal
janela. Se voc estiver conectado a um repositrio, o ttulo diz:
Spoon - [<Repositrio > Nome] [<repository user>]
onde <Repositrio > Nome representa o nome do repositrio, e
<Repositrio > Usurio representa o repositrio do usurio.
Conectando-se automaticamente um repositrio padro
Voc pode achar que inconveniente para explicitamente logon no repositrio. Se voc
geralmente trabalham com apenas um nico repositrio, voc pode configurar Pentaho
Integrao de Dados para se conectar automaticamente a um padro especfico repositrio.
Este
configurao para o repositrio padro ser usado por Spoon, mas tambm a outros
Pentaho Data Integration ferramentas.
Para configurar o login automtico para o repositrio padro, use um editor de texto
para abrir a kettle.properties arquivo localizado na . Chaleira diretrio abaixo
seu diretrio home. Em seguida, adicione as linhas para as variveis KETTLE_REPOSITORY,
Captulo 11 Implantando Solues Pentaho Data Integration 325
KETTLE_USERE KETTLE_PASSWORDE atribuir valores para o nome do
repositrio, o nome do repositrio do usurio ea senha do usurio. Veja
Listagem 11-3 para um exemplo.
Listagem 11-3: kettle.properties Modificar para se conectar automaticamente a um repositrio
# Este .kettle <user-home> / kettle.properties
#
# Automaticamente login como admin / admin no PDI_REPO Repositrio
#
KETTLE_REPOSITORY = PDI_REPO
KETTLE_USER = admin
KETTLE_PASSWORD = admin
Note que o valor de KETTLE_REPOSITORY deve ser o nome de um repositrio
encontrado na repositories.xml arquivo, e os valores para KETTLE_USER e
KETTLE_PASSWORD deve corresponder a um repositrio do usurio do referido depsito.
ATENO A kettle.properties arquivo em texto puro. Embora resida no
diretrio oculto . Chaleira, ele ainda pode ser lido por qualquer pessoa que pode acessar o arquivo.
Como as credenciais repositrio so armazenados sem criptografia, voc deve estar ciente
que automaticamente se conectar ao repositrio desta forma constitui um risco de segurana.
O Explorer Repositrio
Se voc estiver conectado ao repositrio, voc pode abrir o Repository Explorer para
analisar e gerenciar seu contedo. Voc pode chamar o Repository Explorer por
escolher a opo Explorar repositrio no menu Repositrio, ou usando
o atalho Ctrl + E. O repositrio do Windows Explorer mostrado na
Figura 11-11.
Figura 11-11: O Explorer Repositrio
326 Parte III Integrao de dados e ETL
O Repository Explorer exibe o repositrio em uma rvore. Para trabalhar
com um item de repositrio, clique com o boto direito do mouse para abrir um menu de
contexto. A partir da,
escolher as medidas adequadas. Desta forma, voc pode:
Gerenciar conexes de banco de dados ligaes so armazenadas em um
nvel mundial no repositrio e podem ser compartilhados por todas as transformaes e
postos de trabalho no mesmo repositrio. O menu de contexto das conexes de banco
de dados
n lhe permite criar novas conexes. O menu de contexto para o indivduo
conexes permite que voc editar ou excluir a conexo correspondente.
Gerenciar diretrios do repositrio-In repositrio, transformaes e
os trabalhos so sempre armazenados em algum diretrio, bem como os arquivos so
armazenados em um
diretrio especfico no sistema de arquivos. Isso til para estruturar os dados
soluo de integrao, mantendo elementos relacionados. H uma sepa-
taxa de rvore de diretrios de ambos os trabalhos e transformaes. Em ambos os
casos, o
diretrio raiz built-in e nomeado /(Barra do personagem). Voc pode
use o menu de contexto de diretrio para criar, renomear e excluir diretrios.
Exportao de empregos e transformaes para arquivo Escolher Exportao ou
empregos
transformaes salvar cada trabalho individual ou transformao de um set-
devem ficar separados . KJB ou . KTR arquivo, respectivamente. Essas aes tambm
recursivamente exportao
a estrutura de diretrios eo contedo a jusante do diretrio selecionado.
Despejo de um diretrio e todo o seu contedo em um nico arquivo XML-Voc
pode fazer isso escolhendo a exportar todos os objetos de uma opo de arquivo XML.
Isto muito conveniente no caso de necessidade de implantar uma filial de seu PDI
solues para outro repositrio. Voc tambm pode copiar a todo o repositrio
para tal um arquivo XML usando o menu Arquivo do Explorer Repositrio
janela. Neste menu, voc tambm vai encontrar uma opo para importar o contedo
de tal arquivo de despejo de um XML.
Gerenciar contas de usurios-Este tema discutido em mais detalhe no
subseo seguinte.
DICA Voc tambm pode exportar postos de trabalho e as transformaes do arquivo principal.
Seleo
Menu Arquivo Exportar todos os recursos vinculados a XML geralmente a mais conveniente
opo, uma vez que a exportao no somente o trabalho atual / transformao, mas tambm todos
transformaes e empregos em que ele dependente. Ao escolher esta opo,
voc ser solicitado a digitar a localizao de um Zip. arquivo. Depois de armazenar todos os trabalhos
ligados
e transformaes no Zip. arquivo, uma caixa de dilogo aparece para informar de como abrir
trabalhos individuais ou transformaes armazenados no Zip. arquivo (sem descompactar primeiro
o arquivo). Este dilogo mostrado na Figura 11-12.
Administrando Contas de Usurio do Repositrio
J mencionamos que, por padro, um novo repositrio fornece duas usurio
contas: uma admin conta para a administrao do repositrio, e uma convidado conta
Captulo 11 Implantando Solues Pentaho Data Integration 327
repositrio para a introspeco. Para beneficiar do repositrio ao desen-
o uso das solues de integrao de dados, voc precisa criar contas de usurio de dados
desenvolvedores de integrao para que eles possam usar o repositrio para armazenar e
recuperar
seu trabalho.
Figura 11-12: Dilogo informando sobre o trabalho / exportao de transformao
Antes de explicar em detalhes como criar novos usurios, necessrio
considerar algumas coisas sobre o gerenciamento de conta de usurio em geral. Em
praticamente
todos os assuntos de gesto de conta de usurio, h duas coisas a considerar:
identificao e autorizao. Identificao se preocupa com verificao de que
um usurio do sistema corresponde ao usurio no mundo real. Autorizao tem que
fazer com que determina as aes que um usurio do sistema tem permisso para executar.
Para a identificao, todos os usurios do mundo real PDI Repositrio precisa de um nome
de usurio
e senha, que servem como credenciais. O usurio do mundo real esperado
manter a senha secreta para que o sistema pode-se supor que um pedido de login
composto por uma combinao especfica de usurio e senha, de fato,
identificar o usurio do mundo real.
Para autorizao, os usurios tm um associado perfil. Um perfil um chamado
recolha de permisses que determinam quais funcionalidades o utilizador pode aceder.
Em um recm-criado repositrio, trs perfis como j esto presentes:
Este administrador o perfil padro para o built-in admin usurio.
Ele permite ao usurio usar todas as funcionalidades do PDI, incluindo a conta do
usurio
de gesto.
Read-only-Este o perfil padro para o built-in convidado usurio.
Usurio Este perfil adequado para regular os desenvolvedores de integrao de
dados.
Para criar um usurio novo repositrio, abra o Repositrio Explorer e clique com o boto
direito
no n de usurio (ou um n de um usurio em particular) para abrir seu menu de contexto.
Escolha Novo usurio. Um pouco de dilogo intitulada Informaes do Usurio exibida. Na
Usurio de dilogo Informaes, voc deve especificar o nome de usurio no campo Login,
328 Parte III Integrao de dados e ETL
ea senha no campo Senha. Alm disso, voc pode usar o perfil
caixa de lista para atribuir um perfil para o novo usurio. Figura 11-13 mostra o Repositrio
Explorer, o usurio menu de contexto do n, eo Usurio de dilogo Informaes.
Figura 11-13: Criando um novo usurio repositrio
A utilizao de dilogo Informaes tambm permite que voc crie novos perfis
agrupamento de uma ou mais permisses individuais. No entanto, encontramos o built-in
Lista de perfis a ser suficiente para a maioria, seno todos, os casos de uso. O nmero real de
permisses bastante pequena, e as permisses individuais no so refinadas
suficiente para construir perfis muito mais significativa.
Cada usurio que est conectado ao repositrio pode usar o Edit usurio atual
opo no menu Repositrio de invocar as informaes do usurio de dilogo para modificar
sua prpria conta. Alternativamente, voc pode usar o atalho Ctrl + U.
Como PDI se mantm informado dos Repositrios
Quando as ferramentas de PDI devem se conectar a um repositrio particular, eles olham
na repositories.xml arquivo. Este arquivo reside no . Chaleira diretrio abaixo
diretrio home do usurio.
NOTA Para sistemas baseados no Windows, a localizao mais provvel :
C: \ Documents and Settings \ <usurio> \ chaleira.
Para sistemas baseados em UNIX, o local :
/ Home <user> /. Chaleira
Captulo 11 Implantando Solues Pentaho Data Integration 329
Listagem 11-4 mostra o que o contedo (parcial) da repositories.xml arquivo
poderia parecer.
Listagem 11-4: Contedo do arquivo repositories.xml
<? Xml version = "1.0" encoding = "UTF-8"?>
<repositories>
<connection>
<name> Repo Connection </ name>
<servidor> localhost </ servidor>
<tipo> MYSQL </ tipo>
<access> Native </ acesso>
<database> pdi_repository </ database>
<port> 3306 </ porto>
<username> root </ username>
<senha> criptografados 2be98afc86aa7f2e4cb79ce7dc781bed6 </ senha>
</ Conexo>
<repository>
<name> PDI REPO </ name>
<description/>
<connection> PDI Repository2 </ conexo>
</ Repository>
</ Repositrios>
Mencionamos o repositories.xml arquivo, pois voc pode querer copi-lo
para outro diretrio home do usurio, ou para outra mquina, por exemplo, o
implantao ambiente. Voc pode at precisar edit-lo manualmente para ajustar o
banco de dados de parmetros de conexo com o ambiente de implantao.
Como voc pode ver na listagem 11-4, o formato bastante auto-explicativo, e voc
no deve ter nenhum problema manualmente editando este.
Atualizando um repositrio existente
Se voc planeja usar o Pentaho Data Integration com um repositrio que foi criado
por uma verso anterior do Spoon, voc deve atualizar o repositrio. O processo para
atualizao de um repositrio existente idntico ao que, para criar um novo repositrio:
clique no boto Upgrade para atualizar um repositrio existente ou a criar
boto para criar um novo se ainda no existe.
ATENO Se voc pretende atualizar o repositrio, aconselhamos que voc
backup do repositrio de idade. Voc pode usar as suas ferramentas de banco de dados para criar um
ordinrio
banco de dados de backup.
Alm de fazer um backup do seu banco de dados, so fortemente aconselhados
para exportar todos os objetos do repositrio para um arquivo XML. Voc pode fazer isso
usando
Explorer Repositrio descrito anteriormente. Outra possibilidade usar o Pan
ferramenta de linha de comando, descritos mais adiante neste captulo. O benefcio da
exportao de todos os
330 Parte III Integrao de dados e ETL
objetos em um arquivo que ele permite importar rapidamente a soluo para um recm-
criado vazio repositrio. Isto torna mais fcil superar qualquer problema que voc
pode encontrar a atualizao do repositrio.
Em execuo no ambiente de implantao
Voc j viu vrios exemplos de trabalhos em execuo e as transformaes
Usando a colher. No entanto, Spoon no um ambiente de execuo tpica de
fins de implantao. Spoon completamente dependente da interao do usurio,
e exige uma interface grfica, os quais no so susceptveis de ser
disponveis em um ambiente de implantao.
Em ambientes tpicos de implementao e execuo de trabalho de transformao
automatizados e muitas vezes desencadeados por algum tipo de programao programada.
Nesta seo,
vamos dar uma olhada nas ferramentas que podem ser utilizados para esses fins.
Correndo na linha de comando
Empregos e as transformaes podem ser iniciadas usando as ferramentas de linha de
comando
Cozinha e Pan, respectivamente. Pan e cozinha so invlucros leve
em torno do mecanismo de integrao de dados. Eles fazem pouco mais do que interpretar
linha de comando parmetros e chamar o motor para lanar uma transformao
ou trabalho. Essas ferramentas so teis principalmente para a integrao Pentaho Data
Integration
solues com scripts nvel de sistema operacional e as solues de agendamento.
Cozinha e Pan so iniciados usando shell scripts, que residem no Pentaho
Dados diretrio de instalao do Integration. Para o Windows, os scripts so chamados
Kitchen.bat e Pan.bat , respectivamente. Para sistemas baseados em UNIX, os scripts
so chamados kitchen.sh e pan.sh.
NOTA Os scripts para sistemas operacionais baseados em UNIX no so executveis pelo
padro. Elas devem ser feitas usando o executvel chmod comando.
Parmetros de linha de comando
A cozinha eo Pan interface do usurio consiste em um nmero de linha de comando
parmetros. Correr Cozinha e Pan sem nenhum parmetro resulta em uma lista
de todos os parmetros disponveis. Basicamente, a sintaxe para especificar os parmetros
consiste de uma barra (/) Ou trao (- personagem), imediatamente seguido por
o nome do parmetro:
[/ -] Nome de valor] [[:=]
A maioria dos parmetros aceitar um valor. O valor do parmetro especificado diretamente
aps o nome do parmetro ou dois-pontos (:) Ou igual a um personagem (=),
seguido do valor real. O valor pode, opcionalmente, ser colocada em um nico
() Ou dupla (") Aspas. Isso obrigatrio no caso de o parmetro
valor em si contm caracteres espao em branco.
Captulo 11 Implantando Solues Pentaho Data Integration 331
ATENO Usando o travesso e iguais caracteres para especificar os parmetros podem
levar a problemas em plataformas Windows. Atenha-se a barra e dois pontos para evitar
problemas.
Apesar de postos de trabalho e as transformaes so funcionalmente muito diferentes, h
praticamente nenhuma diferena no lanamento a partir da linha de comando. Por isso,
Cozinha e Pan partes mais dos seus parmetros de linha de comando. O genrico
parmetros de linha de comando podem ser categorizadas como segue:
Especifique um emprego ou de
transformao
Controlar o registro
Especificar um repositrio
Lista de repositrios disponveis e seus contedos
Os parmetros comuns de linha de comando para ambos Pan e da cozinha esto listados
na Tabela 11-1.
Tabela 11-1: Os parmetros genricos de linha de comando para a cozinha eo Pan
NOME-
NOREP
Rep
Usurio
Pass
Listrep
Dir
Listdir
Arquivo
Nvel
Logfile
VALOR
Y
Nome do repositrio
username Repositrio
Repositrio senha do usurio
Y
Caminho
Y
Nome do arquivo
Erro |Nada |Basic |
Detalhada |Depurar |Rowlevel
Nome do arquivo para log
OBJETIVO
No se conectar a um repositrio.
til para ignorar o login automtico.
Conecte-se com o repositrio
nome especificado.
Conecte-se com o repositrio
especificado nome de usurio.
Conecte-se com o repositrio
especificados senha.
Mostra uma lista de repositrios disponveis.
Especifique o diretrio do repositrio.
Lista do repositrio disponvel
Emprego / diretrios do repositrio.
Especifique um emprego ou de transformao
armazenadas em um arquivo.
Especifique a quantidade de informao
devem ser registrados.
Especificar a qual arquivo que voc deseja
log. Por padro, as ferramentas de log para o
sada padro.
Visualizar a verso, nmero de reviso
e data de criao da ferramenta.
Verso
332 Parte III Integrao de dados e ETL
Embora os nomes dos parmetros so comuns a ambos Cozinha e Pan, o
semntica da dir e listdir parmetros so dependentes da ferramenta.
Para Cozinha, esses parmetros se referem aos diretrios nos repositrios 'trabalho. Para
Pan,
estes parmetros se referem aos diretrios transformao.
Executar trabalhos com Cozinha
Alm dos parmetros genricos de linha de comando, cozinha suporta um par
de outros parmetros, mostrados na Tabela 11-2.
Tabela 11-2: parmetros de linha de comando especfico para a cozinha
NOME
Trabalho
listjobs
VALOR
Nome do trabalho
Y
OBJETIVO
Especifique o nome de um trabalho armazenado no repositrio.
Lista de postos de trabalho disponveis no diretrio do repositrio
especificados pelo dir parmetro.
Listagem 11-5 fornece alguns exemplos de linhas de comando tpica cozinha.
Listagem 11-5: linhas de comando tpica cozinha
#
# Lista todos os parmetros disponveis
#
home PDI->. / kitchen.sh
#
# Executar o trabalho armazenado em / home / foo / daily_load.kjb
#
home PDI-> arquivo / kitchen.sh:. / home / foo / daily_load.kjb
#
# Executar o trabalho daily_load do pdirepo repositrio chamado
#
Home> PDI / kitchen.sh / rep:. Pdirepo / user: admin / pass: admin \
> Dir: / trabalho /: daily_load.kjb
Correndo com Transformaes Pan
Os parmetros Pan-especficas da linha de comando so completamente equivalente ao
os Cozinha especficos. Eles so mostrados na Tabela 11-3.
Tabela 11-3: parmetros de linha de comando especfico para a cozinha
NOME
Trans
VALOR
Nome do trabalho
OBJETIVO
Especifique o nome de um trabalho armazenado no repositrio.
Lista de postos de trabalho disponveis no diretrio do repositrio
especificados pelo dir parmetro.
Listtrans Y
Captulo 11 Implantando Solues Pentaho Data Integration 333
Usando parmetros personalizados de linha de comando
Ao utilizar ferramentas de linha de comando para executar tarefas e transformaes, pode
ser til usar parmetros de linha de comando para transmitir dados de configurao. Para
a linha de comando da cozinha ferramentas e Pan, voc pode usar o Java Virtual Machine
propriedades para obter o efeito de parmetros personalizados de linha de comando. A
sintaxe para passar esses parmetros'''' costume:
-D = valor <name>
A linha de cdigo a seguir ilustra como tal parmetro pode aparecer em uma
linha de comando da cozinha:
home PDI-kitchen.sh> / arquivo:-Dlanguage = en
Em transformaes, voc pode usar o Get System Info passo para obter o
valor dos parmetros de linha de comando. Voc pode encontrar este passo na entrada
categoria. O Get System Info etapa gera uma linha de sada com um
ou mais campos com um valor gerado pelo sistema. O Get System Info passo
configurado atravs da criao de campos e escolher um determinado tipo de sistema de valor
a partir de uma lista pr-definida (ver Figura 11-14).
Figura 11-14: Capturando parmetros de linha de comando com o Get System Info etapa
Entre os valores do sistema pr-definidos, voc vai encontrar um argumento de linha de comando
atravs argumento de linha de comando 10. Os campos com um desses tipos automatica-
mente ter o valor da correspondente D = valor <name> linha de comando
parmetro.
Usando os valores dos parmetros de linha de comando como entrada para um conjunto de
variveis
etapa, voc pode fazer os parmetros de linha de comando acessvel a outros trabalhos e
transformaes. Isso tambm mostrado na Figura 11-14.
334 Parte III Integrao de dados e ETL
Usando senhas de banco de dados Obfuscated
Para mitigar o risco segurana de passar senhas em texto puro no comando
linha de ferramentas como cozinha e Pan, voc pode usar ofuscado senhas de banco de
dados.
Voc pode usar esta tcnica para especificar a senha para o repositrio con-
fio Bluetooth para as ferramentas de linha de comando. Voc pode usar a mesma tcnica para
qualquer
conexes de banco de dados que voc configurou o uso de variveis, como discutido
anteriormente
neste captulo.
Para usar senhas ofuscado, primeiro voc precisa para executar o Encr.bat script
(Para sistemas Windows) ou encr.sh script (para sistemas UNIX-like), passando
a senha em texto puro. Aqui est um exemplo de comando para ofuscar a passagem
palavra wcm:
shell wcm encr.sh chaleira->
Este comando retorna o seguinte resultado:
Criptografado 2be98afc86aa7f2e4cb79ce10be85acd7
A sada de texto a senha real ofuscado. Agora voc pode usar este
no lugar da senha em texto puro. Certifique-se de incluir a completa ofuscado
senha, incluindo a parte legvel, Criptografado. Isso permite identificar PDI
a senha, ofuscado.
Rodando dentro do Pentaho BI Server
A Plataforma Pentaho fornece componentes para integrar Pentaho Data Inte-
trabalhos de integrao e transformaes nas seqncias de ao. Isso permite que os postos
de trabalho e
transformaes a ser agendada com o agendador de quartzo que construdo em
o servidor. Outro benefcio da incorporao de solues PDI em seqncias de ao
que ele permite a interao humana. Por exemplo, a seqncia de ao
pode levar o usurio para a entrada, que pode ento ser usado para parametrizar uma
transformao ou de emprego.
A integrao do PDI para a plataforma Pentaho no pra com a mera
execuo de tarefas e transformaes. transformaes PDI pode transferir um
conjunto de resultados para a seqncia de ao de chamada, permitindo relatrios para
desenhar os dados diretamente
do motor PDI. A seqncia de ao pode fazer praticamente tudo com
o conjunto de resultados: mostrar os dados em um relatrio ou em um grfico, percorrer as
linhas
e chamar um trabalho de impresso, envie uma mensagem de e-mail, use os dados da linha
como parmetros
para um relatrio, e assim por diante e assim por diante.
Transformaes em seqncias de ao
As transformaes podem ser incorporadas em seqncias de ao utilizando o Pentaho
Integrao de Dados ao do processo. As instrues a seguir descrevem como
utilizar uma transformao em uma seqncia de ao.
Captulo 11 Implantando Solues Pentaho Data Integration 335
1. Abra a seqncia de ao em Pentaho Design Studio. No processo
seo Aes, clique no boto Adicionar ou invocar o menu de contexto para adicionar
uma ao de processo do tipo Pentaho Data Integration. Voc pode encontrar este
no menu Ao processo, selecionando Adicionar obter dados de Pentaho
Integrao de Dados.
2. Configure o Pentaho Data Integration processo de ao de apontar para um
transformao. Para uma transformao armazenadas em um arquivo, use o boto
Procurar
boto para selecionar o apropriado . KTR arquivo. Para uma transformao armazenados
em
o repositrio, marque a caixa de seleo Use Chaleira Repository, e selecione o
diretrio desejado e transformao por meio do Diretrio e Transfor-
maes listas drop-down.
NOTA Voc deve configurar o servidor de BI para dizer-lhe que PDI repositrio de usar. A
procedimento para fazer isso descrito mais tarde nesta seo.
3. Se a transformao tem um passo Get System Info para capturar linha de comando
parmetros, voc pode usar a transformao seo Entradas para especificar
quais as entradas a partir da seqncia de ao deve ser passado para o trans-
formao. O Get System Info passo descrito em detalhes anteriormente neste
captulo, na seo''Usando parmetros personalizados de linha de comando''.
4. Se voc quer usar o fluxo de sada de uma das etapas de transformao
na seqncia de ao, especifique o nome da etapa de transformao em
a propriedade Step Transformao. Note que embora a propriedade oferece
uma caixa de listagem, voc ainda deve digitar manualmente o nome da transformao
etapa. Voc tambm deve fornecer um nome na propriedade Nome de sada ao mapa
o conjunto de resultados para uma sada seqncia de ao. Esse nome pode ser usado
por aes processo subseqente da seqncia de ao.
Figura 11-15 mostra uma seqncia de ao simples contendo trs processos
aes: uma ao Secure Descrio Filtro para levar o usurio para uma data, uma
Pentaho Data Integration ao para executar uma transformao e, finalmente, Pentaho
Relatrio de ao para executar um relatrio com base no conjunto de resultados retornado
pela Pentaho
Integrao de Dados ao.
Empregos em seqncias de ao
O procedimento para executar um trabalho dentro de uma seqncia de ao muito
semelhante ao
que, para transformaes. Os trabalhos so executados pela Pentaho Data Integration
Job ao do processo. Voc pode encontrar isso no menu Ao processo em Adicionar
Execute Pentaho Data Integration Job.
Tal como acontece com as transformaes, voc pode se referir tanto a um arquivo ou um
item na
repositrio. Voc tambm pode especificar as entradas para um trabalho, assim como
possvel para um
transformao. No entanto, um trabalho no pode retornar um conjunto de resultados para a
seqncia de ao.
336 Parte III Integrao de dados e ETL
Figura 11-15: Usando uma transformao em uma seqncia de ao
O servidor Pentaho BI e do PDI Repositrio
O servidor Pentaho BI tem um arquivo de configurao separado que especifica onde
procurar emprego e transformaes. Por padro, o servidor est configurado para funcionar
com arquivos de trabalho e transformao. Se voc quiser usar postos de trabalho e as
transformaes
armazenadas em um repositrio PDI, voc precisa configurar o servidor de acordo. Para
exemplo, se voc est recebendo mensagens de erro como o seguinte, voc sabe
Voc ter que configurar isso.
Kettle.ERROR_0019 - RDBMS acesso a transformao no permitido quando
tipo de repositrio 'arquivos'
Para configurar o servidor para usar o repositrio do PDI, use um editor de texto
abrir o settings.xml arquivo localizado na pentaho-solutions/system/kettle
diretrio. O contedo desse arquivo deve ser algo parecido Listagem 11-6.
Listagem 11-6: Contedo do arquivo settings.xml padro
<kettle-repository>
<! - A localizao do arquivo Chaleira repositories.xml
deixar em branco quando padro (HOME .kettle / repositories.xml) ->
<repositories.xml.file> </ repositories.xml.file>
<-! Arquivos ou RDBMS ->
Captulo 11 Implantando Solues Pentaho Data Integration 337
<repository.type> arquivos </ repository.type>
<! - O nome do repositrio para usar ->
<repository.name> </ repository.name>
<! - O nome do repositrio do usurio ->
<repository.userid> </ repository.userid>
<! - A senha ->
<repository.password> </ repository.password>
</ Chaleira repositrio>
Os comentrios no settings.xml arquivo auto-explicativo:
Definir o contedo do repository.type elemento para rdbms se voc quiser
usar um repositrio PDI.
Coloque o nome do repositrio que voc deseja usar na repository.name
elemento. Este deve ser o nome de um repositrio existente definido no PDI
repositories.xml arquivo.
Definir o repository.name elemento para o nome do usurio do repositrio que
ligar para o repositrio.
Definir o repository.password elemento para a senha do repositrio
usurio.
Ao contrrio do que a sugesto nos comentrios que aparecem no settings.xml
arquivo, no possvel especificar um determinado repositories.xml arquivo usando
o repositories.xml.file elemento. Se voc tentar configur-la, uma
mensagem de erro como a seguinte indica que ele ainda no est implementado na sua
plataforma:
Kettle.ERROR_0017 - Desculpe, especificando o arquivo repositories.xml para
utilizao futura, tendo o arquivo padro para agora.
Execuo remota com Carte
Carte um servidor que executa trabalhos leves ou transformaes em resposta
a uma solicitao HTTP. Um servidor chamado de Carte servidor escravo, porque ele
responde
aos pedidos de outros lugares, e executa o trabalho associado, em nome da
da parte requerente. Vrios servidores escravos que so usados para executar um conjunto
nico trabalho ou transformao so referidos como um cluster.
Execuo remota e aglomerao so caractersticas muito poderosas, estabelecendo o PDI
alm de um produto de integrao de dados que adequado para a computao em nuvem
ambientes como o Amazon EC2. Isso significa que o processo de integrao de dados
pode de maneira rentvel ser escalado dinamicamente, de acordo com a demanda.
Neste livro, no possvel descrever todos os casos de uso e as vantagens da
esses recursos. Em vez disso, vai descrever a sua arquitectura e componentes. Este
deve servir como uma boa introduo para os leitores que queiram utilizar esses recursos.
338 Parte III Integrao de dados e ETL
Por execuo remota?
De uma forma ou de outra,