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, todas as razes para exigir a execuo remota ou clustering esto relacionados a problemas de desempenho de superao. A lista a seguir resume mais importantes problemas de desempenho que podem ser resolvidos com controle remoto execuo e / ou agrupamento: Escalabilidade Disponibilidade Reduo de trfego de rede Reduo da latncia Vamos agora explicar esses conceitos com mais detalhes. Escalabilidade Cada computador tem um potencial de transformao que , em ltima anlise limitada pelo hard- ware: CPU, memria, disco e rede. Contanto que nenhum desses componentes est esgotado pelo trabalho, no h problema. No entanto, uma crescente carga de trabalho, mais cedo ou mais tarde porque um dos recursos a serem maxed para fora, limitando assim o desempenho do sistema como um todo. O termo escalabilidade refere-se a quo bem o sistema pode ser cultivada para acompanhar uma crescente carga de trabalho. H duas maneiras fundamentais para o crescimento do sistema: Atualizar os componentes de hardware com outros que oferecem melhor desempenho. Por exemplo, voc pode substituir um processador de 1 GHz com um que trabalha a 2 GHz. Esta estratgia conhecida como scale-up. Adicionar mais computadores com semelhantes ou comparveis potencial de transformao. Esta estratgia conhecida como scale-out. Com Carte, recursos remotos PDI permitir a execuo de agrupamento, e este permite a integrao de dados de carga de trabalho a serem distribudos entre um nmero de computadores que funcionam em paralelo para fazer o trabalho. Paralelizao permite mais trabalho a ser feito no mesmo espao de tempo. Este um exemplo tpico de um arquitetura scale-out. Disponibilidade Disponibilidade do servio normalmente no o objetivo principal para o agrupamento de dados em um integrao do ambiente. No entanto, ao agrupamento para fins de expanso, maior disponibilidade vem como um bnus extra. Isto merece uma explicao. Quando um processo depende de um nico computador, esse computador se torna um ponto nico de falha. Se o computador torna-se indisponvel para qualquer motivo, o servio que fornece normalmente fica indisponvel tambm. Captulo 11 Implantando Solues Pentaho Data Integration 339 Um cluster no tem tal ponto nico de falha. Com capaci Carte de clustering- dade, no caso em que um computador se torna indisponvel, o cluster restantes ainda podem ser usados para processar trabalhos e transformaes. O restante pode agrupar demorar um pouco mais para realizar a tarefa, porque h menos laboriosos de distribuir a carga, mas a verdade que o prprio servio ainda est disponvel. Reduo de trfego de rede Se o seu problema de integrao de dados envolve grandes volumes de dados em mquinas remotas, ou vrias fontes de dados em mquinas remotas, puxando os dados atravs da rede a um computador para executar uma transformao ou de trabalho podem facilmente sobrecarregar o rede. Isso pode resultar em mais tempo de processamento, ou pior, a deteriorao de outras aplicaes que dependem da rede. Ao empurrar todas as transformaes agregar e filtrar o mais prximo possvel para o local onde os dados de origem armazenado, uma reduo considervel na o volume de dados que deve ser puxada por toda a rede pode ser alcanado, assim, descarga na rede. Por exemplo, suponha que voc queira fazer uma anlise bsica do logs de acesso de um cluster de servidores web. Digamos que voc deseja contar o nmero de visitas a cada pgina. Normalmente, o nmero de pginas exclusivas ser muito pequeno em comparao ao nmero total de pedidos. Fazendo a anlise localmente em um computador implicaria copiar os logs de acesso, causando uma carga significativa no rede. Remotamente a execuo da anlise sobre o servidor onde o log armazenado usando Carte vai aumentar a carga sobre os servidores remotos, mas significativamente diminuir a carga sobre a rede, pois somente o resultado relativamente pequeno de a anlise ter que viajar para a rede. Reduo da latncia operaes de pesquisa sobre fontes de dados remotas ter tempo para viajar por todo o rede. Se a operao de pesquisa em si bastante rpido, o tempo ser perdido espera para os circuitos de rede. Usando a capacidade de execuo remota de Carte, voc pode minimizar a latncia, realizando a pesquisa mais prxima da fonte de pesquisa de dados. Note que esta estratgia para reduzir a latncia ir funcionar apenas para casos especficos. Se voc precisa olhar para os mesmos dados, muitas vezes, o cache local susceptvel de ser uma melhor soluo para reduzir a latncia. Por outro lado, se quase todas as pesquisas so originais, ou a quantidade de dados de pesquisa muito grande para cache, realizando a pesquisa distncia pode ajudar. Correndo Carte Carte fcil de configurar. Assim como as outras ferramentas PDI iniciado executando um shell script que reside no diretrio home do PDI. Em sistemas Windows, este script chamado carte.bat. Para sistemas baseados em UNIX, o script chamado carte.sh. 340 Parte III Integrao de dados e ETL Correndo Carte sem nenhum parmetro revela a disposio de linha de comando parmetros e alguns exemplos de uso (ver listagem 11-7). Listagem 11-7: Correndo carte sem parmetros Shell>. / Carte.sh Uso: Carte [endereo Interface] [Porto] Exemplo: 127.0.0.1 Carte 8080 Exemplo: 192.168.1.221 Carte 8081 A Endereo de interface parmetro usado para especificar o endereo IP do adaptador de rede que est a ser utilizado pelo servidor Carte. A Porto parmetro usado para especificar em qual porta o servidor dever atender aos pedidos. Ambos parmetros so obrigatrios. NOTA Certifique-se de escolher uma porta que no esteja sendo usado por outro servidor. Na primeiro exemplo fornecido pela sada Carte mostrado na Lista 11-7, porto 8080 utilizado. A porta 8080 tambm a porta padro do pr-servidor de BI Pentaho. Voc pode receber uma mensagem de erro como o seguinte se a porta j est tomada: 2009/01/23 11:37:39.759:: WARN: no SocketConnector@127.0.0.1: 8080 java.net.BindException: Endereo j em uso: JVM_Bind Criando Servidor Slave Antes que voc pode usar um servidor remoto para executar Carte sua transformao ou trabalho, voc deve criar um objeto do servidor escravo. Neste contexto, um servidor escravo como uma conexo de banco de dados: um descritor de chamada para localizar um servidor remoto. Para criar um servidor escravo, habilitar o modo de visualizao no painel lateral. Expanda a transformao em curso ou trabalho, e boto direito do mouse na pasta do servidor escravo no lado do painel. No menu de contexto, escolha Novo e, a caixa de dilogo Server escravo aparecer. Na pgina da guia de servio deste dilogo, voc pode definir as propriedades de o servidor Carte, como mostrado na Figura 11-16. Especifique um valor para o nome do servidor, nome ou endereo IP, Port, Username, e campos de senha. O nome do servidor ser usado para se referir a este particular Carte servio no PDI. O nome do host / endereo IP ea porta identificar os Carte servidor na rede. O nome de usurio e senha de imveis so obrigados a fornecer um nvel bsico de segurana. Por padro, voc pode usar admin para ambos. Isto suficiente quando executado em um ambiente onde a rede est protegida e inacessvel aos usurios no autorizados. Se voc precisa executar Carte em uma rede de mais pblico, voc pode ligar em mais servios de autenticao avanada para oferecer uma melhor segurana. NOTA Voc pode usar variveis para parametrizar as propriedades do servidor escravo. Um caso de uso para eles clara quando o ambiente de computao em nuvem no apoio endereos IP fixos. Este o caso com o EC2 da Amazon. Captulo 11 Implantando Solues Pentaho Data Integration 341 Figura 11-16: Definio de um novo servidor escravo Remotamente Executando uma transformao ou de trabalho Voc pode usar os botes na parte de execuo local ou remota na topo da executar uma tarefa ou executar um dilogo Transformao de escolher se voc deseja executar o trabalho / transformao na mquina local ou em um de seus servidores escravos. Para executar remotamente, verifique o boto Executar remotamente, e usar o combobox host remoto para selecionar o servidor escravo que deseja usar. Isso mostrado na Figura 11-17. Figura 11-17: Executando um trabalho remotamente Clustering Voc pode executar transformaes em um cluster de servidores escravos. Para usar tal cluster, necessrio definir uma esquema de cluster. Um esquema de cluster simplesmente um nome 342 Parte III Integrao de dados e ETL coleo de servidores escravos. Aps a definio do esquema, voc pode atribuir um cluster para as etapas de sua transformao, fazendo com que passo a ser processado no escravos desse cluster. Para comear com cluster, primeiro necessrio definir um nmero de escravos servidores, como discutido na seo anterior. Depois, voc pode definir uma aglomerao esquema. Ao lado do painel, est no modo de visualizao, voc pode ver um aglomerado Chaleira esquemas n na parte inferior da rvore. Se voc clicar o boto direito do n, um menu de contexto ser exibido, a partir da voc pode criar um novo item. Isso traz tona o agrupamento de dilogo de esquema, mostrado na Figura 11-18. Figura 11-18: O esquema de cluster de dilogo Na caixa de dilogo de esquema de cluster, voc deve digitar um nome de esquema. O esquema nome deve ser exclusivo para a transformao. Voc pode atribuir servidores escravos com o esquema, pressionando o boto Select escravo servidores. Isso traz a Selecione a caixa de dilogo servidores, listando todos os servidores escravos disponveis. Neste dilogo, voc deve selecionar todos os servidores escravos que precisam participar do cluster. (Voc pode selecionar vrios itens mantendo pressionada a tecla Ctrl e clicando em a entrada desejada.) Quando voc terminar de escolher os servidores, clique no boto OK para designar os servidores escravos. Note que isso ir apagar qualquer atribuio prvia de servidores escravos ao cluster. Depois de definir o esquema de cluster, voc pode atribuir o cluster para o seu etapas de transformao. Basta selecionar a etapa e clique com o boto direito para abrir o menu de contexto. Escolha o Clustering . . . opo. Isso traz uma caixa de dilogo de onde voc pode escolher um dos esquemas disponveis clustering. Clique em OK para confirmar o dilogo eo cluster atribudo etapa. Voc pode limpar o associao com um grupo, trazendo o dilogo novamente e pressionar Cancelar. Captulo 11 Implantando Solues Pentaho Data Integration 343 Resumo Neste captulo, voc aprendeu tcnicas diferentes que voc pode usar para executar e implementar Pentaho Data Integration postos de trabalho e as transformaes nos sistemas de produo. Voc aprendi: Como usar variveis para gerenciar recursos como conexes de banco de dados, nomes de arquivos e diretrios Como usar conexes JNDI Como trabalhar com repositrios PDI Como usar a cozinha e Pan para executar as transformaes e as tarefas da linha de comando Como executar tarefas dentro do servidor de BI Pentaho usando uma seqncia de ao Como executar um trabalho ou transformao remotamente usando Carte O agrupamento , e quais os benefcios que tem Como servidores de grupos de vrios escravos em um cluster Parte IV Business Intelligence Aplicaes Nesta parte Captulo 12: A camada de metadados Captulo 13: Usando as ferramentas Pentaho Reporting Captulo 14: Agendamento, assinatura e Bursting Captulo 15: Solues OLAP Utilizando Pentaho Analysis Services Captulo 16: Data Mining com Weka Captulo 17: Construindo Painis CAPTULO 12 A camada de metadados Muitos dos temas relacionados com a inteligncia de negcio, tais como a integrao de dados e armazenamento de dados, podem ser entendidos como solues para os problemas relativos abstrao, a acessibilidade ea transmisso dos dados. Nos captulos anteriores, voc aprendeu que o armazm de dados fornece um ofertas substanciais de abstrao a partir dos dados acumulados em vrios fontes de dados. Central para que a realizao a organizao de dados em orientadas para um assunto esquemas estrela, reduzindo consideravelmente a complexidade do trans- lando perguntas a partir do final de negcios para consultas de banco de dados. Apesar de estabelecer um data warehouse resolve alguns dos abstrao de dados e as questes de acessibilidade, ainda no ideal para o fornecimento de dados para ferramentas de relatrios. Os utilizadores empresariais tentar obter dados a partir do armazm podem ter dificuldades para obter o informao que eles querem em um formato que possa compreender, ou o sistema pode precisar para ser refinado para se certificar de que os dados podem ser acessados de forma til. Neste captulo, voc aprender como a adio de uma camada de metadados pode ajudar neste aspecto. Metadados Resumo Nesta primeira seo, vamos explicar brevemente o que tipos de coisas que ns estamos falando sobre quando usamos o termo metadados'',''e qual problema ela resolve. Mais tarde Neste captulo, vamos dar uma olhada no uso de metadados Pentaho. O que so metadados? O termo metadados um pouco em demasia. Em um sentido geral, significa que os dados sobre'' de dados.''Dependendo do contexto, h um monte de coisas diferentes para dizer 347 348 Parte IV Inteligncia Aplicaes de Negcio ''Dados sobre'', e tecnicamente tudo isso se qualifica como metadados. Por exemplo, a maioria RDBMSs apoio listando todas as bases de dados disponveis e objetos de esquema. Esta uma exemplo tpico de metadados, que descreve os tipos disponveis e as formas de dados armazenados no banco de dados. A plataforma Pentaho oferece as suas instalaes para armazenar e acessar metadados. No contexto deste captulo, usamos o termo metadados Pentaho para denotar a facilidade de metadados que parte da plataforma Pentaho. As vantagens da Camada de Metadados Como mencionado anteriormente, o data warehouse no resolve todos os problemas em entregar os dados para ferramentas de relatrios. Nesta seo, ns tomamos um olhar mais atento estes problemas no resolvidos e mostrar como uma camada de metadados podem ajudar a resolver elas. Utilizando Metadados para fazer uma interface mais amigvel Do ponto de vista das ferramentas de comunicao e de visualizao, o data warehouse ''apenas''um banco de dados relacional. Usando ainda requer considervel conhecimento e experincia com a linguagem de consulta de banco de dados (que normalmente alguma dialeto da Structured Query Language, SQL). Na maioria dos casos, isso causa design de relatrio para estar fora do alcance do usurio tpico de negcios. O Pentaho camada de metadados podem aliviar este problema at certo ponto. Voc pode usar a camada de metadados para descrever as tabelas e suas colunas e relacionamentos. Uma vez que este descrito, colees de colunas pode ser definida que so susceptveis de aparecer juntos em um relatrio. Estes podem ento ser apresentado
o usurio, utilizando uma interface de assistente. Isso permite que o usurio final a criao de relatrios on-the-fly, basta escolher as colunas de interesse e coloc-los numa relatrio. Devido metadados definido''nos bastidores'', o mecanismo de relatrio sabe como gerar a consulta de dados adequados para entregar o especificado os resultados. Adicionando Independncia Flexibilidade e esquema Suponha que voc acabou de construir cerca de 50 ou mais relatrios diretamente em seus dados armazm. De repente, os dados da equipe de projeto do armazm decide que, no interesse de desempenho da consulta, faz sentido separar uma mini-dimenso da tabela de dimenso do produto. Este tem potencialmente um impacto sobre todos os relatrios que voc construiu que so dependentes da dimenso do produto. Na verdade, voc pode precisar exatamente o que relata a investigao ser afetado. A camada de metadados podem ajudar a limitar o impacto do esquema do banco alteraes. Como a camada de metadados permite que voc especifique os relatrios em um coleo predefinida de tabelas usando conhecida juntar os caminhos, as mudanas de esquema pode Captulo 12 A camada de metadados 349 ser resolvidos atravs do mapeamento do esquema novo banco de dados para o''esquema''resumo apresentados os relatrios da camada de metadados. Esse tipo de mudana pode ir muito alm da simples renomeao de tabelas e colunas. Por exemplo, se a equipe do data warehouse decide mudar-se de um esquema em estrela para um floco de neve (ou o contrrio), o impacto resultante pode ser completamente amortecido por uma camada de metadados. Da mesma forma, as solues que reportar diretamente sobre (uma cpia) do sistema de origem pode ser gradualmente transferido para um ambiente de pleno direito do armazm de dados. Estas alteraes envolvem uma ampla modificao da camada de metadados, mas esta seria uma one-shot operao, evitando o caminho potencialmente mais tempo e esforo, consumo de mudando todos os relatrios. Privilgios de acesso do Refino Outro aspecto da entrega de dados que no est completamente resolvido pelos dados armazm privilgios de acesso. Embora a maioria dos RDBMSs proporcionar um acesso camada que envolve a autenticao e autorizao, este no freqentemente bastante finos para aplicaes (incluindo aplicaes de BI). O nativo RDMBS camada de acesso tipicamente implementado pelos utilizadores concesso do privilgio para um uso particular (leitura, escrita, ou alterao) da base de dados designada objetos (como tabelas, exibies e / ou procedimentos armazenados). O RDBMS nativas camada de acesso geralmente no oferecem a possibilidade de controle de acesso a dados sobre o linha de nvel. A camada de metadados permite que a autorizao para ser definida em vrios nveis. A autorizao pode ser controlada de forma flexvel a nvel de usurio ou papel, e pode ser orientada a objetos em sua totalidade, ou linhas individuais. Isso permite que refinadas polticas de acesso. Manipulao de localizao sada do relatrio contm os dados, bem como metadados. Por exemplo, a sada do de um relatrio de vendas pode mostrar os nmeros reais de vendas junto com dados, tais como o pas eo estado nomes e datas de vendas. Mas, alm disso a sada do relatrio, normalmente contm os rtulos de texto que descrevem os dados que est sendo mostrado. Por exemplo, uma venda relatrio com um layout de colunas podem ter um ttulo que se l''Country''direito acima da coluna que contm os nomes de pases. O problema com esses rtulos que eles no so de idioma neutro. Este pode ser um problema em organizaes multinacionais ou multilingues. Por exemplo, World Class Filmes tem gerentes Ingls e de lngua francesa. Ambos precisam para ver os dados mesmo relatrio, mas os rtulos relatrio deve ser localizada no linguagem apropriada, consoante os pedidos em que o gerente do relatrio. A camada de metadados Pentaho suporte a vrias localidades. Descritiva adequada- laos, como etiquetas e descries de objetos de dados, como tabelas e colunas 350 Parte IV Inteligncia Aplicaes de Negcio pode ser associado com textos dependente de localidade. Isso permite que os relatrios devem ser adaptados para cada idioma. Cumprimento de formatao consistente e Comportamento Atributos das tabelas de dimenso, por vezes, manter os dados pr-formatados. Para exemplo, tabelas de dimenso de data geralmente contm muitas colunas para armazenar diferentes representaes de texto a partir da data do calendrio. Isto completamente diferente de mtricas armazenadas nas tabelas de fatos. Mtricas so tipicamente numricos, e, muitas vezes, os relatrios mostram os dados agregados da mtrica, em vez de valores brutos estocados em linhas de fato. Para alguns tipos de dados de mtricas, formatao especial dos dados pode ser desejvel. Por exemplo, a mtrica monetria, tais como custo, lucro e volume de negcios deve aparecer em relatrios com o smbolo da moeda adequada e separadores para decimais e milhares. Alguns atributos de dimenso ainda podem requerer formatao adicional, especialmente se a formatao desejada no pode ser alcanado simplesmente armazenar um valor. Por exemplo, o texto representa URLs podem precisar a ser processado de uma forma que os distingue de outros dados. Para alguns tipos de sada do relatrio, tais como documentos PDF ou pginas web, ele mesmo pode desejvel anexar um comportamento especfico para os dados da URL, como a abertura do site adequado quando o rtulo clicado. A camada de metadados Pentaho permite que grupos de visual e comportamental adequada- chamados laos conceitos para ser anexado aos objetos de dados, como tabelas e colunas. Conceitos podem ser baseadas em conceitos existentes a partir do qual herdam seus propriedades. Se desejar, um conceito pode substituir as propriedades de seu pai con- conceito. Isso permite que voc crie uma hierarquia de conceitos que podem ser usados consistentemente aplicar as propriedades visuais e comportamentais para itens de dados. mbito de aplicao e uso da Camada de Metadados A lista a seguir oferece um breve panorama de como Pentaho usa os metadados camada na prtica. Estes pontos esto ilustrados na Figura 12-1. Metadados de entrada do banco de dados, bem como metadados definidos pelo usurio, definido usando o Pentaho Metadata Editor (PME) e armazenados no repositrio de metadados. Os metadados podem ser exportados a partir do repositrio e armazenados na forma de . Xmi arquivos, ou em um banco de dados. Os metadados so associados a uma Pentaho soluo Pentaho no servidor, onde ele pode ser usado como um recurso para metadados baseados em servios de informao. Captulo 12 A camada de metadados 351 Design Tools Relatrio Terceiros iReport (Jasper) BIRT Pentaho Relatrio Designer Anncio com base na Web Hoc Query e Relatrios Design, editar, testar Relatrio baseado em SQL SQL Reportagem Motores Terceiros Jasper (Jaspersoft) BIRT (Actuate) Relatrio baseado MQL MQL Executar Pentaho Pentaho Reportagem do motor MQL Mecanismo SQL Metadados XMI Arquivos Banco de Dados (DWH, ODS) Metadados Entrada Ferramentas de Desenvolvimento de Metadados Pentaho editor de metadados Importao, Exportao Publicar Carregar, Salvar Metadados Repositrio Baseado em arquivo Repositrio RDBMS baseado Repositrio Figura 12-1: Resumo de alto nvel do escopo e do uso de Pentaho Metadata 352 Parte IV Inteligncia Aplicaes de Negcio Usando as ferramentas de projeto Pentaho relatrio, os usurios finais podem criar relatrios sobre os metadados. Isso permite que os relatrios a serem construdas sem o conhecimento da detalhes fsicos do banco de dados subjacente, e sem nenhum conhecimento de SQL. Em vez disso, o relatrio contm uma especificao de alto nvel da consulta resultado, que definida atravs de uma interface grfica de usurio. Ao executar relatrios baseados em Pentaho metadados, o mecanismo de relatrio interpreta o relatrio. Consulta s especificaes so armazenadas no relatrio um formato chamado Metadados Query Language (MQL), que resolvido contra os metadados. Neste ponto, o SQL correspondente gerado e enviado para o banco de dados. Alm deste ponto, o processamento do relatrio bastante semelhante ao''normal''relatrios baseados em SQL. O banco de dados responde ao consulta atravs do envio de um resultado de dados, que processado como sada do relatrio. Atualmente, o uso da camada de metadados Pentaho limitado a relatar. No futuro, o apoio de metadados para outros componentes da plataforma, como anlise, minerao de dados e integrao de dados podem ser adicionados. NOTA metadados Pentaho atualmente baseada na Common Warehouse Metamodelo (CWM) especificao criada e mantida pelo Object Management Group (OMG). O CWM uma plataforma aberta e independente de fornecedor norma que especifica a troca e representao de business intelligence metadados. Para obter mais informaes sobre o CWM, consulte o catlogo da OMG Modelagem e especificaes de metadados. Voc pode encontr-lo em http://www.omg.org/technology/cwm/. Metadados Caractersticas Pentaho Nesta seo, descrevemos brevemente as caractersticas fundamentais dos metadados Pentaho camada. Banco de Dados e Abstrao de consulta A camada de metadados Pentaho pode conter muitos tipos distintos de estrutura componentes, e fcil perder de vista o quadro geral. Portanto, vamos examinar primeiro a camada de metadados em um alto nvel antes de mergulhar nos detalhes. Relatrio de Definio: Ponto do usurio de negcios de viso Considere os requisitos de uma empresa tpica do usurio, digamos, o gerente de Vendas e Aluguis no Filmes Classe Mundial. Para cada site, o gerente Captulo 12 A camada de metadados 353 gostaria de ver o nmero de encomendas feitas por cada ms em 2008 por clientes dos Estados Unidos. Mesmo sem nenhum conhecimento da sub- mentindo banco de dados, a maioria dos usurios de negcios so perfeitamente capazes de compreender o estrutura e elementos de sada do relatrio. Um relatrio como este ter: Uma seo encabeada pelo ttulo website ou URI Em cada seo, de 12 linhas com uma etiqueta indicando o ms Para cada ms, o tema do relatrio propriamente dito, isto , o nmero de ordens Alm destes itens visveis, o relatrio tem dois itens que so invisveis usado para fazer a escolha adequada: Um item de ano para selecionar apenas os pedidos feitos no ano de 2008 Um item pas que serve para selecionar apenas os clientes dos Estados Unidos Agora, ns descrevemos a estrutura do relatrio, em termos de sees e seo contedo, mas importante perceber que esta uma questo de apresentao: A informao foi transmitida pelo relatrio permanecer o mesmo independentemente da se ele contm uma seo por ms com linhas para cada site ou uma seo por site que contm linhas para cada ms. Se ns esquecemos sobre a ordem do agrupamento por um momento, acabamos com uma coleo de linhas consistindo de um site, um ms, eo nmero de encomendas. Em outras palavras, os dados do relatrio tabular e contm os itens website, nmero e srie das encomendas. Relatrio de Execuo: o desenvolvedor de SQL View Suponha que voc deseja recuperar os dados do mesmo relatrio diretamente do Mundo Classe armazm de dados de filmes usando SQL. Se voc tem as habilidades de SQL, que certamente no difcil (embora possa ser um pouco entediante). Mesmo assim, esta seco anda lo atravs do processo passo a passo para ilustrar alguns conceitos sobre Pentaho metadados. Uma maneira comum de atacar este problema no SQL comear com a tabela mais centrais para a questo. Neste caso, o relatrio sobre o nmero de encomendas, assim que voc comear com o fact_orders tabela. Voc v que contm o customer_order_id. Se voc aplicar o COUNT funo agregada em combinao com o DISTINCT modificador, voc pode usar isso para contar o nmero de indivduos ordens. A partir da fact_order tabela, use uma juno de''procurar''o cliente que colocado na ordem do dim_customer tabela. Voc precisa disto para que voc possa usar o country_name coluna para restringir os resultados para os clientes dos Estados Unidos apenas. Voc pode usar outro juno entre fact_order e dim_website onde 354 Parte IV Inteligncia Aplicaes de Negcio encontrar o website_title. Finalmente, voc usa outro juno entre fact_order e dim_date para obter a data do pedido. Voc precisa disto para que voc possa restringir o resultado de encomendas feitas no ano de 2008 e para produzir etiquetas para cada ms item de relatrio. Conceitualmente, as mesas se juntou a servir para''alargar''o fact_order mesa, estend-lo com atributos de tabelas associadas. Agora voc pode aplicar o critrios para o ano (deve ser igual a 2008) eo pas (deve ser igual grupo para os Estados Unidos) e depois pelo ttulo do Web site e um ms a contar da nmero de ordens distintas, o que lhe d o resultado final. Figura 12-2 mostra uma representao grfica desses caminhos e juntar os itens de relatrio. dim_customer country_name Relatrio de vendas Critrios country_name = 'Estados Unidos' ano = 2008 Agrupamento MONTH_NAME website_title Dados COUNT (DISTINCT customer_order_id) dim_date ano4 MONTH_NAME dim_website website_title fact_order COUNT (DISTINCT customer_order_id) Figura 12-2: Derivando itens de relatrio de tabelas associadas Para completar, a instruo SQL mostrado na Lista 12-1. Listagem 12-1: A instruo SQL para recuperar o nmero de pedidos, agrupados por site ttulo e no ms SELECT , , DA INNER JOIN ON INNER JOIN ON INNER JOIN ON ONDE E GROUP BY , dim_website.website_title dim_date.month_name COUNT (DISTINCT fact_order.customer_order_id) AS count_orders fact_order dim_customer dim_customer.customer_key fact_order.customer_key = dim_website dim_website.website_key fact_order.website_key = dim_date dim_date.date_key fact_order.local_order_date_key = dim_date.year4 = 2008 dim_customer.country_name = 'Estados Unidos' dim_website.website_title dim_date.month_name Captulo 12 A camada de metadados 355 Mecnicos de Abstrao: A camada de metadados provvel que os passos que voc acabou de passar por est alm das habilidades tcnicas da maioria dos usurios de negcios e, certamente, alm de descries de seu trabalho. Mas o que se os detalhes de juntar as mesas tinham sido tomado cuidado de antes? E se voc usurios apresentam apenas um conjunto de itens a partir do qual pode escolher o que quer acontecer de achar interessante? E se o customer_order_id item foi concebido para representar directamente o COUNT DISTINCT operao? Esta , de fato, exatamente como funciona Pentaho abstrao de metadados. Negcios desenvolvedores de inteligncia que tm as habilidades eo conhecimento de fundo do banco de dados de relatrios ou armazm de dados pode definir a existncia de tabelas reais e colunas em que chamado de camada fsica. Os objetos da fsica camada so os blocos de construo para a camada de lgica. Na camada lgica, os quadros da camada fsica so redefinidas e s vezes enriquecida com colunas extras que so derivados de colunas em a camada fsica atravs da aplicao de funes e outras expresses para eles. Outro tipo de objeto encontrado na camada lgica a relacionamento. Um relacionamento define essencialmente como dois quadros na camada lgica pode ser juntou. s vezes, existem mltiplas relaes entre as duas tabelas, que por isso que voc pode basear vrias tabelas na camada lgica em uma nica e mesma tabela na camada fsica. Isto vem a calhar quando se trata de role-playing tabelas de dimenso. A camada de entrega onde as selees de colunas da camada lgica so agrupados em unidades que faam sentido para o usurio corporativo. Este o nico parte da camada de metadados que ser visvel para os usurios empresariais. A partir daqui, eles podem pegar os itens de interesse para a construo de relatrios. Esta seleo indicado em um formato XML especial chamado MQL (metadados Query Language). O MQL''''consulta pode ser usada para gerar uma consulta SQL (ver Figura 12-1). A origem dos itens MQL pode ser rastreado para a camada de lgica e de l para a camada fsica. Com base nessas informaes, pode-se derivar as tabelas deve ser juntado, e as colunas que devem ser agrupados por diante. Propriedades, Conceitos e Herana na Metadados Camada Nesta seo, discutimos conceitos e propriedades, que so fundamentais blocos de construo da Pentaho Metadata Layer. Alm disso, descrevemos como conceitos podem herdar as propriedades de um outro. Propriedades Os objetos na camada de metadados pode ter um nmero de propriedades. As propriedades so itens nomeados que so usados para associar diferentes tipos de informao com 356 Parte IV Inteligncia Aplicaes de Negcio os objetos na camada de metadados. As propriedades podem ser divididos em um nmero de categorias: As propriedades gerais, tais como nome e descrio propriedades visuais, tais como fonte, cor, e se o objeto visvel em todos os utilizadores finais Descritores de Modelo, tais como a expresso subjacente, tipo de dados e agre- Estado inqurito objetos de metadados pode ter uma coleo de propriedades. Dependendo do tipo do objeto de metadados, algumas propriedades so obrigatrias e sempre presente. Conceitos No contexto da Pentaho metadados, um conceito uma coleo de propriedades que pode ser aplicado como um todo a um objeto de metadados. No mximo, um conceito pode ser anexado a um objeto de metadados dessa maneira. Um exemplo de um conceito seria quantia em dlar. Ao adicionar propriedades que fornecem a formatao visual correta de valores em dlares, e especificando uma tipo de dados comuns (por exemplo, um tipo decimal com pelo menos duas posies depois da vrgula) ea regra de agregao (por somatrio, por exemplo), voc pode formatar rapidamente todos os objetos de coluna que mantm os valores que representam dlar montantes. Ao aplicar o conceito ao invs de localmente modificar individuais propriedades no nvel do objeto, assegurar que os metadados consistente e facilmente sustentvel. Os conceitos so construdos em cima de conceitos j existentes. Isto explicado em detalhes no prxima seo,''herana.'' Herana As propriedades podem ser gerenciados usando um recurso chamado herana. Herana ocorre baseando um objeto, o criana objeto, em outro objeto, a pai objeto. Em caso de herana, propriedades da criana e seus valores so obtidos por referncia para as propriedades e valores de propriedade do objeto pai. Em um nvel mais elevado, o objeto pai pode-se herdar de seu objeto prprio pai, que institui um corrente ou hierarquia de herana. Isso permite que mudanas nas propriedades em cascata jusante da cadeia de herana. Objetos na cadeia de herana no so obrigados a herdar todas as propriedades de seu objeto pai. Em vez disso, eles podem mudar algumas ou todas as suas herdada propriedades e fornecer um valor local que se desvie o valor do pai objeto. Quando um objeto fornece um valor local de uma propriedade, ou define um propriedade que no est presente no objeto pai, a cadeia de herana discriminados em relao a essa propriedade, e o objeto filho dito substituir o propriedades de seu objeto pai. Captulo 12 A camada de metadados 357 A camada de metadados tem dois nveis de herana: Metadados objetos herdam as propriedades de seus objetos de metadados ancestral. Conceitos de herdar propriedades de seus conceitos ancestrais. Metadados objetos herdam as propriedades de seu objeto pai. Por exemplo, tabelas lgicas e suas colunas herdar as propriedades de seus respectivos tabelas fsicas e colunas. Isto muito til, pois permite um nico ponto de definio para aquelas propriedades que geralmente precisam ser os mesmos. Por exemplo, o tipo de dados, formato de dados, e talvez a descrio definida para um fsico coluna provavelmente pode ser reutilizado por colunas descendente em ambas as lgicas camada ea camada de entrega. A herana garante que, no caso do fsico modelo alterado, a alterao imediatamente captado pelo objetos derivados. Conceitos so baseados em conceitos j existentes, e herdar as propriedades de seu conceito pai. Na raiz da hierarquia um conceito especial embutido conceito, o Base conceito. hierarquias de conceitos permitem uma gesto adequada de propriedades relacionadas. Para exemplo, suponha que voc queira aplicar formatao consistente dos nmeros. Voc poderia comear pela criao de um conceito genrico Nmero que herda da Base conceito. O conceito de nmero seria substituir apenas uma ou algumas propriedades de o conceito de base que so comuns a todos os itens numricos. Por exemplo, poderia substituir o texto de propriedade de alinhamento e configur-lo para a direita em vez da esquerda. Localizao de Imveis propriedades gerais, como o nome ea descrio pode ser localizada assim que pode ser exibido em vrios idiomas. Isto feito criando primeiro todos locais apropriados e em seguida, especificando o texto adequado para cada localidade. Criao e manuteno de metadados Esta seco explica brevemente os componentes que compem a camada de metadados bem como as relaes que os conectam. No restante deste captulo, descrevemos esses componentes em mais detalhes, e explicar como cri-los utilizando o Pentaho Metadata Editor. O editor de metadados em Pentaho Pentaho oferece a Pentaho Metadata Editor para criar e editar metadados. Voc Pode transferir esta ferramenta a partir da pgina do projeto Pentaho em sourceforge.net. O Pentaho Metadata Editor distribudo como um nico Zip. (Para o Windows plataformas) ou . Tar.gz (Para plataformas baseadas em UNIX) arquivo. Descompactando 358 Parte IV Inteligncia Aplicaes de Negcio o arquivo gera um diretrio que contm o software. Aps descompactar o arquivo, voc pode iniciar o editor, executando o MetaEditor.bat (Em plataformas Windows) ou metaeditor.sh (Para plataformas baseadas em UNIX) script. O Repositrio de Metadados metadados Pentaho armazenado em seu prprio repositrio, que distinto de ambos o Pentaho soluo repositrio e Pentaho integrao de dados repositrio. Atualmente, o Pentaho Metadata Editor a nica aplicao que se destina para editar o contedo do repositrio de metadados. Por padro, a PMA utiliza arquivos binrios para armazenar metadados. Estes arquivos, chamados mdr.btx e mdr.btd, So encontrados no diretrio home do editor de metadados. Voc pode alternar de um arquivo baseado em repositrio de armazenamento para um banco de dados baseado em repositrio com bastante facilidade. Ao lidar com uma grande camada de metadados, desem- mance do repositrio baseado em arquivo pode diminuir significativamente. Neste caso, utilizando um repositrio de banco de dados baseados na Internet podem aumentar o desempenho. Alm disso, uma banco de dados baseado em repositrio mais adequado no caso de mltiplos desenvolvedores esto edio da camada de metadados simultaneamente. O procedimento, descrito no README.txt arquivo encontrado no jdbc Diretrio sob o diretrio home do editor de metadados, o seguinte: 1. Faa um backup do repository.properties arquivo localizado na jdbc diretrio. Voc pode mant-lo no mesmo diretrio, ou mov-lo para a segurana em outro lugar. O backup permite que voc restaure o arquivo original com base em repositrio de configurao. 2. A jdbc contm um nmero especfico de RDBMS propriedades. arquivos. Substituir o original repository.properties arquivo com uma cpia do o RDBMS especfico propriedades. ficheiro de escolha. Por exemplo, para armazenar o repositrio em um banco de dados MySQL, faa uma cpia do MySQL.properties e renome-lo para repository.properties . 3. Abra o modificado repository.properties arquivo e edit-lo para apontar para seu banco de dados. Voc deve fornecer valores para um nmero de propriedades. Os nomes dessas propriedades todos comeam com MDRStorageProperty.org. netbeans.mdr.persistence.jdbcimpl. Esse prefixo seguido por um ponto e um nome que configura uma propriedade de uma conexo JDBC. Tpica nomes de propriedade (sem o prefixo) so: driverClassName: O nome da classe Java do driver url: A seqncia de conexo JDBC userName: O nome do usurio do banco senha: A senha do usurio do banco Captulo 12 A camada de metadados 359 NOTA Descobrimos que a carga eo desempenho salvar bastante reduzida quando se utiliza o repositrio de dados, em oposio ao repositrio baseado em arquivo. Se voc est considerando usar o repositrio do banco de dados de base, voc deve sempre levar algum tempo para medir o impacto no desempenho de sua situao especfica. difcil fornecer uma estimativa aqui, como o efeito real depende de uma srie de fatores, tais como seu hardware, o RDBMS eo tamanho de sua camada de metadados. Metadados Domnios A camada de metadados Pentaho como um todo est organizado em uma ou mais metadados domnios. Um domnio de metadados um recipiente para uma coleo de objetos de metadados que podem ser usados juntos, como uma fonte de metadados para uma soluo Pentaho. (Neste contexto, usamos o termo soluo Pentaho''''como definido no captulo 4: uma coleo de recursos, tais como relatrios e seqncias de ao que residem em um nica pasta no pentaho solues diretrio.) Voc pode criar um arquivo novo domnio, escolha Arquivo Novo Domnio Arquivo a partir do menu principal. Voc pode excluir domnios escolhendo Excluir Domnio a partir do menu principal. Isso abrir uma janela onde voc pode escolher o domnio que voc deseja remover a partir do repositrio. As subcamadas da Camada de Metadados As sees seguintes descrevem os componentes do ambiente fsico, lgico e camadas de entrega que esto includos dentro da camada de metadados. A Camada Fsica Os objetos que residem na camada fsica de um domnio de metadados so des- indicadores que correspondem mais ou menos um-para-um com objetos de banco de dados. A seguintes objetos residem na camada fsica: Conexes de banco de dados descritores de conexo Fsica quadros-Descritores de tabelas de dados e pontos de vista Fsica Tabela Colunas- definies de uma tabela fsica As subsees seguintes abordam cada um desses objetos. Conexes Aobjeto de conexo representa uma conexo de banco de dados. uma descrio da conexo tor, bem como os utilizados por Pentaho Data Integration. Para criar uma nova conexo no editor de metadados, voc pode usar o menu principal e escolher Ficheiro New Connection, ou voc pode boto direito do mouse no Conexes n na rvore do lado esquerdo do editor de metadados e 360 Parte IV Inteligncia Aplicaes de Negcio escolha Nova conexo no menu de contexto. Isso traz um dilogo que , para todos os efeitos, idntico ao Pentaho Data Integration Database Conexo de dilogo. (Consulte o Captulo 9 para obter mais detalhes sobre como usar esta janela para criar uma conexo de banco de dados.) Imediatamente aps a conexo criada, uma caixa de dilogo aparece. A caixa de dilogo apresenta as tabelas base que residem no banco de dados especificado, oferecendo a importar elas. Cancelar a caixa de dilogo para agora. Importando tabelas sero discutidos extensivamente na seo seguinte. Depois que uma conexo criada, a conexo aparece como um n de rvore no exibio em rvore no painel esquerdo. Voc pode boto direito do mouse no n de conexo para trazer o seu menu de contexto. As opes oferecidas h de novo, bastante semelhantes aos voc viu no Pentaho Data Integration. Voc pode: Explore a conexo do banco de dados usando o Database Explorer. Use o Database Explorer para importar as tabelas (ou vises). Abra o editor de SQL para executar instrues SQL arbitrrios. Duplicar a conexo. Excluir a conexo. Se voc gosta, voc pode configurar conexes JNDI para o editor de metadados. O processo idntico ao de adicionar conexes JNDI para Pentaho Data Integrao. Para usar JNDI, primeiro voc precisa adicionar os descritores de conexo ao jdbc.properties arquivo localizado na simples jndi diretamente abaixo do diretrio o diretrio home do editor de metadados. Tabelas e colunas Fsica Fsica A camada de metadados podem descrever tabelas base e pontos de vista em um banco de dados usando chamada Os objetos fsicos tabela. Os objetos fsicos Tabela esto construindo de baixo nvel blocos da camada de metadados. Eles oferecem uma abstrao do banco de dados real tabelas. Os objetos fsicos tabela so objetos filho direto de conexes (discutido no subseo anterior). Ou seja, um objeto de tabela fsica diretamente dependente em cima de um objeto de conexo existente. Voc pode importar tabelas fsicas na camada de metadados clicando em uma conexo e escolher tanto a opo Importar tabelas ou importao de Explorer a opo no menu de contexto. A opo Importar tabelas permite que voc apenas para importar tabelas base. A opo Importar do Explorer abre um banco de dados Explorer como voc viu no Pentaho Data Integration. A partir daqui, voc pode importao tanto a base tabelas e exibies. Fsica Colunas um filho direto de objetos fsicos tabela. A Fsica objeto coluna representa uma coluna de banco de dados real, como uma tabela fsica representa uma tabela real no banco de dados. Colunas Fsica so normalmente adicionados para a camada de metadados automaticamente ao importar tabelas fsicas. Captulo 12 A camada de metadados 361 Para editar uma tabela (ou suas colunas), boto direito do mouse e selecione Editar a partir do contexto menu. A Fsica Quadro de dilogo Propriedades abre, como mostrado na Figura 12-3. Em no lado esquerdo da janela, voc pode selecionar a tabela ou uma de suas colunas de uma rvore. Selecionando um item na exibio de rvore carrega a propriedade apropriada da pgina no lado direito da janela. Voc pode navegar a uma propriedade particular rapidamente selecionando-o na vista de rvore propriedades esquerdo da pgina de propriedades. Figura 12-3: O quadro de dilogo Propriedades Fsicas Na caixa de dilogo, voc tambm pode criar novas colunas personalizadas. Isso til se voc deseja criar uma coluna calculada. Por exemplo, o COUNT (DISTINCT customer_order_id) que foi usado no exemplo de relatrio pode ser adicionado desta forma. Para criar uma nova coluna, clique no pequeno boto com o sinal de adio que aparece na parte superior da janela. Em seguida, editar as propriedades. Voc deve pelo menos reviso todas as propriedades no modelo de descritores e categorias de clculo: 1. Tipo de Agregao-se aplicvel, especificar a funo de agregao. Para exemplo, o _order fato tabela no nosso exemplo Relatrio de Vendas teria distinto agregador de Contagem. 2. O tipo de dados tipo de dados da expresso. 362 Parte IV Inteligncia Aplicaes de Negcio 3. Tipo do campo-Este pode ser usado para especificar se a coluna uma chave coluna, ou uma mtrica ou um atributo de dimenso. 4. Este clculo deve conter a expresso SQL que define esta coluna. Normalmente, isso simplesmente o nome da coluna. Se voc precisa de definies de coluna personalizadas, note que voc tambm pode definir na camada lgica. Na seo seguinte, vamos ilustrar a para o COUNT (DISTINCT customer_order_id) item. No h nenhuma regra dura e rpida que lhe diz onde adicionar estes personalizada colunas. Em alguns casos, pode ser necessrio a coluna personalizada em vrios locais, caso em que provavelmente melhor para adicion-lo ao nvel de uma tabela fsica. Se a coluna personalizada especfico para um uso particular da tabela, provavelmente melhor para inclu-lo na camada lgica ao nvel dos quadros de Negcios. A camada lgica A camada lgica, literalmente, fica entre a camada fsica ea apresentao camada. A finalidade da camada lgica descrever como os objetos do camada fsica se relacionam com o negcio. Os utilizadores empresariais s interagem com esses objetos de negcio ea camada de lgica, portanto, isola-los do tcnico implementao a nvel fsico. At certo ponto, isso permite que um certo grau de independncia de banco de dados de esquema de relatrios. Modelos de Negcios A camada lgica organizado em Modelos de Negcios. Funcionalmente, voc pode pensar de um modelo de negcio como um data mart, ou seja, um subconjunto do data warehouse focado em um assunto particular do negcio. Modelos de Negcios contm tabelas de negcios, relacionamentos e negcios Vistas. Tabelas de negcios e relacionamentos formam o back-end o Modelo de Negcio. Tabelas de negcios so os modelos de tabelas fsicas e Relacionamentos definem como mesas de negcios podem ser combinados (entrou). Vistas Business formam o front-end do modelo de negcios, e servem para apresentar o contedo do modelo para o usurio final. Uma viso de negcios um recipiente para uma ou mais categorias de negcios e, como voc ver mais tarde, um Categoria Negcios funcionalmente similar a um esquema em estrela em um data mart. Voc pode criar um novo modelo de negcio clicando os modelos de negcios n e escolha a opo Novo modelo de negcio. Na janela de propriedades, use a caixa de lista que aparece no canto superior direito da caixa de dilogo para especificar o banco de dados conexo. Atualmente, apenas uma conexo suportada por Modelo de Negcios. Tabelas e colunas de negcios Business Tabelas de negcios residem em um Modelo de Negcio e decorrem directamente da Tabelas fsicas. Da mesma forma, Negcios colunas so directamente derivados Colunas Fsica. Captulo 12 A camada de metadados 363 Em certa medida, mesas de negcios reproduzir fielmente a estrutura do seu fsico correspondente da tabela. No entanto, h uma diferena importante Tabelas de Fsica: Uma mesa de negcios no representa a tabela real; ao contrrio, representa um uso particular de uma tabela fsica. Isso merece alguma explicao. A dim_date tabela uma tabela de dimenses conformadas. utilizado em muitos diferentes papis ao longo do data warehouse de Classe Mundial Filmes. Em um Busi- ness modelo, essas tabelas de role-playing dimenso que cada um ser representado por seus prprios negcios tabela. Por exemplo, num modelo de negcio para o Cliente Ordens do data warehouse de Classe Mundial Filmes, poderamos ter separado Tabelas de negcios para a data do pedido, a data de transporte, data de entrega, eo retorno data de vencimento. Voc pode criar tabelas lgicas rapidamente, arrastando uma tabela fsica para o Tabelas de negcios n. As Colunas fsica sero automaticamente importados, tambm, e ser representada por colunas de negcios. Tal como acontece com as tabelas fsicas, voc tambm pode adicionar colunas personalizadas para Empresas Tabelas. Figura 12-4 mostra o negcio de dilogo Tabela. Na caixa de dilogo, voc pode ver um cliente Ordem coluna Contagem de ser definido. Seu Tipo de agregao de propriedade ser substitudo e definido como o valor Distinct Count. Alm disso, o tipo de campo substitudo e definido como Fato. Essas modificaes permitiro ao usurio de negcios simplesmente escolher o item Contagem de Ordem, em vez de especificar explicitamente o COUNT funo e os DISTINCT modificador na customer_order_id item. Figura 12-4: O negcio Quadro de dilogo Propriedades 364 Parte IV Inteligncia Aplicaes de Negcio Relacionamentos Relacionamentos definir um caminho de juno entre duas tabelas de Negcios. Geralmente falam- o, cada mesa de negcios que aparece em um Modelo de Negcio deve ser relacionado com pelo menos um outro negcio Quadro no mesmo modelo de negcio. No h nenhuma exigncia lgica que dita que cada tabela de negcios deve estar relacionada a pelo menos uma outra tabela. No entanto, faz sentido faz-lo de qualquer maneira. A razo que, se um modelo de negcio de fato um subconjunto prprio de o armazm de dados focada em um aspecto particular do negcio, ento todas as suas Tabelas de negcios deve de alguma forma contribuir para isso. Uma Mesa de Negcios que no relacionados com qualquer outro negcio de mesa tem aparentemente nada a ver com qualquer das outras tabelas. Se esse for realmente o caso, ele provavelmente no deve ser parte de Neste particular Modelo de Negcios. Voc pode criar um novo relacionamento com o boto direito do mouse sobre o Relacionamento n e em seguida, escolhendo Nova Relao. Na caixa de dilogo que aparece, voc pode selecionar as tabelas que esto relacionados, e especificar quais colunas devem ser comparados. Figura 12-5 mostra o dilogo de Relacionamento. Figura 12-5: A relao de dilogo Propriedades Uma coisa para manter em mente sobre os relacionamentos metadados Pentaho que eles no so chaves estrangeiras. As tabelas em um relacionamento tm papis diferentes: Existe uma''tabela''e de''Para uma tabela'', mas no h sentido implcito na sentido de que a partir da tabela deve ser o pai''''Para a tabela e tabela deve ser a criana''tabela'', ou vice-versa. Em vez disso, a direo do relacionamento deve ser definida explicitamente usando a caixa de lista de Relacionamento. Na Figura 12-5 est definido para N: 1, o que significa que pode haver vrias linhas na tabela a partir de uma nica linha na Para a mesa. Por uma questo de sustentabilidade, geralmente uma boa idia de estabelecer um conveno para determinar se a criana ou a tabela pai deve ser inserido como o da tabela (e, inversamente, se a me ou a criana tabela deve ser inserida como a tabela). Na Figura 12-5, foi escolhido o Captulo 12 A camada de metadados 365 Pedidos tabela de negcios (que a criana na relao, e mapas para o fact_orders tabela de fatos no armazm de dados) como o de mesa eo Tabela de negcios do cliente (que a tabela pai na relao, e mapas para o dim_customer tabela de dimenso no armazm de dados) como o Para tabela. A razo para a conveno usada na Figura 12-5 um simples: tentar imitar o que seria o caso se seria a definio de uma chave estrangeira restrio. Nesse caso, tambm, a tabela filho''''possui a chave estrangeira, que evidenciando a partir da tabela filho para a tabela pai. Entretanto, se voc sentir isso no conveniente por alguma razo, voc est livre para usar outra conveno, como Contanto que voc tenha em mente que a propriedade Relaes reflete corretamente o direo da relao. A camada de entrega A entrega camada contm objetos de metadados que so visveis ao fim usurio, como Exibies de Negcios e categorias empresariais. Vistas Negcios Uma viso de negcios uma coleo de chamadas categorias de negcios. Voc pode pensar de uma viso empresarial como um data mart. Um data mart uma coleo de funcionalmente relacionados com esquemas em estrela. Da mesma forma, uma viso empresarial uma coleo de funcionalmente Categorias de negcios relacionados. Voc no precisa criar explicitamente uma viso empresarial. No simplesmente uma Viso empresarial em cada modelo de negcio. Categorias de negcios Uma categoria de negcios um conjunto coerente de negcios relacionados com colunas. Funcionalmente, uma categoria de negcios pode ser pensado como um esquema em estrela. Como tal, uma categoria de negcios normalmente ir conter todos os itens que podem ser utilizados para comunicar sobre uma nica tabela de fatos. Dito isto, Categorias de negcios no parecem ter qualquer estrutura interna na medida em que o usurio final est em causa. A categoria Business simplesmente forma uma coleo de itens que podem ser usados juntos em um relatrio, muito parecido com o Vendas exemplo Relatrio apresentado anteriormente neste captulo. Voc pode criar uma categoria de negcios com o boto direito do mouse sobre o Vista Business n e escolha Nova categoria no menu de contexto. Para preencher a categoria com colunas, basta arrastar todas as colunas de interesse das tabelas de Negcios e solt-los dentro da categoria. Figura 12-6 mostra uma tela do editor de metadados mostrando uma simples Modelo de negcios ao longo das linhas do exemplo de relatrio no incio da Ordem o captulo. 366 Parte IV Inteligncia Aplicaes de Negcio Figura 12-6: Um simples modelo de negcio Como voc pode ver, a figura contm as tabelas de negcios que correspondem a as tabelas reais mostrado na Lista 12-1. Da mesma forma, as relaes entre as tabelas correspondem s JOIN clusulas da Listagem 12-1. Uma vez implantado, os usurios podem criar todos os tipos de relatrios que envolvam ordens, as datas de pedido, clientes e sites sem precisar escrever SQL-se, em vez disso, o Pentaho camada de metadados usado para interpretar as solicitaes dos usurios para os itens do modelo (MQL) e gerar os comandos de banco de dados apropriado (SQL) para produzir os dados do relatrio. Implantao e uso de metadados Depois de criar o Modelo de Negcio (s), voc deve implantar a camada de dados antes voc pode us-lo para criar relatrios. Nesta seo, descrevemos como publicar os metadados. No prximo captulo, voc vai aprender como voc pode realmente construir relatrios sobre uma camada de metadados j implantados. Exportao e importao de arquivos XMI Voc pode criar relatrios sobre metadados usando a fonte de dados de metadados. Esta explicadas em detalhe no Captulo 13. Para criar um relatrio baseado em metadados, voc Deve informar o Report Designer, onde os metadados. O Report Designer consome metadados no XML Metadata Interchange (XMI) formato. Para criar um arquivo XMI para o seu metadados, use o menu principal e escolha Arquivo Exportar para arquivo XMI. Da mesma forma que voc pode usar o arquivo de importao de XMI opo Arquivo para carregar a camada de metadados com os metadados existentes. Captulo 12 A camada de metadados 367 Publicao de metadados para o servidor Se os relatrios devem ser executados no servidor, os metadados devem estar disponveis para o servidor. Os metadados so armazenados no servidor como arquivos XMI. Voc pode ter um XMI arquivo por Pentaho. Este arquivo deve ser chamado metadata.xmi. Voc pode simplesmente exportar os metadados para um arquivo XMI e, em seguida, basta copiar o XMI arquivo para o diretrio soluo adequada no servidor. No entanto, para um servidor de produo, no provvel que todos os desenvolvedores de BI tem acesso directo
sistema de arquivos do servidor. Portanto, o Pentaho BI Server oferece um servio de que permite que voc publique os metadados a partir do editor de metadados. Voc pode publicar metadados para o servidor de BI Pentaho no menu principal por escolha Arquivo Publicar servidor. Este aparece o dilogo Publicar Server, mostrado na Figura 12-7. Figura 12-7: A Publicar dilogo Servidor Para publicar, voc deve configurar a configurao de publicao. A Local de publicao deve ser o nome de um diretrio existente que residem sob o pentaho solues diretrio. A URL Publicar Web deve ser apontado para o Pentaho BI Server. Para obter a senha de publicao, voc deve usar a senha que foi definido no publisher_config.xml arquivo. Essa configurao coberto em Captulo 3. Finalmente, voc deve usar o ID de usurio e senha de um usurio que tem a funo de Administrador (''Joe''e''senha''para uma instalao padro). Atualizando os Metadados Depois de publicar ou copiar o arquivo XMI para o servidor, voc deve dizer ao servidor para recarregar os metadados. Isso pode ser feito a partir do usurio atravs do console No menu, escolha Ferramentas Refresh Reporting Metadados como mostrado na Figura 12-8. 368 Parte IV Inteligncia Aplicaes de Negcio Figura 12-8: Atualizando os metadados com o usurio do console Alternativamente, voc pode atualizar os metadados usando o Servidor de Administrao Console. Para atualizar os metadados do Server Administration Console, pressione o boto Modelos de Metadados no painel Server Refresh BI no Administrao pgina da guia, mostrado na Figura 12-9. Figura 12-9: Atualizando os metadados com a Administrao Server Console Resumo Este captulo apresenta a camada de metadados Pentaho. Os metadados Pentaho camada permite que voc apresente o seu banco de dados ou armazm de dados de uma forma que mais compreensvel para usurios empresariais. Isto permite-lhes apresentar relatrios sem diretamente escrevendo em SQL. O captulo seguinte descreve como voc pode realmente usar a camada de metadados para criar relatrios. Captulo 12 A camada de metadados 369 Neste captulo, voc aprendeu: Que metadados As vantagens de uma camada de metadados As caractersticas da camada de metadados Pentaho Como os metadados Pentaho organizado em conceitos e propriedades e como A herana usada para gerenci-los Como usar o editor de metadados Pentaho (PME) A diviso da camada de metadados Pentaho em fsica, lgica e camadas de apresentao Como a camada fsica organizada em conexes de banco de dados, tabelas e colunas Como a camada lgica organizado em modelos de negcios, mesas, colunas, e relacionamentos Como a camada de apresentao organizada em vises de negcios e categorias Como publicar a camada de metadados para o servidor Pentaho CAPTULO 13 Usando o Pentaho Ferramentas de Relatrios A forma mais comum a publicao de informaes para os usurios finais a criao de relatrios. Na verdade, quando voc olha para um tpico ambiente de Business Intelligence (BI), cerca de 75 a 80 por cento do uso e contedo distribudo composto de comunicao. Outra cento 15-20 utiliza ferramentas analticas para OLAP, e apenas um nmero limitado nmero de pessoas (de 0 a 5 por cento) trabalhar com as ferramentas de minerao de dados. O mesmo 0-5 por cento est sendo tradicionalmente utilizada para indicar o tamanho do usurio populao que utiliza um painel de gesto, mas isso est mudando rapidamente. De fato, em uma soluo Pentaho, a maioria dos usurios de acesso provvel primeiro um painel que exibe o contedo de BI sob medida para suas necessidades. Novamente, uma grande percentagem deste contedo painel ser composto de relatrios, portanto, de informao um elemento- chave de qualquer soluo de BI. Este captulo apresenta os dois relatrios Pentaho ferramentas, o Pentaho Web-based Ad Hoc de Consulta e Reporting Tool e os mais avanados Pentaho Report Designer. Temos tido muito prtico abordagem, oferecendo muitas mos sobre exerccios para que voc possa acompanhar ao explorar as diferentes ferramentas. Supe-se que voc tem acesso a ambos os do Pentaho BI Server e Report Designer Pentaho. Reporting Arquitetura Todas as solues de comunicao moderna tem uma arquitetura semelhante, como mostra Figura 13-1. A figura mostra as diferentes componentes de um relatrio arquitetura: Um gerador de relatrio para definir a especificao do relatrio A especificao do relatrio em um formato XML aberto 371 372 Parte IV Inteligncia Aplicaes de Negcio Designer de Relatrios Relatrio Especificao Middleware Relatrio do motor As fontes de dados Sada do Relatrio Figura 13-1: arquitetura Reporting Um mecanismo de relatrio para executar o relatrio de acordo com a especificao e processar a sada em formatos diferentes Definio de conexo de banco de dados que pode utilizar o middleware do padro, como JDBC para se conectar a diferentes fontes de dados. Na verso mais recente do Pentaho Reporting, as consultas so executados diretamente a partir do mecanismo de relatrio. O modelo na Figura 13-1 muito comum para um programa open source de relatrios soluo. Pentaho no contm apenas os recursos para executar relatrios Pentaho mas tambm inclui as bibliotecas JasperReports para distribuir ou relatrios BIRT. A Pentaho mecanismo de relatrio era conhecido anteriormente como JFreeReports, o designer
uma verso completamente re-projetado do designer JFree relatrio, que agora chamado o Pentaho Report Designer, ou PRD. Embora a funcionalidade de outras solues de comunicao, principalmente o projeto BIRT, j ultrapassou que da ferramenta Pentaho, sempre houve algumas vantagens importantes quando trabalham com a sute de BI Pentaho que justificar o favorecimento do PRD e do JFree motor: Os relatrios criados com o PRD pode ser publicado diretamente no BI Pentaho Server a partir do menu PRD. Isso faz com que a implantao de novos relatrios ou existentes to fcil quanto salvar uma planilha. Captulo 13 Usando as ferramentas Pentaho Reporting 373 PRD pode usar a camada de metadados Pentaho como fonte de dados, tornando-se um ferramenta ideal para usurios de poder sem conhecimento de SQL para criar as suas prprias relatrios avanados. Os relatrios criados por usurios finais utilizando o Pentaho Web-based Ad Hoc Consulta e ferramenta de relatrio pode ser estendida com PRD (embora depois de modific-los com PRD, no pode ser editado com a web interface mais). PRD muito fcil de usar depois de fazer um esforo para se familiarizar com as opes disponveis, este captulo pretende dar ao usurio inexperiente um avano no uso do PRD para criar relatrios sofisticados. Durante o primeiro semestre de 2009, o PRD tem uma reviso completa e est agora funcionalmente a par com a principal fonte de informao aberta outras solues, e em alguns aspectos, o conjunto de recursos mesmo superior ao das ferramentas concorrentes. Relatrios baseados na Web O portal web Pentaho no apenas para visualizao e anlise de contedo, mas tambm oferece recursos de relatrios ad hoc. A ferramenta de relatrios ad hoc trabalha em uma forma intuitiva, orientando o usurio atravs de um assistente de quatro etapas. Os relatrios que podem ser criados usando o construtor do relatrio baseado na web se limitam a agrupar listas, sem grficos, quadros ou tabelas de referncia cruzada. Isso limita a usabilidade do ferramenta baseada na Web para criar relatrios perspicazes BI-tipo, mas ele ainda pode ser usado por usurios finais para obter rapidamente uma viso detalhada sobre questes especficas. O nome oficial da ferramenta web Web consulta ad hoc e cliente de relatrio, ou WAQR para breve. O WAQR pode trabalhar apenas com modelos de metadados, que tm de ser criadas e publicado no primeiro servidor. Esse processo explicado no Captulo 12. Criando um relatrio um processo simples. Voc pode comear em um dos trs maneiras: clique no boto Novo Relatrio sobre a tela de boas vindas, clique no Relatrio cone de opo na barra principal, ou selecione Arquivo novo relatrio a partir do menu. Todos estas opes de iniciar o Assistente de Relatrio Ad Hoc, onde voc comea escolhendo um modelo de negcio e um modelo. O modelo de negcios determina os dados que sero utilizados no relatrio, o modelo determina que o relatrio ser aparncia. NOTA Tenha cuidado quando voc seleciona um modelo diferente depois de modificar o relatrio configuraes. Seleo de outra modelo redefine layout de pgina, tamanho do papel, bem como o relatrio cabealho para os valores padro. Depois de selecionar o modelo de negcio e instalada em seguida, leva Pentaho voc ao fazer selees parte do assistente. O lado esquerdo da tela exibe todos os elementos disponveis dados agrupados por viso empresarial, o direito 374 Parte IV Inteligncia Aplicaes de Negcio lado contm os grupos, os detalhes, e as caixas de filtro, onde os campos selecionados podem ser colocado. Grupos permite que voc adicione (sub) cabealhos e (sub) totais e pode tem cinco nveis de aninhamento. Campos colocados na caixa de detalhes ser a parte interna do menor nvel de grupo. A ltima caixa para elementos filtrantes, estes campos no faro parte da sada do relatrio, mas pode ser usado para filtrar a de dados. Os filtros tambm podem ser colocados em campos de grupo e de pormenor, mas o contedo do esses campos sero sempre visveis no relatrio. O relatrio mais simples imaginvel a adio de apenas um nico campo para os detalhes caixa, que tambm o requisito mnimo para o reprter ad hoc para o trabalho. Os relatrios podem ser visualizados em HTML (a opo padro), PDF, CSV ou XLS. Com estas duas ltimas opes, Pentaho adiciona uma maneira conveniente de extrao de dados a partir de um data warehouse para a anlise de qualquer ferramenta que o usurio est acostumado. Quando todo o grupo, detalhes e campos de filtro foram adicionados, voc pode clicar em Avanar, que traz uma tela quase vazio, para alm do mesmo grupo, detalhe, e caixas de filtro que so posicionados do lado esquerdo. Este Customize Selees tela onde o verdadeiro trabalho pode ser feito e contm muitas opes que no so imediatamente bvios: Classificando-Informao podem ser classificados em campos de grupo e detalhes. WAQR adiciona automaticamente os campos de grupo para seleo de classificao. No possvel para remover essa triagem, a nica opo mudar a ordem de classificao. Detalhe campos no so adicionados automaticamente. Quando voc clica em um campo de detalhes, o tipo tela aparece no lado direito da tela, onde o campo pode ser adicionado ea ordem de classificao pode ser alterada. Filtragem de Qualquer campo pode ser usado para filtrar, e vrias condies podem ser combinadas usando os operadores E e OR. As condies disponveis dependem do tipo de campo utilizado no filtro. Se for um campo de caractere, condies, tais como comea com ou contm Esto disponveis, para uma data, a condies em,antesE depois podem ser utilizados, e para valores numricos, operadores, tais como =,> =E <esto disponveis. A opo de seleo est disponvel onde os valores podem ser escolhidos de uma lista de valores. Isso implementado como uma tela de pesquisa onde voc pode usar o *personagem como um curinga. Se voc deseja exibir todos os valores de uma determinada coluna, insira *e pressione Pesquisar. Agregando e formatao Vrios funes de agregao e de campo formatos esto disponveis para os campos de detalhe. valores no-numricos s pode ser contados, mas para valores numricos, o padro funes de clculo mdia,contagem,soma,minE max esto disponveis. Estes resumos so colocado dentro de cada grupo ou subgrupo. Basta clicar em um campo de detalhes e as opes de formatao se tornar visvel. Cada campo pode ser formatado individualmente. Captulo 13 Usando as ferramentas Pentaho Reporting 375 Agrupamento e paginao Cada grupo pode ser usado para a criao de uma pgina quebrar logo aps ou antes de um novo grupo comea. Voc tambm pode escolher se um total de grupo devem ser adicionados e se cabealhos de grupo devem ser repetidos em cada pgina. Para obter essas configuraes, voc precisar selecionar o nvel correspondente (Nvel 1 a Nvel 5), que ir exibir o agrupamento disponveis e opes de paginao. A tela final com as configuraes do relatrio contm a orientao da pgina e tamanho e pode ser usado para inserir cabealhos e rodaps de relatrio. Imprimir a data ea pgina nmeros so adicionados automaticamente. Voc ver que o boto Avanar na inferior direito da tela cinza agora. Este o comportamento correto: salvar o relatrio no faz parte do assistente, mas deve ser feito usando o menu ou os botes de atalho na tela principal Pentaho. O relatrio salvo em o formato que era o formato de visualizao ativa no momento de salvar, ento se voc selecionados PDF como a opo de visualizao, o relatrio salvo abrir como um arquivo PDF. Usos Prticos da WAQR A opo WAQR uma tima maneira de comear a construir os seus relatrios com o primeiro Pentaho BI Suite, mas tem vrias limitaes que tornam improvvel que WAQR ser sua principal ferramenta de comunicao. Como j mencionado, grficos e tabelas no esto disponveis, e as opes de formatao so muito limitados. Por exemplo, ele no possvel modificar o tipo de fonte ou a cor dos valores exibidos na relatrio a menos que voc modifique as configuraes da camada de metadados. A maneira como olhamos para ele, WAQR pode ser uma boa ferramenta em dois casos a seguir: Exportar dados-Seleo e exportao de dados para uma planilha ou um arquivo CSV provavelmente a opo mais utilizada de WAQR. H, naturalmente, muitas outras maneiras de obter dados de um armazm de dados em uma planilha, mas a velocidade ea facilidade de uso do WAQR para este efeito difcil de bater. Quickstart relatrio Relatrios criado com WAQR e salvos no servidor pode ser aberto a partir do Report Designer Pentaho (PRD) de novas modificao. Como criar um relatrio bsico de WAQR geralmente muito mais rpido do que com o designer de relatrio, isso pode poupar-lhe um considervel quantidade de tempo. Uma ressalva, porm: voc ter direitos de acesso para o pasta onde o servidor de relatrios so salvos. DICA Quase nada na plataforma Pentaho pode ser alterada ao seu gosto, incluindo o relatrio de modelos. Os modelos esto armazenados na pasta do servidor de BI pentaho-solutions/system/waqr/templates. Cada modelo armazenado em sua pasta prpria, por isso a maneira mais fcil de adicionar o seu prprio modelo uma cpia do existentes pastas e renome-lo. PRD pode ser usado para criar e modificar templates, 376 Parte IV Inteligncia Aplicaes de Negcio e as informaes detalhadas sobre a modificao manual de modelos pode ser encontrado no Wiki em Pentaho http://wiki.pentaho.com/display/ ServerDoc1x/Adhoc Reporting + + Modelos. Pentaho Report Designer A Pentaho Report Designer (PRD) o front-end grfico para criar, edio e publicao de relatrios para a plataforma Pentaho BI. Uma das principais vantagens da utilizao do PRD mais construtores outro relatrio o capacidade de utilizar modelos Pentaho metadados como fontes de dados. Os relatrios tambm podem ser publicado diretamente para o servidor Pentaho do designer para o uso no Pentaho Portal do Usurio. O novo . PRPT formato do arquivo automaticamente reconhecido pelo a aplicao de servidor Pentaho assim um relatrio PRD podem ser executados no portal sem a necessidade de adio de invlucros extra em torno dele. Basicamente, existem dois tipos de escritores relatrio: anilhadas e fluxo orientado ferramentas. ferramentas Banded dividir um relatrio em um ou mais grupos de dados de relatrio onde elementos podem ser colocados, enquanto as ferramentas baseado em fluxo permitem um formato mais livre colocao de elementos em uma pgina. PRD um editor de relatrio em faixas, assim como o bem conhecido e amplamente utilizado Crystal Reports. Embora autores do relatrio em faixas so mais rigorosas na forma como os elementos de relatrios diferentes podem ser usados em um relatrio, PRD permite a utilizao de sub-relatrios, que em muito melhorar a flexibilidade e disposio opes. RELATRIO DE ARQUIVOS PRD Um relatrio do PRD armazenado como um . PRPT ficheiro de pacote. Este pacote contm um colec- o de arquivos XML que definem o relatrio. A layout.xml arquivo contm todas as informaes de layout, enquanto o ds.xml *- arquivos contm as definies de consulta. Tenha em ateno que quando uma conexo JDBC puro usado, as senhas so armazenadas como texto simples. melhor usar as conexes JNDI e deixar o servidor de lidar com a definies de segurana. Alm da orientao da pgina das ferramentas de comunicao diferentes outra distino importante: WYSIWYG versus viso da estrutura. WYSIWYG (What You See Is What You Get) designers de relatrios permitem que voc trabalhe em uma lona e os resultado final imediatamente visvel para o designer do relatrio. PRD no uma completa designer WYSIWYG, para que na maior parte trabalha com uma tela de design que mostra a estrutura do relatrio, no o contedo e layout final. Uma opo de visualizao disponveis para ver como o relatrio vai olhar para um usurio final. Qualquer relatrio pode tambm ser visualizada em diferentes formatos de sada disponveis: PDF, HTML, XLS, RTF, e CSV. Captulo 13 Usando as ferramentas Pentaho Reporting 377 NOTA Embora PRD no um editor WYSIWYG completo, voc pode alterar a maioria das opes de formatao diretamente no painel de propriedades, quando em modo de visualizao. As prximas sees explicam como PRD pode ser usado para criar relatrios perspicazes. A fim de ilustrar as diferentes partes do designer de relatrio, ns usamos muito exemplo simples de um relatrio com os anos, trimestres e meses a partir de uma dimenso de data WCM. Por fim, mostramos como construir uma venda mensal relatrio usando o conjunto de ferramentas completo. A tela do PRD Quando voc comea PRD, pela primeira vez, o aplicativo apresenta um Welcome tela, como mostrado na Figura 13-2. Figura 13-2: Pentaho Report Designer tela de boas vindas Figura 13-2 mostra a tela de boas vindas com a guia Recursos aberta. Por padro nesta parte da tela no ser visvel. Se voc fechar o Welcome tela ou voc tem a opo Mostrar na inicializao desligada, voc pode reabrir tela clicando em Ajuda Bem-vindo. A tela de boas-vindas realmente vem em acessvel, pois contm todos os atalhos para voc comear rapidamente. Clicar a opo exibe Recursos links para o Guia de Incio Rpido e Pentaho Wiki com a documentao do produto disponvel. O link leva voc Fruns ao Frum Pentaho onde voc pode postar e responder perguntas, ou encontrar respostas de outros usurios que no podem ser encontrados na documentao. A Recursos de parte da tela tambm contm uma lista de exemplos para ajud-lo iniciado rapidamente. 378 Parte IV Inteligncia Aplicaes de Negcio O layout da tela do PRD bastante simples e se parece muito com qualquer outra ferramenta de relatrio sobre o mercado. H uma barra de menu no topo, a galeria com blocos relatrio edifcio do lado esquerdo, ea tela de propriedades do lado direito. A parte central da tela est reservado para a tela de design prprio onde voc pode construir os relatrios e sub-relatrios. PRD oferece duas maneiras de construir um novo relatrio: A nova opo (ou em branco de relatrio no ecr Welcome) cria um novo relatrio vazio para voc. O Assistente de Relatrio leva voc atravs das quatro etapas necessrias para criar uma relatrio completo. O Assistente de Relatrio funciona de forma semelhante ao WAQR conforme descrito no seo''Usos Prticos WAQR'', mas suas opes so um pouco diferentes: 1. Selecione um modelo para o layout do relatrio exigido. 2. Definir os dados necessrios, incluindo filtros e tipos. 3. Definir e agrupando os itens disponveis a partir da consulta. 4. formatos campo Definir e funes de agregao. Vamos pular o assistente no restante deste captulo e se concentrar em configurar manualmente um relatrio. melhor que constri a sua compreenso do ferramenta, o assistente apenas um atalho. Estrutura do relatrio Um relatrio do PRD dividido em vrias sees de diferentes tipos. Algumas destas so padro, como cabealhos de pgina e relatrio, outros so flexveis e podem ser adicionadas ou removidas por um designer de relatrio. Quando voc inicia um novo relatrio em branco, a estrutura bsica imediatamente visvel, como mostrado na Figura 13-3. Para criar Figura 13-3, a guia Estrutura no canto superior direito foi ativado e os grupos de rvores e detalhes do corpo foram ampliadas, clicando sobre eles. Quando voc clica em um elemento, como o relatrio mestre na tela, o editor de propriedades aparece no canto inferior direito. Qualquer estrutura ou contedo elemento tem propriedades que podem ser alteradas programaticamente ou usando o designer. As propriedades so divididas em estilos e atributos, onde o estilo propriedades so usadas para determinar o que um elemento parece, e os atributos determinar o contedo eo comportamento de um elemento. DICA Para evitar que a tela fique demasiado cheio ao projetar seu relatrio, os grupos e os cabealhos podem ser escondidos, clicando neles na Estrutura navegador e selecionar o atributo comum esconder sobre tela, que uma simples checkbox. Marcando ou desmarcando esta opo no tem efeito sobre o relatrio sada apenas um projeto de ajuda. Captulo 13 Usando as ferramentas Pentaho Reporting 379 Figura 13-3: Estrutura do relatrio Os pontos bsicos que compem um relatrio so: Cabealho / Rodap de Pgina-Qualquer contedo colocado aqui ser adicionado a cada pgina do relatrio. Exemplos de contedo so os nmeros de pgina, data de impresso, e os logotipos da empresa. A pgina de propriedades de estilo de comportamento pode ser usado para indicar se o cabealho ou rodap de pgina deve ser impresso na primeira ou a ltima pgina ou no. Relatrio / Cabealho Rodap-Qualquer contedo colocado aqui s ser exibido uma vez. O uso tpico de um cabealho do relatrio uma pgina com todos os relatrios parmetros, um resumo breve relatrio, bem como o ttulo do relatrio. O rodap freqentemente usado para exibir totais de relatrio. Cabealho do Grupo / rodap-A relatrio tem pelo menos um grupo para organizar contedo. Cada grupo tem um cabealho e rodap para colocar em nvel de grupo rtulos ou subtotais. Os grupos podem ser aninhados em outros grupos, criando um estrutura hierrquica relatrio. Detalhes Corpo S o grupo mais interno contm o Corpo de detalhes, que contm a banda Detalhes, onde as linhas individuais de uma consulta conjunto de resultados pode ser colocado. O cabealho e rodap detalhes tambm fazem parte da Corpo detalhes. 380 Parte IV Inteligncia Aplicaes de Negcio Dados no-Este um tipo especial de banda que pode ser usado para mostrar informaes quando o conjunto de resultados da consulta est vazia. parte dos detalhes Grupo Corpo. Watermark-Este banda especial pode ser usado para adicionar uma marca d'gua que ser impresso como um fundo em cada pgina. uso comum para mostrar um texto, como o''Projeto''ou''confidencial''ou um logotipo da empresa em cada pgina. Relatrio Elementos O lado esquerdo da tela do design na Figura 13-3 contm a paleta de base blocos de construo para exibio de contedo em um relatrio. Tabela 13-1 contm uma breve descrio desses elementos. Todas as opes so visualizados como cones com o texto a ser exibido quando o mouse passa sobre o cone. Tabela 13-1: elementos Reporting ELEMENTO etiqueta DESCRIO A maioria dos elementos bsicos para adicionar texto esttico e rtulos de coluna a um relatrio. Contm um rtulo para Assistente para criar facilmente cabealhos de coluna. Exibe valores de texto a partir de um conjunto de dados. Exibe os valores numricos de um conjunto de dados. Contm formato atributos especficos para campos numricos. Exibe valores de data a partir de um conjunto de dados. Contm formato atributos especficos para campos de data. A maioria dos campos de dados dinmico avanado. Pode conter combinado texto, o campo de referncias e funes em uma nica clula e permite para formatar os dados ao mesmo tempo. Por exemplo: Cliente: $ (nome) $ membro (apelido) desde: $ (data, date_registered, MM / dd / aaaa) Baseado em um arquivo de recurso, PRD pode traduzir textos na etiqueta outras lnguas. Baseado em um arquivo de recurso, PRD pode traduzir no contedo do campo outras lnguas. Baseado em um arquivo de recurso, PRD pode traduzir mensagens em outras lnguas. campos de imagem exibe a partir de um conjunto de dados. Apresenta uma imagem de ambos os recursos de um local ou uma URL. Insere uma elipse. Insere um retngulo. text-campo campo de nmero data-campo Mensagem de-campo recursos rtulo recursos campo recursos mensagem teor de-campo imagem elipse retngulo Captulo 13 Usando as ferramentas Pentaho Reporting 381 ELEMENTO na linha horizontal linha vertical levantamento escala DESCRIO Insere uma linha horizontal. Insere uma linha vertical. Um mini-mapa que exibe os resultados da pesquisa em uma escala de 1-5. (Isso configurvel. O intervalo real definido atravs de atributos). Insere um grfico, que pode ser editado pelo editor grfico. Traduz o contedo do campo em um cdigo de barras que pode ser lido por leitores digitais. Um grfico de mini-bar para ser utilizado em linha. Um grfico de linha mini para ser usado em linha. Um grfico de pizza mini para ser usado em linha. Este tipo de campo pode tambm ser usado para criar indicadores semforo em uma gesto sumrio. Pode ser usado para agrupar e formato diferentes elementos. Pode ser usado para carga externa sub-relatrios a partir de uma URL ou caminho. Insere um sub-relatrio, que pode ser aberto em seu prprio PRD tela. grfico simples cdigos de barras bar sparkline linha sparkline torta-sparkline banda externa- elemento-campo sub-relatrio Criando Conjuntos de dados A parte mais importante da criao de um relatrio determinar quais dados devem ser exibido e, em caso de PRD, como os dados so agrupados e agregados. Embora o agrupamento e agregao podem ser adicionados mais tarde, faz sentido pensar o design do relatrio antes de comear a construir os conjuntos de dados. A PRD relatrio pode conter apenas um conjunto de dados, mas os relatrios podem conter sub- relatrios com seus prprios dados conjuntos. No possvel usar ou combinar dados de sub-relatrios no relatrio principal. PRD pode recuperar dados de muitas fontes de dados, voc pode at usar o JavaScript como fonte de dados. A maneira mais comum para criar consultas, no entanto, usar um Conexo JDBC ou os arquivos de metadados Pentaho. Quando um relatrio criado, Existem trs maneiras de criar uma fonte de dados: Usando a opo Adicionar Fonte de Dados com a opo do menu Dados Boto direito do mouse no cone DataSets na guia Dados sobre a direita da tela Clique no cone do banco de dados na guia dados diretamente 382 Parte IV Inteligncia Aplicaes de Negcio Com qualquer um destes mtodos voc obter uma lista de opes com JDBC e Metadados no topo. Estas duas opes sero usados com mais freqncia para que eles sejam explicado mais adiante no texto que segue. Criando consultas SQL usando JDBC A tela de definio de uma fonte de dados JDBC consiste de um painel com os disponveis conexes, consultas disponveis, o nome da consulta e da consulta propriamente dita. Voc j criou o wcm_dwh conexo no Captulo 3 para que possa ser selecionado aqui. Aps clicar no sinal de mais direita do texto disponvel consultas, uma consulta vazia criada uma nova com o nome Consulta 1. Se esta a nica consulta voc estar criando para o relatrio deste nome bom, mas aconselhamos que voc sempre dar um nome significativo para as consultas que voc est construindo. Voc pode escrever o Consulta SQL diretamente no painel de consulta, mas no h uma alternativa muito melhor, que ir aparecer quando voc clicar no pequeno lpis na direita. Isso abre uma Query Designer grfico, que uma verso integrada do open source SQLeonardo projeto. O Designer de Consulta oferece uma maneira fcil de criar SQL consultas, mas voc precisar de algum conhecimento de SQL bsico para faz-lo. por isso que incluiu um primer SQL no Captulo 7. A guia de design, que aberto por padro, consiste em consulta visual representao no canto superior esquerdo, as tabelas e exibies disponveis no canto inferior esquerdo, ea tela de um desenho direita. Figura 13-4 mostra um exemplo da tela com a consulta que ser usada para o exemplo de imagens mais tarde neste captulo. Figura 13-4: Designer de Consulta SQL tela Captulo 13 Usando as ferramentas Pentaho Reporting 383 Primeiro voc tem que decidir quais as tabelas a utilizar para a consulta. Voc pode adicion-los para a tela direita, arrastando-los l ou simplesmente clicando duas vezes o nome da tabela. Quando voc adiciona uma segunda tabela voc notar que a consulta Designer adiciona automaticamente a representao grfica da chave estrangeira as relaes se tiverem sido definidos no banco de dados. Com certeza o jeito mais rpido para selecionar um esquema em estrela completa no criador de consultas arrastar uma tabela de fatos para a tela, clique no nome da tabela e selecione Abrir Todas as tabelas primrias a partir do menu. Isto ir adicionar todas as tabelas de dimenso para a estrela esquema porque eles so os quadros de chave primria para todos os _Casos campos na tabela de fatos. Por padro, todos os campos da tabela so selecionados, para desmarcar-los, clique no nome da tabela na tela e selecione Desmarcar tudo. Note que isto s ir funcionar quando restries de chaves estrangeiras foram definido. Com o MySQL utilizando MyISAM, isto no possvel a todos os que voc tem que definir todas as relaes manualmente. NOTA Relaes de chave estrangeira nem sempre existem no banco de dados, que significa que voc tem que identificar as relaes entre as tabelas mesmo. Basta clicar em uma coluna em uma tabela, mantenha o boto do mouse pressionado e mova o mouse para a coluna relacionada na outra tabela. Quando voc soltar o boto do mouse, o relacionamento adicionado. Boto direito do mouse sobre o pequeno quadrado vermelho no meio de um relacionamento permite-lhe seleccionar a funo de edio. Isso traz a juntar-se editor onde voc pode mudar de operador (=, >, < =>, <=, <>) e indicar a juno tipo, selecionando a partir do qual todos os valores da tabela devem ser recuperados. Selecionar os campos que precisam ser parte do conjunto de resultados uma questo de clicando nas caixas apropriadas. Adicionando clculos leva um pouco de considerao, entretanto. Se tudo que voc quer uma soma de um campo, no marque a caixa de seleo, mas boto direito do mouse na coluna e selecione Adicionar Expresso. As funes agregadas Contagem,Min,MaxE Soma esto disponveis a partir da lista drop-down. Selecionando o Soma funo para a coluna de receitas no fact_orders tabela cria o item sum ("fact_orders '.' receitas ') no conjunto de resultados. Embora PRD aceita isso como um nome de campo, melhor adicionar um alias significativa clicando com o funo na lista de seleo, escolhendo Editar e adicionar o texto como Receita para a funo. Do captulo 7, voc deve se lembrar que um agregado exige umpelo grupo declarao tambm. O Designer de Consulta no adiciona os campos para GRUPO seo automaticamente, mas estes podem ser facilmente arrastado l. Adicionando restries onde clusula funciona de forma muito semelhante adio expresses. Boto direito do mouse no nome da coluna na tela e selecione a opo adicionar condio em que. Isso abre o editor de conexo em que as restries pode ser definida. No nem uma opo de lista de valores nem qualquer outra forma de exibio de dados de uma nica coluna que voc ter que saber as entradas disponveis antes de definir as condies. 384 Parte IV Inteligncia Aplicaes de Negcio DICA Quando voc est criando um onde condio e no sei o valor correto para entrar, faa o seguinte: 1. Feche a tela do Query Designer, clicando em OK, e adicionar uma nova consulta fonte de dados. 2. Abra a tela de Designer de Consulta e arraste a tabela que contm a coluna cujos valores que voc precisa saber para a tela. 3. Desmarque todas as colunas e selecione a coluna da direita. 4. Direito do mouse no SELECT bem abaixo do cabealho ROOTQUERY e Escolha distintas. 5. Pressione Visualizar para visualizar os valores da coluna, voc pode copiar os valores voc quer, selecionando a linha (s) e pressionando Ctrl + C (no h boto direito do mouse opo). 6. Feche o designer, retire da lista de consulta de valores e reabrir o consulta original. 7. Edite o onde condio e colar os valores selecionados dentro (no for- comea a colocar aspas em torno do valor [s], se a seleo est em uma coluna de texto. Os valores numricos no exigem aspas). Voc pode visualizar os resultados da consulta e do SQL que gerado como resultado da consulta diretamente da tela do Query Designer. A guia de sintaxe em os interruptores canto inferior esquerdo da vista para o SQL gerado, ea opo de visualizao executar a consulta e mostrar o conjunto de resultados em forma tabular. Quando terminar construo de sua consulta, pressione OK para fechar o Designer de Consulta e posteriormente pressione OK para fechar o editor de fonte de dados. O novo conjunto de dados agora aparece na Dados da guia PRD com todos os nomes de coluna expandido, como mostrado na Figura 13- 5. Figura 13-5: JDBC resultado de consulta DICA Quando quiser adicionar uma tabela pela segunda vez para ser usado como um alias (para exemplo, para usar a dimenso de data para a data do pedido ea data da expedio), voc Captulo 13 Usando as ferramentas Pentaho Reporting 385 notar que PRD gera um aviso com o texto''A tabela j carregados e aliasing desativado!''Basta fechar esta mensagem e mude para o separador de sintaxe do Designer de Consulta aps desmarcar todas as colunas. Adicione o nome de alias para o direito de o nome da tabela. No no OK, mas voltar para o guia designer. Voc receber um mensagem dizendo que a sintaxe mudou: aceitar as mudanas ea tabela nome mudado para o novo apelido. Agora voc pode adicionar a mesma tabela uma pela segunda vez. Repita esse processo se aliases so necessrios mais. Criando consultas de metadados Ao selecionar Metadados como fonte de dados, uma tela semelhante aos dados JDBC janela de fonte aberta. Alm da ligao correta, os dados de metadados Fonte tela Editor exige a seleo de um arquivo XMI. Depois de selecionar o XMI arquivo e abrir o editor de consultas, o MQL Query Builder aberto para que o modelo de negcios pode ser selecionado. As vises de negcios disponvel dentro de um modelo so exibidos como pastas e campos podem ser selecionados clicando no nome do campo e, posteriormente, clicando na seta para adicionar o campo para a Selecione, Condio, ou ORDER BY lista. ATENO Em PRD, os dados tm que ser ordenadas do jeito que voc quer que ele aparea em o relatrio usando as opes de classificao na consulta. No h outra maneira de classificar os dados depois de ter sido recuperado. Criando um conjunto de dados usando o editor de MQL parece ser uma muito simples processo e, primeira vista ele . O mesmo truque para obter valores a serem aplicados em sua condies pode trabalhar com o editor de consultas JDBC, mas voc deve estar ciente de as seguintes limitaes: Nenhum expresses podem ser adicionados, por isso, quando um objeto no est disponvel no modelo de metadados que voc no pode adicion-lo no editor de MQL. Em vez disso, o modelo precisa ser ampliado e exportada como um arquivo XMI novamente antes de usar o novo campo. Condies no podem ser agrupadas usando parnteses para forar a avaliao precedncia, mas so avaliados de acordo com a ordem expresso lgica onde E tem precedncia sobre OU. Voc pode experimentar por si mesmo: O expresso E um b ou C e d avaliada como (A e b) ou (c e d), que poderia ser correto, mas se voc queria ser A e (b ou c) e d voc tem um problema porque o editor no pode MQL condies, este grupo caminho. A nica maneira de condies corretamente grupo desta forma reconstruir a consulta no editor JDBC vez e adicionar manualmente os colchetes. O resultado da consulta MQL o mesmo que com qualquer outra fonte de dados. No primeiro nvel um conjunto de dados que mostra o tipo de fonte de dados (neste caso Metadados) Com o nome da conexo entre parnteses. Aninhados abaixo do conjunto de dados 386 Parte IV Inteligncia Aplicaes de Negcio a consulta com o nome da consulta (na maioria dos casos, uma consulta ou apenas de consulta), e no nvel mais baixo dos campos disponveis. A diferena entre um JDBC e Metadados conjunto de dados a descrio das colunas de metadados, que mostra a nome da coluna metadados de negcios, e no o nome da coluna do banco de dados real. Exemplo de dados Set Para as seguintes instrues que voc vai usar um dado muito simples definido a partir do dim_date tabela. Os dados do exemplo dado pode ser criado usando ambos os JDBC e editores de metadados e consiste dos campos ano4,quarter_name, month_numberE MONTH_NAME de qualquer tabela de dimenso de data. Ordem dados por ano4,quarter_nameE month_number e Verifique se a opo Distinct escolhido. Nenhuma condio pode ser adicionada ainda. Arraste as linhas do resultado para o Detalhes da faixa e pressione o boto Preview (o olho''pouco''para a esquerda do lista de fontes drop-down na parte superior da tela de projeto). Figura 13-6 mostra o resultado parcial do presente exerccio. Parabns-voc acabou de criar seu primeiro relatrio! Figura 13-6: Primeiro Relatrio Lista Adicionando e Usando Parmetros Fixo consultas so muito bem para relatrios padro, mas normalmente um pouco mais de interao necessria. Essa interao pode ser adicionado usando parmetros que permitem que um usurio a escolher determinados valores cada vez que o relatrio executado. Adicionando parmetros fcil usar o PRD Adicionar funo de parmetro. Voc pode encontrar este sob a Dados do menu, clicando na rvore Parmetros na guia Dados, ou simplesmente clicando no cone de atalho na parte superior da guia Dados. Um parmetro normalmente com base num conjunto de valores que um usurio pode escolher, mas um parmetro de texto livre como bem disponvel. Todos os tipos de parmetro e exigem uma lista predefinida de IDs e valores. A lista de valores deve vir de uma fonte de dados diferente da consulta principal. Qualquer fonte de dados podem ser usados aqui e porque JDBC e Captulo 13 Usando as ferramentas Pentaho Reporting 387 fontes de metadados j tenham sido abrangidos, vamos introduzir um novo tipo de fonte de dados aqui. PRD tem a capacidade de definir uma tabela personalizada, incluindo o contedo da tabela no relatrio. Quando voc adiciona um parmetro e clique em no sinal de mais para criar uma nova fonte de dados, selecione Tabela. Isso inicia o Quadro Datasource editor, que permite definir IDs de costume e valores. O ID o valor que ser passado para a consulta, o valor ser exibido como uma escolha para o usurio quando executar o relatrio. Alm do parmetro de texto bsica, sete tipos de visualizao e seleo so disponveis. A lista drop-down, lista simples / mltipla, um boto de rdio e caixas so elementos bsicos da interface do usurio que podem ser encontrados em muitas outras aplicaes como tambm. Os dois ltimos so bastante raros, o que estranho, considerando a clareza ea facilidade de uso para usurios finais. Estes so os tipos simples e multi-boto, que apresentam uma banda de botes para escolher. Para o relatrio de exemplo, voc criar dois parmetros, um para a seleco de um ano a partir de uma caixa suspensa, e um para selecionando um ou mais quartos com um parmetro de multi-boto. Cada parmetro vai buscar a sua prpria consulta. Siga estes passos: 1. Adicionar um novo parmetro para o Ano e adicionar um JDBC ou dados de metadados fonte. A fonte de dados contm uma consulta que seleciona os valores distintos da ano4 campo em qualquer dimenso de data. 2. D o nome qry_param_year fonte de dados eo nome do parmetro param_year, Insira o texto Selecione o ano como parmetro Label Drop e selecione Down como tipo. Como a consulta contm uma nica coluna, ano4, este automaticamente selecionado para o ID e Valor. 3. Criar o Trimestre parmetro. Adicionar um novo parmetro param_quarter e adicionar um novo quadro DataSource com o nome tbl_param_quarter. Agora inserir os valores como mostrado na Figura 13-7. Figura 13-7: Parmetro editor Tabela 4. Selecione Id como ID / Nome e valor como valor a partir das listas drop-down e certifique-se que java.lang.String selecionado como o tipo de dados. O Adicionar tela de parmetro agora parece que a tela na Figura 13-8. 388 Parte IV Inteligncia Aplicaes de Negcio Figura 13-8: Adicione tela de parmetro Os parmetros do recm-criado pode ser testado, executando uma previso: a parmetros ser visvel na parte superior da tela do relatrio. Voc pode selecionar e valores desmarcar, mas fora isso, nada acontece ainda. A etapa final implica associar os parmetros para a consulta principal. Primeiro voc precisa saber como referncia o parmetro em uma consulta. Usando uma fonte de dados JDBC este simplesmente uma questo de colocar o parmetro ID com chaves e antes los com um cifro, como no $ {} Param_year. Voc pode usar o grfico designer para adicionar um onde condio para as colunas ano4 e quarter_name mas o texto pode ser digitado diretamente sem abrir o editor. O completo consulta deve ser semelhante ao seguinte: SELECT DISTINCT "Dim_date_en_us '. Ano4, "Dim_date_en_us '. Quarter_name, "Dim_date_en_us '. Month_number, "Dim_date_en_us '. MONTH_NAME' DA "Dim_date_en_us ' ONDE "Dim_date_en_us '. Ano4' = $ {} param_year E 'dim_date_en_us'. Quarter_name 'IN ($ {} param_quarter) Como o parmetro trimestre param_quarter pode ter vrios valores que usar o EM operador e colocar o parmetro entre parnteses. Quando a consulta executado, isto se traduz em uma lista separada por vrgulas de valores. Agora voc tem um relatrio parametrizado e ao selecionar a opo de visualizao, voc ver uma tela vazia. Depois de selecionar um ano, e um ou mais quartos, e clicando em Atualizao, os dados selecionado aparece na tela. Com a opo Autoupdate Tambm possvel ter o fogo consulta automaticamente quando um novo valor selecionado. O resultado de seu trabalho at agora exibido na Figura 13-9. Para maior clareza, todas as consultas e os parmetros foram ampliados, o que faz claro porque os nomes de parmetro de consulta e devem ser significativas. Faz manter o relatrio muito mais fcil quando voc faz. Captulo 13 Usando as ferramentas Pentaho Reporting 389 Figura 13-9: Exemplo de parmetro de relatrio Layout e Formatao A maioria das pessoas gastam horas incontveis de trabalho no layout do relatrio e mais ferramentas de comunicao no fazem isso muito fcil. PRD, no entanto, baseada em algumas smart princpios de design que torna muito fcil de alterar rapidamente o formato de o relatrio. O primeiro e mais importante herana de estilo (Captulo 12 contm uma introduo bsica aos princpios da herana.) Quando voc olha a estrutura de um relatrio no painel de estrutura, voc vai notar que a estrutura do tem a forma de uma rvore aninhada. Esta no uma coincidncia: PRD segue esta hierarquia quando mudar as propriedades do item. O guia de propriedade Style contm quatro colunas: Nome, Herdar valor e frmula. A segunda coluna, herdar, est marcada para cada propriedade, por padro. Isto significa que as configuraes para a propriedade so herdadas de um nvel mais elevado na hierarquia. Voc pode tentar isso em um simples maneira: Basta selecionar a banda Detalhes no painel 'Estrutura. A famlia de fontes tem a caixa de seleo para herdar selecionados eo valor Serif, que o padro fonte. Agora altere o valor para Verdana: Voc perceber que remove o PRD Herdar de seleo, e todos os itens que fazem parte da banda de detalhes tm agora a font-family Verdana definido automaticamente por herana. O nvel mais alto na hierarquia o nvel do relatrio mestre-e aqui voc pode mudar o estilo de relatrio de largura propriedades, como tipo de fonte, tamanho de fonte, cores de texto, e assim por diante. Este princpio de herana no restrito aos internos nos nveis de estrutura. A agrupamentos de adicionar-se funcionam da mesma maneira. Suponha que voc queira criar um cabealho de uma linha de detalhes que consiste em quatro colunas. Voc pode adicionar quatro rtulos de colunas e format-los individualmente, mas muito mais fcil para criar primeiro uma banda arrastando-os elementos de design e colocando as etiquetas dentro 390 Parte IV Inteligncia Aplicaes de Negcio a banda. Agora s a banda precisa ser formatado, todos os rtulos herdar os valores de propriedade da banda. impossvel cobrir todas as opes de formatao aqui, nos restringimos aos primeiros passos para ajud-lo em seu caminho. Ns abrir o relatrio do ano-de-Semana pouco para os exemplos e comear por adicionando um cabealho para as colunas no relatrio: 1. Navegue at o cabealho de detalhes na estrutura de rvore. Se a esconder sobre tela est marcada, desmarque-a para apresentar a banda na tela. 2. Arraste uma faixa da lista de objetos esquerda para a banda de cabealho e detalhes posicion-lo no topo. 3. Abra os atributos de estilo e definir a largura, que pode ser encontrado no tamanho e posio do grupo, a 100 por cento. 4. Definir o estilo seguintes atributos para a banda: Font-family: Arial Tamanho da fonte: 12 Bold: checked Texto de cor: branco Bg-cor: cinza escuro 5. Arraste quatro rtulos para a banda. Eles herdam automaticamente o estilo atributos que voc acabou de criar para a banda. As guias de posicionamento pode ser usado para colocar o rtulo exatamente acima dos quatro colunas no relatrio. Isso a seguinte: a formatao feita. 6. A nica coisa que resta definir os nomes certos para as colunas. Na Atributos guia voc ver o valor propriedade digitar o cabealho da coluna, ou voc pode usar as etiquetas para Wizard, que apresenta uma lista drop-down com as colunas disponveis na consulta. Se o nome da coluna consulta exatamente o que voc gostaria que o cabealho para exibir, usar o assistente. Em qualquer outro caso, basta digitar os valores. Alm das propriedades de estilo, PRD contm um multi-tabbed para- tela esteira similar s telas de dilogo de formatao encontrados nos mais modernos processadores de texto. Basta selecionar um objeto em seu relatrio e selecione Formatar Fonte do menu principal. Cores de linha alternadas: Bandas da Linha Para melhorar a legibilidade de um relatrio tipo de lista, uma boa idia para uso alternativo colorir linha onde as linhas com um nmero de linha at obter uma cor diferente aqueles com um nmero de linha mpar. Muitas ferramentas de relatrios exigem que voc use Captulo 13 Usando as ferramentas Pentaho Reporting 391 algo semelhante ao seguinte: a primeira utilizao de um clculo mod, em seguida, criar uma varivel, e, finalmente, usar a formatao condicional com base na varivel de destacar linhas mpares e pares. Com PRD, este processo ainda mais simples. Selecione a opo de formato de linha de bandas a partir do menu e escolha as cores necessrias para as linhas mpares e pares. PRD, em seguida, cria uma linha de bandas de funo, que acessvel a partir da guia Dados na pasta Funes. Basta arrastar a funo de Detalhes da banda e tornar o campo invisvel. Quando voc clique em Visualizar, voc ver as cores de linha alternadas aparecer, como mostrado na Figura 13-10. Figura 13-10: bandagem Row aplicada Agrupando e resumindo dados Um dos princpios bsicos do PRD (ou qualquer outra ferramenta de comunicao em faixas) o agrupados apresentao de dados. At agora, voc criou as consultas necessrias para selecionar e filtrar os dados para o relatrio. Agora hora de trazer estrutura para o conjunto de resultados, adicionando grupos, cabealhos e sumrios para o layout do relatrio. Adicionando e modificando grupos Um grupo usado para organizar o contedo em diferentes nveis, onde os sub-cabealhos e totais podem ser adicionados. Os grupos podem ser adicionados clicando em qualquer lugar a tela de design, clicando na seo Grupos na estrutura de relatrio, ou clicando no cone Adicionar Grupo na guia Estrutura. Quando voc adiciona um grupo, uma nova camada adicionado seo Grupos. Cada grupo pode ligar para um campo nos dados de relatrios de jogo, assim quando voc quer criar um relatrio com uma agrupamento Ano-de-ms, melhor quando esses campos j esto presentes no conjunto de dados em primeiro lugar, embora isso no seja necessrio. Um grupo padro usado para agrupar os dados de detalhe, como voc pode ver na rvore de estrutura. Quando voc abre o editor de grupo (o cone mais esquerda da esquerda na guia estrutura) este vazio 392 Parte IV Inteligncia Aplicaes de Negcio grupo padro exibido como uma linha em branco que faz referncia a um campo vazio lista []. Este o grupo padro, que pode ser usada para o agrupamento, mas no pode remov-lo, embora voc pode remover todos os grupos a partir do editor grupo. Aps fechar o editor e reabri-lo, voc vai notar a linha em branco com o grupo padro novamente. Porque voc no quer desperdiar recursos, voc vai usar este grupo padro para o nvel Trimestre grupo em seu relatrio de exemplo. Usando nomes de grupo necessria, caso contrrio voc no pode fazer referncia os grupos da relatrio. Ento adicione QuarterGroup como o nome e selecione o campo quarter_name como o campo de grupo. Enquanto voc ainda estiver nessa tela, digite um outro grupo e nome presente YearGroup. O campo de referncia a ano4. Clique na YearGroup linha e mov-lo, clicando na seta para cima. Figura 13-11 mostra o resultado at agora. Figura 13-11: editor do Grupo Quando voc executar um preview de novo, voc vai notar que os resultados tm agora um quebra em cada trimestre, e que os detalhes do cabealho repetido para cada trimestre. Agora adicione uma nova banda em ambos os anos, o quarto eo cabealho e definir a banda largura de 100 por cento novamente. Verifique se o esquema de cor diferente para cada um dos os trs nveis de agrupamento (Ano, Trimestre, detalhes). NOTA No (ainda) possvel arrastar e soltar objetos, tais como rtulos, campos ou grficos de uma banda (cabealho) para outro, mas possvel copiar ou cortar a partir de uma faixa e col-los em outro. Agora voc pode simplesmente mover o cabealho campos do cabealho de detalhes para a ano e quarto, respectivamente, cabealho, mas vamos usar um campo de mensagem em seu lugar. A anos de campo de cabealho de mensagem obtm o valor Ano: $ (ano4); Cabealho no trimestre campo da mensagem se o valor Bairro: $ (quarter_name). Agora voc pode remover os campos de detalhe para ano4 e quarter_name tambm. Para ser capaz de selecionar mais de um ano e ver os efeitos do agrupamento que voc adicionou, voc pode alterar o parmetro ano, em uma lista ou tipo multi-multi-boto e alterar a consulta condio para EM. No se esquea de adicionar o parmetro entre colchetes. A relatrio deve agora parecido com o exemplo na Figura 13-12. Captulo 13 Usando as ferramentas Pentaho Reporting 393 Figura 13-12: Agrupamento aplicada Usando funes O passo final na criao de um relatrio agrupado consiste na adio de textos de rodap e campos de resumo. A fim de mostrar resumos como o nmero total de meses ou trimestres em um grupo, voc precisa criar funes. No caso de voc no tenha notado, voc j criou uma funo para aplicar a linha de bandas formatao, mas o que feito de uma forma quase transparente. PRD contm muito mais funes que podem ser usados para melhorar o seu relatrio. A lista dos funes disponveis pode ser acessado na guia Dados, clicando em Funes cone de atalho na parte superior da guia de dados, clicando na linha Funes dentro da guia Dados, ou selecionando Adicionar funo no menu Dados. A lista contm expresses de funo para as converses, layout, contedo e agregao. As funes de agregao so os necessrios para a adio de grupo e resumos total a um relatrio e so divididos em Global e executando As funes de agregao. A distino entre estes dois tipos de funes o contexto no qual so aplicados: Funes globais sempre calcular o agregao no grupo para o qual eles so definidos. Executar funes calcular a totalizao at o ponto ou sub-grupo em que esto colocado. Para ilustrar isso, vamos criar quatro funes para contar o nmero de linhas no relatrio em diferentes nveis: 1. Adicionar um item de durao funo Count (selecione Adicionar Funo, clique duas vezes Correndo, selecione o conde [de durao] Funo, e clique em Adicionar). Funes obter um nome padro que consiste de seu nome da funo e um apenso nmero de seqncia para mudar o nome para RunningCountYear. Selecione YearGroup como o Reset nome do grupo para garantir que a contagem comea a partir do incio de cada ano encontrado. 2. Adicione um nome de ponto de funo Count Total, este TotalCountYearE selecione YearGroup como o nome do grupo (selecione Adicionar Funo, clique duas vezes em Soma Maria, Count selecione e clique em Adicionar). 394 Parte IV Inteligncia Aplicaes de Negcio 3. Agora soma mais de durao e Total Item Count funo eo nome eles RunningCountReport e TotalCountReport mas deixar o grupo e nomes de grupo redefinir vazio para ter a agregao calculados para todos os os valores no relatrio. 4. Abra o Quarter Group Footer e arraste as quatro funes recm-criado na rea de rodap. Observe que isso cria um campo com um nmero de referncia para a funo, que agora faz parte da lista de campos. 5. Adicione quatro rtulos, bem como para indicar que o valor representado por cada de campo. Figura 13-13 mostra que o grupo de funes e do relatrio olhar de rodap, como aps a aplicao de todas as etapas anteriores. Figura 13-13: Agregao exemplo funes ATENO As funes so referenciados pelo nome para se certificar de que todas as funes tem um nome nico dentro do relatrio. Como a prova do pudim est no comer, hora de acertar o Preview boto novamente e saber como essas funes so avaliadas pelo PRD. Figura 13-14 mostra parte dos resultados, com uma seleco de dois anos (2008 e 2009) e todos os quatro trimestres. Figura 13-14: resultados da agregao Este valor um bom exemplo de como as funes de agrupamento e agregao trabalho e deve dar-lhe fundo o suficiente para construir seus prprios relatrios. Captulo 13 Usando as ferramentas Pentaho Reporting 395 O que mostrado que para o Q2 de 2009, a contagem corrida item 6, o que correto porque cada quarto composto por 3 linhas de ms, eo total no ano grupo de 12. A durao contagem Relatrio mostra 18 para 2009 Q2 porque todos os 2008 linhas, bem como dos atuais 6 de 2009, fazer 18. Finalmente, o relatrio mostra a contagem total 24 em cada grupo, que o nmero de meses a 2 anos. Voc pode ser tentado, neste ponto, tentar adicionar clculos baseados em esses campos nova funo, por exemplo, para calcular um percentual do valor da linha de uma grupo total. PRD no funciona dessa maneira, mas fornece funes out-of-the-box para estes clculos tambm. Como ltimo exemplo, em um quarto o ano-ms relatrio, voc pode adicionar uma funo ItemPercentage para calcular o nmero do ms percentagem do nmero total do grupo ms. Como referncia, voc pode criar este grupo no ms Nmero total e exibi-lo no rodap do grupo Bairro. A funo ItemPercentage parte das funes de agregao de execuo (Selecione Adicionar funo, abra durao, e selecione Porcentagem do Total). Aps o funo foi adicionada, o campo para criar o percentual para o grupo e para determinar o valor total deve ser selecionado. Tambm uma boa idia para mudar o nome da funo em algo significativo, como MonthPercentage. A especificao da funo completa apresentada na Figura 13-15. Figura 13-15: definio do percentual do item Agora, a funo pode ser adicionada aos detalhes no relatrio. Para ter coluna exibida como uma porcentagem, altere o valor no formato do campo atributos em 00.0%. O resultado completo pode ser visto na Figura 13-16, embora este exemplo no um clculo muito til no mundo real, ele faz um bom trabalho de explicar como o mecanismo de clculo do PRD obras. Usando frmulas Na seo anterior, voc aprendeu como adicionar uma funo ItemPercentage para calcular a porcentagem nmero do ms do total de nmero de grupo de ms. Se voc j possui uma funo que calcula o nmero total ms, voc pode obter o mesmo resultado usando uma frmula. Para fazer isso, voc precisa criar um campo Nmero e especificar uma expresso que calcula a porcentagem item para o campo Frmula propriedade. A sintaxe para frmulas o mesmo que 396 Parte IV Inteligncia Aplicaes de Negcio encontrados em programas de planilha como o Microsoft Excel e Open Office Calc: inserir um sinal de igual, seguido pela expresso. Para calcular a verdade ItemPercentage, necessrio dividir o nmero do ms pelo total de meses. Assim, na frmula, a expresso que aparece atrs do sinal de igual que leia [Month_number] / [MonthTotal]. Note que essa [Month_number] e [MonthTotal] so eles prprios tambm expresses: [Month_number] referncias um campo da consulta, e [MonthTotal] se refere a uma funo Soma Total calcular a soma dos nmeros do ms. Figura 13-16: Nmero percentagens ms Expresses em frmulas Pentaho Reporting no esto limitados aos campos da conjunto de dados e referncias a funes com nome, voc tambm pode usar valores constantes, comum operadores aritmticos, como + -, * E / e operadores lgicos como AND e OR. Alm disso, h uma srie de funes internas para tarefas como data do clculo do tempo / e manipulao de cadeia. Cuidado, porm, que isso no um programa de planilha: voc s pode fazer referncia a linha atual de dados, no o linha anterior ou seguinte. Voc pode, no entanto, utilizar funes para determinar mnimos ou valores mximos dentro de um grupo, por exemplo, e fazer referncia funo no nvel de linha. As funes tambm podem fazer referncia a resultados de outras funes, de modo praticamente no h limites para o que voc pode fazer com as funes, frmulas e expresses. NOTA Para uma viso completa da Pentaho Reporting Frmulas, built-in funes e operadores, consulte a documentao do Pentaho em http://wiki.pentaho.com/display/Reporting/9.+Report+Designer + + Expresses Frmula. Captulo 13 Usando as ferramentas Pentaho Reporting 397 Adicionando grficos e elementos grficos Uma imagem vale por mil palavras, e essa sabedoria comum particularmente verdade no mundo de BI. Mostrando apenas os nmeros muitas vezes no suficiente quando voc deseja obter uma viso imediata da evoluo ou da distribuio dos dados. PRD, portanto, no somente fornecer uma interface para criar Pentaho Reporting, mas pode ser utilizadas para integrar JFreeChart tambm. Lembre-se que Pentaho Reporting e JFreeChart so dois projetos diferentes, que foram integrados em um nica soluo por Pentaho. Mais informaes sobre JFreeChart pode ser encontrado em http://www.jfree.org/jfreechart. Antes de um grfico pode ser usado, os dados para ser visualizado no grfico precisa estar presentes no relatrio. PRD no possvel utilizar os campos de dados de uma consulta directa mas precisa de um provedor de dados especial, chamado funo de cobrador que transforma o dados para uso em um grfico. Existem seis funes de coletor e 14 tipos de grfico disponveis. Cada tipo de grfico usa a sua funo de coletor prprio, e alguns tipos de grfico pode usar dois deles. Para um grfico simples, basta ter uma coluna da srie e um valor definido, enquanto que para um grfico de barras empilhadas com um segundo eixo Y mais dados precisam ser passados para o grfico. A vantagem do uso de coletores de dados que esto separados dos dados principal definir a capacidade de criar grficos diferentes a partir de um nico conjunto de dados. Captar o modo de grficos obras e as opes de dados diferentes disponveis Pode parecer difcil no comeo, ento vamos comear por um exemplo simples para ter uma noo de como as coisas funcionam. Este exemplo baseado no banco de dados de exemplo Pentaho, e ir mostrar a receita ea quantidade por ano ordem e linha de produtos em vrias maneiras. NOTA Em uma situao da vida real, voc deve iniciar com o design do relatrio, que deve ser baseado em um requisito de negcio. Somente depois que voc descreveu o que voc quer alcanar com o novo relatrio que voc pode comear a pensar em que dados seria necessrio e como o relatrio deve ser construdo. Os passos seguintes supor que os requisitos e fase de concepo j est concludo para que voc possa agora comear a construir o relatrio atual. 1. Depois de criar um novo relatrio, use o PRD Designer de Consulta para adicionar um Fonte de dados com JDBC OrderYear,ProductLine,OrderRevenueE OrderQuantity. Para comear o ano a fim, necessrio o ano () funo. ATENO O PRD Query Designer permite que voc adicione as expresses suma, min, max, e contagem mas podem ser alterados posteriormente. Tenha em ateno que quando voc estiver usando funes no-agregado, como ano (), o campo deve ser adicionada ao grupo por clusula. Quando o fizer, ser acrescentado, incluindo o alias, o que no correto. A ordenar por e pelo grupo clusulas tero que ser ajustados manualmente para gerar os resultados corretos. Alm disso, cuidado que cada vez que voc entra na grfica 398 Parte IV Inteligncia Aplicaes de Negcio Designer de Consulta, SQLeonardo ir gerar a sintaxe da consulta errado novamente traduzindo ano (OrderDate) em apenas ano. 2. A consulta correto para obter o conjunto de resultados que voc precisa exibido na seguinte bloco de cdigo: SELECT , , , DA INNER JOIN INNER JOIN GROUP BY , ORDER BY , ANO (o.orderdate) AS orderyear p.productline SUM (d.quantityordered) SUM (* d.priceeach d.quantityordered) o ordersAS OrderDetails AS d o.ordernumber ON productsAS p ON d.productcode ano (o.orderdate) p.productline ano (o.orderdate) ASC ASC p.productline orderquantity AS orderrevenue AS = D.ordernumber = P.productcode 3. A partir deste conjunto de resultados diferentes grficos podem ser gerados em diferentes nveis de detalhes. Os grficos podem ser colocados no cabealho do relatrio, mas voc tambm pode usar os grupos criados em um relatrio. Ao fazer isso, voc pode dar um alto nvel Resumo na parte superior do relatrio e prestao de informaes detalhadas na reparties grupo. A idia do projeto o seguinte: Mostrar um grfico de barras na parte superior do relatrio com a quantidade total por linha de produtos discriminados por ano para destacar tendncias de vendas para cada linha de produtos ao longo do tempo. Para cada ano, apresentar a distribuio de renda ea quantidade por produto linha em percentagem e utilizando grficos de pizza. Exibio do ano, a quantidade total ea receita total como cabealho de grupo. 4. Para fazer isso, criar primeiro um grupo baseado na OrderYear. Os grficos podem ser adicionado por arrastar um objeto grfico a partir da paleta na tela do projeto, neste caso para o cabealho do relatrio. Para ter a propagao grfico mais toda a largura da pgina, clique sobre o grfico e definir o estilo a seguir atributos: x = 0,y = 0,width = 100%E height = 190. NOTA Todos os objetos em um relatrio pode ser dimensionada e posicionada em um absoluto ou um forma relativa dentro de uma faixa relatrio. O padro no PRD est usando o posicionamento absoluto e dimensionar em pixels, por exemplo, quando uma carta colocada em algum lugar em uma banda, o xe yvalores indicam a posio absoluta do canto superior esquerdo da grfico e os largura e altura Os valores esto em pixels. Todos os valores podem ser alterados em valores relativos, adicionando o sinal de porcentagem (%). 5. Grficos que so colocados sobre a tela pode ser editado clicando em o grfico e escolha a opo editor grfico. Isso abre a tela que apresentado na Figura 13-17. Captulo 13 Usando as ferramentas Pentaho Reporting 399 Figura 13-17: editor grfico A tela mostra os diferentes tipos de grficos na parte superior, as propriedades do grfico esquerda e definio da fonte de dados direita. Esta parte da fonte de dados vazio quando voc cria um grfico e voc ter que selecionar uma das funes de coletor disponvel para alimentar o grfico. Cada tipo de grfico tem uma ou duas disponveis as funes de coletor, dependendo do tipo de grfico. A fim de fazer as escolhas grfico direita, voc vai precisar saber o que voc pode fazer com os diversos funes de coletor: PieSet-Requer uma srie (as fatias do bolo) e uma coluna de valor. Usado para grficos de pizza e anel. CategorySet-Requer uma categoria (eixo X) e uma coluna de valor. Opcionalmente, uma srie (avaria de uma categoria) podem ser adicionados. Usado para grficos de barra, linha, torta multi-cachoeira e regio. PivotCategorySet-Pivs as colunas de valor para us-los como categorias. Requer que voc tem pelo menos duas colunas de valores (por exemplo, real e oramento), que so traduzidas em categorias. Usado nos tipos de grfico mesmo como CategorySets. TimeSeries-Requer uma coluna de data / hora para ser usado como uma categoria (Eixo X) e um valor. Uma srie pode ser adicionada, opcionalmente. Usado em disperso, XY bar, XY linha, rea XY, e os grficos de linhas prolongado XY. Permite-YYSeries duas medidas deve ser posicionado sobre o X e Y eixo a parcela relativa a dependncia de duas variveis. O valor da srie opcional. Pode ser usado nos grficos mesmo que o coletor TimeSeries funo. 400 Parte IV Inteligncia Aplicaes de Negcio Somente XYZSeries para o grfico de bolhas; precisa de trs colunas de valores onde X e Y determinam a posio em relao ao eixo X e Y, e Z valor determina o tamanho das bolhas. Adicionando uma srie permite um perodo de quatro visualizao tridimensional. Adicionando um grfico de barras O primeiro grfico que deseja criar baseado em uma CategorySet onde productline usado como categoria, OrderYear como a srie de colunas, e orderquantity como um valor da coluna. Observe o seguinte: Adicionando as colunas para a srie de valores e requer um pouco mais clicando atravs do que abrir uma tela de seleo distintas. Parece que voc poderia adicionar vrias colunas para qualquer srie ou um valor, mas quando o fizer, esta no tem qualquer efeito sobre o grfico, ou ele simplesmente no vai exibir todos os valores em tudo. Certifique-se que o valor de uso de resumo somente definido como False. O estilo atributos do lado esquerdo pode ser ajustado ao seu gosto. Quando um ttulo tem de ser exibido, digite-pol Se voc no quer um ttulo, deixar o campo vazio. No h ttulo de exibio atributo como no existe para o lenda e os eixos X e Y. O resto das opes de formatao so bastante auto-explicativo, exceto por as fontes. As fontes podem ser ajustadas por meio de um texto em trs partes divididas por traos onde a primeira parte consiste no nome da fonte, seguido do estilo e tamanho. A negrito, fonte Arial 12 pontos codificado como Arial Bold-12. Ao usar a opo de visualizao, voc pode verificar se o grfico partidas suas exigncias. Grficos de pizza Os grficos de pizza que voc deseja adicionar exigir um PieSetCollectorFunctionE porque voc quer uma torta para mostrar a quantidade e as receitas do outro, ambos comeam a sua funo de coletor prprio. A coisa agradvel sobre grficos de pizza que voc pode mostrar rtulos para as fatias e indicar qual o contedo deve ser exibidos dentro do rtulo. Trs valores podem ser exibidos: o texto real da etiqueta, o valor de corte, ea porcentagem da fatia. Eles podem ser acessados atravs da adio {0}, {1}, ou {2} em qualquer ordem ou combinao para o atributo formato de etiqueta onde pode adicionar o texto tambm. Se, por exemplo, voc quer exibir o nome da fatia seguido pelo valor entre colchetes, basta digitar {0} ({1}). Os grficos de pizza no exemplo so colocados na Ano cabealho de grupo e exibir os valores para um determinado ano. O valor para o pelo grupo atributo Captulo 13 Usando as ferramentas Pentaho Reporting 401 precisa ser definido para o YearGroup grupo, caso contrrio, os grficos no usar o agrupamento e todos iro mostrar os mesmos valores globais. Com grficos de pizza, voc tambm pode explodir uma fatia (posicion-lo fora do crculo por uma determinada porcentagem) ou exibir o grfico em 3D. A combinao destas no possvel: no se pode explodir uma fatia em um grfico de pizza 3D. Para selecionar a fatia de explodir, voc vai precisar conhecer o seu ID, que determinada pela ordem de classificao na consulta. nmeros de identificao comea com 0 ento neste caso, a fatia Classic Cars ID 0 e ser explodido. O montante explodir indicado como uma percentagem entre 0 e 1, para 0,1 dar um deslocamento de 10 por cento da fatia. Voc no pode usar o editor grfico para o dimensionamento e grficos de posicionamento, que parte do designer do relatrio principal. Para colocar duas tabelas lado a lado e ter escala-los automaticamente, defina o valor X e Y para o grfico da esquerda para 0 eo largura para 50 por cento. O grfico direita ter um valor de x e uma largura de 50 por cento. Combinados, esses dois quadros agora preencher a pgina da esquerda para a direita. Para finalizar o projeto definido, h apenas uma coisa: o texto do cabealho do grupo ao ano, quantidade e receitas nele. Se voc adicionar um campo de mensagem e deixar um pouco de espao em branco no topo do cabealho de grupo, defina o campo a 100 por cento, e mudar a cor de fundo para a mesma luz cinzenta como grficos de pizza, o cabealho do grupo ser a aparncia de um bloco nico, que d um muito profissional aparncia do relatrio. O campo mensagem o valor: Ano: $ quantidade (ORDERYEAR) Total $ (ORDERQUANTITY, ,#,###), nmero Total de receitas $ (ORDERREVENUE, ,$#,###.##) nmero O relatrio resultante mostrado na Figura 13-18. Trabalhando com imagens PRD pode manipular dados de imagem de URLs, arquivos locais, ou colunas de banco de dados. Este permite inserir logotipos de empresas, mas tambm para criar relatrios com o produto informaes, incluindo imagens do produto, ou funcionrio folhas, incluindo uma foto de passaporte, se o que est disponvel em um banco de dados corporativo. Para que o seguindo o exemplo funcionar, voc precisar de um logotipo em qualquer formato de arquivo de imagem (JPG, PNG, GIF, BMP WMF ou SVG. TIFF provavelmente ir funcionar to bem, mas isso no garantido) para criar um cabealho do relatrio, e um ou mais fotos em um banco de dados. A tabela de funcionrios no banco de dados contm uma amostra WCM passport_photo coluna do tipo LONGBLOB onde as imagens podem ser armazenadas. A tabela contm algumas imagens de exemplo, mas voc tambm pode substitu-los por conta prpria ou usar um outro fonte de dados com fotos. NOTA Na maioria dos bancos de dados modernos, um campo blob pode ser definida que pode armazenar informao binria de um tipo arbitrrio, incluindo fotos. No MySQL, voc precisa 402 Parte IV Inteligncia Aplicaes de Negcio definir um campo do tipo BLOB (pequena, MDIO, ou LONGBLOB, dependendo do tamanho da os arquivos a serem armazenados). Obter uma imagem no banco de dados fcil com o MySQL comando LOAD FILE que aponta para o arquivo a ser carregado. A instruo usada para fazer o upload de imagem Roland : UPDATE empregado SETpassport_photo LOAD FILE = ('/ media / foto / photo_roland.jpg) WHEREemployee_id = 22612 Figura 13-18: Exemplo de grfico Relatrio Siga estes passos para criar o relatrio mostrado na Figura 13-19: 1. Em PRD, iniciar um novo relatrio e criar uma consulta para selecionar o trabalhador detalhes do banco de dados WCM, incluindo a coluna passport_photo. 2. Para exibir imagens de um arquivo ou URL, coloque um campo de imagem a partir do paleta no cabealho da pgina e adicionar um ttulo assim. Captulo 13 Usando as ferramentas Pentaho Reporting 403 3. Boto direito do mouse no campo da imagem e selecione Editar Contedo. A localizao do arquivo O editor aberto e voc pode digitar uma URL ou procure um arquivo local. A de exemplo usa o logotipo WCM. 4. Adicionar um grupo Empregado e uso employee_id como campo de grupo. Isso permite que a organizar o relatrio e para iniciar uma nova pgina para cada funcionrio. 5. Agora voc pode colocar todos os campos de detalhe de funcionrio no cabealho do grupo, mas verifique se voc usar um campo de contedo para a imagem. ATENO PRD no reconhece o campo blob automaticamente assim que quando voc acabou de arrastar o campo a partir do separador de dados para a tela torna-se um campo de texto, e no um domnio de contedo. Este um bug conhecido (PRD-1394). 6. Para tanto o objeto de contedo e domnio de contedo, h dois atributos que provavelmente ter que ser definido: a escala e proporo de atributos. Ambos esto disponveis quando voc clica nos campos e tambm fazem parte da os atributos de estilo na vista de estrutura. Figura 13-19 mostra o resultado da Neste exerccio imagem. Figura 13-19: exemplos PRD Imagem Aqui esto algumas dicas para criar estes relatrios: 404 Parte IV Inteligncia Aplicaes de Negcio Use os campos de mensagem para os nomes, endereos ou qualquer outra informao que contm vrios campos de um banco de dados. O valor para o campo de nome em Este exemplo $ (First_name) $ (middle_initial) $ (last_name). No h necessidade de espaos inserir explicitamente, eles sero captados automaticamente pelo PRD. Os campos de data devem ser formatados, caso contrrio eles sero exibidos como plena valores de data e hora, incluindo o fuso horrio. O formato da data est inscrita no atributo formato do campo data. Neste exemplo, o valor dd-MMM-yyyy (Sem aspas). Os campos podem ser organizadas, alinhadas e distribudas, utilizando o Organizar, Alinhar e Distribuir assistentes layout no menu Formatar. Voc pode selecionar vrios campos que precisam ser alinhados ou distribudos uniformemente pela explorao pressionada a tecla Shift e clicar nos campos. Trabalhando com sub-relatrios Sub-relatrios pode adicionar uma dimenso extra a seu design do relatrio e permitir exibir dados agrupados em um nvel de agregao diferente ou a partir de dados diferentes fontes. Uma palavra de cautela, porm, antes sub-relatrios usando: um sub-relatrio usa sua prpria fonte de dados para que ele ir disparar uma segunda consulta ao banco de dados. Usando vrios sub-relatrios em um relatrio mestre torna esta situao ainda pior. A melhor estratgia criar seus relatrios usando como sub poucos, e, portanto, extra consultas, como possvel. Com esta precauo em mente, vamos mostrar como usar como sub-relatrios que se destinam. Um relatrio do mestre PRD utilizada para visualizar um nico conjunto de dados. Em certo sentido, a relatrio inteiro age como uma nica tabela. Isso significa que voc no pode filtrar ou exibir apenas uma parte do conjunto de dados, que no por meio de tabelas ou grupos. Resultados de dois quadros adjacentes, com uma estrutura semelhante, mas com contedo diferente, no possvel sem o uso de sub-relatrios. Um rpido exemplo pode ilustrar isso. Suponha que voc deseja exibir a parte superior e inferior a cinco clientes com base em suas receitas a lado. Isso exigiria colocar duas listas em um nico relatrio, que no possvel, PRD (alm de usar SQL complexa para gerar as duas listas em o conjunto de dados). Com sub-relatrios, muito fcil de fazer isso: o mestre relatrio contm um Top 5 e um fundo de cinco sub-relatrio, cada um com sua prpria consulta, cabealhos e detalhes. Estes sub-relatrios podem tanto ser colocado no relatrio cabealho, como mostrado na Figura 13-20. Para construir este relatrio, ns criamos um relatrio novo mestre vazio, sem dados ou o layout e adicionou dois sub-relatrios no cabealho do relatrio. Quando voc arrasta um sub-relatrio para a tela e clique duplo-lo, uma nova guia com um relatrio Captulo 13 Usando as ferramentas Pentaho Reporting 405 tela se abre. Um sub-relatrio semelhante a um relatrio do mestre. Ele pode conter um conjunto de dados fonte, diferentes grupos, bandas e grficos. H uma diferena notvel, no entanto: no possvel criar novos parmetros para um sub-relatrio. Figura 13-20: Top 5 e inferior 5 clientes PRD tem dois tipos de sub-relatrios: em faixas e inline. Voc deve escolher que tipo voc quer que voc arrastar o objeto sub-relatrio da paleta e coloc-lo na tela. Um faixas subrelatrio toda a largura da banda onde o sub-relatrio colocado, enquanto um sub-relatrio em linha pode ser colocada em qualquer lugar. Tenha cuidado ao usar sub-inline porque exigem mais memria e poder de processamento do que suas contrapartes em faixas. Outra coisa estar ciente de a faixa em que o sub-relatrio colocado. Se o sub-relatrio colocado dentro do cabealho ou rodap do relatrio, ele ser executado apenas uma vez. Quando colocado dentro de um cabealho ou rodap do grupo, ele ser executado tantas vezes quanto h valores do grupo, e se voc posicionar um sub-relatrio em detalhes, ser executado para cada linha do relatrio. No possvel colocar um sub-relatrio em o cabealho ou rodap de pgina. Passando valores de parmetros para sub-relatrios Quando um parmetro definido no relatrio principal, que deve ser dada uma nica ID pelo qual o parmetro pode ser referenciado. O sub-relatrio pode fazer referncia o parmetro de relatrio mestre por meio de importao, mas sem novos parmetros podem ser definido em um sub-relatrio. Voc pode abrir a tela de importao de parmetros por boto direito do mouse no cone do parmetro na guia Dados do sub-relatrio ou clicar na Sub-relatrio de parmetro cone na guia Dados. A tela permite que voc Mapa parmetros mestre relatrio ao equivalentes sub-relatrio. Voc pode usar o mesmo nome para o comandante eo sub-relatrio, mas ns preferimos usar um diferente nome para a clareza. Como exemplo, voc pode expandir o superior / inferior e cinco relatrio da seo anterior para incluir uma linha de produtos de seleo que voc vai passar para o sub-relatrio. 1. Primeiro, crie ambos os parmetros no relatrio mestre antes de abrir a sub-relatrio. 406 Parte IV Inteligncia Aplicaes de Negcio 2. Em seguida, no sub-relatrio, abra o Sub-relatrio editor de parmetro e insira os nomes exteriores e interiores dos parmetros. Os nomes exterior referem-se a nomes do relatrio pai de parmetro, os nomes interior ser utilizado no sub-consulta. Figura 13-21 mostra a tela do editor de parmetro com os valores inseridos. Figura 13-21: parmetros de importao 3. A consulta para a lista Top 5 j pode ser estendido com as necessrias onde clusulas e entrada de parmetro, como mostra o seguinte cdigo: customers.customername SUM (orderdetails.priceeach * orderdetails.quantityordered) como receitas FROMorders INNER JOIN OrderDetails ONorders.ordernumber orderdetails.ordernumber = INNER JOIN clientes ONorders.customernumber customers.customernumber = INNER JOIN produtos ONorderdetails.productcode products.productcode = WHEREproducts.productline = $ {} subparaprodline GRUPO BYcustomers.customername ORDEM BY2 DESC LIMIT5 SELECT , 4. Agora voc tambm pode incluir um campo de mensagem em seu relatrio mestre exibir a linha de produtos selecionados com a expresso Selecionados Valor: $ (paraprodline). O resultado final deste exerccio apresentado no Figura 13-22. Publicando e Exportando relatrios Voc pode publicar relatrios para o Pentaho BI Server a partir do menu principal pelo PRD Publicar escolhendo Arquivo, ou clicando no cone Publicar situado direita do no boto Salvar na barra de atalho. Isso abre a caixa de dilogo Publicar mostrado na Figura 13-23. Para publicar, voc deve configurar a configurao de publicao. A Publicar localizao deve ser o nome de um diretrio existente que residem sob o pentaho solues diretrio. A URL Publicar Web deve ser apontado para o seu Captulo 13 Usando as ferramentas Pentaho Reporting 407 Servidor Pentaho BI. Para obter a senha de publicao, voc deve usar a senha que foi definido no publisher_config.xml arquivo. Configurar essa senha abordada no captulo 3. Finalmente, voc deve usar o ID de usurio e senha de um usurio que tem a funo de Administrador (''Joe''e''''senha de um padro instalao). Figura 13-22: sub-relatrios parametrizados Figura 13-23: A caixa de dilogo Publish Atualizando os Metadados Aps a publicao do relatrio para o servidor, voc deve dizer ao servidor para recarregar os metadados para garantir que o usurio ser presenteado com a verso mais recente do relatrio, quando ele abre. Isso pode ser feito a partir do console do usurio atravs do menu, escolha Ferramentas Atualizar Cache Repositrio de Metadados. 408 Parte IV Inteligncia Aplicaes de Negcio Alternativamente, voc pode atualizar o cache usando o Servidor de Administrao Console. Para atualizar o cache do Servidor de Administrao console, v para Na guia Servios e pressione o boto Atualizar no painel Repositrio Solution. Exportando relatrios relatrios Pentaho PRD pode ser exportada no mesmo formato da WAQR aplicao, com a opo extra de exportar o relatrio no formato RTF. Antes exportar o relatrio, pode ser visualizado em formato de exportao desejado selecionar o formato de sada (HTML, PDF, XLS, RTF, CSV) a partir do arquivo Preview opo do menu. O cone de atalho visualizao tem uma opo adicional chamado Preview como texto. Resumo Este captulo apresenta a arquitetura bsica de uma soluo de relatrios e descreveram dois principais ferramentas para criao de relatrios em uma soluo Pentaho, a Web-based Ad Hoc ferramenta de relatrio (WAQR) e os novos Pentaho Report Designer (PRD). Aps oferecer um breve panorama da WAQR comeamos relatrios prdio usando PRD e explicou os seguintes tpicos: Diferentes componentes do Report Designer Pentaho A estrutura de um relatrio Pentaho e os diferentes elementos que podem ser usado dentro de um relatrio Criando JDBC e Metadados consultas usando o Designer de Consulta Adicionando parmetros para dar aos usurios a flexibilidade de escolher apenas um subconjunto de os dados de um banco de dados As opes de layout e formatao disponveis no PRD Como agrupar e resumir dados em um relatrio Utilizao das funes e expresses Como visualizar informaes usando grficos e diagramas Usando imagens de URLs, arquivos e tabelas do banco de dados Trabalhando com sub-relatrios para criar layouts de relatrio complexo, constitudo de vrios conjuntos de dados Como criar parmetros que podem ser passados para o conjunto de dados de um sub- relatrio Como publicar os relatrios para o servidor Pentaho e certifique-se que o ltima verso exibida para um usurio Captulo 13 Usando as ferramentas Pentaho Reporting 409 H muito mais a comunicao eo Pentaho Report Designer do que ns poderia abranger neste captulo. Pretende-se como uma base slida para que voc obtenha comeou, no como uma referncia completa ou guia para o desenvolvimento. Recomendamos que voc para visitar o Wiki e os fruns on-line se voc precisar de mais informaes tcnicas sobre o produto. CAPTULO 14 Agendamento, assinatura e de ruptura Neste captulo, vamos olhar para algumas das capacidades da plataforma Pentaho para distribuir contedo para o usurio final. Basicamente, existem trs maneiras diferentes para usurios para executar sequncias de ao: Imediata execuo ou interativo-In Neste caso, a ao executada imediatamente aps a solicitaes de usurios, eo usurio espera para a entrega dos de sada da ao, que marca o fim do pedido do usurio. Execuo em segundo plano-Upon a solicitao do usurio, a ao implicitamente, prevista para ser processada o mais rapidamente possvel, e em vez de aguardando o resultado, a solicitao do usurio termina aqui. A execuo efectiva da ao procede de forma assncrona at entregar sua produo, que ento armazenado para que o usurio pode busc-la em um momento posterior. Explcita-agendamento Este semelhante execuo em segundo plano, mas em vez de programar a ao a ser realizada imediatamente, ele executado de acordo com um cronograma pr-definido. Voc tem visto uma srie de exemplos de execuo imediata, em anteriores captulos. Neste captulo, voc explora programao e como voc pode us-lo para organizar a entrega de contedo. Agendamento Pentaho fornece agendamento de servios por intermdio da Empresa Quartz Job Scheduler, que parte do projeto Open Symphony. O programador um componente que permite que o servidor de BI para realizar tarefas em um tempo programado ou definido intervalo de tempo. 411 412 Parte IV Inteligncia Aplicaes de Negcio NOTA Para mais informaes sobre quartzo eo projeto Open Symphony, visite o Abrir site no Symphony www.opensymphony.com/quartz/. H um nmero de casos de uso para o programador: Peridico de execuo das tarefas de manuteno Execuo de tarefas de ETL (como atualizar as tabelas de agregados) Executando tarefas demoradas, tais como relatrios de grande no fundo Distribuir a carga de trabalho do servidor ao longo do tempo Preparao de contedo para assinantes Conceitos do Scheduler Dois itens esto envolvidos na programao: Acronograma, que uma regra ou conjunto de regras que especificam um momento ou srie de momentos no tempo Um seqncia de aes (Ou grupo deles) que executado no tempo ou vezes especificado no cronograma Discutimos o conceito de seqncias de ao no captulo 4, e voc tem vi alguns exemplos deles em outros captulos deste livro. No restante desta seo, descrevemos horrios em detalhes. Pblico e Agendas Privada Existem dois tipos distintos de modelos: pblico e privado. agendas pblicas so visveis para todos os usurios. Eles so principalmente usados para implementar assinatura. horrios Privada esto disponveis para o administrador do servidor. So principalmente usados para implementar as tarefas de manuteno. Por exemplo, na pgina da guia Servios da o Pentaho Server Administration Console (PAC), h um boto Agendar no painel de repositrio de contedo. Ao pressionar este boto ir criar um grupo privado cronograma que ser executado diariamente para limpar o repositrio de contedo. Discutimos o repositrio de contedo na prxima seo, mas o importante que este um exemplo de uma tarefa de manuteno programada que governada por uma empresa privada cronograma. Repositrio de contedo Normalmente, quando um usurio executa uma seqncia de ao, o resultado da ao seqncia imediatamente entregue ao usurio final. Programado seqncias de ao funcionam de forma diferente. A produo de seqncias de ao programada gerado no Captulo 14 Agendamento, assinatura e Bursting 413 fundo. A sada guardado e preservado no que chamado de contedo repositrio, para que o usurio pode inspecionar o resultado mais tarde. Fisicamente, o repositrio de contedo simplesmente um diretrio no sistema de arquivos onde a sada seqncia de ao so armazenados em arquivos. Voc pode encontrar a sada arquivos no contedo Diretrio do sistema Pentaho soluo. A organizao do repositrio de contedo semelhante organizao de a soluo de repositrio. Para cada soluo Pentaho, h um contedo separado diretrio do repositrio. A estrutura da rvore embaixo de cada repositrio de contedo espelha a estrutura de diretrio de sua soluo de correspondente no repositrio, mas em vez de seqncias de ao, h um diretrio partilha o nome do seqncia de ao. Nesses diretrios voc pode encontrar um diretrio assinaturas, que contm a sada a seqncia de ao para cada vez que ele correu de acordo com um cronograma. Alm dos diretrios para as solues Pentaho, a raiz do contedo repositrio tambm contm um diretrio chamado fundo. Este diretrio usado para armazenar a produo de seqncias de ao que executam em segundo plano. Na seo''Espao do Usurio''mais adiante neste captulo, voc aprender como o usurio final pode acessar o contedo do repositrio de contedo. Criao e manuteno de agendas com o Pentaho Console de Administrao Voc pode criar e manter programas de uso da Administrao Pentaho Console para trabalhar com horrios, aponte seu navegador para a casa do PAC pgina. Assumindo que voc est executando na mquina local, voc pode encontrar este em http://localhost:8099/. Ative a pgina de administrao e clique no Agendador de guia. Voc pode ver uma lista de todas as agendas pblicas e privadas mantidas pelo servidor de BI Pentaho. Isso mostrado na Figura 14-1. Figura 14-1: A ficha de Programador na Administrao Pentaho Console Por padro, h uma programao chamada PentahoSystemVersionCheck. Este um programa privado que usado para verificar periodicamente se h uma nova verso do Pentaho est disponvel. 414 Parte IV Inteligncia Aplicaes de Negcio Criar uma Nova Agenda Clique no primeiro boto da barra de ferramentas para criar um novo agendamento. O Criador Agenda dilogo aparece como mostrado na Figura 14-2. Figura 14-2: A Agenda de dilogo Criador Se voc quiser criar uma agenda pblica, selecione a opo Agenda Pblica. Isso garante que todos os usurios podem ver a programao e que lhes permite usar esse cronograma de inscries. Use o campo Nome para introduzir um nome nico para a agenda. Tenha em ateno que para agendas pblicas, este nome ser apresentado para os usurios finais, sempre que tem que escolher um horrio. Use nomes que so claras e concisas. Use o campo Grupo para especificar um nome que descreve o tipo de sched- ule isso. Por exemplo, voc pode criar grupos de acordo com o departamento (Site do armazm), localizao (Edmonton, Los Angeles), rea temtica (Sales, Marketing), ou no tempo (dirio, semanal). A barra de ferramentas na pgina Scheduler (veja a Figura 14-1) inclui uma caixa de listagem que permite que o administrador do filtro para todas as programaes pertencentes mesma grupo. Esta caracterstica de convenincia permite o administrador a trabalhar rapidamente com todos os horrios pertencentes ao mesmo grupo. NOTA Mesmo se voc achar que no precisa organizar programaes em grupos, que so Continua a ser necessrio digitar algo no campo Grupo. O mesmo vale para o Descrio campo, embora seja inteiramente descritiva, ainda necessria. Captulo 14 Agendamento, assinatura e Bursting 415 O campo Descrio permite inserir um texto descritivo. Voc deve usar este campo para breve documento a finalidade da programao. Ao invs de somar at as propriedades que tm a ver diretamente com a programao em si (como tempo), este campo deve descrever os tipos de relatrios que so executados de acordo a esta programao e da audincia para que a lista se destina. A caixa de listagem Recorrncia contm uma srie de opes para especificar quantas vezes a programao acionado. Voc pode escolher entre uma ampla gama de intervalos, todo o caminho de segundos at anual. H tambm uma opo Executar uma vez para agendar aes one-shot. Se a flexibilidade oferecida por essas opes ainda no suficiente, voc pode escolher a opo Cron para especificar recorrncia na forma de umcron string. Usando expresses CRON O cron um agendador de tarefas bem conhecidas para sistemas UNIX-like. Para cron, recorrer- ocorrncia especificado na forma de uma seqncia que denota seis ou sete campos de um valor data / hora, separados por espaos em branco. O planejador de quartzo usados por Pen- Taho oferece suporte para cron expresses. Em cron expresses, da esquerda para a direita os campos de data e hora so: segundos, minutos, horas, dias do ms, ms, dia da semana, ano. Os campos podem con- manter valores inteiros simples, mas tambm possvel especificar listas de valores, intervalos e curingas, como todos, por ltimo, e muito mais. Por exemplo, o seguinte cron expresso denota um retorno s 01h00, cada segunda tera-feira de cada ms: 0 0 1? * 3 # 2 * (Em zero segundos, zero minutos, uma hora, independentemente do dia do ms, cada ms, a segunda ocorrncia do dia da semana em terceiro lugar, para cada ano). Voc pode encontrar mais informaes sobre cron expresses em quartzo na http:// quartzo www.opensymphony.com / wikidocs / CronTriggers Tutorial.html Para todas as opes disponveis da opo de Recorrncia (exceto Cron) voc pode especificar um tempo Comece escolhendo o valor apropriado na hora, minuto, e segundo caixas de listagem. Para todas as opes de recorrncia, exceto executado uma vez e Cron, voc pode especificar como muitas vezes o cronograma deve ser acionado. O Widget de especificar as valor aparece na tela assim que voc selecione uma opo na lista de recorrncia caixa. Por exemplo, para um retorno de segundos, minutos, horas e dias em que voc pode inserir um nmero para indicar quantos segundos, minutos, e assim por diante entre as execues subseqentes do cronograma. O semanrio e opes de recorrncia mensal apoio mais avanado possibilidades para especificar o intervalo. Por exemplo, a mensal e dirio opes de recorrncia aparecer um widget que permite que voc defina o agendamento para 416 Parte IV Inteligncia Aplicaes de Negcio cada segunda-feira de cada ms, ea opo de recorrncia semanal permite que voc para especificar a quais dias da semana o horrio se aplica. Finalmente, voc pode especificar uma data de incio ou um intervalo de datas de incio e fim. Estas datas determinar o perodo de tempo em que o cronograma se repete. Depois de especificar a programao, clique em OK para salv-lo e fechar o dilogo. Correndo Horrios Apesar de horrios so, normalmente provocada pela passagem do tempo, voc pode tambm execut-los manualmente a partir do Console de Administrao Pentaho. Esta teis para fins de teste, e tambm para se recuperar de erros. Para executar manualmente as seqncias de ao ligada a uma agenda, selecione o caixa que aparece logo antes de cada programao. Em seguida, clique no boto Play (O tringulo verde) na barra de ferramentas. Suspenso e retomada de Horrios s vezes til para evitar temporariamente que um cronograma de execuo. Para exemplo, voc pode, temporariamente, a necessidade de recursos do sistema para fazer algumas outras tarefa, ou voc pode precisar para implantar vrias seqncias de ao novo ou modificado e voc deseja evitar que o cronograma de ser acionado enquanto estiver em no meio de uma implantao. Para esses efeitos, voc pode suspender temporariamente uma agenda. Suspendendo o cronograma evita as aces conexas de ser executado. Uma suspenso agenda permanecer suspensa at que voc configur-lo para continuar. Ambas as aes pode ser feito de dentro do PAC. Para suspender um ou mais modelos, selecione-os respectivos na pgina da guia Horrios no servidor de Administrao Console. Depois de fazer a seleo desejada, pressione o boto Pausa na barra de ferramentas. Isto ir suspender as programaes por tempo indeterminado, eo cronograma de Estado vai mostrar como Suspensa. Isso mostrado na Figura 14-3. Figura 14-3: Suspendendo um cronograma Note-se que o Estado coluna na tabela de horrios tem o valor Suspensa, Considerando que todos os outros modelos tm o valor Normal. Captulo 14 Agendamento, assinatura e Bursting 417 Para retomar a programao suspensa, selecione o calendrio que deseja retomar e pressione o boto Continuar (o tringulo verde com a seta). Excluindo agendas Voc pode apagar horrios marcando a caixa associados e, em seguida, pressionando o boto com o X vermelho''''na barra de ferramentas. Antes de excluir um pblico programao, uma boa idia para verificar primeiro se o cronograma est sendo usado pelos assinantes. Voc pode ver isso na viso calendrio apresentado pelo PAC, porque a coluna [Contagem] Tipo mostra se o calendrio pblico, bem como o nmero de assinantes. Voc sempre solicitado para confirmar a remoo de um cronograma. Figura 14-4 mostra como uma tentativa de remover o programa''minutos''usando o Adminis- trao Console dispara um pedido de confirmao, e tambm mostra que h ainda um assinante. Figura 14-4: Excluindo uma programao dispara um pedido de confirmao Programao do Programador com seqncias de ao Alm da interface grfica oferecida pela Administrao Console, voc tambm pode trabalhar com o Agendador de uma maneira mais programtica atravs de sequncias de ao. sequncias de ao oferecem uma srie de aes processo que permite que voc trabalhe com o Scheduler. Estes podem ser encontrados no submenu Scheduler do Processo menu Aco. O menu Scheduler mostrado na Figura 14-5. As aes processo Scheduler pode ser usado para criar uma alternativa para o Programador de interface oferecida pelo console de administrao. Um uso vlido caso para reconstruir esse tipo de funcionalidade que ela permitiria que os usurios finais de exercer mais controle sobre o contedo programado dentro de autorizao do servidor quadro. 418 Parte IV Inteligncia Aplicaes de Negcio Figura 14-5: O Agendador menu ao do processo As seguintes sees descrevem resumidamente as aes processo Scheduler. Adicionar tarefa A Adicionar tarefa aco processo cria um novo agendamento privada e associados com uma seqncia de ao. A Adicionar tarefa ao do processo tem o seguinte parmetros: Nome do trabalho-O nome do trabalho de Quartz. Isto aproximadamente equivalente ao o nome do programa em Pentaho. (A plataforma Pentaho adiciona alguns abstrao para o programador de quartzo. Uma programao Pentaho realmente um combinao de um trabalho de quartzo e um gatilho de quartzo). XAction Arquivo-A nome do arquivo (incluindo o . Xaction extenso) da seqncia de ao que deve ser associado a esse cronograma. Soluo Nome-O nome da soluo Pentaho que contm o seqncia de ao que est associado com o cronograma. Soluo Subdireo-A subdiretrio (se houver), onde a ao arquivo de seqncia reside. Trigger Nome-O nome do gatilho de quartzo. Em Quartz, o gatilho contm todas as informaes de tempo que pode ser usado para determinar quando um trabalho deve ser executado. Um disparo de quartzo refere-se a um trabalho de quartzo (mas um quartzo trabalho pode ser desencadeada por vrios gatilhos). Em Pentaho, a distino entre gatilho e trabalho oculto. Em vez disso, os associados Pentaho um emprego com um cronograma e se refere a isso como um agendamento. Tambm veja a descrio do parmetro Nome do trabalho. Trigger Type-Este um boto para escolher entre um trigger simples ou um cron gatilho. Trigger para disparar cron gatilhos especificado atravs de um cron string. Para simples gatilhos de disparo determinado por um valor de intervalo, que determina em que momento no futuro, o gatilho acionado e uma repetio Captulo 14 Agendamento, assinatura e Bursting 419 contagem. Simples gatilhos no suportam reincidncia, e so assim teis apenas para''one-shot''eventos, tais como a execuo do fundo. Cron String-Aplica para cron gatilhos. Especifica o cron seqncia de caracteres que rege a execuo do trabalho. Trigger Interval-Aplica a simples gatilhos. Isso especifica a quantidade de tempo antes que o gatilho ser disparado, especificado em microsegundos. Para exemplo, um minuto a partir de agora seria especificado como 60.000 (60 segundos vezes 1000), e uma hora a partir de agora seria especificado como 3,6 milhes (60 minutos por 60 segundos vezes 1.000 microsegundos). Trigger Count-Aplica a simples gatilhos. Em tempo de disparar tiros, o trabalho sero executados repetidamente de acordo com esse valor. Na maioria dos casos, este valor deve ser 1 (um) para executar o trabalho apenas quando o intervalo j passado. Figura 14-6 mostra o design de uma seqncia de aes simples que solicita parmetros de trabalho usando uma Prompt / Secure Filtro ao do processo e, em seguida, alimenta estes parmetros em um Adicionar tarefa processo de ao. Figura 14-6: Um agendador de tarefas muito simples que acessvel atravs de uma seqncia de ao Esta seqncia de ao simples faz uma prova de conceito para a construo de uma schedul- barao que podem ser acessveis aos usurios finais dentro da autorizao quadro do Servidor Pentaho. 420 Parte IV Inteligncia Aplicaes de Negcio Trabalho suspender, reiniciar Trabalho, Emprego e Excluir A Suspender Trabalho,Currculo de EmpregoE Excluir Trabalho aes processo de aceitar apenas um Nome do trabalho parmetro que deve ser usado para especificar o nome de um Pentaho cronograma. (Para uma discusso a respeito das programaes Pentaho e quartzo Jobs, consulte a seo anterior sobre a Adicionar tarefa processo de ao). A aes, em seguida, executar a ao implcita do seu nome para o Schedule. A Suspender Trabalho ao ir interromper o processo especificado Anexo, o Currculo de Emprego ao do processo vai continuar, e os Excluir Trabalho ao ser permanentemente remover o Schedule (e todas as suas aes associadas). Aes Outros Processo Scheduler Alm das aes processo que acabamos de discutir, h um pouco mais Agendador de aes relacionadas com processo: Suspender Scheduler -Pausa a execuo de todo o Agendador de inde- terminar o tempo Resume Scheduler -Termina o Agendador de pausa Status Scheduler Indica-se o Agendador de suspenso ou em execuo. Empregos lista agendada -Lista todos os horrios privada Essas etapas no so muito teis quando comparado com as funes equivalentes- dade oferecida pelo console de administrao. Os passos que o relatrio da Programador status so bastante limitadas, e se voc acha que precisa deles para construir um interface do usurio personalizada de programao, voc provavelmente melhor fora diretamente consultando o banco de dados de quartzo. Programador Alternativas O Agendador incorporado na plataforma Pentaho ternos muitos fins de agendamento. No entanto, ainda pode haver vantagens para agendamento de tarefas usando as ferramentas que so independentes do servidor de BI Pentaho. Aqui esto algumas razes que podem se por: Estas tarefas ETL- pode ser de longa durao, e pode colocar carga sobre o grave servidor. A plataforma, o programador, e todas as suas tarefas agendadas so todos executados na mesma instncia do Java Virtual Machine, e para o desempenho e as razes de disponibilidade voc pode querer execuo separada de tarefas ETL do restante do servidor de BI. Poltica-Para razes de manuteno e sustentabilidade, a empresa pode padronizaram em uma ferramenta de programao particular, e isso pode impedir de usar Pentaho's built-in Agendador. Captulo 14 Agendamento, assinatura e Bursting 421 Se voc s precisa agendar recursos para estes tipos de efeitos e voc no requerem nenhuma das funcionalidades Pentaho que constroem em cima da vegetao nativa Scheduler, voc deve pensar em ir com uma soluo mais leve. Em seguida, discutir brevemente as solues de programao mais comuns de trabalho para sistemas baseados em UNIX e Windows. Sistemas baseados em Unix: Cron sistemas baseados em UNIX geralmente oferecem algum tipo de cron implementao. Nor- malmente, este criado como parte da instalao do sistema operacional, e voc no deve ter que instalar nada para comear a trabalhar. Voc tem que especificar as tarefas que voc deseja programar. Isso feito simplesmente adicionar entradas para o emprego em um arquivo especial chamado de crontab (Para''tabela''cron). Esse arquivo est normalmente localizado no / Etc / crontab, Mas pode haver diferenas dependendo do sabor de UNIX. Em muitos casos, h uma crontab utilitrio disponveis, que facilita a manuteno cron entradas. O real cron as entradas so compostas de cron string (que foi discutido anteriormente para o Quartz), seguido pelo comando. H uma diferena notvel, rena entre UNIX cron cordas e quartzo cron strings: UNIX cron cadeias no suportam um campo de segundos. Em vez disso, o campo menor tempo minutos. A linha a seguir no crontab arquivo dever agendar o daily_load Pentaho trabalho de integrao de dados para executar todos os dias meia-noite: # M h dow dom seg 0 0 *** / Daily_load.kjb comando / Opt / pentaho / PDI / arquivo kitchen.sh / home wcm / PDI NOTA Para obter mais opes no cron e crontab usando, consulte o seu funcionamento sistema de documentao. man crontab geralmente um bom comeo. H tambm muitos recursos on-line que oferecem bons exemplos e explicaes sobre o cron. Windows: o de utilidade pblica e do Agendador de Tarefas Os usurios do Windows podem usar o utilitrio ou menos o Agendador de Tarefas. O utilitrio est disponvel a partir da linha de comando. Aqui est um exemplo simples que ilustra como programar a execuo de um trabalho em lotes para executar cada dia meia-noite: s 00:00 / every: M, T, W, Th, F, S, Su "D: \ pentaho \ pdi \ daily_job.bat" Em vez de fornecer um comando muito diretamente para a em linha de comando, geralmente melhor que escrever um arquivo em lotes (. Morcego arquivo) e ter ao executar isso. (Este tcnica pode, naturalmente, ser aplicado tambm em sistemas UNIX-like, onde um iria escrever um bater ou sh script.) 422 Parte IV Inteligncia Aplicaes de Negcio O Windows tambm oferece uma interface grfica para agendamento. Voc pode encontrar Agendador de Tarefas do Windows no Painel de Controle ou no menu Iniciar navegar at Iniciar Programas Acessrios Ferramentas do sistema Agendador de Tarefas. NOTA Para obter mais informaes sobre o em comando eo agendador de tarefas, por favor ir para a http://support.microsoft.com/ e procure por''no''comando e ''''Agendador de Tarefas. Contexto de execuo e assinatura Contexto de execuo e assinatura so duas aplicaes especiais de agendamento. Nesta seo, descrevemos estas caractersticas em detalhes. Como funciona a execuo em segundo plano execuo de fundo uma caracterstica conveniente que permite aos usurios executar seqncias de ao sem aguardar o resultado. Ao invs de iniciar a ao seqncia e esperando por ele para encerrar, uma agenda privada criada para programar a ao ocorra o mais rapidamente possvel. Aps a concluso, o sada da seqncia de ao armazenado para que o usurio pode consult-lo em um momento posterior. Para executar uma seqncia de ao em segundo plano, voc pode simplesmente clicar com o boto direito ela e escolha a opo Executar em segundo plano. Este aparece como uma caixa de mensagem o mostrado na Figura 14-7. Figura 14-7: Um aviso antes de executar em segundo plano Conforme sugerido pela caixa de mensagens, executando em segundo plano, desta forma No h suporte para seqncias de ao que exigem parmetros de entrada, mas h uma alternativa. Se voc criar uma seqncia de ao que pede ao utilizador para parmetros de entrada usando um Prompt / Secure Filtro Processo de ao, um boto de rdio automaticamente apresentada, que permite ao usurio escolher imediatos ou de fundo execuo. Um alerta simples / Secure filtro de entrada mostrado na Figura 14-8. A Executado em segundo plano boto visvel na parte inferior. Captulo 14 Agendamento, assinatura e Bursting 423 Figura 14-8: Prompt para executar em segundo plano Assinatura Como funciona Assinatura um recurso que permite aos usurios finais para receber contedo de acordo com BI com uma programao predefinida. Em Pentaho, a subscrio construdo imediatamente aps a topo da Scheduler, permitindo que os usurios finais a atribuir seqncias de ao para agendas pblicas. Como tal, a assinatura uma extenso da programao caracterstica. Alguns requisitos devem ser cumpridos para permitir inscrio: O administrador do servidor deve definir uma ou mais agendas pblicas. Ns discutida a criao de cronogramas utilizando o Server Console de Administrao em na seo anterior. Lembre-se que voc tem que selecionar o pblico Agenda checkbox. Para cada seqncia de ao, o administrador deve especificar quais os horrios o usurio tem permisso para escolher quando se inscrever. Um usurio que deseja se inscrever com um relatrio deve ter o privilgio de executar e agendar o relatrio. Permitir que usurios se inscrevam O administrador do servidor deve especificar a que agendas pblicas, o utilizador pode atribuir uma seqncia de ao em particular do usurio dentro do console. O servidor administrador pode fazer isso a partir do console de usurio (no o Servidor de Administrao Console) clicando com a seqncia de ao e escolha Propriedades. Escolhendo o item de menu Propriedades abre a caixa de dilogo Propriedades. Na de dilogo Propriedades, ative a pgina da guia Avanado. Na pgina da guia Avanado voc tem que primeiro verificar o Uso Pblico checkbox Anexos. Depois, voc pode selecionar uma agenda a partir da lista de horrios disponveis no lado esquerdo da guia pgina e use o boto para mov-lo para a lista Horrios atual sobre o direito lado da janela. Isso mostrado na Figura 14-9. Isso permite que todos os usurios que tm o privilgio de faz-lo para agendar esta ao seqncia. 424 Parte IV Inteligncia Aplicaes de Negcio Figura 14-9: Fazendo uma seqncia de ao registrveis Concesso de execuo e cronograma Privilgios Os usurios precisam ter, pelo menos, executar e agendar os privilgios de uma ao seqncia antes que eles possam assin-lo. No importa se esses privilgios eram concedidos directamente ou atravs de um papel. Para conceder privilgios sobre uma seqncia de ao particular, boto direito do mouse e escolha a opo Compartilhamento no menu de contexto. Na caixa de dilogo que aparece, o de aes ficha j est ativado. (Outra maneira de chegar aqui escolher o Propriedades opo no menu de contexto e, em seguida, ativar manualmente o compartilhamento pgina da guia.) Na metade superior da pgina da guia de aes na caixa de dilogo, voc pode ver todos os disponveis usurios e funes. Na metade inferior, os privilgios que so actualmente configurado para o papel ou o utilizador que est atualmente selecionado so exibidas. Figura 14-10 ilustra isso. Figura 14-10: Concesso de Execuo e Programao privilgios Captulo 14 Agendamento, assinatura e Bursting 425 A subscrio efectiva No console do usurio, os usurios finais podem criar uma assinatura com o boto direito do mouse sobre um seqncia de ao e escolhendo a opo Schedule no menu de contexto. Se a seqncia de ao registrvel eo usurio tem privilgios suficientes, o pgina web vai carregar uma caixa de dilogo como o mostrado na Figura 14-11. Figura 14-11: Um dilogo simples assinatura O dilogo mostrado na figura 14-11 o mais simples possvel assinatura dilogo. No dilogo, o usurio precisa digitar um nome no nome do relatrio caixa de texto para identificar o relatrio agendado. (Voc pode digitar no mximo 25 caracteres, que no muita coisa.) Com a programao caixa de listagem, o usurio pode selecionar uma das programaes oferecidos. Estas so todas as programaes que foram associados com a seqncia de ao pelo administrador do servidor. Se a seqncia de ao utilizado na inscrio requer entrada do usurio, o dilogo de inscrio tambm apresenta os parmetros do relatrio, que pode ento ser preenchido pelo usurio. Por exemplo, a figura 14-12 ilustra como um prompt usado para configurar o formato de sada do relatrio so combinados com as instrues para o parmetros de assinatura. O alerta para o formato de sada adicionado explicitamente na seqncia de ao, ao passo que o alerta para a inscrio apresentado automaticamente. Figura 14-12: O prompt regular para os parmetros automaticamente combinadas com avisos para a subscrio A entrada do usurio armazenado junto com a escolha da programao e da ao seqncia na assinatura. Quando o cronograma de execuo dos gatilhos seqncia de ao, os valores armazenados so usados como valores de parmetro para a ao seqncia. Como foi explicado na subseo anterior, o usurio deve ter o Executar e da Tabela de privilgio para a seqncia de ao, a fim de subscrev-lo. 426 Parte IV Inteligncia Aplicaes de Negcio Se o usurio no tem o privilgio de Programao, este indicado por uma mensagem caixa como o mostrado na Figura 14-13. Figura 14-13: Uma caixa de mensagem indicando que o usurio no tem permisso para agendar o relatrio NOTA No momento da redao deste texto, ele aparece como se possvel inscrever-se seqncias de ao que no tenham sido feitas registrvel pelo servidor administrador. Se voc clique direito do mouse sobre uma tal seqncia de ao, voc pode escolher Inscrever-se que aparece um Agendador de dilogo Criador. No entanto, o preenchimento do dilogo e confirmando que sempre leva a uma mensagem de erro. Espao de Trabalho do Usurio Com os recursos para execuo de programao e de fundo, surge a necessidade para que o usurio seja capaz de controlar e monitorar o contedo programado. Alm disso, tem que haver algum meio para que o usurio acessar os resultados gerados por qualquer agendada aes ou de fundo. Pentaho oferece uma vista por usurio chamado Workspace que permite aos usurios gerenciar sua parte do repositrio de contedo e seus horrios. Visualizando o Contedo da rea de Trabalho No console do usurio, os usurios podem revisar o contedo de sua rea de trabalho pessoal escolhendo Exibir espao de trabalho a partir do menu. Na pgina Espao de Trabalho, os usurios podem monitorar e controlar todas as seqncias de ao que esto agendadas ou executados em segundo plano em seu nome. Figura 14-14 mostra um exemplo de usurio espao de trabalho. Figura 14-14: Um espao de trabalho do usurio Captulo 14 Agendamento, assinatura e Bursting 427 A pgina Workspace mostra uma srie de painis contendo todas as medidas seqncias regulares em nome do usurio. Cada painel de aes pode ser col- caducado ou expandida clicando no tringulo imediatamente antes do painel ttulos. A espera, completa e painis Meu Horrios A espera, completa e painis Meu Horrios podem ser utilizados para a gesto da aco seqncias que so executados em segundo plano. O painel de espera contm uma linha para cada seqncia de ao que atualmente em execuo em segundo plano em nome do usurio atual. A nome e data de incio so mostrados para cada trabalho. Um link Cancelar est disponvel para interromper o trabalho. Por exemplo, na Figura 14-14 voc pode ver que um trabalho chamado ''''Relatrio de Vendas iniciou a execuo em segundo plano em 24-3-09 15:37. Em o tempo a pgina Workspace estava sendo visto, o trabalho ainda estava correndo. O painel de listas completas de todas as seqncias de ao que foram encomendados para execuo em segundo plano e que j se acabaram. Para cada ao seqncia, o nome e data de execuo so mostrados. Alm disso, o resultado da execuo da ao est disponvel a partir do painel completo: O coluna de tamanho indica o nmero de bytes na sada, e do tipo indica o tipo de sada foi armazenado. H tambm um link para Ver inspecionar o resultado, e um link Delete para remov-lo permanentemente da espao de trabalho. Na Figura 14-14, dois resultados de execuo em segundo plano antes do relatrio de vendas esto disponveis. O meu painel de listas tambm mostra as seqncias de ao que foram iniciado. Alm das informaes mostradas no painel de espera, o Meu painel Horrios apresenta informaes mais detalhadas (como o estado) sobre a seqncia de ao de execuo. O Painel de Agendas Pblicas O pblico painel Horrios mostra todas as assinaturas do usurio atual. Para cada assinatura, uma srie de links esto disponveis. O Run Now link executa a seqncia de ao imediatamente. Esta til no caso de haver uma sbita necessidade de obter o resultado antes do programao regular. Como o Run Now link, o link Executar e Arquivo executa a seqncia de ao antes do previsto. No entanto, neste caso, a seqncia de ao executada em segundo plano eo resultado armazenado no repositrio de contedo. Com o link Editar, voc pode alterar os detalhes da inscrio, tais como o cronograma. Se o relatrio aceita parmetros, estes podem ser modificados 428 Parte IV Inteligncia Aplicaes de Negcio a partir deste link, tambm. A figura 14-15 ilustra o que acontece quando voc clica no link Editar. O link Delete remove permanentemente a assinatura. Quando voc clica ela, uma caixa de mensagem aparece e pede confirmao para excluir a assinatura. Confirmando isto ir remover apenas o usurio atual assinatura, mas o cronograma real prprio pblico. Figura 14-15: Editando uma subscrio existente A sada de inscrio normalmente aparece logo abaixo da assinatura entrada no painel Horrios Pblica. Figura 14-16 mostra o Relatrio de Vendas 1 assinatura, e imediatamente abaixo, so trs linhas que correspondem a uma execuo bem-sucedida da seqncia de ao. Usando o link View, os usurios pode baixar o resultado da ao, e com o link Excluir, os usurios podem remover permanentemente o contedo do seu espao de trabalho. Figura 14-16: Uma assinatura e sua sada rea de trabalho do administrador do servidor espao de trabalho do administrador do servidor, mostrado na Figura 14-17, tem um adicional de Todos os Horrios painel. Este painel mostra todos os horrios e lhes permite ser executado imediatamente, suspensos, e retomada. A mesma funcionalidade est disponvel a partir do Servidor de Administrao do console, mas repetido aqui como um convenincia recurso. Captulo 14 Agendamento, assinatura e Bursting 429 Figura 14-17: espao de trabalho do administrador do servidor Limpando a rea de trabalho Quando deixado sem vigilncia, o repositrio de contedo ser em algum momento, preencher o disco. Os usurios podem excluir seus prprios itens do repositrio de contedo, mas o servidor Os administradores no devem se basear nisso. Para qualquer configurao de produo, os administradores deve ter o cuidado de monitorar o repositrio de contedo. Na pgina da guia Servios do Console de Administrao, alguns itens so disponveis para ajudar a gerenciar o repositrio de contedo. O repositrio de contedo painel de servio mostrado na Figura 14-18. Figura 14-18: servios Console de Administrao para gerenciar o repositrio de contedo Pressionando o boto Executar ir executar o clean_repository ao seqncia localizado no Admin Pentaho soluo. Isto ir remover todos os arquivos no repositrio de contedo que so mais de 180 dias. Se voc gosta, voc pode editar o clean_repository seqncia de aes e modificar o nmero de dias. Apertando o boto ir executar o Schedule schedule_clean ao seqncia, que tambm reside no Admin Pentaho soluo. Esta aco usa a seqncia Adicionar tarefa ao do processo para instalar um programa para o dirio clean-up do repositrio de contedo. Como voc poderia esperar, esta recai sobre o clean_repository para fazer a limpeza real. 430 Parte IV Inteligncia Aplicaes de Negcio Ruptura Em um contexto de BI, ruptura por lotes de produo, baseados em dados e distribuio de BI de contedo, como relatrios e grficos. Um exemplo muito simples de rompimento seria a criao de relatrios da expedio para cada armazm e enviar a sada do relatrio para o correspondente Warehouse Manager. Outro exemplo tpico o envio de cada cliente um e-mail com um anexo mostrando uma viso geral de todas as rendas e as compras efectuadas durante o ano passado. NOTA A expresso''''estouro origina-se da poca em que grandes relatrios foram impresso todo em papel, a impresso e precisaria ser dividido em separado peas para seus respectivos destinatrios. Nestes dois exemplos, o relatrio executado, mas o contedo eo contexto do produo feita sob medida para cada destinatrio. Implementao de ruptura em Pentaho A edio da comunidade do Servidor Pentaho no oferece nativa rebentar recursos. No entanto, com alguma criatividade e esforo, estourando pode ser imple- complementados por looping atravs de um conjunto de dados e usando os dados da linha atual executar um relatrio e envia os resultados para o receptor apropriado (s). Os seguintes seo o orienta atravs de um exemplo que estouram no Pentaho. Exemplo de ruptura: Aluguel lembrete E-mails Considere o caso de uso de lembrete de aluguer e-mails: a cada semana, de Classe Mundial Filmes envia lembretes de e-mail aos seus clientes para notific-los que DVDs devero ser devolvidos (ou adquiridos), durante a semana seguinte. Porque este essencialmente um processo operacional, escolhemos como base para este exemplo diretamente no banco de dados WCM, e no o data warehouse. (Em uma configurao de prtica, voc seria mais provvel ainda usar uma instncia de banco de dados separado, como uma replicao escravo, a fim de descarregar outras operaes, como a entrada do pedido). Os passos seguintes descrevem como isso funciona: 1. Obter um conjunto de resultados de todos os clientes que ordenou DVDs que devero ser retornados durante a semana seguinte. 2. Loop sobre as linhas no conjunto de resultados. Para cada linha: Obter a lista atual de ttulos de DVD, que devero ser devolvidos durante na semana seguinte para o cliente atual. Executar um relatrio que lista os ttulos de DVD e as respectivas datas de vencimento. Captulo 14 Agendamento, assinatura e Bursting 431 Conecte a sada do relatrio para uma mensagem de correio electrnico e envi-lo cliente. No restante desta seo, descrevemos como implementar isso em um Pentaho seqncia de ao. Para seguir com o exemplo, voc vai precisar Pentaho Design Studio (para criar a seqncia de ao) eo Relatrio de Pentaho Designer (para criar o relatrio). Passo 1: encontrar clientes com DVDs que so Entrega esta semana O primeiro passo encontrar todos os clientes que precisam receber um lembrete. Um maneira de abordar este problema olhar para todos os DVDs que so devidos durante o Na semana seguinte, e depois de olhar para cima os dados do cliente atravs da correspondente da ordem. Use o SQL na listagem 14-1 para fazer isso. Listing 14-1: Encontrar clientes com DVDs que so devidos c.customer_id MAX (c.first_name) first_name MAX (c.last_name) last_name MAX (c.balance) equilbrio MAX (c.email_address) email_address CAST ( GROUP_CONCAT ( col.customer_order_line_id ) AS CHAR (512) ) Customer_order_lines FROMwcm.customerc INNER JOIN wcm.customer_orderco ONc.customer_id = co.customer_id INNER JOIN wcm.customer_order_linecol ONco.customer_order_id = col.customer_order_id WHEREcol.return_due_date Entre {} report_date E report_date {} + INTERVAL {} report_interval SEMANA GRUPO BYc.customer_id SELECT , , , , , Algumas coisas so dignas de nota sobre essa consulta. Na consulta, voc pode veja {} Report_date e {} Report_interval. As chaves no so vlidas SQL. Ao contrrio, eles delimitar parmetros ao nvel de uma seqncia de ao. Em vez de incorporar uma chamada para CURRENT_DATE () ou algo parecido em a consulta, ns preferimos a exteriorizar isso em um parmetro. Isso far com que muito mais fcil depois para iniciar a seqncia de ao de alguns dias frente ou atraso. Ns gostamos de ter a {} Report_interval por um motivo semelhante. Ao torn-la disponvel como um parmetro, podemos facilmente decidir mais tarde para 432 Parte IV Inteligncia Aplicaes de Negcio enviar e-mails uma vez a cada duas ou trs semanas, em vez de a cada semana. Embora seja impossvel para parametrizar tudo (ou pelo menos no seria muito prtico), esses itens so os provveis candidatos para a mudana por causa da mudana de negcios decises. A consulta usa uma GROUP BY customer_id clusula. Porque customer_id o chave primria da cliente tabela, essa consulta ir produzir, por definio, apenas um linha por cliente. Na SELECT lista, que voc deseja recuperar todos os tipos de dados de o cliente, e para evitar confuso, voc deve adicionar explicitamente MAX agregada funes para todas as outras colunas que voc precisa do cliente. (Tecnicamente, voc no precisa fazer isso, por causa da GROUP BY em customer_id voc pode ser se todas as outras colunas da cliente tabela ter apenas um valor por distintos customer_id. No entanto, voc deve aplicar MAX () de qualquer forma para a clareza e portabilidade). Um aspecto final desta consulta a aplicao do GROUP_CONCAT funo. Esta uma funo especfica do MySQL agregado que as linhas de grupos usando con-corda encadeamento, por padro, separando os valores com uma vrgula. Neste caso, a nica argumento o customer_order_line_id, O que significa GROUP_CONCAT funo ir gerar uma lista separada por vrgulas dos customer_order_line_ids que correspondem aos DVDs que devero ser devolvidos. Voc vai usar isso mais tarde na na seqncia de ao para executar uma consulta para o relatrio. Para colocar isto em seqncias de ao, voc pode usar o Relacional processo aco. Voc pode encontr-lo sob a obter dados a partir do menu. Na Consulta propriedade, digite a instruo SQL. Para o nome do conjunto de resultados, os clientes que voc digita e em Alm disso, voc definir explicitamente cada coluna do conjunto de resultados no Resultado Definir grade Colunas. Isto tornar mais fcil para se referir a itens especficos no conjunto de resultados. Voc tambm tem que especificar os parmetros de ao para a seqncia de entrada {} Report_date e {} Report_interval parmetros. A seqncia de ao mostrado na Figura 14-19. Passo 2: looping atravs dos clientes A segunda etapa da seqncia de ao um Loop processo de ao. Isso itera atravs de todos os clientes que encontramos na primeira etapa da seqncia de ao. Figura 14-20 mostra como usar o Loop ao processual na ao de ruptura seqncia. Na figura, o Loop ao do processo marcado Loop em Ao Clientes. Em si, a Loop ao do processo no muito interessante. No entanto, torna-se interessante em virtude das aes que so colocados dentro dela. Essas aes so repetido para cada iterao do loop. Na Figura 14-20, os restantes trs aes aparecem recuadas em relao ao ciclo. Assim, estas aces sero repetido para cada linha da clientes conjunto de resultados. Captulo 14 Agendamento, assinatura e Bursting 433 Figura 14-19: Encontrar clientes usando uma etapa da ao processo relacional Figura 14-20: Loop atravs de um conjunto de resultados 434 Parte IV Inteligncia Aplicaes de Negcio Passo 3: Primeiros DVDs que devero ser devolvidos Dentro do loop, voc precisa descobrir quais DVDs devero ser devolvidos para a iterao atual cliente. Felizmente, isso muito fcil! Porque voc incluiu o GROUP_CONCAT expresso sobre o customer_order_line_id coluna em sua clientes consulta, voc pode usar um muito simples e eficiente EM consulta para procurar as linhas relevantes do customer_order_line tabela. De o tabela customer_order_line, Voc pode facilmente procurar o correspondente DVDs na dvd_release tabela utilizando uma INNER JOIN. Mais uma vez, voc usa um Relacional ao do processo, como voc fez para os clientes. Para os DVDs, foi utilizada a consulta mostrada na listagem 14-2. Listagem 14-2: Encontrar DVDs que so devidos SELECT , , , , , , , , DA INNER JOIN ON ONDE {} Customer_id customer_id first_name 'first_name {}' last_name '{} last_name " {} Equilbrio equilbrio {} Report_date report_date d.title col.return_due_date col.rental_price col.purchase_price col wcm.customer_order_line wcm.dvd_released col.dvd_release_id = d.dvd_release_id col.customer_order_line_id IN ({} customer_order_lines) Na ONDE clusula, voc v o {} Customer_order_lines parmetro, que usado para localizar o customer_order_line linhas. Lembre-se que o GROUP_CONCAT funo usada na consulta do cliente retorna uma lista separada por vrgulas customer_order_id valores. Alm da {} Customer_order_lines parmetro, voc copiou o cus- Tomer dados da iterao atual cliente para o SELECT lista. Voc precisa dados de clientes de qualquer maneira para personalizar o relatrio, e embora voc possa obter as mesmas informaes de programao, alargando o SQL estado mento com INNER JOINs para customer_order e cliente, Voc pode muito bem beneficiar do fato de que a obra j est executada. Passo 4: Executando o relatrio lembrete Agora que voc tem dados sobre o cliente e os DVDs, voc pode processar um relatrio. Para este efeito, voc precisa de um relatrio muito simples, que ns criamos com o Designer de Relatrios Pentaho. No vamos descrever este processo em pormenor, mas o ponto principal deste relatrio que todos os dados relativos alugado Captulo 14 Agendamento, assinatura e Bursting 435 DVDs, como o DVD de ttulo, aluguel de dados de vencimento, preo de aluguel, eo preo de compra so prestados no item Band. Os dados repetidos no item Band marcado utilizando rtulos estticos que aparecem no cabealho do relatrio. Os dados referentes ao o relatrio em si (como o report_date) Ou um cliente seu recebimento (como first_name,last_name,equilbrioE report_data) E so colocados na pgina Cabealho. O design do relatrio mostrado na Figura 14-21. Figura 14-21: O projeto para o arrendamento lembrete Relatrio Da perspectiva do design do relatrio, as coisas so bastante simples se enviar o relatrio como um anexo em PDF com uma mensagem de correio electrnico. No entanto, Se voc quiser enviar o relatrio em si como o corpo de um email HTML, voc pode querer configurar a sada de HTML especialmente para esse fim. Voc pode acesso a configurao do relatrio atravs do painel de propriedades mostradas no relatrio Figura 14-22. Figura 14-22: Acessando as propriedades do relatrio no painel Propriedades 436 Parte IV Inteligncia Aplicaes de Negcio Na janela de propriedades, voc pode ativar o sada de tabela html configurao e explicitamente suprimir folhas de estilo externas, ou mesmo a fora estilos a ser escrita em linha. Para relatrios baseados na Web normal, folhas de estilo externas geralmente so preferveis, e um estilo inline deve ser evitado. No entanto, folhas de estilo externas e estilos fora-de-linha pode impedir alguns clientes de e-mail da prestao corretamente o relatrio, por isso que explicitamente se desviam entre as opes padro neste caso. Substituindo esses padres mostrada na Figura 14-23. Figura 14-23: Forar estilo interno e estilos inline para HTML e-mail O relatrio chamada com o Pentaho Report ao do processo, que reside sob o submenu relatrio. Figura 14-24 mostra que a ao do processo parece. Note-se que o <dvds> parmetro utilizado para o relatrio de dados. Este o nome do resultado do conjunto de parmetros a partir da ao do processo anterior. Note tambm a Nome da sada do relatrio, que definida como rental_reminder_report. Voc precisa referem-se a isso no prximo passo, onde voc vai enviar a sada do relatrio em um e-mail. Passo 5: o envio do relatrio via e-mail O passo final na seqncia de ao toma conta da entrega ao cliente. Para fazer isso, use um EMAIL processo de ao. Isto pode ser alcanado a partir do Enviar Para menu, como mostrado na Figura 14-25. Captulo 14 Agendamento, assinatura e Bursting 437 Figura 14-24: Chamando o Relatrio lembrete Figura 14-25: O envio do relatrio, como HTML e-mail 438 Parte IV Inteligncia Aplicaes de Negcio Observe que voc use o <email-address> a partir dos dados de clientes do exterior conjunto de resultados como um parmetro para o resolver. Para a mensagem HTML, utilize o <rental-reminder-report> parmetro, que a sada do relatrio real criada no processo de ao anterior. Outras implementaes de ruptura O exemplo j visto simplesmente uma forma de execuo de ruptura. No pode haver casos em que esta abordagem funciona muito bem. Pode haver outros casos onde esta abordagem no to til (tal como quando o resultset exterior grande, e consultar o para o resultset interno complexo e caro). Aqui so apenas algumas outras possibilidades para a aplicao do relatrio de ruptura com base na Pentaho BI Suite: Em vez de enviar e-mail HTML, voc pode configurar o relatrio (ou a ao processo de chamada do relatrio) para gerar um PDF. Neste caso, a sada do relatrio ser anexado ao e-mail ao invs de enviado como o corpo. Com o E-mail ao do processo dessa mudana quase trivial. Voc pode basta mover o <rental-reminder-report> parmetro a partir do HTML campo de mensagem para a grade Anexos e escreva uma mensagem de texto esttico em Mensagem de Texto de campo. Se voc quiser enviar apenas uma mensagem de correio electrnico simples, voc pode usar o Mensagem Modelo ao do processo de mesclar um modelo de texto esttico com o conjunto de resultados dados provenientes de outras partes da seqncia de ao. Voc pode at escolher entre e-mail de texto simples, HTML e-mail ou um arquivo PDF penhora, dependendo das preferncias do usurio. Para fazer isso, voc iria expandir a consulta com um campo que detm a preferncia do usurio para PDF, texto simples, ou HTML. Dependendo do valor do campo, voc pode usar um Se Declarao ao do processo para enviar o tipo correto de e-mail. Em vez de construir seqncias de ao complexo, voc poderia escolher para imple- mento muito da lgica dentro de uma transformao Pentaho Data Integration. Esta abordagem especialmente til quando voc precisa simplesmente de enviar um mensagem de e-mail, e podem ignorar gerar um relatrio completo. Um extra vantagem de usar PDI que voc pode usar as suas capacidades de clustering para distribuir a carga entre mltiplas mquinas. Depois de trazer PDI na mistura, voc pode ser capaz de eliminar a necessidade para consultas de banco de dados totalmente aninhados. Em vez disso, voc pode escrever apenas uma consulta que inclui dados de clientes e ttulos de DVD, e usar a PDI transformao que diretamente em uma estrutura aninhada, como XML ou JSON. Voc seria ento necessrio para analisar a utilizao de uma obter dados de / XML ou Javascript etapa, mas esta ainda pode ser mais rpido do que espera para uma consulta de banco de dados. Captulo 14 Agendamento, assinatura e Bursting 439 Resumo Neste captulo, investigamos alguns dos mtodos mais avanados de fornecimento de contedos de inteligncia comercial para usurios finais. Neste captulo, voc Aprendi a: Criar e manter horrios usando o console de administrao Use sequncias de ao para programaticamente criar agendas Uso externo solues de programao, tais como cron e em Permitir que as seqncias de ao a ser registrveis, associando-as com um cronograma Conceder os privilgios apropriados para os utilizadores (e funes), que lhes permitam subscrever para os itens de ao Monitorar e gerenciar o contedo inscrito no espao de trabalho do usurio Limpe o repositrio de contedo Implementar explodindo em uma seqncia de ao CAPTULO 15 Solues OLAP Utilizando Pentaho Analysis Services Pentaho Analysis Services fornece os recursos OLAP do Pentaho Plataforma. Captulo 8 breve introduo aos conceitos de OLAP, ROLAP, MOLAP, e HOLAP. Este captulo dedicado obteno de solues (R) para cima e OLAP execuo na plataforma Pentaho BI Pentaho usando Analysis Services (PAS). PAS lhe permite analisar os dados de forma interativa a partir da data warehouse fornecendo uma interface de referncia cruzada de estilo em que as diferentes dimenses, tais como tempo, produto e cliente pode ser colocado. Ao contrrio de uma ferramenta de comunicao, no h preciso primeiro definir uma consulta, obter os resultados e formatar esses, embora esta possvel, se desejar. Um front end OLAP fornece uma interface intuitiva ponto-e-clique ou interface drag-and-drop que ir automaticamente recuperar e formatar dados com base na seleo feita por um usurio. Ela permite a rpida zoom em certas partes do cubo de dados, tambm chamado drill down, ou agregar detalhes um nvel de sntese, tambm chamado drill-up. Voc pode aplicar condies para apenas olhar partes de um cubo, que tambm chamado corte. Trocando informaes de linhas a colunas ou vice-versa, finalmente como o giro do cubo e olh-lo de ngulos diferentes, que tambm chamado corte. Executando drill up, drill down, Fatie e pique, e fazendo tudo isso de uma alta velocidade, o que forma interativa OLAP distingue de outros tipos de anlises e relatrios e permite uma usurio para analisar rapidamente os dados e encontrar excees ou ter uma viso de negcios desempenho. Neste captulo, comeamos por descrever a arquitetura da Pentaho Analysis Servios, seguido por uma breve introduo ao MDX, que de facto linguagem padro de consulta OLAP. A seguir, vamos explicar em detalhe como criar e implementar cubos OLAP para o motor ROLAP Mondrian, que o corao do Analysis Services Pentaho. Tambm explicamos como navegar estes cubos 441 442 Parte IV Inteligncia Aplicaes de Negcio usando o front-end JPivot. Finalmente, discutiremos como voc pode usar o Pentaho designer de agregao para melhorar o desempenho do OLAP. Viso Geral dos Servios de Anlise Pentaho PAS composto dos seguintes componentes: JPivot front-end-anlise JPivot uma ferramenta de anlise baseada em Java que serve como a interface real do usurio para trabalhar com cubos OLAP. Mondrian motor ROLAP-A motor recebe a partir de consultas MDX front-end ferramentas como JPivot, e responde enviando uma mul- resultado provisrio-set. Schema Workbench-Este a ferramenta visual para projetar e testar Mondrian esquemas cubo. Mondrian usa esses esquemas cubo para interpretar MDX e traduzi-lo em consultas SQL para recuperar os dados de uma RDBMS. Agregado Designer-A ferramenta visual para gerao de tabelas de agregados para acelerar o desempenho do motor analtico. NOTA Em 2009, um projeto da comunidade foi iniciada a construo de uma nova gerao Pentaho Analysis Tool (PAT), que visa substituir JPivot no futuro. No momento da isto foi escrito, o PAT est ainda na sua fase inicial de desenvolvimento assim para o resto do Neste captulo, vamos furar a JPivot. Se voc quiser dar uma olhada no PAT, visite o pgina do projeto na casa http://code.google.com/p/pentahoanalysistool. Arquitetura Figura 15-1 mostra uma viso esquemtica dos componentes do PAS e os seus relacionamentos. Primeiro, vamos resumir os elementos e as interaes mostrado na Figura 15-1. A seguinte seqncia de eventos descreve o que acontece quando o usurio final usa um tpico Pentaho aplicao OLAP: 1. O navegador do usurio final de internet faz uma solicitao HTTP para ler, ver ou drill down em uma tabela dinmica OLAP. (Em Pentaho, isso normalmente resulta em a execuo de uma seqncia de ao, que neste caso foi construdo para chamar JPivot). 2. O servlet JPivot recebe o pedido e converte-lo em um MDX consulta. A consulta MDX enviado para o motor de Mondrian. 3. Mondrian interpreta a consulta MDX e traduz isso em um ou mais Consultas SQL. Esta tcnica especial referido como ROLAP, que representa Relational OLAP. (Neste captulo, nos referimos ao termo OLAP para maior clareza, embora no contexto de Mondrian, a tcnica atual mais apropriadamente chamada ROLAP). Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 443 OLAP Front End Fim Metadados e Back Pentaho Agregada Designer Navegador da Web Referncia Cruzada Cliente Pentaho esquema Workbench XML Editor <Schema> <Cube> .. </ Cube> </ Schema> 1. HTTP Pedido Publicar Editar Otimizar, Publicar Design, Criar, Povoar 6. HTML Resposta Pentaho BI Server Esquema Arquivo (XML) Leia Metadados JPivot Servlet 2.MDX Mondrian ROLAP Engine 5. Mutidimensional Resultado 3. SQL 4. Relacional Resultado Data Warehouse RDBMS Figura 15-1: Viso geral dos componentes Pentaho OLAP 444 Parte IV Inteligncia Aplicaes de Negcio 4. O Relational Database Management System (RDBMS) executa o consultas emitidas por Mondrian. Mondrian recebe tabular (relacional) os resultados. 5. Mondrian processa os resultados recebidos do RDBMS e traduz los a um conjunto de resultados multidimensional. Esta realmente a consulta MDX resultado da consulta MDX enviado para Mondrian na Etapa 2. 6. JPivot utiliza o resultado multidimensional para renderizar uma pgina HTML para exibir os dados. Este ento enviado para o navegador onde mostrado o usurio. Esquema A estrutura central mostrado na Figura 15-1 o esquema. O esquema essencialmente um documento XML que descreve um ou mais cubos multidimensionais. A cubos tambm descrever o mapeamento das dimenses do cubo e as medidas de tabelas e colunas em um banco de dados relacional. Para Mondrian, o esquema a chave em traduzir a consulta MDX para consultas SQL. Ferramentas de projeto de esquema A parte superior direita da figura 15-1 mostra uma srie de componentes que fazem no participa diretamente na interao anteriormente resumidas. Estes todos representa o design e desenvolvimento de ferramentas usadas para construir ou melhorar Mon- drian esquemas. Um esquema de Mondrian o mapeamento entre o relacional eo modelo multi-dimensional. Esse mapeamento usado para ajudar a traduzir Consultas MDX para consultas SQL, e para transformar os resultados relacional recebidos em resposta s consultas SQL para resultados multi-dimensional. O multidimensional modelo, composto de dimenses, hierarquias e medidas, criada primeiro e o modelo relacional mapeado para o esquema. Porque voc vai trabalhar com um esquema em estrela como a origem do esquema de Mondrian, esta ser uma grande simples processo. Pentaho Schema Workbench oferece uma interface grfica para criar Mon- drian esquemas. Alm disso, Pentaho Schema Workbench pode publicar esquemas ao Servidor Pentaho, que em seguida, armazena-los na soluo de repositrio. Uma vez armazenados na soluo de repositrio, os esquemas podem ser usados pelo servidor motor de Mondrian como um back-end para servios OLAP. Pentaho Schema Workbench apenas uma ferramenta que voc pode usar para criar esquemas. Voc tambm pode usar um editor de texto ou editor XML para gravar o esquema homem- vamente, por isso que o incluiu na Figura 15-1, ao lado de Pentaho Schema Workbench. Voc pode publicar esquemas escritos manualmente usando Pen- Bancada Taho, ou movendo o arquivo XML que contm o esquema para o Diretrio da soluo Pentaho desejada no sistema de arquivos. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 445 Tabelas agregadas O Pentaho Designer Agregado (PAD) uma ferramenta que pode ajud-lo a gerao e preenchimento de tabelas de agregao. Mondrian pode aproveitar de tabelas de agregados para gerar consultas SQL eficientes que podem ser consideravelmente melhorar o desempenho. Assim, o PAD anlises do banco de dados de back-end, gerando as declaraes adequadas SQL para criar e preencher as tabelas de agregao. Em mesmo tempo, PAD modifica o arquivo de esquema, que necessrio para Mondrian usar as tabelas de agregao. Este captulo aborda todas as ferramentas necessrias para desenvolver e utilizar solues OLAP, mas antes de podermos fazer isso precisamos cobrir alguns conceitos bsicos como MDX ea estrutura de um cubo OLAP. MDX Primer MDX a abreviao de expresses Multi Dimensional, que um linguagem que especialmente concebido para consultar bancos de dados OLAP. MDX um padro de facto originalmente desenvolvido pela Microsoft. NOTA MDX um padro criado e implementado pela primeira vez pela Microsoft no servidor da Microsoft Analysis, que fornecido como parte do SQL Server RDBMS. Aps sua introduo, MDX foi amplamente adotado por outros fabricantes como a OLAP linguagem de consulta. Atualmente no h consrcio ou comit estabelece normas fora da Microsoft, que mantm uma especificao MDX. documentao de referncia s est disponvel como parte da documentao do produto SQL Server. A referncia atual documentao pode ser encontrada em http://msdn.microsoft.com/en-us/ library/ms145506.aspx. Voc pode encontrar mais informaes e documentao no site de um dos inventores da linguagem MDX, Mosha Pasumansky: http://www.mosha/.com MSOLAP. Outra excelente fonte a MDX srie Essentials no www.databasejournal.com. Alm desses recursos on-line, voc pode ler mais sobre MDX MDX Solues: Com o Microsoft SQL Server Analysis Services 2005 e Hyperion Essbase, por G. Spofford, S. Harinath, C. Webb, Huang Hai D. e F. Civardi (Wiley, 2006, ISBN: 978-0-471-74808-3). Em certo sentido, MDX o modelo multidimensional que o SQL o modelo relacional. Consultas SQL definir operaes em tabelas do banco de dados para recuperar um conjunto de linhas, enquanto as consultas MDX operar em um cubo e entregar um multidimensional- multidimensional coleo de clulas. 446 Parte IV Inteligncia Aplicaes de Negcio Embora voc no precisa ser um especialista em MDX, que ajuda a saber o noes bsicas antes de comear a construir os cubos de Mondrian. Alm disso, se voc quiser criar solues analticas que excedem o padro de perfurao e de filtros do front-end JPivot, voc precisar modificar o MDX gerado a si mesmo. Mas antes de explorar o poder do MDX, uma boa idia para cobrir algumas de base conceitos OLAP para ajudar voc a entender melhor a sintaxe. Cubos, dimenses e medidas Quando voc primeiro encontro MDX, um dos aspectos mais confusa a terminologia utilizada. Alguns termos podem parecer familiares e referem-se os conceitos utilizados na modelagem dimensional. No entanto, alguns conceitos so totalmente diferentes e parecem inbil no incio. Nesse sentido, e as subsees seguintes, vamos dar uma simplificada verso do modelo de WCM e usar isso para ilustrar todos estes conceitos. O Conceito de Cubo A maioria dos livros sobre OLAP MDX e comear por apresentar uma representao visual de um cubo tridimensional. Por que devemos romper com esta tradio? Ento, vamos apresentar alguns dos principais conceitos com a Figura 15-2, que mostra um simples cubo construdo a partir do armazm de dados WCM. AZ CA IL Cliente NY WA 2009 2008 2007 Time 2006 SciFi Esportes Drama Thriller Produto Figura 15-2: cubo tridimensional O cubo mostrado na Figura 15-2 composto por um tempo, produto e cliente dimenso, cada uma delas colocada num dos lados do cubo. As dimenses so a pedra angular de cubos OLAP: um cubo simplesmente uma coleo de vrios dimenses. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 447 Alm dimenses com os dados de identificao, voc precisa de algo a relatar, tais como vendas ou receitas de aluguel, custo, ou o nmero de aluguis. Estes valores so chamada medidas. Um aspecto importante das medidas que elas no repre- enviou um nico valor. Ao contrrio, eles representam um agregada valor. As medidas acabamos de mencionar so tipicamente agregados por soma. Em MDX, a recolha, o de medidas que fazem um tipo especial de dimenso chamada medida dimenso. Agora, d uma olhada no cubo da Figura 15-2, claro, h mais de um produto, um cliente e um ponto no tempo. Na verdade, cada cliente, produto, eo dia em que o cubo tem uma interseco chamada tupla. Cada tupla, que pode ser uma clula individual ou de uma seco no cubo, pode conter uma ou medidas mais. NOTA Porque nem todo cliente compra todos os produtos disponveis em cada dia, um lote de tuplas no existem fisicamente em um cubo OLAP. Isso chamado esparsidade mas porque os dados so recuperados de um banco de dados relacional, onde apenas os dados existentes so armazenados, esparsidade no representa um problema. Analogia Star Schema H uma analogia entre estes conceitos eo modelo MDX-dimensional conceitos de esquema ing e estrela discutido nos captulos 6 e 7, respectivamente. A termo''''dimenso refere-se ao mesmo conceito, em todos estes domnios. Um MDX cubo anlogo a um esquema de estrela, e as medidas so anlogos aos fatos. Para clareza, Figura 15-3 mostra como um esquema em estrela simples podem ser mapeados para um cubo como o mostrado na Figura 15-2. A correspondncia entre o cubo mostrado na Figura 15-2 ea estrela esquema mostrado na Figura 15-3 apenas uma consequncia prtica da estrela esquema de tcnica de modelagem: embora seja possvel organizar as coisas para que MDX cubos, dimenses e medidas correspondem diretamente a um esquema em estrela, tabelas de dimenso, e uma tabela de fatos, respectivamente, isso no necessrio ou implcita. Mencionamos a analogia porque, na prtica, alguns mapeamento que descreve como um cubo pode ser construdo a partir dos dados no data warehouse sempre existe. No caso dos motores ROLAP, como Mondrian, esse mapeamento realmente muito apertado, como os dados do cubo construdo on-the-fly, consultando a banco de dados. Cubo Visualization No h limite prtico para o nmero de dimenses que podem ser usados para construir um cubo. No entanto, a maioria das ferramentas que so projetadas para apresentar visual representaes de cubos OLAP para os usurios finais podem apresentar apenas duas dimenses. Normalmente, este assume a forma de um tabela cruzada, tambm conhecido como tabela de referncia cruzada ou um tabela dinmica. 448 Parte IV Inteligncia Aplicaes de Negcio AZ CA IL NY WA Scifi Suspense Drama Esporte 2009 2008 2007 2006 Dimenso Cliente Produto Dimenso Aluguer de fatos (MDX: Medidas) Data Dimenso Aluguer de Esquema Estrela (MDX: Cube) Figura 15-3: Um cubo como um esquema em estrela No caso da tabela de referncia cruzada, as duas dimenses da tela so horizontais e eixos verticais da tabela. Dimenses de um cubo multidimensional pode ser combinadas, produzindo dois conjuntos construdos a partir de uma ou mais dimenses. Estes podem ser mapeados para os dois eixos da tabela de referncia cruzada. Figura 15-4 ilustra uma possvel mapeamento do cubo mostrado na Figura 15-2 a uma tabela de referncia cruzada. Na Figura 15-4, o DVD e as dimenses so combinados Data e aparecem como colunas da tabela de referncia cruzada (o eixo horizontal). A dimenso do cliente aparece como linhas na tabela de referncia cruzada (o eixo vertical). Hierarquias, nveis, e membros Para o seu cubo para ser til, voc precisa mais do que apenas valores individuais no intersees dimenso individual. Voc precisa encontrar uma maneira de agregar os dados entre as vrias dimenses. Para este efeito, as dimenses so organizadas em uma ou mais hierarquias. Hierarquias Uma hierarquia uma estrutura de rvore que pode ser usado para recuperar dados de o cubo em diferentes nveis de agregao. A maneira mais fcil e mais usado Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 449 exemplo a dimenso de data com a hierarquia do Ano-de-ms-dia. Para ilustrar o conceito da hierarquia e do MDX terminologia correspondente, Figura 15-5 mostra uma parte ampliada hierarquia Ano-de-ms-dia de um data de dimenso. AZ CA IL NY WA Scifi Suspense Drama Esporte 2009 2008 2007 2006 Scifi 06 AZ CA IL NY WA 07 08 09 06 Esportes 07 08 09 06 Drama 07 08 09 06 Thriller 07 08 09 Figura 15-4: Referncia cruzada a visualizao de um cubo Nveis e deputados A hierarquia consiste nveis, e cada nvel tem uma ou mais membros. Assim, em Figura 15-5, ano, ms, trimestre, e de dia so nveis e os itens nomeados dentro de cada nvel so os membros. Por exemplo, os anos 2008, 2009 e 2010 so os membros ao nvel do ano, e os quartos Q1 atravs Q4 so membros ao nvel Quarter. A ordem dos nveis hierrquicos reflete a organizao: Ano representa um nvel superior de agregao de Bairro, e Ms representa um menor nvel de agregao de Bairro. Uma coisa importante a se notar que os membros dentro de um nvel no sobrepem-se: dentro do nvel do ano, os membros so todos diferentes um do outro. Mas o mesmo verdadeiro para os membros abaixo do nvel do ano: ambos os anos 2009 e 2010 pode ter um membro chamado Q1, a nvel Bairro, mas, apesar com o mesmo nome, estes membros so distintos um do outro. Este garante que a agregao de dados ao longo de um nvel produz um resultado consistente. 450 Parte IV Inteligncia Aplicaes de Negcio Deputados Todas as Datas Nveis Todos Ano 2008 2009 2010 Trimestre Q4 Q1 Q2 Q3 Q4 Q1 Ms Junho Julho Agosto Setembro Outubro Dia 27 28 29 30 31 1 Figura 15-5: Um ano-de-ms-dia hierarquia em uma dimenso de data Usando a sintaxe MDX, um membro pode ser sempre referenciados usando o caminho de membro de pleno direito constitudo da dimenso, nvel e nome do membro, como em [Data]. [Ano]. [2008]. s vezes, os membros podem ser referenciados dentro de um hierarquia sem nomear explicitamente o nvel que o membro pertence, isto , enquanto o nome do membro nico. Assim, no exemplo anterior, [2008] funcionaria to bem se este um nome nico. DICA Uma das primeiras coisas que voc vai perceber quando olhar para instrues MDX o uso extensivo de colchetes. Isso no necessrio, mas se seu nomes dos membros conter espaos ou nmeros, ou se o nome uma palavra reservada MDX, usando o boto [] parnteses obrigatrio. A melhor prtica sempre usar os colchetes. O nvel de todos, todos os Estados e os Estados-padro Hierarquias podem ter uma especial todos os nveis para alm do expressamente definido nveis. O nvel de todas a raiz conceitual da hierarquia. especial porque no explicitamente definido. Em vez do motor OLAP vez deriva-lo. contm exatamente um membro, o todos os membros, que construda atravs da unificao todos os membros pertencentes ao mais alto nvel de agregao definido. Na Figura 15-5, o nvel de todos rotulado como Todos e Todos os membros marcado todas as datas. Hierarquias tambm pode especificar o membro padro, que usado quando os membros no so explicitamente especificado. Isto importante observar que, como voc geralmente no explicitamente todas as dimenses em uma consulta MDX. Normalmente, a todos os membros Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 451 denominao utilizada como membro padro. O efeito disto que as medidas so automaticamente agregadas ao mais alto nvel em todas as dimenses que no so explicitamente usada na consulta MDX. Define-Membros Para recuperar todos os membros de um nvel, basta adicionar o MEMBROS palavra-chave ao nvel, como no [Data]. [Meses]. [Ano]. MEMBROS. Esta expresso avalia a todos os membros do nvel do ano como um membro do conjunto. Voc tambm pode especificar explicitamente um conjunto enumerando os nomes dos membros de uma lista separada por vrgulas em crespos suspensrios. Os colchetes indicam o conjunto, como no {[Ano]. [2007], [ano]. [2008], [Ano]. [2009]}. Vrias hierarquias As dimenses podem conter mltiplas hierarquias, oferecendo mltiplos analtica ou caminhos de navegao dentro de uma dimenso. Normalmente, vrias hierarquias servir negcios diferentes necessidades. Por exemplo, em uma dimenso de data, uma Trimestre- hierarquia ms-dia usado para anlise de vendas, e um adicional de Ano-de-semana, Dia da hierarquia pode ser usado para executar a anlise de ordem de compra semanal. hierarquias mltiplas para a mesma dimenso podem ter alguns nveis comum: neste caso especfico, o nvel do ano tem o mesmo significado em ambas as hierarquias. No entanto, as definies nvel das hierarquias diferem em algum lugar no line-isto , de fato, a ponto de ter vrias hierarquias. Por exemplo, o duas hierarquias data diferem uma da outra para todos os nveis abaixo do nvel do ano. Em MDX voc pode atribuir uma hierarquia especfica a ser parte do di- Sion referncia. Por exemplo, suponha que voc tenha um Data dimenso com duas hierarquias separadas: uma para o ano-de-ms-dia e outra para Ano-Dia-de-semana, chamado Meses e Semanas , respectivamente. Neste caso, a ex- Sion [Date.Months]. [2000]. [1] [1]. refere-se a 1 ms em um trimestre no ano 2000, enquanto que [Date.Weeks]. [2000]. [1] [1]. refere-se ao 1 dia da 1 semana do ano de 2000. Observe como o nome da hierarquia anexado ao nome da dimenso diretamente, usando a notao de ponto dentro dos colchetes. Se voc omitir uma especificao de hierarquia, a hierarquia padro, que o primeiro hierarquia especificada para a dimenso, usado. Relacionamentos Familiares Cube Dentro de cada hierarquia em uma dimenso de cubo a ordem dos membros que constituem- bros predefinido automaticamente com base na sua natural ordem alfabtica, numrica ou ordenao temporal. Os nveis dentro de uma hierarquia no so automaticamente ordenada. Eles precisam ser colocados em uma certa ordem, indo de um resumo a um nvel detalhado. Cada membro de um nvel inferior na hierarquia podem pertencer a 452 Parte IV Inteligncia Aplicaes de Negcio apenas um membro de nvel superior. Como exemplo, pense de produtos: um produto pode apenas fazer parte de um grupo de produtos, mas um grupo de produtos pode conter vrios produtos. Para comear com o fim dos nveis, as relaes entre diferentes nveis chamado de pai-filho relacionamento. Em uma dimenso de data, o nvel do ano o pai do nvel do Bairro, que por sua vez, o nvel criana de ano. Ele fica mais interessante quando voc olha para os membros do nvel. Agora, o ano de 2009 tem quatro filhos, Q1, Q2, Q3 e Q4, e de cada trimestre, por sua vez tem trs filhos, Jan, Fev, Mar e para o Q1, e assim por diante. Cada membro tambm pode ter irmos e primos. Os irmos so membros relacionados no mesmo nvel, mas com o outro progenitor, eles s podem ser abordadas, apontando para o primeiro ou o ltimo irmo ou por recuperar todos os irmos. A posio de um primo no nvel correspondente para o membro de referncia. Suponha que voc quer olhar para o primo Q1 2009 em 2008, o membro resultante ser 1 trimestre de 2008. A semelhana entre filhos e irmos, por um lado, e primos, por outro, que as crianas e os irmos s podem ser tratadas como um grupo ou especificando explicitamente o membros do primeiro ou ltimo, mas primos precisam ser abordadas, especificando o pai. Muitas mais maneiras de referenciar clulas relacionadas esto disponveis, voc pode, por exemplo, usar a palavra-chave descendentes para recuperar um conjunto de membros que desce do membro de partida. Isto tambm vai exigir que voc adicione o distncia para o membro pai, ento a funo do MDX Descendentes ([2008], 2) recupera todos os meses de 2008, caso a hierarquia o Ano-de-ms. Neste caso, o nvel do ms a dois passos a partir do nvel do ano. Relativo relaes de tempo Quando voc est trabalhando com uma dimenso de tempo, funes especiais relativos so disponveis, que so baseadas em relaes familiares entre os membros anteriores dentro de uma hierarquia. Na maioria das solues de BI, os utilizadores esto interessados em comparar um perodo com o mesmo perodo no ano anterior. Embora voc possa usar o primo funo para chegar a este perodo de comparao, o ParallelPeriod funo mais adequada para isso. A funo recebe trs argumentos: a hierarquia nmero do nvel dos perodos de volta, e membro da dimenso do tempo. Por exemplo, Se voc est interessado no perodo de outubro de 2009 em paralelo nos ltimos ano, voc usaria ParallelPeriod ([Ano], 1 [Data]. [Ms]. [200910]), que retornaria [200810]. Year-to-date tambm uma caracterstica essencial das solues de BI, e os Acumulado do ano funo fornece essa informao. De cada perodo de um ano, se voc est lidando com os trimestres ou meses, voc pode recuperar o Acumulado do ano membros muito facilmente. Quando usar Acumulado do ano ([Time]. [Ms]. [200903]), Os membros [200901],[200902], e [200903] so retornados como um conjunto. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 453 A sintaxe MDX Query primeira vista, pode parecer familiar MDX se voc j conhece o SQL linguagem. As aparncias enganam, no entanto, existem algumas semelhanas, mas o diferenas so ainda maiores. Basic Consulta MDX Assim como voc conseguir dados de seu cubo em uma resultado MDX? Vamos comear com o mais simples de consultas simples MDX: SELECT DA wcm_sales O resultado da consulta dessa consulta o total do cubo da medida padro da wcm_orders cubo. Claro, isso no muito til e s bom para testar se funciona sua conexo, mas este exemplo ilustra-se trar alguns conceitos-chave do MDX, ento vamos dar uma olhada neste simples declarao. O cubo a partir do qual os dados a serem recuperados especificado no MDX DA clusula. Como tal, algo anlogo ao SQL DA clusula, que especifica uma tabela ou intermedirio juntar o resultado que fornece os dados para o resto da a consulta. A SELECT palavra-chave especificada, mas porque ele no seguido por um lista de expresses, a medida padro usado. Neste caso, a medida padro Receita. Porque as medidas so agregadas, essa consulta retorna a soma de todos receitas do cubo chamado wcm_orders. Eixos: em linhas e ON COLUNAS MDX pode representar informaes sobre vrios eixos. Geralmente, esses so os ROWS e COLUNAS eixos. Outros eixos padro PGINAS,SEESE CAPTULOS, mas a maioria das ferramentas de visualizao OLAP (incluindo JPivot) no pode trabalhar com eixos alm das duas primeiras, muito menos a 128 eixos possvel o padro MDX permite. Na maioria dos casos, voc vai trabalhar com apenas dois conjuntos de membros de cada vez, uma exibido no eixo de colunas e um no eixo linhas. A expresso MDX portanto, usa a seguinte sintaxe genrica: SELECT <member collection> em colunas, <member collection> ON ROWS DA <cubename> 454 Parte IV Inteligncia Aplicaes de Negcio Na verdade, as palavras-chave ROWS e COLUNAS so sinnimos para o padro numeradas notao, COLUNAS a abreviatura para AXIS (0)E ROWS representa EIXO (1). Voc pode at omitir a palavra-chave AXIS e simplesmente usar 0 e 1. Assim, no exemplo anterior tambm pode ser escrita como: SELECT <member collection> ON AXIS (0), <member collection> EM 1 DA <cubename> Embora a ordem real das especificaes eixo irrelevante, deve especificar uma srie sem intervalos consecutivos de eixos, a comear AXIS (0) (O COLUNAS eixo). Por isso, possvel especificar apenas o primeiro EM COLUNAS linha, mas voc no pode ignor-lo e s usar ON ROWS. Embora voc poderia inverter a ordem dos e ON ROWS linhas, seria confuso, por isso que no recomendamos o uso dessa ordenao. Para obter uma tela vertical de linhas somente com uma nica medida, use o seguinte consulta: SELECT [Measures]. [Receita] em colunas, <member collection> ON ROWS DA <cubename> Olhando para uma parte dos dados Voc pode se perguntar se uma consulta MDX tambm pode conter um ONDE clusula, e na verdade ele pode. o chamado fatiador porque restringe os dados que pode ser acessado atravs do cubo para um subconjunto especfico (a fatia). Embora o ONDE palavra-chave o mesmo que no SQL regular, o comportamento bastante diferente, como o nome''''slicer implica. A consulta MDX a seguir os limites da anlise a o ano de 2008, usando um cortador de: SELECT [Measures]. [Receita] em colunas, <member collection> ON ROWS DA <cubename> WHERE [Data]. [Ano]. [2008] Assim, em vez de especificar uma condio, como se estivesse em SQL, a MDX ONDE clusula exige que voc especifique a parcela dos dados que voc gostaria para incluir em termos de uma especificao membro da dimenso. Voc pode especificar uma lista separada por vrgulas de nomes de membros desde que voc coloque a lista parnteses. Assim, a consulta MDX seguintes limites o resultado para o ano de 2008 e os clientes do Canad: SELECT [Measures]. [Receita] ON COLUNAS DA <cubename> WHERE ([Data]. [Ano]. [2007], [cliente]. [No pas]. [CA]) Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 455 Dimenso em apenas um eixo E agora a m notcia: voc no pode usar a mesma dimenso em mais de um eixo. Por exemplo, se voc usar a dimenso de data j ON ROWS ou ON COLUNAS, No pode ser usado no fatiador. A consulta a seguir, portanto, no: SELECT [Measures]. [Receita] em colunas, [Data]. [Bairro]. Deputados ON ROWS DA <cubename> ONDE [Data]. [Ano]. [2008] A maioria das pessoas usadas para SQL achar isto difcil de entender, mas simplesmente uma dos meandros MDX que voc vai ter que se acostumar. Se voc s quer olhar trimestres em 2008, voc pode fazer isso usando o CRIANAS palavra-chave o membro 2008 do nvel do ano: SELECT [Measures]. [Receita] em colunas, [Data]. [2008]. Crianas ON ROWS DA <cubename> MDX permite a utilizao de mltiplas dimenses em um eixo, mas lembre-se que uma dimenso particular pode aparecer em apenas um dos eixos (ou o slicer). Mais exemplos MDX: um simples cubo Para o restante da explicao MDX e exemplos, melhor ter um modelo especfico. Nos pargrafos seguintes, vamos construir o wcm_orders cubo, que tem a estrutura conforme listado na Tabela 15-1. Voc vai aprender como criar um cubo Mondrian para este modelo mais tarde, mas por agora us-lo para continuar explorando MDX. A funo FILTER A FILTRO funo permite-lhe limitar a escolha dos membros do cubo. Voc pode usar o ONDE clusula apenas a uma parte da fatia do cubo, mas o que se quiser para limitar os resultados de ttulos de DVD que tm receita acima de R $ 10.000 em 2008, ou consulte apenas os ttulos dos filmes que mostraram um aumento de 10 por cento na receita em relao ao ms anterior? Estes so apenas dois exemplos onde a FILTRO funo pode ser til. FILTRO uma funo MDX que usa dois argumentos: um conjunto e um pesquisa condio. O primeiro exemplo traduz a declarao MDX a seguir: SELECT [no pas]. Membros em colunas, FILTRO ( [Ttulo]. Associados, [Receita]> 10000 ) ON ROWS [Wcm_orders] FROM WHERE [ano]. [2008] 456 Parte IV Inteligncia Aplicaes de Negcio A instruo anterior inclui um filtro e um fatiador. Este ltimo assume precedncia sobre os outros elementos, o que significa que o filtro eo conjunto de resultados so limitadas a 2008 a fatia do cubo. Tabela 15-1: WCM_orders_cube DIMENSO Data da Ordem local HIERARQUIA Meses NVEL Ano Trimestre Ms Data Ano Semana Data Pas Regio Cidade CEP Nome Gnero Ttulo Receita Quantidade RentalDuration Data da Ordem local Semanas Cliente DVD Medidas A funo ORDEM Se voc executar a consulta do exemplo anterior, os resultados mantm a sua natural ordem, que est em ordem alfabtica dentro da hierarquia. Isso significa que o filme ttulos so ordenados alfabeticamente, mas o gnero que sempre precede a ordenao. (Mais tarde neste captulo, quando explicamos como construir o cubo, voc aprender como para controlar a ordem de membro de dimenso na definio do cubo). Em muitos casos, voc quer resultados ordem baseada em uma medida, por exemplo, talvez voc queira ordenar os resultados em faturamento, de alto a baixo. Voc usa o ORDEM funo para realizar exatamente isso. A ORDEM funo recebe trs parmetros: o conjunto de ser ordenada, a expresso a fim de, eo tipo ordem, o que pode levar de quatro valores possveis: ASC,DESC,BASCE BDESC. A Bnos ltimos dois valores foras para romper as hierarquias para permitir uma total ordem de classificao, por isso, se voc quer os resultados do exemplo anterior classificada em ordem decrescente, use a seguinte consulta: SELECT [no pas]. Membros em colunas, DESPACHO ( FILTRO ([ttulo]. Associados, [Receita]> 10000), [Receita] Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 457 DA ONDE BDESC )ON ROWS [Wcm_orders] [Ano]. [2008] Agora, os resultados sero classificados com os filmes mais vendidos no topo da da lista. Usando TopCount e BOTTOMCOUNT No h outro caminho para chegar aos melhores filmes (ou pior) que vendem, e que por usando o TopCount e BOTTOMCOUNT funes. Essas funes so realmente um abreviao para o uso do CABEA e CAUDA funes que podem ser usados para limitar um resultado conjunto ordenado como o do exemplo anterior, mas fazer a consulta de um muito mais simples de escrever. A TopCount e BOTTOMCOUNT funes usam trs argumentos: um conjunto, o nmero de membros a serem exibidos, e medida de ordem no. Aqui a consulta que recupera os 10 melhores filmes de 2008: SELECT [no pas]. Membros em colunas, TopCount ( [Ttulo]. Deputados , 10 [Receita] ) ON ROWS [Wcm_orders] FROM WHERE [ano]. [2008] Combinando Dimenses: A funo Crossjoin MDX no se limita exibio de uma dimenso para cada eixo, mas para colocar multi- plo dimenses em um nico eixo, voc deve usar o funo. Este funo semelhante CROSS JOIN tipo de associao no SQL simples e cria uma combi- nao de todos os valores a partir de duas dimenses. Por exemplo, usando Crossjoin, Voc pode colocar os dois [Cliente]. [Pas] e [DVD]. [Gnero] no mesmo eixo, e uso [Data Local Ordem]. [Ano] e [Measures]. [Quantidade] sobre os outros: SELECT Crossjoin ( {[Data Local Ordem]. [Ano].} Deputados {[Measures]. [Quantidade]} ) Em colunas, Crossjoin ( {[Cliente]. [No pas].} Deputados {[DVD]. [Gnero].} Deputados ) ON ROWS [Wcm_orders] FROM Usando no vazia Um comumente usado na construo de queries MDX No vazio. Ele fora a consulta para retornar apenas os resultados que contm um valor. Porque altamente improvvel que todos os 458 Parte IV Inteligncia Aplicaes de Negcio cliente compra todos os produtos em cada dia do ano, o MDX mdia consulta retorna uma grande quantidade de resultados vazio que voc comear a perfurar abaixo em detalhes. A No vazio frase pode ser colocada na frente do conjunto em qualquer consulta dimenses. Quando um Crossjoin usado, o No vazio palavra-chave colocada em frente, como no exemplo a seguir: SELECT No vazio Crossjoin ({[Data Local Ordem]. [Ano].} Membros, {[Measures]. [Quantidade]}) EM COLUNAS Na verdade, este o comportamento padro do JPivot na plataforma Web Pentaho. A barra de ferramentas JPivot contm um boto rotulado Suprimir linhas vazias / Colunas que faz com que as consultas MDX gerado para incluir No vazio. Por padro, esse recurso ativado. Trabalhando com conjuntos e a clusula WITH No incio deste captulo, fazemos uma breve usou o termo conjuntos e as chavetas necessrio especific-los. Um conjunto uma coleo de membros de uma dimenso e geralmente definida implicitamente. Por exemplo, quando voc usa [Ano]. MEMBROS em um dos eixos, voc est usando um conjunto, porque a MEMBROS operador retorna um conjunto. De fato, muitas das funes MDX que voc viu at agora retornar conjuntos: CRIANAS, IRMOS,DESCENDENTESE Acumulado do ano todos se comportam assim. O problema com essas funes que elas sempre voltam a completa coleo de membros dentro de um nvel. s vezes, isso no conveniente para fazer uma anlise especfica por parte apenas de uma dimenso. Usando o COM clusula, voc pode criar seus prprios jogos para uso em consultas MDX. Suponha que voc queira combinar alguns gneros de filme em uma CoolMovies conjunto que contm apenas alguns dos os gneros no banco de dados. CoolMovies no uma entidade reconhecida no seu modelo, mas voc pode cri-la de qualquer jeito usando a seguinte sintaxe: COM SET [o conjunto de nome] como '{definio}' Traduzido em um exemplo CoolMovies, este se tornaria COM SET [CoolMovies] AS '{[DVD]. [All DVD]. [Ao / Aventura], [vdeo]. [All DVD]. [Fantasia] [DVD]. [Todos DVD]. [SciFi], [vdeo]. [Todos DVD]. [Suspense / Thriller] [DVD]. [Todos DVD]. [Suspense]} ' SELECT no vazio {[CoolMovies]} em colunas, NO Crossjoin EMPTY ([Data Local Ordem]. [Todos Ordem Local Datas] [Cliente]. [Todos os Clientes]) ON ROWS [Wcm_orders] FROM WHERE [Measures]. [Quantidade] Como voc pode ver no exemplo anterior, voc precisa usar chaves em torno de seu conjunto nomeado quando voc us-lo no SELECT declarao, sob pena de Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 459 no reconhecido como um conjunto e um erro gerado. Observe tambm que foram includos a definio de membro de pleno direito nos conjuntos. Nesse caso, esse no teria sido necessrio porque o membro [Suspense] e os outros gneros so nicos em nosso cubo, de modo {[Ao / Aventura] [Fantasia], [fico cientfica], Suspense [/ Suspense], [] Thriller} funciona to bem. Usando membros calculados A ltima parte deste primer MDX abrange a criao de membros calculados. A cal- membro calculada um membro de dimenso cujo valor calculado em tempo de execuo usando uma expresso especificada e pode ser definida como membros de dimenso regular- ses ou como membros da dimenso de medidas. Mondrian permite que voc adicionar membros calculados diretamente no esquema, mas esse recurso usa stan- Dard sintaxe MDX calculado tambm. Somente definies so armazenadas porque o valor da expresso determinada em tempo de execuo. Como conseqncia, calculado membros no ocupam espao em um cubo, mas que exigem poder de computao extra. Um exemplo muito simples de um membro calculado uma pequena variao no CoolMovies conjunto nomeado que voc j viu antes: COM MEMBROS [Measures]. [CoolMoviesRevenue] AS '[Ao / Aventura] + [Fantasia] + [SciFi] + [Suspense / Thriller] + [Suspense] " SELECT vazio {[Measures] NO. [CoolMoviesRevenue] [Measures]. [Receita]} em colunas, NON EMPTY {[no pas].} Deputados ON ROWS [Wcm_orders] FROM WHERE [ano]. [2008] Voc tambm pode usar os membros calculados para os totais dos membros do grupo, por exemplo para criar uma coleo recente e histrica de anos: COM MEMBROS AS MEMBROS AS SELECT [Ordem Local Data]. [Todas as datas]. [Histrico] "SUM ([Ano] [2000]:. [Ano] [2005]). ' [Ordem Local Data]. [Todas as datas]. [Recentes] "SUM ([Ano] [2006]:. [Ano] [2010]). ' NON EMPTY {[Ordem Local Data]. [Todas as datas]. [Histrico] [Ordem Local Data]. [Todas as datas]. [Recentes]} em colunas, NON EMPTY {[no pas].} Deputados ON ROWS [Wcm_orders] DA Apesar de existirem inmeros outros possveis usos e exemplos de clculo membros, isso lhe d uma idia de como voc pode us-los para ampliar o o contedo disponvel de um cubo. Para mais informaes sobre Mondrian especficas MDX, consulte a documentao on-line em http://mondrian.pentaho.org/ documentao / mdx.php. E porque MDX foi originalmente desenvolvido pela 460 Parte IV Inteligncia Aplicaes de Negcio Microsoft, um nmero enorme de referncias on-line e os livros esto disponveis neste assunto, embora muito poucos livros so dedicados a MDX sozinho. ATENO Desde a sua criao e adoo por muitos fornecedores OLAP, Microsoft acrescentou vrias extenses especificao MDX. Algumas funes e exemplos pode no funcionar com Mondrian. Quando em dvida, verifique a linha Mondrian MDX referncia em http://mondrian.pentaho.org/documentation/schema.php. Criando esquemas Mondrian Ns j discutimos o esquema e como se relaciona com os diferentes componentes da Pentaho Analysis Services quando discutimos Figura 15-1. Nesta seo, vamos mostrar como criar esquemas de Mondrian. Embora esta seo fornece informaes detalhadas sobre a criao de Mon- esquemas drian, no podemos cobrir todos os ngulos possveis. Para uma completa ref- cia, voc deve consultar a documentao oficial. Voc pode encontr-lo em http://mondrian.pentaho.org/documentation/schema.php. Comeando com Pentaho esquema Workbench Ns mencionamos que os esquemas de Mondrian so definidos como documentos XML e que Pentaho esquema Workbench (PSW) oferece uma interface grfica do usurio para editar esses esquemas. Tambm mencionou que possvel editar os esquemas manualmente utilizando um editor XML, IDE, ou at mesmo um editor de texto simples. Ambas as abordagens so igualmente vlidas e teis no seu prprio caminho. Para essa razo, ns pagamos a ateno para PSW, bem como para o formato XML usado para denotam esquemas Mondrian. Baixando Mondrian Mondrian mantido em seu prprio projeto de www.sourceforge.net. Voc pode encontr-lo no site SourceForge simplesmente procurando por Mondrian. A site do projeto Mondrian fornece os binrios e cdigo-fonte do Mondrian motor em si, bem como Pentaho esquema Workbench eo agregado Pentaho Designer. Por enquanto, voc precisa baixar somente Pentaho Schema Workbench. Mais tarde, voc tambm vai ter um olhar para o designer de agregao, ento voc pode bem baixe-o agora, tambm. NOTA Voc no precisa fazer o download do software do motor Mondrian em si: esta j includos no Pentaho BI Server. Voc precisa baixar o motor em si s se voc quiser atualizar o mecanismo de Mondrian ou implantar Mondrian separadamente sem Servidor Pentaho. No entanto, estes casos de uso esto fora do escopo deste livro, e no so discutidos aqui. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 461 Esquema de Instalao do Pentaho Workbench Pentaho Schema Workbench distribudo como Zip. e . Tar.gz arquivos. Os usurios do Windows devem baixar a Zip. arquivo, e usurios de baseados em UNIX sistema deve comear a . Tar.gz arquivo. Aps o download, voc precisar descompact o arquivo. Isso produz um nico diretrio chamado esquema da bancada contendo todos os o software. Ns nos referimos a este diretrio como o diretrio home PSW ou simplesmente PSW casa. Voc deve mover o diretrio para algum lugar que faa sentido para seu sistema. Por exemplo, usurios do Windows pode mov-la para C: \ Arquivos de Programas e usurios do Linux pode mov-la para / Opt / ou o diretrio home do usurio atual. Depois de desempacotar PSW, voc precisa colocar qualquer driver JDBC Jar. arquivos que voc pode ter de ligar para o data warehouse no motoristas diretrio. Este diretrio podem ser encontrados imediatamente abaixo do diretrio home PSW. A partir do esquema Pentaho Workbench Pentaho Schema Workbench iniciado com um shell script. Shell scripts para di- diferentes plataformas esto localizadas diretamente no diretrio home PSW. No Windows sistemas, voc precisa dar um duplo clique no workbench.bat arquivo para iniciar PSW. Em um sistema baseado em UNIX, voc precisa iniciar o workbench.sh script. Voc pode precisar para fazer o workbench.sh script executvel em primeiro lugar. Se voc estiver executando uma grfica desktop como o GNOME, voc pode fazer isso simplesmente clicando com o script e escolha Propriedades. De l voc pode tornar o arquivo executvel. Alterna- mente, voc pode torn-lo executvel a partir do terminal, usando o chmod comando: chmod ug + x workbench.sh Depois de iniciar o script, voc ver a janela do aplicativo PSW (ver Figura 15-6). Figura 15-6: O Pentaho esquema janela do aplicativo Workbench 462 Parte IV Inteligncia Aplicaes de Negcio Estabelecendo uma conexo Depois de iniciar PSW, voc deve estabelecer uma conexo com o banco de dados. Voc pode abrir a janela de conexo com o banco atravs do menu principal Preferncias. Alternativamente, voc pode pressionar as ferramentas Preferenceschoosing boto da barra, que est localizado na extremidade direita da barra de ferramentas do aplicativo. Uma janela aparecer onde voc pode preencher os parmetros de conexo JDBC. O menu de contexto e de dilogo so mostrados na Figura 15-6. Voc precisa preencher as seguintes propriedades na caixa de dilogo: nome do driver de classe presente o nome da classe Java do driver JDBC que voc ser utilizado. Para o MySQL, este com.mysql.jdbc.Driver. URL de Conexo-Este o seqdeconexao usado para manter contato com o banco de dados servidor. Supondo que voc deseja se conectar ao wcm_dwh banco de dados em um local MySQL instncia em execuo na porta padro 3306, A URL jdbc: mysql: / / Localhost: 3306/wcm_dwh. Nome de usurio e senha A credenciais do usurio do banco de dados que conecta ao banco de dados. Aps o preenchimento do dilogo, voc pode clicar no boto Aceitar para estabelecer a conexo. Se uma caixa de mensagem aparece informando que o banco de dados conexo no pde ser estabelecida, voc deve verificar os parmetros que voc sup- dobraram. No entanto, mesmo se voc especificou os parmetros corretos, voc ainda pode receber uma mensagem informando que a classe driver no pode ser encontrada (ver Figura 15-7). Figura 15-7: A mensagem de erro indicando o driver JDBC no foi carregado Neste caso, voc deve ter certeza que voc colocou o Jar. arquivo contendo o driver JDBC que voc precisa no motoristas sob o diretrio home PSW diretrio (como mencionado anteriormente, na subseo de instalao). Voc precisa PSW reiniciar para pegar qualquer novo Jar. arquivos que voc colocou no motoristas diretrio. NOTA Se voc no conseguir estabelecer uma conexo com o banco, voc ainda pode usar o PSW para definir um esquema. No entanto, o processo ser um pouco mais difcil porque os recursos tais como caixas de lista suspensa para escolher as tabelas e colunas no vai funcionar. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 463 JDBC Explorer Depois de estabelecer a conexo, voc pode abrir uma janela do Explorer para JDBC ver o contedo do banco de dados. Voc pode abrir o Explorer, escolhendo JDBC File Explorer New JDBC. Isso mostrado na Figura 15-8. Figura 15-8: Abrindo o Explorer JDBC O Explorer JDBC consiste de uma rvore que exibe as tabelas que voc pode acesso a partir da conexo atual como pastas. Voc pode expandir as pastas para veja o que as colunas da tabela contm. O Explorer no oferece nenhuma funcionalidade JDBC alm disso. No entanto, como voc ver mais adiante, este apenas o suficiente para torn-lo um pouco mais fcil para construir seus cubos. Usando o editor de esquema Os esquemas so criados e editados usando o editor do esquema. Nesta subseo, vamos destacar brevemente algumas das caractersticas do editor do esquema. Criando um novo esquema Use o menu Arquivo e escolha Novo esquema para abrir o editor do esquema. O editor do esquema tem uma rvore no lado esquerdo, mostrando o contedo da esquema. Inicialmente, isso ser praticamente vazia, exceto para o n do esquema, que a raiz de todo o esquema. No lado direito, o editor de esquema tem um espao de trabalho onde voc pode editar elementos no esquema. O editor do esquema mostrado na Figura 15-9. 464 Parte IV Inteligncia Aplicaes de Negcio Figura 15-9: O editor do esquema No topo do editor do esquema uma barra de ferramentas contm diversos botes. A maioria dos destes botes esto l para que voc possa adicionar novos itens para o esquema. Todas essas botes residem no lado esquerdo da barra de ferramentas, e voc vai reconhec-los por no sinal de mais (+) sinal no cone de boto. No lado esquerdo da barra de ferramentas so algumas botes de Recortar, Copiar, Colar e Apagar. Voc estar usando um destes botes muito no restante desta seo, mas se voc quiser saber mais agora sobre esses botes, basta passar o ponteiro do mouse sobre os botes para ler as dica. Alm dos botes da barra de ferramentas, voc pode usar o menu de contexto do exibio de rvore para realizar as mesmas tarefas. Simplesmente o boto direito do mouse em qualquer n da rvore vista. O menu de contexto ir aparecer e lhe oferecer todas as aes disponveis para esse n particular. Salvando o esquema em disco Depois de criar um esquema, uma boa idia para salv-lo. Basta clicar no cone do disquete na barra de ferramentas da janela do aplicativo e voc ser solicitado a especificar um local. Por agora, basta escolher o nome eo local que voc encontrar conveniente, por exemplo, Schema1.xml. Seu desktop uma escolha razovel enquanto voc est trabalhando com este captulo. Durante o restante deste captulo, no vamos mencionar que voc deve salvar o seu trabalho o tempo todo. Em vez disso, voc deve decidir por si mesmo quando e se voc deve salvar seu trabalho. Ao desenvolver um esquema, uma boa Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 465 idia de usar um sistema de controle de verso como o SVN para controlar as mudanas ou reverter para uma verso anterior caso voc precise. Edio de objeto Atributos Para editar um esquema especial de itens, tais como o esquema em si, um nico clique no item na exibio de rvore para selecion-lo. Os itens selecionados esto destacadas em azul. Aviso que este o caso do esquema mostrado na Figura 15-9. A rea de trabalho automaticamente mostra os atributos disponveis para os selecionados item em uma grade de atributos. A grade de atributos tem duas colunas: a primeira coluna Atributo rotulado e lista os nomes de atributos, a segunda coluna rotulado Valor e contm o valor do atributo. A grade de atributos tambm visvel na Figura 15-9. Para saber mais sobre um determinado atributo, passe o ponteiro do mouse sobre o nome do atributo. Uma dica aparecer, exibindo um texto que descreve o finalidade do atributo, bem como o valor padro para o atributo. Para editar um valor de atributo, coloque o cursor na coluna valor da atributos da rede e digite o valor desejado. Por exemplo, na Figura 15-9 ns entrou World Class Filmes como o nome desse esquema. Alterar Edit Mode O esquema representado como um documento XML. Se voc gosta, voc pode alternar para inspecionar a representao XML do esquema, a qualquer momento, alternando o modo de edio. Voc pode fazer isso clicando no boto no lado direito da barra de ferramentas (ver Figura 15-10). Figura 15-10: Usando o modo de edio para ler a representao XML do esquema 466 Parte IV Inteligncia Aplicaes de Negcio O XML exibida na rea de trabalho corresponde exatamente com o selecionado item na exibio de rvore, que neste caso o prprio esquema. Como voc pode ver, em seu estado atual a representao XML do esquema consiste somente nos abertura e fechamento de tags <Schema> elemento. NOTA Cuidado que a viso XML-que apenas uma viso. Voc no pode editar o XML diretamente de dentro do PSW. Criao e edio de um esquema bsico Nesta subseo, vamos criar um esquema que contm o cubo como costumvamos nos exemplos da sintaxe de consulta MDX. Antes de comear, voc pode querer Nmeros de reviso 15-2 e 15-3, bem como a Tabela 15-1. Como dissemos em nosso discusso da Figura 15-3, h uma analogia entre cubos e esquemas em estrela, e para esse efeito vamos basear nosso cubo no esquema Ordens da estrela, que foi desenvolvido no captulo 8 e mostrado na Figura 8-6. Esquema Bsico tarefas de edio No restante desta seo, descrevemos todas as tarefas comuns de edio de esquema em detalhe. Antes de fazer isso, bom ter uma viso geral das diferentes tarefas e subtarefas envolvidas, como fcil perder de vista o quadro maior. As tarefas podem ser resumidas como segue: Criando um esquema Criando cubos Escolhendo uma tabela de fatos Adicionando medidas Criando (compartilhado) dimenses Editando a hierarquia padro e escolha uma tabela de dimenso Definio de nveis de hierarquia Opcionalmente, a adio de mais dimenses Associando dimenses com cubos Criando um Cubo Voc pode adicionar um cubo, clicando no boto Adicionar Cubo, que o primeiro boto na barra de ferramentas. O novo cubo se torna visvel na exibio em rvore sob a esquema como um novo n com um cone de cubo. Aps adicionar o cubo, voc pode editar suas propriedades (ver Figura 15-11). Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 467 Figura 15-11: Criando um cubo cubos Mondrian pode ter os seguintes atributos: nome -Especifica o nome que ser usado em consultas MDX para se referir a este cubo. Esse nome deve ser exclusivo dentro do esquema. Para o nosso exemplo cubo, que deve especificar wcm_orders aqui. legenda Especifica um nome de exibio, que ser utilizado pelo usurio interface para apresentar o cubo para o usurio final. Neste caso foi utilizado Mundial Filmes Vendas classe. cache Controla se os dados da tabela de fatos devem ser armazenados em cache. habilitado Controles de Mondrian se deve carregar ou ignorar o cubo. H um outro atributo que no actualmente suportado por PSW: DefaultMeasure -Opcionalmente, voc pode especificar o nome de um dos do cubo medidas aqui fazer explicitamente que a medida padro. Voc pode encontrar mais informaes sobre as medidas nas prximas duas subsees. Note que, quando adicionado o wcm_orders cubo, um pouco vermelho X cone apareceu esquerda do esquema e os cones do cubo. O cone de X vermelho indica que h algum erro ou errada em algum lugar ou abaixo desse particular n. Quando um problema detectado por PSW, que borbulha'',''causar qualquer acima de ns que o n para exibir o cone de X vermelho tambm. Isso permite que voc ver se algo est errado imediatamente. Se um cone de X vermelho exibido, algo est errado. Sempre que voc v esses indicadores X, voc deve procurar uma mensagem a vermelho na parte inferior do espao de trabalho. Esta mensagem fornece uma descrio textual do problema e, geralmente, lhe d uma boa idia sobre que parte do esquema que voc deve olhar para corrigir o problema. Uma mensagem diferente aparece dependendo de qual n selecionado na exibio em rvore, ento se voc quiser ver o razo pela qual um determinado n tem um cone de X vermelho, selecion-lo primeiro. 468 Parte IV Inteligncia Aplicaes de Negcio Escolher uma Mesa de Fato No caso da Figura 15-11, voc pode dizer que deve haver algo de errado com o cubo, ou algum n abaixo dele. A mensagem de erro indica um desconfigurao da tabela de fatos a fonte do problema. O n do cubo inicialmente recolhido, e se expandi-lo, voc vai notar que ele contm uma n tabela. Este n da tabela representa a tabela de fatos em que o cubo construdo. Neste caso, seu cubo deve ser baseada na fact_orders mesa, por isso que voc definir o nome da tabela usando a caixa de lista suspensa (ver Figura 15-12). Figura 15-12: Escolhendo a tabela de fatos Note-se que os pequenos cones X desaparecem aps voc digitar o nome de uma j existente tabela. Neste caso, o elemento da tabela foi errada, e optando por um tabela de fatos existentes, voc resolve esse problema. Isto imediatamente faz com que o cubo e esquema de ns, acima da tabela n a ser fixo tambm. O nome da tabela tudo que voc precisa para configurar para o quadro do cubo elemento. No entanto, incluir uma descrio dos seus atributos para ser completo: esquema -O identificador do esquema do banco de dados que contm o fato tabela. Quando no especificado explicitamente, o esquema padro do banco de dados conexo usada. nome -O nome da tabela de fatos. Quando conectado a um banco de dados, o editor de propriedade fornece uma caixa de listagem drop-down como o mostrado na Figura 15-11, que permite a voc escolher qualquer um dos quadros do padro esquema. Observe que esse nome o identificador do SQL-ao contrrio do nome do o cubo, esta propriedade de nome no tem qualquer influncia sobre qualquer MDX consultas. alias -Este o apelido da tabela que ser usada para essa tabela quando gerar instrues SQL. Pode ser til para especificar isso no caso de voc deseja depurar as instrues SQL geradas por Mondrian. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 469 Adicionando Medidas Agora que voc configurou um quadro de verdade, voc pode adicionar algumas medidas. Para adicionar medidas, primeiro selecione o cubo (ou de sua tabela de verdade) na exibio em rvore. Em seguida, clique no Medida boto Adicionar da barra de ferramentas. A partir da esquerda, este o primeiro boto com o cone de rgua e no sinal de mais. Alternativamente, voc pode boto direito do mouse o cubo e escolha a opo Adicionar Medida a partir do menu de contexto (ver Figura 15-13). Figura 15-13: Adicionando as medidas da tabela de fatos do cubo Por enquanto vamos ficar perto do desenho da tabela de fatos e adicione o Receitas, Quantidade e Durao medidas de arrendamento. Estes correspondem diretamente ao quantidade,receitasE rental_duration colunas na fact_orders tabela. A ordem em que voc especificar as medidas significativa: implicitamente, o primeira medida no cubo considerado a medida padro. Se voc gosta, voc pode substituir esse especificando explicitamente o nome da medida padro na DefaultMeasure atributo do cubo. Atualmente, esse atributo no suportado por PSW, e voc ter que editar manualmente o esquema XML e modificar o tag cubo de abertura para incluir uma DefaultMeasure atributo da seguinte forma: <Cube DefaultMeasure="Quantity" ...> ... </ Cube> As medidas se podem ter os seguintes atributos: nome -O identificador que ser usado para se referir a esta medida em MDX consultas. Este deve ser exclusivo dentro do cubo. agregador -O nome da funo que usada para agregar os medida. A grade atributo oferece uma caixa de listagem drop-down de onde voc pode escolher um dos soma,contagem,min,max,avgE distinta da contagem. Para o Receita medidas e quantidade, voc deve escolher o soma agregador. Para medir a durao do arrendamento, o avg agregador a mais til escolha. 470 Parte IV Inteligncia Aplicaes de Negcio coluna -O nome de uma coluna da tabela do cubo fato. Ao con- conectado ao banco de dados, o editor de atributos oferece uma caixa de listagem drop- down a partir do qual voc pode escolher a coluna. formatString -Aqui voc pode especificar o nome do formato predefinido Moeda ou um padro de seqncia de caracteres que especifica como o valor da medida ser formatada para exibio. seqncias de formato so discutidos em mais detalhes posteriormente nesta seo. visvel -Um sinalizador que especifica se a medida exibida para o usurio final na interface do usurio. datatype -Aqui voc pode usar uma caixa de listagem drop-down para escolher String, Numricos,Inteiro,Boolean,Data,TimeOu Timestamp. Ao retornar dados, o tipo de dados especificado ser usado para retornar dados do resultado da MDX. formatador -Voc pode usar esse atributo para especificar um personalizado para- matria. formatadores de clula personalizado deve implementar a interface Java mondrian.olap.CellFormatter. legenda -Especifica o nome de exibio que usado para apresentar esta medida na interface do usurio. Se voc deixar este campo em branco, o nome da medida apresentado em seu lugar. Adicionando dimenses Os esquemas de Mondrian pode conter dimenses em dois locais: Dentro do cubo que possui''''a dimenso-Estes dimenses so chamada dimenso privada, porque eles so conhecidos apenas para o cubo que ela contm e no pode ser usado fora do cubo envolvente. Dentro do prprio esquema-Estes so dimenses compartilhadas e pode ser vezes associado com vrios cubos, e / ou mltiplos com a mesma cubo. dimenses compartilhados so excelentes para a execuo do role-playing dimenses. Geralmente, recomendamos que voc use sempre dimenses compartilhadas ao invs de dimenses particulares. Embora o processo de criao privada e compartilhada dimenses semelhante, a capacidade de reutilizao compartilhada dimenses fornece uma benefcio considervel, mesmo no curto prazo. Para criar uma dimenso compartilhada, primeiro selecione o esquema. (Para criar uma empresa privada dimenso, selecione o cubo que ir conter a dimenso vez.) Em seguida, clique o boto Adicionar dimenso na barra de ferramentas do editor do esquema. Este boto segundo boto na barra de ferramentas, ao lado do boto Adicionar cubo. Voc pode definir os seguintes atributos de dimenses: nome -Para as dimenses particulares, o nome se refere a esta dimenso em MDX consultas. Para obter as dimenses compartilhadas, o nome se refere dimenso quando Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 471 voc est associando-a com um cubo. Para dimenses particulares, o nome do deve ser nico entre todas as outras dimenses utilizadas pelo cubo. Para compartilhada dimenses, o nome deve ser exclusivo dentro do esquema. O compartilhada dimenso mostrado na Figura 15-14 usa data como o nome. foreignKey -Se esta uma dimenso particular, este o nome de um col- umn da mesa do cubo que se refere tabela de dimenso que corresponde a esta dimenso. tipo Se a sua dimenso hora ou data relacionada, voc deve usar TimeDimension. Isso permite que voc use o tempo padro e MDX funes de data. Caso contrrio, use StandardDimension. usagePrefix -Isso se aplica apenas s dimenses privadas. legenda -Este um nome de exibio usado para apresentar essa dimenso ao usurio final atravs da interface do usurio. Figura 15-14 mostra como adicionar uma dimenso compartilhada chamada Data neste maneira. Figura 15-14: Adicionando uma dimenso compartilhada Data Adicionando a dimenso faz com que X vermelho cones para aparecer novamente. O erro mensagem na parte inferior do espao de trabalho indica que h algo errado com uma hierarquia, assim que adicionar e hierarquias edio o tema do prximo subseo. Adicionando e hierarquias Editar e escolha de tabelas de dimenso Quando voc cria uma dimenso, uma nova hierarquia tambm criado. Voc pode v-lo quando voc expandir o n dimenso. Alm disso, o n de uma tabela automaticamente criado sob o n de hierarquia. Antes de editar o n de hierarquia, melhor para configurar o n da tabela subjacente. O n da tabela representa a tabela de dimenso que ir entregar os valores para os nveis da hierarquia. O procedimento para configurar o quadro exatamente o o mesmo que o processo de escolha de uma tabela de fatos de um cubo, que foi 472 Parte IV Inteligncia Aplicaes de Negcio descrito anteriormente nesta seo. Para a dimenso de data criada no ano anterior subseo, voc tem que escolher o dim_date_en_us Dimenso da tabela. Depois de escolher a tabela de dimenso, voc pode configurar a prpria hierarquia. Hierarquias de apoio os seguintes atributos: nome -O nome usado em consultas MDX para se referir hierarquia. Deve ser nico dentro da dimenso. Omitir o nome faz com que a hierarquia para obter o mesmo nome de sua dimenso. Alm disso, esta hierarquia o padro de hierarquia. legenda -O nome que utilizado para apresentar essa hierarquia para o usurio final na interface do usurio. hasAll -Um indicador que indica se a hierarquia deve ter um todo nvel com um membro de tudo, por exemplo, um nico membro na parte superior da hierarquia que representa todos os outros membros. Normalmente voc deve deixar isto. AllMemberName -Se hasAll estiver ativado, este parmetro especifica o identificador MDX que est a ser utilizado para todos os membros. Quando este for omitido, a todos os membros nome derivado automaticamente como Todos <nome da hierarquia>. allMemberCaption -Se hasAll estiver ativada, voc pode usar isto para especificar o nome que ser utilizado para apresentar a todos os membros para o usurio final na interface do usurio. allLevelName -O nome usado para se referir ao nvel de todas as consultas MDX. DefaultMember -O nome do membro padro. Se isso no for especificado, em seguida, a todos os membros sero utilizados como membro padro se a hierarquia tem um Todos os membros. Isso geralmente exatamente o comportamento desejado. Quando especificado, esse membro ser utilizado quando um membro esperado, mas no explicitamente especificados na consulta MDX. Se o membro padro no especificado eo hasAll Bandeira desativado, o primeiro membro do primeiro nvel na hierarquia ser utilizado como membro padro. memberReaderClass -Nome de uma classe personalizada membro leitor. Este especi- cados classe deve implementar mondrian.rolap.MemberReader. Normalmente voc no especificar um leitor de membro do cliente, mas vamos ler o Mondrian membros do RDBMS acordo com os mapeamentos do esquema do banco de dados. Configurar esta opo um recurso avanado que est alm do escopo este livro. primaryKeyTable -Pode ser usado para especificar o nome da tabela da que esta hierarquia consultas seus membros. Se no for especificado, os membros so consultado a partir da tabela da hierarquia. Voc normalmente pode deixar em branco se voc est criando um cubo em cima de um esquema em estrela como neste exemplo. A flexibilidade para especificar um nome de tabela aqui necessria quando se lida com esquemas floco floco de neve ou dimenses. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 473 primaryKey -Normalmente, voc deve usar isso para especificar o nome do coluna de chave primria da tabela esta hierarquia de dimenso. Para ser exato: esta o nome da coluna da tabela de dimenso que est referenciado pelas linhas na tabela de fatos. Esta deve ser uma coluna na dimenso desta hierarquia de tabela. Para configurar a primeira hierarquia da dimenso Data, voc precisa especificar as seguintes propriedades: nome -Isso deve ser meses, de acordo com os homens de design de cubo citadas na Tabela 15-1. hasAll -Esse deve ser ativado. primaryKey -Isso deve ser definido para date_key, Que a chave primria da dim_date_en_us tabela de dimenso, que configurado para este hierarquia. O projeto para essa hierarquia mostrado na Figura 15-15. Figura 15-15: O desenho da hierarquia Meses da dimenso Data De acordo com o design do cubo mostrado na Tabela 15-1, voc tambm deve adicionar uma hierarquia semanas. Para adicionar a segunda hierarquia, voc pode selecionar o n de dimenso de data e clique no boto Adicionar na hierarquia barra de ferramentas ou boto direito do mouse o n de dimenso de data e escolher a hierarquia Adicionar opo no menu de contexto. Como voc viu na edio da hierarquia Meses, a hierarquia Semanas novo j contm um n de tabela. Voc pode configurar a n tabela exatamente como voc configurou a hierarquia meses, e apont-lo para o dim_date_en_us Dimenso da tabela. Por ltimo, os atributos de configurao para a hierarquia semanas deve ser idntico ao da hierarquia Meses, exceto que o valor da sua nome atributo deve ser semanas, e no Meses. 474 Parte IV Inteligncia Aplicaes de Negcio Adio de nveis de hierarquia Agora que voc criou as hierarquias, voc deve definir seus nveis. Voc pode adicionar um nvel a uma hierarquia existente ou selecionando-o e clicando em Nvel boto Add na barra de ferramentas ou clicando com a hierarquia e escolhendo a opo Adicionar menu Nvel. Depois de adicionar um nvel, voc pode editar o seguintes atributos: nome -O nome que usado para se referir a este nvel em consultas MDX. tabela -O nome da tabela que contm as colunas onde o dados de dimenso armazenada para este nvel. Quando no especificado, da hierarquia tabela de dimenso ser utilizado. Esta a situao normal para esquemas em estrela como o usado neste exemplo. Voc precisa especificar uma tabela especfica s quando se trata de esquemas floco de neve. coluna -O nome da coluna que representa o identificador de membro para este nvel. Esta deve corresponder mesa este nvel (veja a tabela atributo). NameColumn -O nome da coluna que contm o nome deste nvel. Quando no especificado, o valor do nome propriedade usada. Normalmente voc deve deixar este campo em branco. parentColumn -Isso se aplica somente a tipos especiais de hierarquias chamado pai-filho hierarquias. Normalmente voc deixar este campo em branco, mas se voc est lidando com uma hierarquia pai-filho, voc usa esse atributo para especificar o coluna que faz referncia a membros do pai. nullParentValue -Quando se tratar de uma relao pai-filho, voc pode usar esse atributo para especificar que valor indica o membro pai no existe. Deixe em branco quando no lidar com pais e filhos hierarquias. ordinalColumn -Esse atributo pode ser usado para especificar qual coluna define como os valores dos membros devem ser separados por padro. Voc deve especificar esta sempre a ordem de classificao natural dos prprios membros no cabe a ordem de classificao desejada. Se a ordem de classificao natural da membros tambm a ordem de classificao desejada, voc pode deixar este campo em branco. s vezes, voc ainda pode especificar uma coluna aqui se o ordinalColumn tem um tipo de dados mais adequada para classificar a coluna que fornece o valores de membro. tipo -O tipo de dados dos valores membro. Isto usado para controlar se e como os valores devem ser citados na gerao de SQL a partir de consultas MDX. uniqueMembers -A bandeira que indica se todos os membros a este nvel ter valores nicos. Isto sempre verdadeiro para o primeiro nvel (no contando o nvel de todos) de qualquer hierarquia. Se voc sabe que verdade para qualquer um dos nveis subseqentes, voc pode especific-lo l tambm, e isso pode permitir que Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 475 Mondrian para gerar consultas SQL mais eficiente. No permitir que isso se voc no est 100 por cento se os valores so nicos, pois pode causar resultados incorretos para ser devolvido. levelType -Se voc deixar este campo em branco, ser assumido este um regular nvel, que o valor correto para a maioria das dimenses. Dimenses que foram configurados para ser do tipo TimeDimension deve especificar um dos tipos pr-definidos para os nveis TimeDimension: TimeYears, TimeQuarters, TimeMonths, TimeWeeks e TimeDays. Para TimeDimensions, espe- tificar os levelType um pr-requisito para o uso correto do Mondrian Data / Hora funes como acumulado do ano. HideMemberIf -Isso determina os casos em que um membro deve ser oculto. Normalmente, voc pode deixar este campo em branco, que equivalente configurao o valor para Nunca. Neste caso, o membro sempre mostrado. approxRowCount -O nmero estimado de membros a este nvel. Spec- ifying uma boa estimativa para este atributo pode permitir Mondrian fazer melhores decises sobre a forma de consulta e / ou o cache de dados, que podem melhorar o desempenho. legenda -O nome que ser utilizado para apresentar a este nvel para o usurio a interface do usurio. Quando no especificado, o nome do nvel ser usado. captionColumn -Aqui voc pode especificar quais colunas de dimenso ao nvel do- tabela Comisso dever ser usado para apresentar os membros para o usurio final. Quando no especificado, o identificador de membro ser utilizado. (Veja o atributo de coluna Para obter mais informaes sobre este assunto.) formatador -Isso pode ser usado para especificar um formatador de costume, bem como j discutimos as medidas. Agora que ns discutimos os atributos possveis dos nveis, que realmente pode adicion-los. Tabelas 15-2 e 15-3 mostra os nveis que voc precisa para criar para o Meses e hierarquias semanas, respectivamente, e como voc deve configurar seus atributos. Tabela 15-2: Os nveis da hierarquia Meses NOME Ano Trimestre Ms Dia LEVELTYPE TimeYears TimeQuarters TimeMonths TimeDays COLUNA ano4 trimestre _number Ms _number day_in _month trimestre _name Ms _abbreviation CAPTIONCOLUMN UNIQUEMEMBERS habilitado deficientes deficientes deficientes 476 Parte IV Inteligncia Aplicaes de Negcio Tabela 15-3 Os nveis da hierarquia Semanas COLUNA LEVELTYPE NOME Ano Semana Dia TimeDays TimeWeeks TimeDays ano4 week_in_year day_in_week CAPTIONCOLUMN UNIQUEMEMBERS habilitado deficientes day_abbreviation deficientes O resultado deve ser algo como a Figura 15-16. Figura 15-16: Nveis para os meses e hierarquias Semanas Associando Cubos com Dimenses compartilhadas Nas sees anteriores, voc construiu uma compartilhado dimenso Data. Antes de usar que, no wcm_orders cubo, voc precisa se associar a dimenso eo cubo. Em esquemas de Mondrian, a associao entre um cubo e uma dimenso compartilhada chamado de dimenso de uso. Para adicionar uma dimenso de uso, selecione o cubo e clique no boto Adicionar utilizao Dimension na barra de ferramentas, ou clique com o boto cubo e escolher a opo de adicionar a dimenso de uso do menu de contexto. Voc pode editar os seguintes atributos para um uso dimenso: nome -O nome que ser usado para se referir dimenso em MDX consultas. Esse nome no precisa ser idntico ao nome do compartilhadas dimenso prpria. Em vez disso, voc deve fornecer um nome (ou um apelido, se preferir) que reflete o propsito especfico da dimenso em relao ao cubo. A capacidade de fornecer um nome especfico, nico cada vez que voc usar um compartilhado dimenso efetivamente um caso de execuo dimenses role-playing. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 477 foreignKey -O nome da coluna na tabela do cubo que ref- erences a chave primria da tabela de dimenso. Lembre-se que voc tinha que especificar a coluna de chave primria da tabela de dimenso como a primaryKey atributo das hierarquias; bem, esta a contrapartida, definindo o fato final da tabela do relacionamento. fonte -Este o nome da dimenso compartilhada. nvel -Aqui voc pode especificar um nome de nvel da dimenso compartilhada que sero unidos contra a tabela de fatos do cubo. Para esquemas estrela, que deve normalmente ser deixado em branco. legenda -O nome usado para apresentar a dimenso para o usurio final pela interface do usurio. Se deixado em branco, o valor da nome atributo ser usado. No caso da dimenso Data, voc precisa configurar o uso da dimenso como se segue: nome -Aqui voc deve especificar a data da ordem local. A date_dimension mesa sobre a qual basear a dimenso de data no esquema podem desempenhar um nmero de papis em relao ao fact_orders mesa sobre a qual voc base do cubo. Por agora, limitar a data da ordem local, que se reflecte no nome. foreignKey -Aqui voc deve especificar o local_order_date_key coluna da fact_orders tabela de acordo com o papel desempenhado pela Data dimenso. fonte -Aqui voc deve especificar a data, que o nome que identifica sua dimenso no esquema. O resultado mostrado na Figura 15-17. Figura 15-17: O uso da dimenso associando o cubo com a dimenso de data como Data da Ordem local 478 Parte IV Inteligncia Aplicaes de Negcio Adicionando as Dimenses e DVD ao Cliente Para completar o esquema, voc precisa adicionar uma dimenso compartilhada para o DVD e dimenses do cliente e associ-las com a wcm_orders cubo. At agora, voc deve ser capaz de completar estes passos em seu prprio pas. Para resumir, voc deve repetir os passos seguintes para ambas as dimenses: Adicionar e editar uma dimenso. Escolha uma tabela de dimenso. Edite a hierarquia. Adicionar e editar os nveis de hierarquia. o cubo associado com a dimenso. Em comparao com a adio da dimenso Data, acrescentando que o DVD eo Cliente dimenses envolve algumas pequenas diferenas que realmente simplificar as coisas: O DVD e as dimenses do cliente ter apenas uma hierarquia, em vez de dois. Como essas dimenses s tm uma hierarquia, voc deve sair em branco o nome atributo de suas respectivas hierarquias. Sua tipo atributo da dimenso deve especificar StandardDimension (O padro) ao invs de TimeDimension. Da mesma forma, porque os nveis tambm so normais, voc no deve especificar o seu levelType atributo. Para completar, a lista a seguir fornece uma viso geral da configu- rao da dimenso do DVD e sua associao com o wcm_orders cubo: nome: DVD tipo: StandardDimension Dimenso da tabela: nome:dim_dvd_release Hierarquia: hasAll:verdade primaryKey:dvd_release_key Nvel de Gnero: nome: Gnero coluna:dvd_release_genre uniqueMembers:verdade Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 479 Nvel Ttulo: nome: Gnero coluna:dvd_release_genre uniqueMembers:falsa Uso da Dimenso: nome: DVD foreignKey:dvd_release_key fonte: DVD A lista a seguir fornece uma viso geral da configurao do Cliente dimenso e sua associao com o wcm_orders cubo: nome: Cliente tipo: StandardDimension Dimenso da tabela: nome:dim_customer Hierarquia: hasAll:verdade primaryKey:customer_key Nvel nacional: nome: Pas coluna:customer_country_code uniqueMembers:verdade captionColumn:customer_country_name Nvel Regio: nomeRegio: coluna:customer_region_code uniqueMembers:verdade captionColumn:customer_region_name Nvel da cidade: nome: Cidade coluna:customer_city_name Cdigo Postal: nome: Cdigo Postal coluna:customer_postal_code 480 Parte IV Inteligncia Aplicaes de Negcio Nome: nomeNome: coluna:customer_id captionColumn:customer_last_name Uso da Dimenso: nome: Cliente foreignKey:customer_key fonte: Cliente XML Listagem Para completar, incluir a fonte XML do esquema Mondrian aqui como listagem 15-1. Fizemos alguns (insignificante) mudanas para tornar o cdigo mais compacta. Voc pode usar isso para comparao com seu prprio esquema: Listagem 15-1: XML de origem do esquema de Mondrian Esquema_nome name="World Classe Movies"> <Dimension Type="TimeDimension" name="Date"> <Hierarchy Name="Months" hasAll="true" primaryKey="date_key"> <table Name="dim_date_en_us"/> <Nome Nvel = "Ano" coluna = "ano4" uniqueMembers = "true" levelType = "TimeYears" /> <Nome Nvel = "Bairro" coluna = "quarter_number" uniqueMembers = "false" levelType = "TimeQuarters" captionColumn = "quarter_name" /> <Nome Nvel = "Ms" coluna = "month_number" uniqueMembers = "false" levelType = "TimeMonths" captionColumn = "month_abbreviation" /> <Nome Nvel = "Dia" coluna = "day_in_month" uniqueMembers = "false" levelType = "TimeDays" /> </ Hierarquia> <Hierarchy Name="Weeks" hasAll="true" primaryKey="date_key"> <table Name="dim_date_en_us" schema="" alias=""/> <Nome Nvel = "Ano" coluna = "ano4" uniqueMembers = "true" levelType = "TimeYears" /> <Nome Nvel = "Semana" coluna = "week_in_year" uniqueMembers = "false" levelType = "TimeWeeks" /> <Nome Nvel = "Dia" coluna = "day_in_week" uniqueMembers = "false" levelType = "TimeDays" captionColumn = "day_abbreviation" /> </ Hierarquia> </ Dimension> <Dimension Type="StandardDimension" name="DVD"> <Hierarchy HasAll="true" primaryKey="dvd_release_key"> <table Name="dim_dvd_release" schema="" alias=""/> <Level Name="Genre" column="dvd_release_genre" uniqueMembers="true"/> <Level Name="title" column="dvd_release_title" uniqueMembers="false"/> </ Hierarquia> </ Dimension> Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 481 <Dimension Type="StandardDimension" name="Customer"> <Hierarchy HasAll="true" primaryKey="customer_key"> <table Name="dim_customer" schema="" alias=""/> <Nome Nvel = "Pas" coluna = "customer_country_code" uniqueMembers = "true" captionColumn = "customer_country_name" /> <Nome Nvel = "Regio" coluna = "customer_region_code" uniqueMembers = "true" captionColumn = "customer_region_name" /> <Level Name="City" column="customer_city_name" uniqueMembers="false"/> <Nome Nvel = "Cdigo Postal" coluna = "customer_postal_code" uniqueMembers = "false" /> <Nome = Nvel coluna "Nome" = "customer_id" uniqueMembers = "false" captionColumn = "customer_last_name" /> </ Hierarquia> </ Dimension> <Nome do Cubo = "wcm_orders" caption = "World Class Vendas Filmes" cache = "true" enabled => "true" <table Name="fact_orders"/> <Fonte DimensionUsage = "Data" name = "Local Ordem Data" foreignKey = "local_order_date_key" /> <DimensionUsage Source="DVD" name="DVD" foreignKey="dvd_release_key"/> <DimensionUsage Source="Customer" name="Customer" foreignKey="customer_key"/> <Nome da Medida = "Receita" coluna = "receita" formatString = "Moeda" agregador = "soma" visible = "true" /> <Nome da Medida = "Quantidade", coluna = "quantidade" agregador = "soma" visible = "true" /> <Nome da Medida = "Aluguer de Durao" coluna = "rental_duration" formatString = "# .00" agregador = "avg" visible = "true" /> </ Cube> </ Schema> Testes e Implantao Agora que voc criou o esquema, voc est quase pronto para us-lo. Voc deve publicar o cubo para o Pentaho BI Server antes que voc possa us-lo para construir OLAP aplicaes. Mas antes de implant-lo, voc pode querer fazer alguma preliminar primeiro teste. Usando a ferramenta de consulta MDX PSW inclui uma ferramenta de consulta bsica MDX. Esta no adequado como um usurio final ferramenta de relatrios, mas bastante til para testar se o seu cubo funcional. Voc tambm pode us-lo como uma ajuda no desenvolvimento de consultas MDX para uso direto na sua solues OLAP. Voc pode chamar a ferramenta de consulta MDX a partir do menu principal: File Nova MDX. O editor MDX aparece em sua prpria janela. Se acontecer de voc tem um editor do esquema aberto, a ferramenta de consulta MDX tenta conectar-se a banco de dados subjacente, bem como carregar a definio do esquema. Isso mostrado na Figura 15-18. 482 Parte IV Inteligncia Aplicaes de Negcio Figura 15-18: A ferramenta de consulta MDX A ferramenta de consulta MDX tem um painel superior e um painel inferior. Voc pode entrar Consultas MDX no painel superior. A consulta MDX executada quando voc clica Execute o boto que aparece na parte inferior da ferramenta de consulta MDX. A resultados so mostrados na parte inferior do painel. Agora voc pode experimentar algumas das consultas MDX discutido anteriormente neste captulo. Publicando o Cubo de Quando estiver satisfeito com o design do cubo, voc pode publicar o cubo para a Pentaho BI Server. Para chamar a publicar dilogo, verifique se voc tem um esquema aberto no editor do esquema. Ative a janela do editor do esquema. Em seguida, escolha Publicar no menu principal, ea caixa de dilogo aparece, como mostrado infile Figura 15-19. Para a URL, especifique o endereo web do Pentaho BI Server para o qual voc deseja publicar o esquema. Voc deve usar a senha do editor que especificado no servidor da publisher_config.xml arquivo. Para o usurio e senha, especifique as credenciais de qualquer usurio que tem o privilgio de publicar. Quando voc confirmar a caixa de dilogo, uma conexo feita com a soluo repositrio, o que pode levar algum tempo. Se a conexo for bem sucedida, uma caixa de dilogo Parece que lhe permite ver a soluo de servidor de repositrio. Escolha o caminho adequado, por exemplo, / WCM / Anlise. Na parte inferior da janela, voc pode especificar quais dados do servidor JNDI fontes para usar no lado do servidor para executar as consultas SQL. Se voc ativar o caixa de seleo Registrar XMLA Datasource, o esquema registrado como um OLAP Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 483 fonte de dados no servidor. Isso permite que a interface de usurio para exibir uma lista de esquemas. Figura 15-19: Publicar um esquema para a soluo de repositrio Tpicos Design esquema ns no cobrimos Nas subsees anteriores, voc aprendeu a construir uma base Mondrian esquema e cubo. Embora ns cobrimos um lote de terreno, a este respeito, h muitos temas que ns no cobrimos. Aqui est uma lista parcial: Calculado-membros Mondrian cubos podem conter definies de calcu- membros lada. Funes e controle de acesso de esquema e elementos do cubo pode ser associado com papis de conceder apenas determinados grupos de usurios acesso a particular elementos do cubo. Trabalhando com dimenses snowflaked-nos baseado inteiramente nosso exemplo em um esquema em estrela simples, usando apenas um-para-um entre cada tabela de dimenso ea sua respectiva dimenso do cubo. Mas Mondrian capaz de muito mais mapeamentos avanados que permitem que voc crie cubos em esquemas floco de neve. A formatao condicional-nos brevemente discutida a formatao de strings, mas por- esteiras pode realmente ser especificado como frmulas que retornam uma marcao especial que pode ser processado pela interface do usurio. Isso permite que voc faa as coisas tais como medidas de exibir em cores diferentes, dependendo de seu valor. 484 Parte IV Inteligncia Aplicaes de Negcio Internacionalizao-Muitos dos atributos de elementos do esquema podem ser dado um valor varivel, dependente de localidade do formulrio %% Propertyname. Os valores reais para essas propriedades podem ser definidas em separado propriedades. arquivo. Isso pode ser usado para implementar internacionalizado OLAP aplicativos usando o adequado propriedades. arquivo para uma determinada localidade. Voc pode, por exemplo, usar isso para escolher entre o Ingls eo Francs tabela de dimenso de data, como discutido nos captulos anteriores .. Funes definidas pelo usurio-Voc pode criar sua prpria funo como Java classes e importar estes no seu esquema. Se voc est interessado nestas funcionalidades, consulte o Mondrian original documentao em mondrian.pentaho.org. Visualizando Cubos Mondrian com JPivot Aps a publicao do cubo para a soluo Pentaho repositrio pode ser usado para construir aplicaes de anlise. Nesta seo, voc vai aprender a criar dinmicas tabelas dinmicas para procurar e analisar cubos Mondrian. Atravs destes piv tabelas, os utilizadores empresariais podem perfurar para cima e para baixo, e cortar e cortar os dados. Introduo vista da anlise O usurio do console do Pentaho BI Server oferece a possibilidade de criar uma anlise de vista, que essencialmente uma mesa JPivot cruz no topo de um Mondrian cubo, envolvido em um processo de ao Pentaho. Para criar uma viso nova anlise, clique no cone da viso de anlise na barra de ferramentas ou na pgina inicial do espao de trabalho. Voc ser solicitado a escolher um esquema, e dentro do esquema, um cubo. Este mostrado na Figura 15-20. Depois de escolher o esquema e cubo e confirmar a caixa de dilogo, uma tabela dinmica aparece. Inicialmente, os membros padro de todas as dimenses so exibidas no eixo vertical, ea medida padro exibido no eixo horizontal. Lembre-se que, normalmente, o membro padro o membro mais, assim que o resultado uma tabela com um nico valor no mais alto nvel de agregao possvel. Esta mostrados na Figura 15-21. Se voc gosta, voc pode salvar a viso de anlise para uso posterior clicando em um dos o disquete cones na barra de ferramentas do Usurio Pentaho Console. Voc ser solicitado a fornecer um local dentro do repositrio, bem como um nome. No restante desta seo, discutiremos os mtodos que permitem obter radicalmente diferentes vises sobre os dados na vista de anlise. Ao salvar o tabela dinmica, o estado da tabela tambm ser salvo, permitindo-lhe obter um viso especfica sobre os dados que voc est interessado pol Se voc v algo que voc gosta, salv-lo usando um novo nome. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 485 Figura 15-20: Criao de uma viso de anlise Figura 15-21: A tabela dinmica padro Usando a Barra de Ferramentas JPivot Alm da tabela dinmica, JPivot fornece uma barra de ferramentas na parte superior da pgina. Nesta barra voc encontrar uma srie de aes interessantes. A barra de ferramentas mostrados na Figura 15-22. Figura 15-22: barra de ferramentas do JPivot Discutimos alguns dos botes da barra nas sees seguintes. 486 Parte IV Inteligncia Aplicaes de Negcio Perfurao Uma das grandes caractersticas de uma tabela dinmica que ela interativa e dinmica. Uma caracterstica tpica, a este respeito a sua perfurao funcionalidade. A perfurao essencialmente uma forma de navegao de dados onde o usurio navega de um nvel de agregao para outro. Apoio navegao de dados provavelmente a razo mais importante para exigir uma organizao hierarquizada em nveis de dimenses. Na Figura 15-21, voc pode ter notado o pouco +cones do todos os membros das dimenses. Clicando em um cone de adio expande o membro, revelando os membros do prximo nvel (o que representa um menor nvel de agregao). Ao mesmo tempo, as medidas so re-agregada para se ajustar ao nvel do conjunto de novas dos membros revelado. Este tipo de ao conhecida como perfurao para baixo, como voc est navegando a partir do atual nvel de agregao de um membro um menor nvel de agregao aplicveis aos membros do seu filho. Por exemplo, se voc toma a dimenso de data na tabela dinmica mostrado na Figura 15-21 e broca descer um nvel a partir do membro Datas Todos ao nvel do ano, revelando a Ano membro individual, voc teria algo parecido com a Figura 15-23. Figura 15-23: Perfurao para baixo de todo o ano Perfurao Sabores H uma srie de maneiras diferentes ao de um usurio de perfurao pode resultar em um resultado de perfurao em particular. Os mtodos so: Broca-Membros Broca posio Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 487 Substituir Drill Perfurar O mtodo de perfurao controlado atravs dos botes da barra de ferramentas mostrada na Figura 15-24. Figura 15-24: A barra de botes mtodo de perfurao Os trs primeiros mtodos so aplicveis s dimenses. Voc pode usar apenas uma destes mtodos ao mesmo tempo. O quarto mtodo aplicvel s medidas. Pode ser ativado de forma independente dos outros trs mtodos. Broca-Membros e posio da broca Por padro, usa o JPivot broca membro aco. Com esta ao, a perfurao de um exemplo de um membro tambm aplicado a todas as outras instncias desse membro. Esse comportamento ativado, alternando o primeiro da barra de ferramentas do mtodo de perfurao botes. Para ver broca membro em ao, verifique se este boto da barra de ferramentas alternado. Agora, suponha que voc comear a perfurar na tabela mostrada na Figura 15-23 no All Clientes membro do ano 2000. A ao da broca ser aplicada a todas as outras ocorrncias de todos os clientes, eo resultado seria algo como a Figura 15-25. Figura 15-25: Broca membros sobre todos os clientes de 2000 tambm ir expandir os clientes todos membro para todos os outros anos 488 Parte IV Inteligncia Aplicaes de Negcio Como voc pode ver na Figura 15-25, a perfurao para baixo para todos os clientes do ano 2000 revela os membros Cliente no prximo nvel para todos os anos, no apenas os ano de 2000. O sabor da broca segunda broca posio. Isso pode ser habilitado, alternando o segundo a perfurao botes da barra de ferramentas do mtodo. Neste caso, a perfurao ocorre diretamente na instncia membro e no aplicada a quaisquer outras instncias desse membro. Se voc usar esse mtodo para detalhar a Clientes Todos membro durante o ano de 2000, a tabela mostrada na Figura 15-23, apenas a membros inferiores dos clientes do ano 2000 so revelados, e eles permanecer oculto para todos os outros anos. Substituir Drill Com o broca substituir mtodo, o membro passa a ter perfurado com a broca resultado. Voc pode habilitar este mtodo, alternando a barra de ferramentas terceiro mtodo de perfurao, mas, ton. Por exemplo, suponha que voc tenha uma tabela como a mostrada na Figura 15-21. Se voc usou broca em substituir o membro clientes, o resultado seria como a Figura 15-26. Figura 15-26: Broca substituir remove o membro perfurados com o resultado da broca Como voc pode ver na Figura 15-26, o membro Todos os clientes que j se foi. Em vez voc v os membros no novo nvel. Perfurar Considerando que todos os mtodos de perfurao discutido anteriormente aplicveis s dimenses, perfurar se aplica s medidas. Uma broca atravs de ao recupera o detalhe linhas (linhas da tabela verdade) correspondente soma medida enrolado valor, apresentando os resultados em uma tabela separada. Perfure atravs podem ser ativados mudando o quarto boto da barra de perfurao mtodo. O Navigator OLAP O Navigator OLAP uma interface grfica que permite que voc controle como os mapas JPivot o cubo para a tabela dinmica. Voc pode us-lo para controlar quais dimenso mapeada para qual o eixo, como as mltiplas dimenses em um dos eixos so ordenada, e que fatia do cubo usado em anlise. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 489 Voc pode abrir o Navegador de OLAP, clicando no boto da barra de ferramentas com o cone pequeno cubo. Isso mostrado na Figura 15-27. Figura 15-27: O Navigator OLAP Figura 15-27 tem os seguintes elementos: A seo Colunas, atualmente apenas com medidas Uma seo de Linhas, agora com todas as dimenses Uma seo de filtro, que est atualmente vazia No restante desta seo, vamos explorar estes diferentes elementos da OLAP Navigator, e veja como voc pode us-los para obter cruz diferente sees de dados do cubo. Controlando a veiculao de dimenses em eixos Em OLAP Navigator, voc pode mover uma dimenso para outra, clicando no eixo cone quadrado pouco antes da dimenso. Por exemplo, ao clicar no cone quadrado que exibido logo antes da dimenso Cliente move o Cliente dimenso a partir do eixo de linhas para o eixo Colunas. (Veja a Figura 15-28). Figura 15-28: Movendo a dimenso Cliente para as colunas do eixo Voc tambm pode alterar a ordem das dimenses dentro de um eixo. Para fazer isso, clique em os pequenos cones triangulares para mover a posio de uma dimenso. Por exemplo, se 490 Parte IV Inteligncia Aplicaes de Negcio voc clica no cone pequeno tringulo apontando para cima antes que a dimenso do cliente, ele movido para uma posio acima. Pode obter o mesmo efeito clicando no pequeno direito no cone triangular para baixo antes da dimenso Medidas. O resultado situao mostrada na Figura 15-29. Figura 15-29: Mudar a ordem das medidas e dimenses do cliente Note que apenas temos estado a edio no Navigator OLAP-se o piv tabela em si no mudou. Se voc clicar em OK na OLAP Navigator, o OLAP Navigator est oculto e que a pgina recarregada automaticamente para refletir a mudana nos eixos. O resultado mostrado na Figura 15-30. Figura 15-30: Cliente dimenso no eixo horizontal Fatias com o Navigator OLAP O Navigator OLAP no se limita a manipulao de coluna e linha de eixo. Voc tambm pode us-lo para especificar o fatiador. Lembre-se que o slicer corresponde MDX ONDE clusula e pode ser usado para mostrar apenas um subconjunto particular ou uma fatia'''' dos dados. Vamos usar o slice para olhar apenas para um grupo especfico de DVD. Para faz-lo, primeiro voc deve reabrir o Navigator OLAP. Deve parecer exatamente como Figura 15-29 neste momento. Agora clique no cone da direita pouco antes do funil de DVD Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 491 dimenso. Isso faz com que a dimenso do DVD para passar para o slicer, como mostrado na Figura 15-31. Figura 15-31: Movendo a dimenso de DVD para o slicer Agora, embora voc moveu a dimenso do fatiador, fatia''seu''ainda contm todos os dados do DVD. Isso compreensvel que o membro todos o membro padro eo membro contm todos os DVDs. Para ver uma parte da todos os DVDs, voc precisa especificar quais membros da dimenso de DVD que voc est dentro interessado em faz-lo, clique na palavra DVD. Voc recebe um menu como o mostrados na Figura 15-32. Figura 15-32: O cortador de DVD Quando voc clica no cone de adio, a dimenso DVD expande dentro do OLAP Navigator, mostrando seus membros. Voc pode ento escolher um membro para definir da fatia. Selecione a fatia Ao / Aventura. Isso mostrado na Figura 15-33. Figura 15-33: Escolhendo uma fatia gnero Lembre-se que voc deve clicar em OK para fechar o Navegador OLAP antes de qualquer mudanas sero visveis na tabela dinmica. 492 Parte IV Inteligncia Aplicaes de Negcio Especificando Estados jogos com o Navigator OLAP Voc acabou de aprender como voc pode especificar um determinado membro do slicer. Voc tambm pode especificar membros em particular sobre as colunas e linhas de eixos. 1. Abra o Navegador OLAP, e clique em cliente. 2. Expandir o Cliente, e selecionar apenas Canad e Estados Unidos. 3. Clique em OK para confirmar. 4. Em seguida, clique em Data. Expanda Data, e escolher apenas 2007 e 2008. 5. Clique em OK para confirmar. As selees so mostrados na Figura 15-34. Figura 15-34: Escolhendo membros em particular para os eixos Se voc fechar o navegador OLAP, a tabela dinmica atualizada a aparncia Figura 15-35. Figura 15-35: Anos de 2007 e 2008, os clientes do Canad e dos Estados Unidos, em fatias por Ao / Aventura Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 493 Resultados de vrias medidas Podemos usar o OLAP Navigator tambm para mostrar mais medidas. Abra o OLAP Navigator, clique e Medidas. Um menu aparece mostrando todas as medidas definidas no cubo (ver Figura 15-36). Figura 15-36: Seleo de mltiplas medidas Agora selecione as restantes medidas e clique em OK para fechar a OLAP Navigator. O resultado mostrado na Figura 15-37. Figura 15-37: Uma tabela dinmica com mltiplas medidas Diversos recursos Nesta seo, discutimos brevemente uma srie de recursos teis que JPivot no abrangidos em outros lugares. Painel de Consulta MDX Voc pode alternar a visibilidade do painel de consulta MDX usando o segundo boto na barra de ferramentas JPivot (que diz MDX). Este painel de consulta contm o MDX consulta que representa o estado atual da opinio de anlise. O painel de consulta MDX muito til para estudar e aprender a sintaxe MDX. Navegando em uma tabela dinmica e interpretar o resultado bastante prestados straightfor- ala para a maioria das pessoas, mais do que a compreenso dos resultados baseados em texto devolvido pelo editor MDX PSW. Voc tambm pode usar o painel de consulta MDX para adicionar temporariamente uma definio para um membro calculado e imediatamente inspecionar os resultados. Voc pode voltar e para trs algumas vezes entre o painel e MDX a tabela dinmica at que voc esteja satisfeito. Voc pode ento colocar o cdigo para este membro calculado diretamente dentro do cubo. 494 Parte IV Inteligncia Aplicaes de Negcio PDF e Excel Exportar O ponto de vista de anlise permite exportar o resultado processado para PDF e formatos do Microsoft Excel com um nico clique do mouse. Para exportar para o Excel, basta clicar no boto da barra de ferramentas JPivot com o cone do Excel. Ele est localizado na extremidade direita da barra de ferramentas JPivot. Grfico JPivot tambm oferece um recurso grfico. Voc exibir o grfico, alternando o Mostrar o boto da barra de ferramentas Grfico (o cone barchart na metade direita do JPivot barra de ferramentas). Voc pode controlar a maneira como o seu aspecto grfico usando a configurao de grfico boto, localizado no lado direito da barra de ferramentas Show Chart. A alternncia do Grfico boto Config exibe um grfico de Propriedades do formulrio onde voc pode especificar todos os tipos de propriedades do grfico, tais como o tipo de grfico e tamanho do grfico. Ns no podemos possivelmente cobrir JPivot grficos na ntegra. Em vez disso, recomendamos que voc experincia com esse recurso. Para comear, ns fornecemos instrues para criar um grfico como o mostrado na Figura 15-38. Figura 15-38: Um grfico mostrando JPivot receitas sobre dividir o tempo dos clientes por pas O grfico mostrado na Figura 15-38 fornece uma introspeco no desenvolvimento de receitas volvimentos ao longo do tempo, divididos por pas de residncia dos clientes. O grfico dados que visualizado no grfico mostrado na Figura 15-39. Voc pode obter esse ponto de vista sobre os dados, colocando a data e DVD dimenses no eixo vertical ea dimenso do cliente na horizontal eixo. Certifique-se de expandir o membro Todos os clientes para dividir os dados de acordo para o pas de residncia do adquirente. Alm disso, voc deve remover a Todos membro da dimenso de data. (Se voc no remover o membro Tudo aqui, As receitas do primeiro par de anos ser pouco visvel em comparao com os grandes receitas acumuladas para o membro Datas Todos). Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 495 Figura 15-39: Dados para o grfico mostrado na Figura 15-38 Figura 15-40 mostra a configurao do grfico. Entramos em algumas propriedades para configurar o grfico: Tipo de grfico: barra vertical. Existe uma grande variedade de tipos de grficos disponveis. Habilitar o detalhamento: marcada. Isso permite que o usurio clique sobre as barras No quadro para examinar as linhas de detalhes subjacentes. Figura 15-40: Grfico propriedades para o grfico mostrado na Figura 15-38 496 Parte IV Inteligncia Aplicaes de Negcio Eixo horizontal no rtulo: Tempo; rtulo do eixo vertical: Receitas. Introduzir um rtulo torna muito mais fcil para os usurios a interpretar o grfico. Grfico de Altura, largura do grfico: a altura e largura em pixels da tabela. Voc vai descobrir que muitas vezes voc precisa de experincia com esses valores para obter um quadro razoavelmente legvel. Melhorando o desempenho usando o Pentaho Designer Aggregate Mondrian faz um timo trabalho de resultados em cache, dando-lhe acesso rpido a obtidas anteriormente membros do cubo. Com grandes bases de dados, no entanto, preciso tempo considervel navegar um cubo, porque voc est trabalhando com um ROLAP ferramenta que precisa para recuperar dados de grandes tabelas de fatos detalhados. Para evitar ter de digitalizar milhes de linhas de cada vez que um nvel de dimenso nova for seleccionada, voc pode pr-agregados os dados para Mondrian. No captulo 6, explicamos os conceitos de tabelas de agregados e vises materializadas como o desempenho impulsionadores e mencionou que, at data, nenhum dos bancos de dados open source apoia o ltimo. Bem, isso pode ser verdade para os bancos de dados em si, mas o comportamento de Mondrian usando tabelas agregadas chega muito perto de ter materializada com a opinio. H uma diferena notvel, porm, e que a manuteno automtica dos quadros agregado de cada vez que novos dados carregados para o data warehouse. Uma maneira de resolver este problema estender sua Chaleira empregos para atualizar as tabelas Mondrian globalmente no final de carga os dados detalhados para o data warehouse. Usando a data de limpeza e colunas de hora ou uma identificao de lote torna mais fcil identificar alterado ou inserido registros e usar isso como fonte para a atualizao ou insero de registros na agregados. Agregao de Benefcios O nico benefcio do uso de agregados melhorar o desempenho da consulta, ou em no caso de Mondrian, ad-hoc de velocidade. Tabelas agregadas isso limitando o nmero de registros a serem verificados em uma consulta. D uma olhada Figura 15-41 para ver os efeitos de agregao. O lado esquerdo do diagrama mostra uma verso simplificada da tabela de fatos a fim WCM com 1.359.267 linhas porque o nvel de transaco mais baixos do que os dados so armazenados na tabela. Agora olhar para o canto superior direito do diagrama onde criamos tabelas de agregados para o fato de as linhas detalhadas a nvel do ms, o DVD Gnero e pas. Este resulta em uma diminuio drstica do tamanho da mesa, porque voc s precisa de 9.120 linhas para armazenar todas as combinaes possveis de dados a estes nveis. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 497 dim_date (3,660) date_key 20090723 20090830 20090915 20090924 20091012 20090821 20090514
10 120 38 2 9.120 linhas de agregados (-99,32%) Ano Gnero SciFi
38 Pas EUA
2 Soma (Receitas) 1.359.267 linhas de fatos / Ano Gnero / Pas 2009
10 10 38 2 720 linhas de agregados (-99,95%) Figura 15-41: exemplos de Agregao Uma reduo adicional pode ser obtida quando voc omitir o trimestre e nvel do ms todo. Voc ainda pode criar um relatrio guia valioso cruz ou viso de anlise com base nesses 720 linhas de dados, que uma reduo na tamanho de cerca de 99,95 por cento. Consultas contra essas tabelas agregadas produzir sub-segundo os tempos de resposta e usurios muito feliz. A questo , como voc incorporar esse conhecimento na sua configurao de Mondrian? Estendendo Mondrian com tabelas agregadas Antes havia uma ferramenta automatizada para projetar as tabelas dos agregados, Foi um processo manual. A prxima seo ir abranger agregados Pentaho Designer, embora voc provavelmente usar esta ferramenta para desenhar e agregados de construo, que voc precisa saber o que est acontecendo sob o cap no caso de algo correr mal. O exemplo que mostramos aqui baseado na superior direito da tabela agregada na Figura 15-41. O primeiro passo criar um novo tabela no esquema do data warehouse: CREATE TABLE agg_wcm_orders_1 ( Dim_date_Year CHAR (4), Dim_date_Quarter CHAR (2), Dim_date_Month CHAR (3),
Dim_dvd_release_Genre VARCHAR (35), DUPLO fact_orders_Revenue, fact_orders_fact_count INTEGER) Como voc continuar, manter os seguintes pontos em mente: A tabela de exemplo agregado no contm apenas as colunas que voc precisa para anlise, mas tem um extra fact_count coluna tambm. O contedo deste 498 Parte IV Inteligncia Aplicaes de Negcio coluna indica como linhas facto muitos foram resumidos na linha de agregao. Mondrian tambm tem esta coluna extra para verificar se o tabela um agregado e pode ser usado como tal. Alm da dim_date_Month, O e dim_date _Year colunas esto includos na tabela de agregados. Esta incluso permite Mondrian para obter todas as informaes necessrias a partir da dimenso tabela de agregados e no requer que voc inclua o dim_date tabela a consulta. Esta tambm referida como dimenso do colapso ou cumulativo conformado. A fact_orders_Revenue coluna de um tipo diferente do que o receitas coluna no fact_orders tabela. Porque vocs so a sntese dos dados, voc precisa ter certeza de que os valores somados ainda se encaixam as colunas no nvel agregado. O diagrama na Figura 15-41 mostra todas as dimenses em ambos os agregados tabelas. Isso no precisa ser o caso: a coluna Gnero poderia ter foi deixado de fora de uma tabela de agregados e ainda seria vlido agregada. Ao fazer isso, criaramos um agregado com um perdido dimenso (Gnero). A consulta SQL mostrado na Lista 15-2 pode ser usado para carregar o agregado tabela. Listagem 15-2: Consulta SQL para carregar a tabela de agregado INSERT INTO agg_wcm_orders_1 ( dim_date_year , Dim_date_quarter , Dim_date_month , Dim_customer_country , Dim_dvd_release_Genre , Fact_orders_revenue , Fact_orders_fact_count) dim_date_year SELECTdim_date.year4AS , Dim_date_quarter dim_date.quarter_nameAS , Dim_date.month_abbreviationAS dim_date_month , Dim_customer.customer_country_code AS dim_customer_country , Dim_dvd_release.dvd_release_genre dim_dvd_release_genre AS , Fact_orders_revenue SUM (fact_orders.revenue) AS , COUNT (*) AS fact_orders_fact_count FROMfact_orders AS f INNER JOIN dim_dateAS d ON f.local_order_date_key d.date_key = INNER JOIN dim_customerAS c ON f.customer_key c.customer_key = INNER JOIN dim_dvd_release AS r ON f.dvd_release_key r.dvd_release_key = GRUPO BYd.year4 , D.quarter_name , D.month_abbreviation , C.customer_country_code , R.dvd_release_genre Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 499 DICA Um agregado que baseado em um outro agregado, por exemplo, uma tabela com S no ano, pas, e de receitas deve ser carregado a partir da agregao, no de a tabela de fatos base. Isso pode resultar em um ganho de desempenho considervel. Depois disto, foi configurado, voc pode usar o PSW novamente para especificar o tabela de agregados em seu cubo existente. Quando voc expande o wcm_orders cubo e clique com o boto direito fact_orders, Abre um menu com trs opes. O primeiro permite que voc declare uma nova tabela agregada eo terceiro permite que voc explicitamente excluir uma tabela. A segunda opo realmente o mais interessante uma vez que permite definir um padro que Mondrian usa para determinar quais tabelas no banco de dados so agregados que podem ser usados. Explicando o necessrio expresses regulares e como funciona este recurso est alm do escopo deste livro, mas este tpico abordado em profundidade no site da Pentaho em Mondrian notes.php http://mondrian.pentaho.org/documentation/developer # Agg regras padro. Neste exemplo, ficar com a primeira opo, que permite que voc adicione a agg_wcm _orders_1 nome agregado. Isso muda a fact_orders e adiciona um cone nvel chamado de agregao Nome, que por sua vez, oferece um menu do boto direito do seu prprio. Aqui voc precisa especificar a coluna contagem agregada fato (neste caso: fact_orders_fact_count), Os nveis de agregao, e medidas agregadas. A nveis e as medidas tm dois atributos: a coluna eo nome do item. A coluna se refere ao nome da coluna na tabela de agregados, mas o nome a especificao MDX da instncia de nvel para [Cliente]. [Pas] para o customer_country coluna e [Data Local Ordem]. [Ms] para o month_number coluna. Um exemplo mostrado na Figura 15-42. Figura 15-42: Nvel de agregao de especificao 500 Parte IV Inteligncia Aplicaes de Negcio At agora usamos apenas as colunas de agregados em nossas mesas agregado, mas voc pode criar uma tabela resumida, onde uma ou mais colunas ainda contm a chave de dimenso detalhada. Nesse caso, no h necessidade de recolher o dimenso e incluem os diferentes nveis da tabela agregada, como no Ano- Quartas-de-Semana exemplo. Se voc quiser ser capaz de perfurar at o nvel de dia, combinado com um agregado do pas e do Gnero, voc poderia substituir o Trimestre, ano, ms e colunas com um nico date_key e especificar que o uma pea de agregao dos Negcios Estrangeiros. A coluna agg seria, neste caso, o date_key, ea coluna de fato seria o original local_order_date_key coluna. HABILITAO tabelas agregadas A utilizao de tabelas agregadas em Mondrian desabilitada por padro. Voc pode habilitar deste recurso, definindo os valores dos mondrian.rolap.aggregates.Use e mondrian.rolap.aggregates.Read para True em Mondrian propriedades do arquivo. Este arquivo pode ser encontrado no diretrio <Pentaho instalar > Dir / biserver-ce/pentaho-solutions/system/Mondrian. Se o propriedades no esto presentes, basta adicionar as seguintes linhas para este ficheiro: mondrian.rolap.aggregates.Use = 1 mondrian.rolap.aggregates.Read = 1 Pentaho Designer Aggregate O pargrafo anterior cobriu a configurao manual de tabelas de agregados dentro Pentaho. Agora que voc tem uma compreenso bsica do que est acontecendo quando voc est criando tabelas agregadas, hora de tornar a vida um pouco mais fcil, usando Designer Pentaho Agregado, ou DAP. PAD oferece uma srie de vantagens sobre o processo manual de criao de tabelas de agregao. O mais importante eles que PAD capaz de selecionar os melhores automagicamente tabelas agregadas para o esquema que voc est tentando otimizar. Quando voc comear a PAD, ele pede um banco de dados de conexo. Depois que configurado, voc precisa selecionar um Mondrian arquivo de esquema, e depois de aplicar a escolha, o cubo para trabalhar pode ser aberto. PAD, em seguida, valida o modelo de dados subjacente, verificando que todas as tabelas possuem chaves primrias e que no esto presentes os valores nulos nas chaves estrangeiras colunas. PAD avisa quando a tabela de fato no contm uma chave primria. Voc pode usar o DAP para fazer qualquer um dos seguintes: Crie a sua definio de tabelas agregadas manualmente clicando no boto Adicionar boto do lado direito e, posteriormente, selecionar os nveis de agregao esquerda. Cada nova tabela agregada adicionado lista na parte inferior direita da a tela e pode ser editado clicando-lo. Captulo 15 Solues OLAP Utilizando Pentaho Analysis Services 501 Pr-visualizar, executar ou exportar o script de criao para os agregados da Exportao e tela de publicao, que pode ser aberto clicando no boto Exportar boto. Execute ou exportar os scripts de carga para os quadros agregados a partir do mesmo Exportao tela. Publicar o esquema Mondrian ajustado a um servidor Pentaho ou exportar o arquivo para uma pasta no disco. Estas so caractersticas muito teis, mas a verdadeira diverso comea quando voc clica no Advisor boto. Aqui voc pode especificar o nmero de agregados PAD pode tentar gerar e quanto tempo o conselheiro de consultas podem ser executados. Neste simples exemplo, voc pode dizer que agrega 15 e 60 segundos e clique em Recomendar. PAD, em seguida, tenta determinar todos os agregados com base no design do cubo e do contagens coluna do modelo de dados subjacente. Figura 15-43 mostra os resultados deste exerccio para o wcm_orders cubo. Figura 15-43: tabelas geradas Aggregate Esta ainda uma recomendao criado por PAD, que voc pode aprovar ou rejeitar. Outra opo para ajustar manualmente as tabelas de Conselheiro ou descartar a que voc sente no ser necessrio. Voc pode observar os efeitos das suas escolhas imediatamente no diagrama. At agora, nunca encontrei a necessidade de contradizer os resultados conselheiro e voc ser pressionada duramente para encontrar uma melhor optimizado conjunto de tabelas agregadas que no PAD. Quando voc olha para a contagem das tabelas conselheiro, voc provavelmente encontrar que o nmero para o conjunto criado manualmente no pargrafo anterior 502 Parte IV Inteligncia Aplicaes de Negcio muito maior que na Figura 15-41 DAP, porque tambm tem os nveis (Todos) em considerao, assim que os nmeros apresentados so o mximo absoluto. A manual agg_wcm_sales_1 tabela tem um nmero de linhas PAD calculado de 60.192 Considerando que, na realidade, a tabela contm apenas 4.672 linhas, o que ainda menos manualmente o nmero previsto. Quando estiver satisfeito com o modelo criado, voc pode usar novamente a exportao e publicar opes para criar e carregar as tabelas e publicar a actualizao Mondrian esquema para o Servidor Pentaho. Solues Alternativas Usando tabelas agregadas tem uma desvantagem considervel: as tabelas tm de ser atualizada cada vez que os dados no armazm de dados atualizado. Em menor ambientes, esse fcil de conseguir, usando os scripts de carga exportada para criar postos de trabalho simples Pentaho Data Integration. Mas no seria bom se tudo isso era desnecessria, pois seu banco de dados foi rpido o suficiente para entregar o desejado tempos de resposta, sem o uso de tabelas de agregao? No captulo 5, mencionamos algumas dessas alternativas, mas bom fazer isso de novo aqui. LucidDB, Infobright MonetDB e so todos muito rpidos, bases de dados da coluna-orientado. Estes bases de dados foram especialmente concebidos para o tipo de trabalho encontradas em um OLAP ambiente e valem a pena olhar e avaliar. No momento da escrever ainda havia problemas com o driver JDBC MonetDB e Mondrian, mas LucidDB em obras particulares muito bem em conjunto com Mondrian. A LucidDB na Wiki http://pub.eigenbase.org/wiki/LucidDbOlap descreve como configurar isso. Resumo Este captulo mostrou como criar solues OLAP para o BI Pentaho Plataforma. Os tpicos abordados incluram o seguinte: Introduo aos conceitos e sintaxe MDX Criar solues multidimensionais usando o Pentaho esquema Trabalho banco Criando vises anlise utilizando o front-end JPivot Melhorar o desempenho OLAP usando tabelas agregadas Usando o Pentaho Designer agregadas para criar tabelas agregadas CAPTULO 16 Data Mining com Weka livros populares, como Moneyball, Freakonomics, e Competir no Analytics tm aumentado o interesse em utilizar o Analytics para obter uma vantagem competitiva. Este captulo explica como algumas das tcnicas mais populares do trabalho analtico e como eles podem ser aplicados em cenrios da vida real. analistas de negcios e profissionais de BI esto acostumados a apresentar relatrios sobre o desempenho organizacional. At agora, a maioria das pessoas est familiarizada com o uso de ferramentas de BI e OLAP relatrio, para identificar excees, e responder a perguntas bsicas. O desafio para muitas pessoas que novas perguntas exigem novas formas de olhar para os dados. tcnicas de Reporting e OLAP so boas quando os tipos de perguntas so bem estabelecida, e para explicar a atividade passada ou atual. Estas tcnicas no pode ser usada para compreender as complexas relaes, explorar grandes volumes de dados detalhados, ou prever a atividade futura. Minerao de dados (incluindo visualizao e texto analytics) fornece os meios para realizar tarefas que no so possveis Estas anlises avanadas geralmente no so utilizados porque sua complexidade e custo assumido. A verdade que muitas tcnicas pode ser aplicada de forma simples, e muitas vezes com custo relativamente baixo, s vezes livre-tools. Uma das ferramentas mais populares Pentaho Data Mining (PDM), mais conhecido como Weka (rima com''''a Meca), que o tema da captulo atual. Embora minerao de dados um termo familiar utilizado para designar o assunto em mos, Algumas pessoas preferem cham-lo aprendizado de mquina ou (Automatizado) descoberta de conhecimento. aprendizagem de mquina realmente um assunto mais amplo do que a minerao de dados, mas o termos so em grande parte intercambiveis. Para este livro, nos ater ao termo minerao de dados. 503 504 Parte IV Inteligncia Aplicaes de Negcio Data Mining Primer A minerao de dados tem sido um assunto de muita confuso e s vezes at mistrio: o uso de computadores para a tomada de deciso automatizada ou simulem o processo de pensamento humano, usando redes neurais tem um efeito assustador sobre algumas pessoas. Para dizer a verdade, no h nada misterioso ou assustador minerao de dados, mas verdade que a natureza percebida complicado assusta muitos as pessoas longe dela. Isso uma pena porque a minerao de dados acrescenta um lote de potncia a sua caixa de ferramentas de anlise, embora exija um certo investimento de aprendizagem. O que exatamente a minerao de dados? A minerao de dados muitas vezes considerada uma mistura de estatstica, inteligncia artificial, banco de dados e pesquisa, mas que no realmente uma definio. Uma definio ctico pode at ser que a minerao de dados igual a estatsticas mais marketing. O ceticismo de lado, a seguinte definio comumente citado: Data Mining o processo no trivial de identificao de romance, vlidos, potencialmente padres teis e, finalmente, compreensveis em dados. UM Fayyad, G. Shapiro-Piatetsky e Smyth P.,''De Data Mining para Descoberta de Conhecimento: Uma Viso Geral'', em Avanos na Descoberta de Conhecimento e Minerao de Dados, edio U. Fayyad M, G. Shapiro Piatetsky, P. Smyth, e R. Uthurusamy, Imprensa AAAI / MIT Press, pp 1-34, 1996. Esta definio nos diz vrias coisas importantes. Em primeiro lugar, trata-se de descobrir padres nos dados que precisam ser compreendidos. A minerao de dados envolve o trabalho com grandes conjuntos de dados com milhes de linhas, por vezes, e centenas de colunas, que so de alguma forma ou de outra relacionados uns aos outros. Os padres que queremos a descobrir necessidade de ser compreensvel, portanto, os resultados tm de fazer sentido. A resultados tambm deve ser nova, o que significa que eles devem dizer-nos algo que ns no sabia antes, e os resultados devem ser vlidos dentro de um contexto especfico. Alm disso, as conversaes sobre a definio de um processo no-trivial, o que significa que no estamos fazendo isso por diverso, mas para resolver um negcio, social ou cientfica problema. aplicaes de negcios comuns de minerao de dados so a deteco de fraudes, marketing direto e reteno de clientes. Mas voc sabia que a minerao de dados tambm uma ferramenta importante na agricultura, onde usado para diagnosticar de soja doenas ou marcar a qualidade dos cogumelos? Outro exemplo o da rea das cincias da vida, onde a minerao de dados utilizado para prever a taxa de sobrevivncia embries. Na verdade, existem muitas reas onde a minerao de dados poderia ser til, mas no nosso caso, vamos nos concentrar em aplicaes de marketing e vendas com base em os dados no banco de dados mundial de filmes de classe. Processo de Data Mining Uma maneira fcil de comear olhar para a minerao de dados como um processo. De fato, em 1996, um grupo de empresas industriais decidiu desenvolver uma minerao de dados Captulo 16 Data Mining com Weka 505 metodologia conhecida atualmente como CRISP-DM, abreviao de Cruz Indstria Stan- Processo dard para Minerao de Dados (um guia de referncia completa est disponvel online em http://www.crisp-dm.org). O fluxo de trabalho de base que tinham acordado exibido na Figura 16-1, que mostra o fluxo natural das etapas que compem um conjunto de dados minerao processo. Negcios Entendimento Dados Entendimento Dados Preparao Implantao Modelando Dados Avaliao Figura 16-1: mtodo CRISP-DM Este modelo de processo mostra que h muita sobreposio entre BI e dados atividades de minerao: A minerao de dados, como acontece com o BI, um ciclo contnuo de atividades com o mximo objetivo de tomar melhores decises Os dados so o centro de todas as atividades, sem dados, no h BI e no h dados minerao As trs primeiras etapas do modelo de processo muito semelhante construo de uma data warehouse. Conhecimento do negcio, compreenso dos dados, e dados preparao foram objecto dos captulos 5-11, e tudo o descrito no pode ser utilizada para minerao de dados tambm. 506 Parte IV Inteligncia Aplicaes de Negcio Tal como em projetos de BI, cerca de 70 a 80 por cento do esforo gasto no primeiro trs atividades. Obtendo os dados certos e obter os dados corretos ainda a parte mais demorada de qualquer projeto de minerao de dados como para um BI projeto. A diferena comea logo que voc pode comear com a fase de modelagem. Modelagem significa que voc considera os diferentes modelos e escolher o melhor com base no seu desempenho preditivo, ou seja, voc est procurando o melhor ajuste.''''Em um cenrio do mundo real isso envolve testar diferentes solues com diferentes conjuntos de dados de exemplo, tentando encontrar um modelo que produz os resultados mais estveis entre as diferentes amostras. E por resultados, significa que o modelo capaz prever o resultado com base em dados de entrada. O objetivo da minerao de dados no para explicar todas as relaes possveis entre os dados, mas mais voltado para encontrar uma soluo prtica para prever certos resultados. Data Mining Toolset A natureza preditivo de minerao de dados exatamente o que o torna to atraente para um grande nmero de usurios de negcios e que a distingue de BI processos regulares e ferramentas. BI, como j cobriu nos captulos anteriores deste livro, foi sobre os relatrios e anlise sobre o desempenho passado, e comparando as metas com as medidas reais. A minerao de dados adiciona a capacidade de fazer previses sobre o desempenho futuro, dentro de certos limites de confiana. As ferramentas para fazer isso so modelos e algoritmos. As tarefas que queremos realizar com a minerao de dados so diferentes do que temos visto at agora, mas a maioria das metas pode ser alcanada usando as seguintes quatro categorias principais: classificao, associao, agregao, de regresso e. Cada um dos Estes sero explicados nas sees seguintes. O que todas essas categorias tm em comum o fato de que eles tentam prever ou explicar certos resultados (O alvo ou desconhecido valor) com base nos dados disponveis. Classificao Classificao o processo de dividir um conjunto de dados em mutuamente exclusivos grupos de tal forma que os membros de cada grupo so os''fechar''possvel grupos entre si e diferentes como''muito''possvel um do outro, onde a distncia medida com relao a varivel especfica (s) que voc est tentando de prever. Por exemplo, um tpico problema de classificao dividir um banco de dados de clientes em grupos que so to homogneos quanto possvel no que diz respeito uma varivel de reteno com valores corredor de fundo e leaver. Voc tambm pode tentar a classificao clientes com base em sua classe de receita, como voc vai descobrir mais tarde, a fim de prever a rentabilidade possvel de um novo cliente. A classificao comea por definir a varivel de desfecho, neste caso, por exemplo, retention_group ou revenue_class. Para treinar o modelo, voc Captulo 16 Data Mining com Weka 507 preciso de um conjunto de dados com diferentes variveis e um resultado conhecido. Na reteno caso voc precisaria de um conjunto de dados composto de clientes leais que tm foram produtos de encomenda de pelo menos dois anos, combinado com os clientes que rescindido seu contrato, em algum momento no tempo. Para ambos os grupos que voc necessitam de informaes extras, como dados demogrficos, dados geogrficos, ea ordem da histria. Com base nestes dados voc pode ento determinar quais variveis contribuem mais para esse resultado, para passar meses em ltima instncia do cliente, os itens adquiridos durante um determinado perodo, ou talvez o grupo de renda. Determinao da impacto de cada uma dessas variveis, ou qualquer combinao deles um tpico extraco de dados da tarefa. Depois de concludo o processo (que trem o modelo), voc capaz de validar o modelo atravs da execuo do algoritmo de classificao contra um conjunto maior de dados, que chamado testar o modelo. Isso permite que voc verifique se o modelo satisfaz suas necessidades (o que poderia ser''cliente grupo de lucratividade previram corretamente em 95% ou mais dos casos'') e se isso acontecer, ele pode ser usado para os futuros clientes da pontuao tambm. Porque a classificao uma das aplicaes mais utilizadas da minerao de dados (Eo mais fcil de obter seus ps molhados), vamos trabalhar com um par de exemplos mais adiante neste captulo. Clustering Cluster ou segmentao do banco de dados muito semelhante classificao na sentido de tentar identificar quais os elementos de um conjunto de dados ao ordinria caractersticas e agrup-los com base nessas caractersticas. A diferena mais notvel, entretanto, que com o agrupamento deixar o algoritmo determinar os grupos com base em uma seleo ou at mesmo todos os dados disponveis, enquanto com a classificao que voc j tem os grupos definidos. Esta diferena tambm identificados como supervisionada (Classificao) versus no supervisionado (Clustering) de aprendizagem. Clustering tem uma natureza mais exploratria, porque quando o data-mining algoritmo determinou que os grupos de itens juntos, voc pode olhar o raciocnio por trs dele. A ferramenta de minerao de dados vai mostrar como ele fez a sua deciso e quais as variveis que mais contriburam para os diferentes grupos. Agora cabe ao analista investigar os diferentes grupos, porque eles so diferentes, e como isso pode ser usado para tomar melhores decises. Se os clusters encontrados comprovam para ser til, eles podem ento ser utilizados como classes em uma anlise de classificao. Associao Com a associao que voc tente descobrir qual a relao entre duas ou mais elementos de dados em um conjunto de dados. Uma das melhores aplicaes conhecidas da associao a anlise de cesta de mercado, onde um grande nmero de transaes so verificados para determinar quais os artigos so comprados em que combinao. Um exemplo famoso disso o caso das fraldas e cerveja que voc possa ter ouvido ou lido. A grande cadeia de varejo analisados milhes de transaes de vendas a partir do ponto de vendas 508 Parte IV Inteligncia Aplicaes de Negcio sistema e encontrou uma forte correlao entre as vendas de cerveja e fraldas. A explicao que chegou foi que os jovens pais a caminho de casa do trabalho pegou os mantimentos. E desde que eles no poderiam sair com seus amigos por causa do beb, que pegou um pacote de cerveja para beber em casa. Como resultado, a cadeia de varejo comearam a posio dos dois produtos junto a cada outros nas lojas para aumentar as vendas e servio melhor seus clientes. Ou pelo menos, essa a histria. Descobriu-se finalmente que houve de fato uma correlao, mas no uma relao causal, sob a forma''compra fralda compra cerveja.''A lio aqui, e um dos erros mais freqentes feitas em minerao de dados, confuso correlao de causalidade. Numricos de previso (Regresso) Os trs categorias de aplicaes de minerao de dados especficos prever classes (valores nominais), que so valores no-numricos, como boa,ruim, Ou leaver. Muitas vezes, voc quer prever um resultado numrico com base no passado eventos, que um estilo diferente de aplicao, porque agora voc no tem valores discretos como resultado, mas uma gama infinita de valores numricos possveis. Pense em prever o desempenho de um computador baseado em componentes e as configuraes utilizadas, ou a estimativa de receita anual de um cliente baseado sobre as caractersticas do cliente e comportamento de compra. Ns no cobriremos regresso neste captulo, mas o''Leitura'', seco no fim do captulo contm algumas excelentes referncias se voc quiser aprofundar mais o assunto. Algoritmos de minerao de dados As quatro categorias de aplicaes de minerao de dados introduzidos no anterior sees so a classificao de alto nvel das ferramentas disponveis para a minerao de dados. Voc pode achar categorizaes diferentes em outras fontes, mas as categorias que uso aqui so baseados na diviso que o criador do Weka escolheu. O Weka ferramentas, por conseguinte, tambm contm estas mesmas quatro categorias bsicas de minerao de dados. Categorias no so suficientes embora, para cada categoria so vrios algoritmos fornecidas para fazer o trabalho. Assim, a classificao um tipo especfico de dados minerao, mas a classificao dos dados, precisamos de instrumentos tais como rvores de deciso ou algoritmos regra. Algoritmos so o que tornam uma ferramenta de minerao de dados poderoso. Em geral, os mineiros, os dados no se preocupam com interfaces de fantasia ou visualizao agradvel ferramentas, enquanto os algoritmos so suficientemente poderoso de uma previso ponto de vista. A maioria dos algoritmos populares esto disponveis em domnio pblico como eles so o resultado de pesquisas cientficas divulgadas. Weka contm mais de 45 algoritmos. ferramentas proprietrias de minerao de dados freqentemente contm melhorar ou ampliar as verses de algoritmos disponveis publicamente. Um bom exemplo o algoritmo de rvore de deciso, conhecido como C4.5, que o laborioso bsico de qualquer minerador de dados. Um ajuste verso deste algoritmo est disponvel no Weka como o classificador de rvore de J48, mas o sucessor do C4.5, que conhecido como C5.0, s est disponvel a partir de um Captulo 16 Data Mining com Weka 509 vendedor comercial. Porque esta nova verso apresenta melhorias tanto na velocidade e consumo de memria (e pequenas melhorias na preciso), muitas organizaes decidem adquirir este software para obter melhores resultados de seus esforos de minerao de dados. Embora C5 tem reforo embutido, voc pode comear um aumento de desempenho semelhante com Weka por J48 combinando e AdaBoost meta classificador. Treinamento e teste Dois termos que so freqentemente confundidos com os outros ser usada extensivamente quando voc comea com um processo de minerao de dados: treinamento e teste. Formao o processo de criao do modelo de minerao de dados; testes est usando um modelo obtidos a partir da fase de treinamento para validar a qualidade do modelo. A dados utilizados para essas duas atividades no devem ser os mesmos. Para tomar esta ainda mais: no deve haver qualquer sobreposio do conjunto de dados usados para treinar- o e do conjunto de dados utilizados para testes. (H excees possvel esta regra, mas eles no sero abordados aqui.) E para tornar ainda mais complicada: os dados utilizados para a formao deve ser uma seleo aleatria de con- tamanho considervel a partir do conjunto total de dados. Uma boa regra que dois teros dos dados deve ser utilizado para o treinamento, eo restante (um tero) para o teste. Isto normalmente referido como o mtodo de validao''''do modelo de avaliao. Voc pode enfrentar novos desafios ao selecionar os dados corretos para treinar o seu modelo. Por exemplo, embora voc pode querer, no vivel a utilizao de 100 mil linhas de dados para construir um modelo, por isso, se o conjunto de dados muito grande voc deve considerar uma amostra do que antes de voc comear a construir o seu modelo. Neste captulo vamos mostrar como isso pode ser conseguido atravs de Pentaho Data Integration (PDI). Estratificada de validao cruzada Os conjuntos de dados tem um casal de possveis problemas que tornam difcil de us-los para construir um modelo de. A primeira questo a aleatoriedade dos dados selecionados e possibilidade de que os valores de classe so desigualmente distribudos entre a formao eo conjunto de teste. A soluo para isso estratificar os dados, o que garante que ambos os conjuntos de treinamento e de teste tm a mesma distribuio de valores de classe como os dados como um todo. O segundo problema ocorre quando os dados so limitados. A validao mtodo (com estratificao) s vai uma parte do caminho para a proteco contra representao desigual de entrada e sada de valores em conjuntos de treinamento e teste. A forma mais geral para compensar qualquer vis causado pela amostra particular escolhido para a validao usar uma tcnica estatstica chamada validao cruzada. Em validao cruzada, os dados so divididos em um nmero fixo de mutuamente excludentes parties ou dobras. Suponha que voc use quatro dobras que significa que os dados so dividida em quatro pedaos aproximadamente iguais. Uma vezes usado para testes 510 Parte IV Inteligncia Aplicaes de Negcio e os outros trs para a formao. Este processo repetido com uma dobra diferente de ensaio e outras trs para a formao at todas as dobras foram utilizados em cada funo. Usando estratificados em dez vezes a validao cruzada se tornou a forma padro de predizer o desempenho de um algoritmo de aprendizado em aprendizado de mquina. Testes extensivos em muitos conjuntos de dados de benchmark mostram que dez sobre o nmero certo de dobras para obter a melhor estimativa de preciso. O Weka Workbench Weka uma ferramenta de minerao de dados, originalmente desenvolvido na Universidade de Waikato na Nova Zelndia. O nome um acrnimo para Waikato Ambiente para Conhecimento de anlise, mas tambm o nome de um pssaro, que agora o projeto mascote. Weka comeou como um projeto financiado pelo governo em 1993 e seu objetivo ''foi desenvolver um estado da arte da bancada de ferramentas de minerao de dados.''Embora Pentaho adotou a ferramenta Weka como seu mecanismo de minerao de dados, a nica parte da plataforma de BI que ainda no est disponvel no download do Pentaho regular sites. Alm disso, Weka ainda no faz parte do nightly builds em Hudson, e o cdigo fonte no pode ser descarregado a partir dos repositrios SVN Pentaho. A integrao na plataforma Pentaho limitada a um plugin especial para o Chaleira para chamar um algoritmo Weka pontuao. No entanto, porque a ferramenta est em uma classe de sua prprios, e provavelmente ir ser utilizado por especialistas, isto no vai representar um grande problema. Em 1996, a primeira verso pblica (2,1) foi lanado e em 1999 a verso 3 (100 por cento escrito em Java) foi lanado. A atual verso 3.6 um incremental liberao ainda com base no cdigo 3.0, tornando Weka, provavelmente, o mais maduro parte da plataforma de BI Pentaho. Weka consiste de trs ferramentas diferentes, cada um dos quais pode ser usado indepen- forma independente, mas, quando combinados, fazem uma plataforma de minerao de dados muito poderosa. (Na verdade existem quatro ferramentas, mas duvidamos que voc jamais vai usar o Cliente simples, que uma interface de linha de comando para Weka) As principais ferramentas so as seguintes.: O Explorer ponto de partida para se familiarizar com Weka e dados minerao. Explorer permite uma maneira fcil e exploratrio (da o nome) do trabalhar com conjuntos de dados. Tambm oferece uma ampla gama de funcionalidades. Experimentador intencionados para a criao e execuo de experimentos maior onde vrios conjuntos de dados e vrios algoritmos podem ser adicionados simultanea- simultaneamente. Os resultados do experimento pode ser comparado com cada , para determinar quais foram os resultados (estatstica) melhor do que outros. KnowledgeFlow-A mais recente adio ao conjunto de ferramentas Weka pode ser usado para construir fluxos de trabalho de minerao de dados completo semelhante ao dos fluxos que so familiarizado com a Pentaho Data Integration ou Design Studio. Captulo 16 Data Mining com Weka 511 Formatos de entrada Weka Antes de analisar os dados, ele deve estar preparado para o uso em Weka. Weka pode ler dados de mltiplas fontes, incluindo diretamente de um banco de dados JDBC e CSV. Weka tambm tem seus prprios formatos de arquivos nativos. O primeiro chamado ARFF (Attribute relao File Format), que um formato de arquivo baseado em texto, mas com metadados adicionados para que Weka sabe que tipo de dados est no arquivo. Listagem 16-1 mostra um exemplo de um arquivo ARFF. Como voc pode ver, ele contm o relao (o sujeito da anlise), todos os atributos utilizados, incluindo tanto os possveis valores ou o tipo de dados e os dados em si. Listagem 16-1: ARFF formato com os dados meteorolgicos @ Tempo relativamente @ Atributo @ Atributo @ Atributo @ Atributo @ Atributo perspectivas {ensolarado, nublado e chuvoso} temperatura real umidade real ventoso {verdadeiro, falso} jogar {sim, no} @ Dados ensolarado, 85,85, FALSE, no ensolarado, 80,90, TRUE, no nublado, 83,86, false, yes chuvosa, 70,96, false, yes chuvosa, 68,80, false, yes chuvosa, 65,70, TRUE, no nublado, 64,65, TRUE, sim ensolarado, 72,95, FALSE, no ensolarado, 69,70, false, yes chuvosa, 75,80, false, yes ensolarado, 75,70, TRUE, sim nublado, 72,90, TRUE, sim nublado, 81,75, false, yes chuvosa, 71,91, TRUE, no O segundo formato chamado XRFF (eXtensible atributo-relao de formato de arquivo) e uma extenso baseada em XML do formato ARFF. Ambos ARFF e XRFF arquivos podem ser abertos de forma arquivado tambm. XRFF tem uma vantagem mais ARFF padro que permite que o atributo da classe a ser especificada na arquivo. arquivos padro ARFF no especificar um atributo de classe e deix-lo para o usurio para selecionar uma via interface grfica ou atravs de uma opo se estiver usando o Weka interface de linha de comando. Na Listagem 16-1, o atributo jogar considerada classe (varivel de desfecho), o usurio teria que estar ciente disso e escolher este atributo explicitamente. XRFF, por outro lado, permite que uma classe padro 512 Parte IV Inteligncia Aplicaes de Negcio atributo a ser definido no arquivo. Este atributo, em seguida, escolhido automaticamente Weka na GUI ou interface de linha de comando. Claro, isso no impede que o usurio selecionar manualmente outro atributo a ser tratada como a classe se o desejarem. Finalmente, XRFF permite adicionar o atributo e instncia pesos (ARFF s suporta pesos exemplo), que permite equilibrar a importncia de cada atributo em um resultado. H tambm um par de outros formatos de arquivo que pode lidar com Weka, como como C4.5, que um formato de arquivo padro semelhante ao ARFF mas o atributo descries e os dados so divididos em dois arquivos separados. Com o LibSVM (Biblioteca de Support Vector Machine), Luz SVM, e SBI (binrio serializado Instncias), Weka capaz de manipular dados de sada de minerao de dados de outros ou pacotes de estatstica tambm. Configurando conexes de banco de dados Weka Como mencionado, Weka oferece a opo de ler dados de bancos de dados usando a interface JDBC. Antes que voc possa usar este recurso algum esforo adicional de instalao necessria porque no h out-of-the-box de suporte de banco de dados. Para ver o comportamento padro do Weka, ao tentar utilizar um banco de dados, inicie o Weka a partir da primeira linha de comando. DICA Um programa em Java normalmente pode ser iniciado atravs da abertura de uma tela do terminal ou pressionando as teclas Alt + F2 e digitando o comando jar name> <jarfile - java No caso do Weka, este se tornaria java-jar weka.jar Se voc selecionar Explorer a partir da GUI Chooser, voc ver a seguinte erros na consola: Registrando --- --- Editores Weka Erro, no CLASSPATH - RmiJdbc.RJDriver: Tentando adicionar JDBC driver? Erro, no CLASSPATH - jdbc.idbDriver: Tentando adicionar JDBC driver? Erro, no CLASSPATH - org.gjt.mm.mysql.Driver: Tentando adicionar JDBC driver? Erro, no CLASSPATH - com.mckoi.JDBCDriver: Tentando adicionar JDBC driver? Erro, no CLASSPATH - org.hsqldb.jdbcDriver: Tentando adicionar JDBC driver? Isso significa que Weka no consegue encontrar esses drivers, o que bom, desde que voc no precisa se conectar a um banco de dados. Voc gostaria de ler dados a partir do WCM armazm de dados, ento algumas modificaes precisam ser feitas. Primeiro, voc necessidade de alargar o caminho de classe. O caminho de classe uma varivel de ambiente chamada CLASSPATH onde o programa pode localizar as classes Java necessrias para um determinado tarefa. Neste caso voc precisa especificar a localizao de um driver JDBC, ento adicionar o Captulo 16 Data Mining com Weka 513 MySql driver para o CLASSPATH varivel. Use o driver que j est disponvel no Pentaho BI Suite e digite o seguinte comando no comando linha (observe que todo o comando deve ser em uma nica linha): Export CLASSPATH = $ CLASSPATH: / opt / pentaho / biserver-ce / tomcat/common/lib/mysql-connector-java-5.0.7.jar Se voc quiser usar outro banco de dados voc pode substituir o mysql conector para o condutor para o seu banco de dados. Adicionar mais de um banco de dados requer alargamento do caminho de classe com os drivers extra. Basta adicion-los ao comando como demonstrado anteriormente, separados por dois pontos (:). NOTA entradas de caminho de Linux de classe so separadas por dois pontos; no Windows um ponto e vrgula (;) usado. O prximo passo ter certeza de que Weka pode traduzir todos os MySQL tipos de dados utilizados em nosso armazm de dados. Porque ns definimos algum inteiro colunas como unsigned (que Weka no pode ler por padro), voc precisa modificar as configuraes de banco de dados em um arquivo chamado DatabaseUtils.prop. E, enquanto voc est nisso, voc tambm pode se livrar do incmodo classe mensagens de erro de caminho. Weka olha para o . Prop arquivos nos seguintes trs localidades, e na na seguinte ordem: o diretrio atual, o diretrio home do usurio e, finalmente, no subdiretrio do experimento weka.jar arquivo. Embora voc possa alterar esta ltima diretamente, recomendamos fortemente contra ela, logo que reinstalar ou atualizar a instalao Weka atual todas as alteraes sero perdidas. A primeira opo tambm no o melhor porque isso iria for-lo para sempre Weka iniciar a partir do diretrio Weka. Portanto, voc precisa criar o arquivo no seu diretrio home. Embora voc no deseja modificar o arquivo jar, contm amostra DatabaseUtils.props arquivos para os bancos de dados mais comuns, incluindo o MySQL. A maneira mais fcil de conseguir este arquivo em seu diretrio home abrir o weka.jar arquivo e navegue at a DatabaseUtils arquivos como mostrado na Figura 16-2. O arquivo que voc precisa aquele com o . Mysql extenso, e porque no pode ser copiados a partir do jar diretamente, abri-lo primeiro com um duplo clique no arquivo. O arquivo abre em um editor de texto padro para que voc possa fazer as modificaes necessrias. A linha com o driver JDBC deve ser alterada para: com.mysql.jdbc.Driver jdbcDriver = ea URL JDBC para jdbcURL = jdbc: mysql: / / localhost: 3306/wcm_dwh Isto pressupe que voc estiver executando o servidor de banco de dados na mquina local. Abaixo, a URL que voc vai ver os tipos de dados especficos que tm sido comentadas 514 Parte IV Inteligncia Aplicaes de Negcio para fora. Estes so os padres Weka e voc no quer mud-los. Agora voc deve adicionar os mapeamentos inteiro sem sinal algum lugar abaixo desta seo com as seguintes linhas: TINYINT_UNSIGNED = 3 SMALLINT_UNSIGNED 4 = INTEGER_UNSIGNED = 5 Figura 16-2: Weka.jar DatabaseUtils arquivos Em seguida, voc deve salvar o arquivo como DatabaseUtils.props em sua casa diretrio. Uma descrio completa das propriedades do DatabaseUtils adereos. arquivo podem ser encontradas on-line em http://weka.wiki.sourceforge.net/ experimento weka DatabaseUtils.props. Na prxima seo, vamos explicar como Weka deve ser iniciado atravs de um caminho de classe personalizado. Comeando Weka Se voc seguiu as instrues do pargrafo anterior e voc comea Weka novamente, executando o java - jar weka.jar comando e selecione Explorer a partir do seletor de GUI, voc vai notar que ainda h uma mensagem de erro esquerda: Registrando --- --- Editores Weka Erro, no CLASSPATH - com.mysql.jdbc.Driver: Tentando adicionar JDBC driver? Novamente, no h nada para se preocupar, apenas um aviso de que o drivers de banco de dados no esto no caminho de classe ainda. CLASSPATH uma ambiente varivel, o que significa que pode ser facilmente estendida. Como voc quer ler dados de um banco de dados MySQL, voc deve adicionar o driver do MySQL para a classe Captulo 16 Data Mining com Weka 515 caminho. Use o driver que j est disponvel no Pentaho BI Suite e introduzir o seguinte comando na linha de comando (o comando deve estar em uma nica linha): Export CLASSPATH = $ CLASSPATH: / opt / pentaho / biserver-ce / tomcat/common/lib/mysql-connector-java-5.0.7.jar A fim de utilizar o caminho de classe ajustada, voc tem que explicitamente se referem a ele quando a partir Weka. Se voc usar o -Jar opo novamente, o CLASSPATH varivel ser substitudos. Voc tambm precisa especificar a classe principal deve comear com Weka, e voc pode ajustar a quantidade de memria de reserva para Weka, ao mesmo tempo. O seleccionador de GUI agora pode ser iniciado com o seguinte comando, mas voc necessidade de estar no weka diretrio para que ele funcione: java-Xmx128m-classpath $ CLASSPATH: weka.gui.GUIChooser weka.jar A melhor maneira usar o seguinte comando com o Weka completo caminho includo (novamente, este comando deve ser em uma nica linha): java-Xmx128m-classpath $ CLASSPATH: / opt / pentaho / weka.gui.GUIChooser weka-3-6-0/weka.jar Agora quando voc iniciar o Explorer a partir do seletor de GUI, o erro do MySQL se foi e voc pode usar a opo Open DB para se conectar aos dados WCM Armazm banco de dados. O ltimo comando pode tambm ser copiado para um novo lanador para torn-lo parte do menu Pentaho. A -Xmx parmetro utilizado no comando especifica a quantidade de memria que Weka vai usar. Ao trabalhar com grandes conjuntos de dados, voc deve definir esse valor a um nvel elevado para evitar a mensagem de erro na Figura 16-3. Figura 16-3: Weka erro de memria Aps esse erro, Weka fecha, e nenhum dos dados so salvos, ento melhor usar tanta memria como voc pode poupar (por exemplo, usar -Xmx1024m para o incio com um gigabyte de RAM). 516 Parte IV Inteligncia Aplicaes de Negcio O Weka Explorer O Weka Explorer pode ser iniciado a partir do seletor GUI ou directamente a partir do linha de comando usando o seguinte comando: java-Xmx128m-classpath $ CLASSPATH: / opt / pentaho / weka.gui.explorer.Explorer weka-3-6-0/weka.jar Agora, voc provavelmente vai querer saber se a conexo com o banco tem sido configurado corretamente, ento clique em Abrir DB para iniciar o Visualizador de SQL. Se tudo funciona da maneira que deveria, a URL do banco de dados agora visvel na conexo painel. Em seguida, voc precisa especificar o usurio e senha, clicando no usurio opo, aps o qual voc pode se conectar ao banco de dados. A caixa de Informao na parte inferior do Visualizador de SQL ir mostrar uma mensagem que a conexo bem- sucedida, e voc pode inserir uma consulta no painel Consulta. Porque este painel no apoi-lo, por escrito, a sua consulta de forma alguma em tudo, talvez seja uma boa idia para desenvolver a sua primeira consulta em outro ambiente, como o MySQL Query Browser, Esquilo, ou SQLeonardo. Como exemplo, digite a consulta selecione * A partir de dim_date. Se tudo foi configurado corretamente, os resultados devem ser exibida agora no painel de fundo. Se no, revise a configurao anterior etapas. O Weka Explorer uma aplicao de minerao de dados completo em si mesmo e lhe permite obter dados a partir de arquivos em diversos formatos, a partir de um banco de dados consulta, ou de uma URL. Ela inclui ainda uma opo para gerar um conjunto artificial de dados para trabalhar (jogar) com, que pode ser til se voc quiser comparar diferentes abordagens e algoritmos sem ficar distrado pelo contedo ou o significado dos dados. Pr-processamento inclui tambm a capacidade de aplicar filtros para os dados, tanto em atributos (colunas) e em instncias (linhas). Para classificao, agrupamento, associao e predio numrica, a bancada oferece guias especiais, onde as quatro categorias de minerao de dados pode ser usada, cada com sua prpria coleo de algoritmos e opes. A classificao e agrupamento modelos tambm podem ser salvos para uso fora da bancada Weka, como ns mostrarei adiante. Finalmente, h uma opo de visualizao, que exibido na Figura 16-4. NOTA Apesar de um bom add-on, as chances so que voc no vai pegar Weka para suas capacidades de visualizao espectaculares, porque h muitas outras ferramentas que so mais adequados para esta finalidade. Uma alternativa melhor usar RWeka, que contm tanto Weka ea biblioteca R estatsticos, incluindo RGraph. No ltimo exemplo deste captulo, voc ver o Explorer usado para criar um modelo para o PDI Weka Scoring plugin. Captulo 16 Data Mining com Weka 517 Figura 16-4: visualizao de Regresso O experimentador Weka O experimentador tem dois modos de operao simples e avanados, e permite que voc execute uma srie de algoritmos de minerao de dados qualquer nmero de vezes contra uma srie de conjuntos de dados. Isto tambm significa que uma ferramenta para a mais avanada usurios, porque no dar-lhe feedback imediato sobre os resultados de uma experimento. H uma srie de vantagens em usar esta ferramenta: Vrias operaes podem ser executadas em um nico lote. Um nmero de iteraes pode ser definido, forando o algoritmo para executar vrias tempos. Correr dez iteraes com um resultado dez vezes validao cruzada na execuo do classificador mesmo cem vezes, tornando mais resultados estatisticamente vlidos. Todos os resultados so gravados em um arquivo CSV (ou ARFF) ou tabela de banco de dados para fcil anlise e comparao dos diferentes algoritmos. Os resultados podem ser analisados e testados utilizando qualquer campo comparao dos arquivo de resultados. Figura 16-5 mostra a tela Analisar depois de executar um Zeror e J48 algoritmo no mesmo conjunto de dados. fcil ver que a deciso algoritmo de rvore fornece resultados muito melhores. Experimente configuraes podem ser salvas e modificados. As notas podem ser adicionados a cada experimento. Embora o pesquisador no ser a primeira parte do conjunto de ferramentas que Weka voc vai estar usando, ele um complemento poderoso e, certamente, algo que vale mais investigao. 518 Parte IV Inteligncia Aplicaes de Negcio Figura 16-5: anlise Experimentador Weka KnowledgeFlow O KnowledgeFlow Weka como um explorador de esterides, na verdade, assemelha-se a forma como algumas das principais ferramentas comerciais de apoio criao de minerao de dados fluxos e processos de minerao de dados. Quando voc sabe o caminho de volta Explorer, KnowledgeFlow ir realizar alguns segredos como o arranjo dos ferramentas disponveis criada da mesma forma e todos os algoritmos do Explorer so Tambm disponvel na ferramenta KnowledgeFlow. A principal diferena a grfica layout do fluxo de trabalho, que tambm permite a ramificao mais complexa que apoiado pelo Explorer. Figura 16-6 mostra um exemplo simples de um classificao de fluxo. O desenvolvimento de KnowledgeFlow ainda est em curso, mas para alm da A interface visualmente atraentes existem algumas outras coisas que o diferenciam a partir do Explorer: KnowledgeFlow pode processar mltiplas transmisses em paralelo. Os dados podem ser processados de forma incremental, bem como em lote. Os filtros podem ser encadeados (Explorer pode manipular apenas um de cada vez). A arquitetura de plugin est disponvel, assim como o PDI, o que torna uma ambiente extensvel. Captulo 16 Data Mining com Weka 519 Figura 16-6: exemplo KnowledgeFlow Mais informaes sobre KnowledgeFlow pode ser encontrado no Weka Wiki. Usando Weka com Pentaho Como explicamos na introduo deste captulo, Weka um baixo acoplamento parte da plataforma de BI Pentaho. H duas partes da plataforma onde algum tipo de integrao existe, com PDI ter maior apoio ao Weka funcionalidade fornecida por plugins extra. Embora haja apenas um plugin que realmente usa os modelos construdos com o Explorador Weka, existem dois outros que ajudam voc a preparar e fornecer dados de minerao de dados: Weka Scoring-Ativa a utilizao de um modelo Weka de dentro de um PDI transformao. uma ferramenta que permite que os modelos de classificao e agrupamento criado com Weka para ser usado em uma transformao PDI. Scoring simplesmente significa que as linhas de entrada de dados so marcados (varivel de desfecho determinado) durante a transformao. A pontuao plugin capaz de anexar um rtulo previsto (classificao / agrupamento), nmero (regresso), ou distribuio de probabilidade (classificao / agrupamento) para uma linha de dados. ARFF-Output Cria um arquivo no formato ARFF (ver listagem 16-1) a ser utilizado em Weka. Os formatos de campo de entrada de PDI so mapeados para ARFF formato usando as seguintes regras: String: nominal 520 Parte IV Inteligncia Aplicaes de Negcio Number, Integer: nmero Data: data Reservatrio de amostragem-A ferramenta que lhe permite obter uma seleo aleatria de linhas de um fluxo de dados de entrada Chaleira. Todas as linhas tm o mesmo chance de ser selecionado (por amostragem uniforme). Esta etapa particularmente til em conjunto com a etapa de sada ARFF, a fim de gerar um dados adequados de tamanho definido para ser usado pelo Weka. A partir do PDI verso 3.2, este no mais um plugin, mas faz parte das etapas regulares. Adicionando Plugins Weka PDI Antes que voc possa usar qualquer um dos plugins descrito at agora, eles precisam ser adicionados para uma instalao existente PDI. Alm disso, o weka.jar arquivo precisa ser adicionado tambm. Os passos seguintes descrevem como isso funciona. 1. Faa o download do plugin do Wiki em Pentaho http://wiki.pentaho mostrar .com / EAI / Lista + de + Disponvel + + Pentaho Data Integration + + Plug-Ins. 2. Descompacte o zip, cada arquivo zip ir criar um novo subdiretrio no localizao actual. 3. Criar um novo subdiretrio para cada plugin no mbito do / Opt/Pentaho/data- integrao / plugins / etapas diretrio e nome de cada um de acordo com o plugin. 4. Copie os arquivos do subdiretrio implantao do descompactou download de arquivos em subdiretrios recm-criado a partir da Etapa 3. 5. Copie o arquivo weka.jar Weka a partir do diretrio principal (no nosso caso, / Opt/Pentaho/weka-3-6-0) Para os subdiretrios do plugin passos para Pontuar Weka e as etapas de sada ARFF. 6. Reinicie Spoon (PDI). Spoon deve ter agora os novos passos disponveis: contm a pasta de sada a etapa de sada ARFF, a pasta contm o Transform Weka etapa de pontuao, ea pasta contm Estatsticas do Reservatrio etapa de amostragem. NOTA O plugin zipado arquivos contm mais do que apenas a extenso de implantao. A documentao do usurio para a etapa est disponvel como um arquivo PDF do subdiretrio / Doc. Comeando com Weka e PDI A parte final do captulo consiste de um fluxo de trabalho completo que envolve dados preparao com PDI, a criao de modelos usando Weka, e processamento de dados utilizando o placar Weka plugin. A WekaScoring.pdf documento includo plugin no arquivo zip contm um exemplo simples de como usar a pontuao Captulo 16 Data Mining com Weka 521 funcionalidade no PDI e trabalha com uma amostra de dados set (pendigits), que tambm faz parte do arquivo zip. Voc pode usar esse documento como uma referncia, porque ns ir utilizar o mesmo fluxo de trabalho e funcionalidade aqui, mas vamos usar um conjunto de dados diferente que mais se assemelha a dados que temos disponveis no WCM data warehouse. Aquisio de Dados e Preparao Tal como no BI, a maioria do esforo de minerao de dados gasto na obteno de dados de boa qualidade para trabalhar. Felizmente, voc pode pular algumas etapas e construir sobre o trabalho j feito por outros. O conjunto de dados que voc ir usar extrado os EUA Os dados do censo e j contm uma seleo significativa. Ela pode ser recuperada a partir de http://archive.ics.uci.edu/ml/datasets.html (Ou no site para este livro) e chamada de dados Adulto set.1 bastante grande, o que permite voc dividi-la primeiro usando o Reservatrio etapa de amostragem, e est em um sistema inutilizvel formato, que obriga a utilizao PDI para preparar os dados e convert-lo para um formato ARFF primeiro. O conjunto de dados contm 14 atributos demogrficos, alm de a varivel de classe, e pode ser usado para prever se uma pessoa com certas caractersticas faz mais ou menos de 50.000 dlares por ano. Voc precisa de trs arquivos para este exerccio: adult.names contm a descrio dos dados e os resultados da algoritmos utilizados anteriormente. Note que o algoritmo do Weka J48 no est listado aqui, voc pode realmente comparar este com o C4.5 original. adult.data contm os dados que voc ir utilizar para o treinamento do modelo. adult.test contm o conjunto de teste para validar o modelo. Baixe os trs arquivos em um diretrio de escolha (ou criar um trabalho e utilizar o etapa HTTP para l-los directamente a partir da URL). Ns adicionamos um diretrio de dados para a raiz Pentaho para este exerccio (/ Opt / pentaho / dados). Voc quer fazer o seguinte: Mesclar os dados e arquivo de teste. Use o Sampler Reservatrio para extrair 10 mil linhas. Exportar os dados da amostra como um arquivo ARFF. A completa transformao mostrado na Figura 16-7. Vamos explicar brevemente como criar este, a transformao completa pode ser encontradas no site para este livro em www.wiley.com / go / pentahosolutions. 1. Em primeiro lugar, comear a colher e criar uma nova transformao. Comece por criar um CSV entrada com o adult.data arquivo (voc ver porqu mais adiante). Porque este arquivo no tem uma linha de cabealho, voc ter que especificar os nomes de campo Assuno, A. & Newman, D. J. (2007). UCI Machine Learning Repository [http://www.ics.uci . Edu /~mlearn] / MLRepository.html. Irvine, CA: Universidade da Califrnia, Escola de Informao e Cincia da Computao. 1 522 Parte IV Inteligncia Aplicaes de Negcio manualmente. Eles podem ser encontrados no nomes. arquivo. Agora ajuste o CSV etapa de entrada da seguinte forma: Excluir o Recinto especificao. Desmarque a Cabealho da linha atual? checkbox Selecione o valor ambos para todos os campos sob tipo Trim. Figura 16-7: Adult2IncomeGroup 2. Duplicar o passo e mudar o arquivo de entrada da segunda via adult.test. A primeira linha deste arquivo um valor nico texto, o que torna impossvel PDI para determinar a especificao de arquivo. Voc j precisou que, em o passo de entrada original, e porque os arquivos tm uma estrutura idntica, voc no precisa fazer mais nada aqui. 3. Agora, o adult.test arquivo tem dois problemas. O primeiro o quase vazio linha na parte superior, eo segundo o campo de classe que tem um ponto no final, o que significa que se voc no se livrar do que voc vai acabar com quatro em vez de dois valores de classe. O cabealho pode ser removido usando um filtro de passo de linhas com a condio grupo de renda IS NOT NULL (Na verdade, qualquer campo, exceto o primeiro vai fazer aqui). 4. Para livrar-se do ponto, use um Replace na etapa de cordas e simplesmente o jogo no campo de fluxo para grupo de renda e valorizar a pesquisa para''.''E deixar o Substitua com valor vazio. Agora, as duas correntes podem ser acrescentados e a sada pode ser enviada tanto para a etapa de sada um arquivo CSV (este contm todos os linhas em formato CSV) e um reservatrio etapa de exemplo. Esta ltima definida como 10.000. 5. Finalmente, a sada ARFF pode ser inserido como etapa final do transformao. Tudo que voc precisa fazer neste ltimo passo entrar no arquivo e o nome da relao. Depois de executar a transformao, voc deve ter um arquivo CSV chamado IncomeGroups.csv com 48.842 linhas e um arquivo ARFF chamada IncomeGroups.arff com 10.000 linhas de dados. NOTA H uma explicao simples para o fato de que o cliente WCM dados no puderam ser utilizados para este exemplo: gerado aleatoriamente. Como um resultado, qualquer tentativa de agrupar ou classificar os clientes com base na receita, o filme informaes, ou outras caractersticas falhar. Captulo 16 Data Mining com Weka 523 Como criar e salvar o modelo Voc pode agora iniciar o Weka Explorer, escolhendo Explorer a partir da GUIChooser ou iniciando-lo diretamente na linha de comando. Clique em Abrir Arquivo e selecione a IncomeGroups.arff arquivo que voc criou anteriormente. O arquivo ser ser carregado e estatsticas descritivas para os atributos mostrados na Preprocess painel, como voc pode ver na Figura 16-8. Figura 16-8: Loaded ARFF arquivo no Explorer Voc tambm pode ver que o nome Explorer para esta ferramenta uma boa, pois permite que voc navegue atravs dos dados e fazer algumas suposies sobre o assunto. Por exemplo, se voc quiser fazer mais de US $ 50 mil por ano (lembre-se, neste so dados a partir de 1995!), melhor ser um executivo ou um profissional, porque eles tm as gamas mais elevadas (> R $ 50 mil). Outra rea de interesse o sexo diviso na fmea cerca de um tero e dois teros do sexo masculino, o que significa que mais homens do que mulheres ganham um salrio. O que voc vai notar tambm que mais homens do que as mulheres ganham mais de US $ 50 mil por ano. Ser um homem casado tambm ajuda. Assim, mesmo sem correr um classificador, voc j pode dizer que estes atributos tm um grande impacto sobre a classe resultado. Isso nem sempre o caso, porm, em muitos casos, a minerao de dados fornece a viso que no pode ser obtidas de outra forma. 524 Parte IV Inteligncia Aplicaes de Negcio O prximo passo escolher um classificador. Lembre-se que esta uma classificao conjunto de dados com um resultado conhecido (a classe). Se no ficou claro o que estvamos procurando, ns poderamos usar a opo de cluster para descobrir quais as instncias da dados so''''mais perto uns dos outros do que outros. O classificador, vamos escolher J48, que est no Weka-classificadores-rvores pasta quando voc clicar em Escolher. Depois selecionar o classificador, os parmetros para o algoritmo pode ser definido clicando sobre o nome do classificador, que abre um editor de objetos. Deixar todos os valores em sua configuraes padro aqui. No Teste de opes, selecione validao cruzada com 10 dobras (O valor padro), verifique se o grupo de renda selecionado como a classe, e clique em Iniciar para executar o classificador. A barra de status na parte inferior da janela ir mostrar a dobra que est executado e depois de correr dez vezes (o nmero de dobras), os resultados sero mostrados na sada do classificador, como exibido na Figura 16-9. Figura 16-9: J48 sada do classificador Alm dos dez vezes validao cruzada, voc pode experimentar com outras Teste opes para verificar se os resultados de melhor qualidade pode ser obtida atravs de um dividir porcentagem ou apenas usando o conjunto de treinamento. Na verdade, o conjunto de treinamento produz resultados melhores neste caso: que classifica uma percentagem mais elevada corretamente, mas os resultados no so muito confiveis, porque usamos os mesmos dados para a formao Captulo 16 Data Mining com Weka 525 e testes. Como explicamos anteriormente, voc deve tentar evitar isso, sempre que possvel. Exportando o classificador treinado agora s alguns cliques de mouse de distncia. Quando voc direito-clique no item da lista de resultados do modelo que voc gostaria de exportao, um submenu mostrado com a opo de salvar o modelo em algum lugar no mdia. Salve o modelo no diretrio de dados Weka e nome-la J48. A . Modelo extenso adicionada automaticamente. Utilizando o Weka Scoring Plugin Usando o modelo de formao em PDI dados nova pontuao simplesmente uma questo de configurando o placar Weka plugin para carregar e aplicar o arquivo de modelo que voc criou na seo anterior. 1. Voc usar o conjunto completo de dados de adultos que voc salva como um arquivo CSV anterior. Para fazer isso, crie uma nova transformao em Spoon e adicione uma entrada CSV passo que l o IncomeGroups.csv arquivo do seu diretrio de dados. 2. O Weka passo seguinte pontuao necessria podem ser arrastados a partir da transforma para a tela. Em seguida, editar o Weka etapa de pontuao e selecione o J48.model arquivo como o de carga / modelo de importao. Depois de selecionar o modelo, os campos mapeamento guia mostra como os campos a partir da etapa de entrada CSV foram mapeadas para os atributos do modelo J48. Neste caso, no h erros, mas se havia, os tipos de campo deve ser ajustado na etapa de entrada CSV, no aqui. A guia modelo ir mostrar a rvore que foi o resultado do modelo formao. NOTA O atributo de classe grupo de renda faz parte do arquivo CSV, mas no necessrios para o placar para o trabalho, o valor que ser determinado pelo modelo, mas no faz parte do prprio modelo. 3. Agora voc pode clicar no boto Preview (ou clique com o boto Marcar Weka passo e selecionar Preview). Existe agora um campo extra disponvel com o mesmo nome da classe com uma _predicted sufixo, como mostrado na Figura 16-10. 4. Se voc quer ter as probabilidades de sada adicionados a cada linha de sada em vez da classe previsto, assinale a opo correspondente no Weka Scoring guia do arquivo de modelo. Nesse caso, uma coluna extra ser adicionada para cada valor de classe distinta, com a probabilidade calculada para cada valor, como mostrado na Figura 16-11. Note-se que esta ltima opo s est disponvel para os modelos que foram treinados em um problema de classe discreta. 526 Parte IV Inteligncia Aplicaes de Negcio DICA Quando uma transformao executado, o placar Weka plugin vai carregar o modelo a partir do disco usando o caminho especificado na guia File. Tambm possvel armazenar as modelo do PDI repositrio e usar isso ao invs, quando a transformao executado. Para fazer isso, primeira carga de um modelo para a etapa de pontuao Weka, como descrito anteriormente. Quando estiver satisfeito que os campos foram mapeados corretamente eo modelo estiver correto, voc pode limpar a carga de importao / caixa de texto do modelo e clique em OK. Quando o transformao salvo, o modelo ser armazenado no repositrio. Figura 16-10: resultados de previso Figura 16-11: probabilidades de sada Outras dicas e notas referentes pontuao Weka plugin est disponvel em a documentao que faz parte da zipado plugin. Captulo 16 Data Mining com Weka 527 Leitura A minerao de dados um campo muito bem documentado de investigao, de modo a Internet tem um quantidade inimaginvel de informaes sobre o assunto. Alguns dos mais teis fontes de informao so listadas aqui: Online Pentaho documentao Weka- http://wiki.pentaho.com/ display / DataMining / Pentaho Data + + Mining + + Comunidade Documentao homepage Weka- www.cs.waikato.ac.nz/ml/weka/ Pentaho . Php? F = 81 Weka frum http://forums.pentaho.org/forumdisplay Um completo manual de estatsticas on-line www.statsoft.com/textbook/ Pgina inicial dos dados Mineiros Inc., os autores de quatro livros Wiley em dados minerao, Michael Berry e Gordon Linoff- www.data-miners.com Dados da comunidade mnero- www.kdnuggets.com Resumo Este captulo foi uma breve introduo ao vasto tema da minerao de dados. Porque da diversidade e da complexidade do tema, ns poderamos mostrar apenas a ponta do do iceberg, mas tentou tocar nos pontos mais importantes e fornecer um hands-on exemplo de como os modelos de minerao de dados pode ser usado no Pentaho BI Suite, especialmente PDI. Futuras verses do Pentaho ir aumentar ainda mais a integrao entre o poder analtico da Weka e as capacidades de BI a plataforma Pentaho. Um prximo passo lgico seria chamar um modelo de Weka uma seqncia de ao (embora isso j pode ser conseguido usando a pontuao plugin e chamando a transformao PDI a partir de uma seqncia de ao). Outro opo para melhorar as capacidades analticas da Pentaho a integrao de a biblioteca R estatstica, que j est disponvel como uma soluo de um dos parceiros Pentaho. Este captulo abordou os seguintes tpicos: Introduo minerao de dados Resumo do Weka Workbench adicionais de instalao e opes de configurao para o Weka eo Weka plugins PDI Um exemplo completo de como minerao de dados pode ser integrada no plataforma Pentaho CAPTULO 17 Construindo Painis No contexto de Business Intelligence, um painel um aplicativo que est usadas para apresentar alto nvel de contedo de BI para usurios finais. Os painis contm apenas alguns indicadores-chave do desempenho de algum aspecto de negcios (vendas'''') ou mesmo o negcio como um todo. contedo do Dashboard quase invariavelmente grfica na natureza: em vez de nmeros, as mtricas so simbolizados com fotos, metros, marca, e s vezes grficos. O objetivo fornecer uma viso muito condensada de uma grande rea dos negcios, permitindo que os gerentes de negcios para avaliar o estado de relance. Normalmente, os indicadores de alto nvel grfico que aparecem nos painis fornecer alguma interatividade que permite ao usurio detalhar a mais detalhada contedos de inteligncia comercial, como relatrios e cubos OLAP. O Dashboard Framework Comunidade A Comunidade Dashboard Framework (CDF) um conjunto de tecnologias de cdigo aberto, gias que permite aos desenvolvedores de BI para a construo de dashboards dinmicos para o BI Pentaho Server. painis CDF so essencialmente as pginas web que usam a tecnologia AJAX dinamicamente combinam componentes de BI, como relatrios, grficos, tabelas OLAP, e mapas. Embora o CDF , por padro includos no Pentaho BI Server, que desenvolvido e mantido pelos membros da Comunidade Pentaho em vez da Companhia Pentaho. CDF, a Comunidade, e da Corporao Pentaho O CDF um grande exemplo de sinergia entre os objetivos de um comercial empresa de software de fonte aberta como o Pentaho e sua comunidade. 529 530 Parte IV Inteligncia Aplicaes de Negcio A Pentaho Corporation inclui o CDF na Comunidade eo Enterprise Edition do servidor de BI como um plugin. Para os usurios da empresa Edition, Pentaho fornece tambm um construtor de painel que pode simplificar a construo painis. Voc pode encontrar uma seo sobre o CDF com o desenvolvedor do BI Exemplos de soluo, que contm toda a documentao til, dashboards de exemplo, e informaes bsicas (veja Figura 17-1). Figura 17-1: O CDF na seo Exemplos BI Developer Embora a Pentaho Corporation no formalmente envolvidos no CDF, um nmero de desenvolvedores Pentaho so contribuintes activos para o projeto. Em Alm disso, Pentaho oferece hospedagem para a gesto do projeto CDF problema, Wiki documentao, e frum. O CDF distribudo gratuitamente sob a licena LGPL. O projeto cdigo-fonte e os recursos so hospedados em um projeto de cdigo do Google (http://code .google.com p / cdf-pentaho /). CDF Projeto Histria e Quem Quem O projeto CDF levado e mantido por um nmero de membros proeminentes da comunidade Pentaho. As razes do CDF levar de volta para 2007, quando Ingo Klose apresentou um soluo de dashboard baseados em AJAX como uma alternativa para o Java antes existentes A tecnologia de painis baseado em servlet fornecido por Pentaho. Ingo da primria motivao foi o desejo de uma soluo de painis que era mais fcil de usar e implantar. Ingo trabalho foi rapidamente adotado por Pedro Alves. Colaborou em numa fase inicial com Ingo. Juntos, ele e Ingo fundou o projeto CDF para centralizar o desenvolvimento e permitir a outros membros da comunidade para contribuir. Desde ento, ele tem muitos recursos e retrabalhadas vrios aspectos da arquitetura. Captulo 17 Construindo Painis 531 Alm destes principais colaboradores, muitos outros membros da comunidade trao trabalhou para criar dashboards de exemplo, o painel modelos, novos e- componentes da placa. Emisso de Administrao, Documentao e Apoio CDF problema de gesto est hospedado no jira.pentaho.com site. Pode ser encontradas na seo Comunidade na http://jira.pentaho.com/browse/CDF. documentao do projeto est atualmente disponvel em um nmero de lugares. Em primeiro lugar, Wiki Pentaho inclui uma rea que totalmente dedicado ao CDF na http://wiki.pentaho.com/display/COM/Community+Dashboard+Framework. Alm das pginas de documentao da Wikipdia, amostras CDF distribudo na Pentaho BI servidor tambm contm uma grande quantidade de documentos valiosos. Para obter o apoio da comunidade, h um frum no forums.pentaho.com, Que dedicado a temas CDF. Para suporte comercial, pode contactar o WebDetails empresa em http://www.webdetails.pt/. Competncias e Tecnologias de Dashboards CDF Dois tipos diferentes de habilidades so necessrias para construir painis CDF: Geral Pentaho desenvolvimento de competncias-Voc precisam ser capazes de construir seqncias de ao eo contedo de BI, como relatrios, grficos e assim por diante, que voc deseja visualizar no painel. Este livro dever faz-lo bem comeou nessa direo. habilidades de web-A foco nas habilidades desenvolvimentos web est alm do escopo deste livro. Isto principalmente um livro sobre Business Intelligence, e h uma abundncia de livros de alta qualidade e recursos disponveis na web de desenvolvimento. No obrigatrio para unificar essas habilidades bastante diferentes na mesma pessoa. Pelo contrrio, pode ser mais produtiva para criar painis usando pares de desenvolvedores de BI e desenvolvedores web, ou uma equipe de desenvolvedores de BI, os desenvolvedores da Web, especialistas do domnio de negcio e usurios finais. O desenvolvimento de competncias necessrias web incluem: HyperText Markup Language (HTML) em HTML o padro linguagem utilizada para criar pginas web. No incio dos anos noventa, verificou-se e rapidamente se tornou o modelo dominante para pginas da Internet, devido a sua popularidade a uma combinao de simplicidade e de recursos como hiperlinks e imagens. Atualmente HTML um padro aberto mantido pela W3C. Informao detalhada sobre HTML pode ser encontrada em http://www .w3.org/TR/REC-html40 /. 532 Parte IV Inteligncia Aplicaes de Negcio Cascading Style Sheets (CSS), CSS emergiu como a ln- indicador para definir a apresentao do documento. Assim como o HTML, um processo aberto padro que mantido pela W3C. Informaes detalhadas sobre o CSS pode ser encontrada em http://www.w3.org/TR/CSS21/. JavaScript, o conhecimento do quadro JQuery recomendado, JavaScript uma linguagem de programao que foi projetada especialmente para adicionar interatividade a pginas da web. Ao longo dos anos, a importncia da JavaScript tem aumentado. Lentamente, ele ganhou notoriedade e, durante os ltimos alguns anos, a proliferao de uma tcnica de programao especial chamado AJAX (s vezes identificada com a chamada Web 2.0) ajudaram a estabelecer sua posio como uma linguagem de programao sria. A verso standard do JavaScript chamada ECMAScript especificado pela ECMA International. Mais informaes sobre ECMAScript pode ser encontrada em www.ecma-international.org/publications/standards/Ecma -262.htm. JavaScript em si apenas uma linguagem de programao. Muito do seu valor para criao de pginas web interativas no faz parte da prpria linguagem, mas do ambiente de execuo (por vezes apelidado de''''runtime). O mais normas importantes no que diz respeito manipulao de documentos HTML da especificao do DOM, ou melhor, o mapeamento para ECMAScript. O DOM especificao um padro aberto mantido pela W3C. Mais infor- maes sobre este assunto podem ser encontradas em www.w3.org/TR/REC-DOM-Level-1/ ECMA-script-lngua-binding.html. Se voc no estiver familiarizado com estas tecnologias, no deixe que isso tudo assusta voc fora. Domnio no necessrio para construir painis simples. Mesmo se voc um Desenvolvedor e BI esto trabalhando em conjunto com desenvolvedores web para criar seu dashboards, recomendamos que voc v em frente e trabalhar atravs deste captulo. No mnimo, ele vai mostrar quais tecnologias esto envolvidas eo que suas possibilidades e limitaes. Conceitos CDF e Arquitetura painis CDF so essencialmente pginas web (HTML documentos) que contm reas chamadas de componentes'',''que so usados para visualizar o contedo de BI. Figura 17-2 ilustra o que acontece nos bastidores, quando um painel aberto por o usurio. 1. O usurio final usa um navegador web para navegar para um painel. Isso faz com que uma requisio HTTP normal para ser enviada ao servidor de BI Pentaho. Captulo 17 Navegador da Web Construindo Painis 533 Logo 4. inicializao Dashboard 1. Pedido de painel 8. Resposta 5. pedido de Componentes 2. Dashboard arquivo. Xcdf 6. Ao pedido seqncia . Xcdf 3. Documento montagem . Xaction Logo modelo-dashboard.html dashboard.html 7. seqncia de aes execuo CDF plugin Pentaho BI Server Plataforma Figura 17-2: Bird's eye view do CDF dashboarding 2. O servidor Pentaho BI recebe o pedido e reconhece que deveria servir a um painel. O pedido contm o nome eo caminho da soluo o painel, o que suficiente para localizar o painel de . Xcdf arquivo. 3. A . Xcdf arquivo especifica os modelo de painel de contedo. Esta uma (parcial) Arquivo HTML que contm espaos reservados para os componentes do painel e instrues JavaScript para ench-los com os componentes do painel. O modelo de contedo do painel combinada com uma documento dashboard modelo (s vezes chamado exterior do modelo) para montar uma pgina web (um Documento HTML). O modelo externo pode ser especificado explicitamente no . Xcdf arquivo, mas se no , um padro ser usado. 534 Parte IV Inteligncia Aplicaes de Negcio 4. A pgina web recebida pelo navegador quando ele lido e processado para a exposio. Como parte deste processo, o painel inicializado. Esta feito como as instrues JavaScript no documento so executadas, levando para a criao efetiva dos componentes do painel. Na pgina web, os componentes do painel existir como objetos JavaScript que so adicionados a um Dashboards objeto, que tambm criado com JavaScript. 5. Aps a inicializao do painel, os componentes de responder aos comandos emitido pelo Dashboards objeto. O comando bsico atualizao, Que ordens de componentes para recolher o seu contedo de BI e coloc-lo em suas marcador correspondente (s) no documento. Normalmente, os componentes reagem ao atualizao comando, enviando uma solicitao da Web para o Pentaho Server. 6. O servidor Pentaho recebe pedidos enviados pelos componentes. Normalmente, os componentes solicitar a execuo de uma seqncia de ao. 7. O servidor Pentaho executa a seqncia de ao. 8. O contedo gerado pela seqncia de ao enviada de volta para o requerente componente. L, a resposta analisado pelo componente de incluso na pgina web. Finalmente, o componente coloca o contedo dentro de sua espao reservado (s) no documento, tornando o contedo visvel no BI da pgina. Vamos agora discutir os elementos-chave na arquitetura CDF em detalhes. O CDF Plugin Dashboard pedidos so tratados por um plugin Pentaho. Este plugin um pedao de O software Java que sabe como lidar com as solicitaes da Web para obter um painel. O Pentaho sistema de plugins a maneira preferida para terceiros para ampliar Servidor Pentaho e adicionar funcionalidade personalizada. Uma discusso completa sobre plugins est alm do escopo deste livro, mas nesta seo, tocamos alguns conceitos que, esperamos, ir ajud-lo a entender como um complemento, como o CDF pode ser integrado com a plataforma Pentaho. Voc pode encontrar detalhadas informaes sobre plugins Pentaho na documentao Wiki em Pentaho wiki.pentaho.com/display/ServerDoc2x/1. + + Desenvolvimento de Plugins. O Diretrio Home CDF O plugin e todos os arquivos relacionados residem e sob o pentaho-cdf Diretrio abaixo do diretrio que abriga o sistema Pentaho soluo. No restante Captulo 17 Construindo Painis 535 deste captulo, nos referimos a este local como o CDF diretrio home, ou simplesmente CDF casa. H um par de subdiretrios no diretrio home do CDF: A lib diretrio contm os arquivos java binrio que contm o real software que compe o plugin. A js diretrio contm os arquivos JavaScript e CSS (bem como alguns outros recursos) que compem o software de cliente do CDF. Voc veremos mais adiante como esses arquivos acabam nas pginas web reais dashboard. A recursos diretrio contm vrios recursos, como imagens e Arquivos CSS stylesheet. O arquivo plugin.xml O verdadeiro plugin definio est contida no arquivo plugin.xml. O contedo deste arquivo so mostrados na Listagem 17-1. Listagem 17-1: O arquivo CDF plugin.xml <? Xml version = "1.0" encoding = "UTF-8"?> <plugin title="Pentaho Comunidade Dashboard Framework"> <content-types> type="xcdf" <content-type mime-type="text/html"> <title> Dashboard </ title> <description> Comunidade Dashboard Arquivo </ description> <icon-url> contedo / cdf pentaho / resources / cdfFileType.png </ Url-icon> <operations> <operao> <id> RUN </ id> <comando> contedo / cdf-pentaho / RenderXCDF soluo? = {} & soluo path = {path} & action = {nome} & template = manto </ command> </ Operao> <operao> NewWindow <id> </ id> <comando> contedo / cdf-pentaho / RenderXCDF soluo? = {} & soluo path = {path} & action = {nome} & template = manto </ command> </ Operao> </ Operaes> </ Content-type> </ Tipos de contedo> <content-generator scope="local" id="pentaho-cdf" type="xcdf" url=""> <classname> org.pentaho.cdf.CdfContentGenerator </ classname> <fileinfo-classname> <org.pentaho.cdf.CdfFileInfoGenerator / fileinfo- 536 Parte IV Inteligncia Aplicaes de Negcio Classname> <title> CDF Display Handler </ title> </ Gerador de contedo> </ Plugin> Se necessrio, voc pode alterar este arquivo de configurao para modificar o comportamento de painis CDF. Por exemplo, voc pode adicionar tipos de contedo adicional para permitir que arquivos com uma extenso especfica para ser reconhecido como painis CDF. Para saber mais sobre plugins Pentaho, consulte o documento oficial de Pentaho implementao. As informaes pertinentes podem ser encontradas em http://wiki.pentaho .com/display/ServerDoc2x/Developing + Plugins. ATENO Voc deve garantir que voc faa um back-up do plugin.xml arquivo antes de fazer quaisquer alteraes. CDF JavaScript e CSS Recursos O painel CDF faz amplo uso de JavaScript para criar e controlar componentes e fazer chamadas para o servidor de BI Pentaho. O JavaScript CDF arquivos esto localizados na js subdiretrio do diretrio Home CDF. H um nmero de diferentes arquivos JavaScript no js diretrio, bem como no apoio recursos, como arquivos CSS e imagens: jquery.js -O CDF construdo em cima do popular quadro AJAX JQuery- de trabalho. Todos os arquivos que tm um nome que comea com jquery so desta quadro. O quadro JQuery oferece funcionalidades para manipular o baixo nvel de detalhes dos documentos HTML mudana no tempo de execuo (chamada DOM manipulao), bem como programaticamente fazer requisies web e pro- processamento do contedo retornado. Combinadas, estas duas funcionalidades so normalmente referido pelo termo AJAX (Sigla para Asynchronous JavaScript and XML). jquery. <name>. js e jquery. <name>. CSS arquivos-Alm-entregas rando baixo nvel de funcionalidade Ajax, jQuery tambm oferece uma srie de extenses que implementam os elementos da interface do usurio (muitas vezes chamado widgets) como a data catadores, textboxes autocomplete, e assim por diante. Esses arquivos JavaScript e suporte a arquivos CSS implementar vrios widgets, bem como no apoio funcionalidade para aes como o contedo de posicionamento. H tambm uma nmero de subdiretrios no js diretrio. Estes contm ainda mais Widget plugins JQuery. Dashboards.js -Este o ncleo do CDF. Este arquivo instancia um Dashboards Objeto JavaScript, que a real execuo do painel, o. Captulo 17 Construindo Painis 537 <name> Components.js -Esses arquivos contm as definies de objeto do vrios tipos de componentes que podem ser exibidos em painis CDF. Na painel de instrumentos reais, as instncias desses tipos de componentes so criados e adicionado Dashboards objeto. CoreComponents.js contm definies de componentes para painis utilizados com frequncia. MapComponents.js con- tm dois componentes para trabalhar com mapas geogrficos. Navegao Components.js contm componentes do painel especial que pode ser utilizado para gerar interao de navegao. resources.txt Este arquivo-texto lista todos arquivos JavaScript e CSS que esto a ser includo no documento resultante do painel HTML que ser enviado para o cliente. Durante a montagem do documento, o CDF plugin l o resources.txt arquivo e injeta referncias a arquivos que constam da lista de JavaScript e CSS no painel de instrumentos Documento HTML na forma de <script> e <link> elementos. Isso garante Esses recursos sero carregados pelo navegador quando ele recebe o painel de instrumentos, que necessrio para o painel e seus componentes para funcionar corretamente. O xcdf. Arquivo A . Xcdf um arquivo XML contendo pequenas informaes que descrevem o painel de instrumentos. Esses arquivos podem ser colocados em qualquer pasta na soluo de repositrio permitem aos usurios navegar no painel de instrumentos. Algumas informaes contidas no . Xcdf arquivo, como nome de exibio, des- o, eo cone so utilizados pelo usurio console a oferecer um item que o usurio possa navegue para o painel. A . Xcdf arquivo tambm se refere a um arquivo HTML parcial que atua como um modelo de contedo painel. Opcionalmente, o . Xcdf arquivo tambm pode especificar um modelo de documento de painel. Esses modelos so discutidos em detalhes na prxima subseo. Listagem 17-2 mostra o contedo de uma amostra . Xcdf arquivo: Listagem 17-2: Um exemplo de arquivo. Xcdf <? Xml version = "1.0" encoding = "UTF-8"?> <cdf> <title> Pentaho Dashboard Home </ title> <author> Webdetails </ author> Home <description> Pentaho Dashboard </ description> <icon> </ icon> <template> dashboard.html </ template> <style> manto </ div> </ Cdf> 538 Parte IV Inteligncia Aplicaes de Negcio Conforme mostrado na Lista 17-1, todo o contedo do . Xcdf arquivo est contido em <cdf> e </ Cdf> tags. A cdf elemento contm uma lista de marcas que descrevem o vrias propriedades do painel. As marcas mais importantes so <title>,<template>, e <style>: <title> um elemento obrigatrio que define o nome do painel de instrumentos como ele aparece para o usurio no console do usurio. <template> identifica o modelo de contedo painel. O valor pode ser um nome de arquivo no caso de o modelo de contedo reside no mesmo local no soluo como o repositrio . Xcdf arquivo. Se assim o desejar, o modelo de contedo pode ser colocado em outro local dentro do repositrio, mas depois o caminho precisa ser especificado tambm. Por exemplo, <template> foo / bar.html </ Template> especifica bar.html localizado na pasta filho do atual local chamado foo como o modelo de contedo. <style> identifica um modelo de documento particular. Este um opcional tag. Se estiver presente, ele identifica um arquivo HTML no qual o contedo do painel ser colocado. Se essa marca no especificado, o modelo de documento padro ser usado. Note que a extenso . Xcdf necessria. Sem essa extenso, o arquivo no ser reconhecido como uma definio de painel. A extenso controlado atravs da plugin.xml arquivo discutido na subseo anterior. Para ser preciso, H dois elementos no plugin.xml arquivo que controlam a extenso: A type =''xcdf''Atributo na <content-type> elemento A type =''xcdf''Atributo na <content-generator> elemento Modelos Ns j mencionei que os painis so, essencialmente, documentos HTML. O CDF gera esses documentos, mesclando um genrico esqueleto HTML documento com outro documento HTML (parcial) que contm o real painel de definio de contedo. Ns nos referimos a estes dois documentos HTML como modelos, e ao final Pgina web mesclado como o tablier. Chamamos o documento esqueleto genrico do modelo do documento (s vezes chamado modelo externo). Ns usamos o termo documento modelo de contedo para o arquivo que define o painel real. Figura 17-3 ilustra o processo de montagem do documento. Modelo de Documento (a.k.a. exterior Modelo) Documento modelos so projetados para permitir que o contedo recorrente para ser reutilizado por vrios painis. Exemplos tpicos de contedo reutilizvel incluem: Captulo 17 Construindo Painis 539 <link> e / ou <style> elementos para definir em cascata folhas de estilo para manuteno de uma aparncia consistente <script> elementos para adicionar interao personalizada ou importao de extenso componentes do painel estruturas de navegao, como links, barras de ferramentas e / ou menus Os elementos estruturais para obter um layout de documento genrico JavaScript e CSS Recursos jquery.js Painis = {var var BaseComponent = Base.extend ({ ... ... }); <html> <head> .../> <link .../> <script </ Head> <body> <img id="logo"/> {Content} </ Body> </ Html> Dashboard modelo de documento <html> <head> <script> </ script> <script> </ script> href=""/> <link .../> <link <script.../> </ Head> <body> <img id="_logo"/> id="myComp"/> <div <script> myCompDef = {var ouvintes: [ "Paraml" ] , ... } Dashboards.init ( [MyCompDef] ); </ Script> </ Body> </ Html> painel montado id="myComp"/> <div <script> myCompDef = {var ouvintes: [ "Paraml" ] , ... Dashboards.init ( [MyCompDef] ); </ Script> Dashboard modelo de contedo Figura 17-3: Conjunto de documentos documento CDF modelos residem no diretrio home CDF. O padro Pentaho Community Edition navios servidor com documento de duas dashboard modelos: modelo-dashboard.html -Este o modelo do documento padro. Se o dashboard . Xcdf arquivo no especificar um <style> elemento, este modelo ser usado. Ele inclui alguns elementos de navegao para permitir que os painis a ser executado fora do ambiente do usurio Pentaho console. modelo-painel-mantle.html -Este modelo um pouco modificada verso do modelo-dashboard.html que no inclui qualquer navegao- o elementos. Este modelo de documento destina-se painis que executado dentro de uma pgina da guia do usurio Pentaho console (que chamado manto, da o manto sufixo). 540 Parte IV Inteligncia Aplicaes de Negcio Alm dos genricos, os elementos reutilizveis de HTML, o modelo de documento tambm contm espaos reservados, que so substitudos pela CDF plugin durante documento da montagem. Estes marcadores so indicadas utilizando os seguintes sintaxe: {Nome do espao reservado-} Listagem 17-3 mostra alguns dos contedos do modelo do documento padro modelo-dashboard.html. Listagem 17-3: Alguns dos contedos de um modelo de documento da CDF xmlns="http://www.w3.org/1999/xhtml"> <html <head> <Tipo de link = "text / css" rel = "stylesheet" href = "recursos / estilo / template.css" /> </ Head> <body> <script type="text/javascript"> isadmin = "{isadmin}"; isLoggedIn = "{isLoggedIn}"; </ Script> div id = "content"> div id = "primaryContentContainer"> id="primaryContent"> <div {Content} </ Div> </ Div> </ Div> </ Body> </ Html> Na Listagem 17-3, voc pode ver o nmero de substituies: isadmin -Pode ser substitudo por verdade no caso de o usurio atual o Pentaho administrador. isLoggedIn -Pode ser substitudo por verdade no caso de o usurio atual est Autenticados. contedo -Pode ser substitudo com o contedo do painel de contedo modelo. O modelo de contedo do painel discutido em detalhe na prxima subseo. Os nomes dos arquivos de documento padro do modelo no CDF incio home directrio com em modelo de painel e terminam com . Html. Este padro de nome de arquivo um requisito para todos os modelos de documentos. Entre os em modelo de painel prefixo eo . Html sufixo no pode aparecer opcionalmente Captulo 17 Construindo Painis 541 um nome de modelo, que deve ser precedido por um hfen. Por exemplo, no nome do arquivo do modelo-painel-mantle.html modelo, o texto -Manto aparece entre o prefixo eo sufixo. Neste caso, manto o real nome do modelo. Para especificar o modelo do documento, voc pode definir o valor da <style> elemento no painel de . Xcdf arquivo para o nome do modelo. Por exemplo, Listagem 17-2 usa <style> manto </ div> para especificar que o manto tem- chapa deve ser usado-map isso para o modelo de painel-manto . Html arquivo. Se nenhum modelo do documento especificada no . Xcdf arquivo, o modelo padro (modelo-dashboard.html) Ser usado. Para esses painis, o documento modelo tambm pode ser definida dinamicamente, passando o nome do modelo na modelo parmetro na parte de consulta URI do painel. Modelo de Contedo O modelo de contedo um arquivo HTML parcial que contm o painel de instrumentos reais definio. Durante a montagem do painel, o {Content} espao reservado na modelo de documento passa a ter o contedo do modelo de contedo. A modelo de contedo referenciado a partir do . Xcdf arquivo usando o modelo elemento. Normalmente, voc poderia colocar o modelo de contedo do painel na soluo diretrio junto com o . Xcdf arquivo. O modelo de contedo tipicamente contm os seguintes itens: JavaScript definies de objeto para os componentes do painel e alguns cdigo para inicializar o Dashboards Objeto JavaScript. marcadores HTML para contedo componente. Opcionalmente, o contedo HTML esttico para obter um layout de painel componentes. Listagem 17-4 mostra um exemplo de um modelo de contedo muito simples que define um painel com apenas um componente. Listagem 17-4: Um modelo de contedo muito simples CDF id="component_placeholder"> <div <-! Este espao reservado componente ser preenchido pelo componente -> </ Div> <! - Este script define um componente e inicializa o painel -> language="javascript" type="text/javascript"> <script / * * Definir o componente e configurar suas propriedades. * / componente = {var 542 Parte IV Inteligncia Aplicaes de Negcio nome: "component_name", tipo: "xaction", htmlObject: "component_placeholder", soluo: "mca", o caminho: "/ painis / clientes", ao: "dashboard_component.xaction", parmetros: [] executeAtStart: true } / * * Initalize o painel e adicione o componente. * / Dashboards.globalContext = false; componentes var = [componente]; Dashboards.init (componentes); </ Script> Listing 17-4 contm apenas dois elementos HTML: a div elemento que usado como componente e um espao reservado script elemento que contm o JavaScript cdigo para configurar o painel e seus componentes. Normalmente, o contedo do painel modelos teria mais alguns componentes, assim como algumas HTML para colocar os componentes na pgina. H algumas coisas de nota na listagem 17-4 que se aplicam a todos os painis modelos de contedo: espaos reservados de contedo so tipicamente div ou span elementos. Os espaos reservados dado um id atributo, que usado para atribuir um identificador nico. Este necessria para permitir que os componentes para encontrar a rea onde eles podem exibir sua sada. No exemplo, usamos um div elemento e atribudas a identificao component_placeholder. A definio do componente um objeto literal, que , pelo menos da a perspectiva do construtor de dashboard mais pequeno do que um conjunto de pares nome / valor. Ns discutiremos os componentes em detalhe no prximo subseo. O painel inicializado com uma chamada para Dashboards.init (). Este inicializa o painel e pode adicionar vrios componentes, que so passados como um array. Exemplo: Clientes e Dashboard Sites Nesta seo, ns orient-lo atravs da criao de um painel de exemplo. Para o exemplo, suponha que voc precisa para construir um painel que permite que os gestores da empresa Classe Mundial Filmes para obter rapidamente uma viso geral de seus Captulo 17 Construindo Painis 543 clientes e como eles se relacionam com os diversos sites de Classe Mundial Filmes. Figura 17-4 mostra o resultado final deste esforo: Figura 17-4: Um painel de clientes e websites O painel contm os seguintes componentes: No canto superior esquerdo, um grfico que mostra o nmero total de clientes por site. Isso proporciona uma viso rpida e intuitiva do negcio potencial de cada site. Os usurios podem clicar em fatias do bolo para perfurar para baixo e obter informaes por site. O ttulo do painel exibe o valor da seleo atual feita em o grfico de pizza. Isso mostrado no topo do tablier. Um mapa que mostra onde os clientes de um site particular, so localizado. Um grfico de linha que mostra registros de clientes e de-inscries. Ns no incluem os dados reais para adicionar isso, mas deixo isto como um exerccio para o leitor. Voc deve ser capaz de adicion-lo em seu prprio pas, se voc conseguiu a adio dos componentes anteriores. O restante desta seo descreve passo a passo como criar esse painel de instrumentos. NOTA Note que no so necessrias ferramentas especiais para criar o painel. Tudo o que voc precisa Pentaho Design Studio para criar seqncias de ao, e um editor de texto para criar os arquivos de painel especfico. Tambm no h instrumentos envolvidos para implementar o 544 Parte IV Inteligncia Aplicaes de Negcio painel de instrumentos. simplesmente uma questo de colocar os arquivos para a soluo de repositrio de arquivos do sistema. Para este exemplo, ns assumimos que voc est trabalhando como Administrador com uma sendo executado localmente servidor Pentaho BI. Dessa forma, voc pode simplesmente colocar os arquivos que voc criar para o painel diretamente na soluo Pentaho adequado subdiretrio. Instalao Antes que voc pode construir o painel, uma boa idia para criar uma pasta separada manter todos os itens relacionados ao painel. Este provavelmente o melhor feito a partir do usurio do console. Ns recomendamos que voc criar uma partio dashboards pasta na wcm soluo, e abaixo disso, uma Clientes pasta para este painel exemplo especfico. Criar um separado dashboards pasta uma questo de convenincia. Ele fornece um espao para manter todos os tipos de recursos compartilhados por vrios painis, e tambm torna mais fcil criar um novo painel, simplesmente copiando e colando um j existente. de nenhuma maneira a obrigao de faz-lo. Criando o. Xcdf Arquivo O primeiro passo na criao de um painel para configurar o . Xcdf arquivo. 1. Criar um novo arquivo de texto chamado customers.xcdf diretamente no sistema de arquivos diretrio que corresponde Clientes pasta da soluo Pentaho repositrio. 2. Abra o customers.xcdf arquivo, e adicionar o contedo mostrado na Listagem 17-5. 3. Salve as alteraes para o arquivo. Listagem 17-5: O arquivo customers.xcdf <? Xml version = "1.0" encoding = "UTF-8"?> <cdf> <title> WCM clientes Painel </ title> <author> World Class Filmes - Randy Coon </ author> <description> Os clientes que WCM Dashboard fornece uma viso geral da distribuio de - Os clientes WCM sobre websites - Cliente local - Cancelamento de registro de clientes / </ Description> <icon> </ icon> <template> clientes-template.html </ template> </ Cdf> Captulo 17 Construindo Painis 545 Criando o arquivo HTML Dashboard Na subseo anterior, voc criou o customers.xcdf arquivo. Este arquivo inclui o <template> tag e usa-lo para especificar que cliente -Template.html o seu modelo de contedo do painel: <template> clientes-template.html </ template> A partir de nossa discusso anterior sobre o . Xcdf arquivo, voc pode se lembrar que o modelo elemento especifica o caminho eo nome do contedo do painel modelo. Neste caso, nenhum caminho for especificado, eo CDF plugin ir procurar um arquivo chamado cliente template.html no diretrio atual. Assim, voc pode basta criar o cliente template.html arquivo no mesmo diretrio que o customer.xcdf arquivo. 1. Abra o cliente template.html arquivo e adicionar o contedo mostrado na Listing 17-6. 2. Salve as alteraes quando tiver terminado. Listagem 17-6: O arquivo cliente template.html <h1> O WCM Dashboard Clientes </ h1> language="javascript" type="text/javascript"> <script / / Obter a soluo eo caminho da localizao actual soluo var = Dashboards.getQueryParameter ("soluo"); var caminho = Dashboards.getQueryParameter ("caminho"); / / Parmetros Dashboard Dashboards.globalcontext = false; / / Definies de parmetros clique aqui / / Definies de componentes componentes var = []; / Painel de inicializao / Dashboards.init (componentes); </ Script> Cdigo clich: Como a soluo e caminho O contedo inicial da cliente template.html arquivo so apenas uma cdigo clich esqueleto que agora voc pode expandir gradualmente a construir a painel de instrumentos. Ns queremos mencionar algumas coisas sobre esse cdigo. As duas primeiras declaraes definem os soluo e caminho variveis globais. Estes so usados para manter o nome da soluo Pentaho corrente e repos-soluo caminho itory respectivamente. Esta uma questo de convenincia: voc precisa configurar 546 Parte IV Inteligncia Aplicaes de Negcio uma srie de componentes que recorrer a uma seqncia de ao. Alm da nome da . Xaction arquivo, esses componentes precisam de saber o nome da Pentaho soluo eo caminho de soluo de repositrio onde o . Xaction arquivo reside. Voc pode obter os valores para as variveis de soluo eo caminho da URI da pgina web atual. Isso funciona porque o painel em si servido a partir da soluo de repositrio, eo nome da soluo eo caminho so na parte de consulta da URI. A Dashboards objeto fornece a getQueryParameter mtodo, que foi criado especialmente para analisar a atual URI e pegar o valor do parmetro de consulta especificado pelo argumento. Por exemplo, a parte de consulta da URI do nosso painel exemplo : ? Wcm soluo = & = caminho dashboard / clientes & action = customers2.xcdf Chamando Dashboards.getQueryParameter ("caminho"), Obtemos a valor / Dashboard / cliente, E chamando Dashboards.getQueryParameter ( "Soluo") resulta no valor wcm. Cdigo clich: Parmetros Dashboard A declarao no cdigo clich Dashboards.globalcontext = true; assinala o incio de uma seo que voc ir usar para definir os parmetros do painel e seus valores iniciais. Dashboard parmetros so usados para conduzir atualizaes de componentes do painel. No existem definies de parmetro no cdigo clich ainda, e voc ir adicion-los como necessrios, mas sempre uma boa idia de reservar uma seo em antecedncia. Uma vez que voc achar que voc precisa fazer parmetros, isto ir ajudar a manter los em um s lugar. Ns colocamos a seo de parmetros antes que os componentes, porque isso ir tornar mais fcil para configurar os componentes que precisam referem-se a todos os parmetros do painel. Por enquanto, a nica linha desta seo define a globalcontext propriedade da Dashboards objeto a falsa. Por padro, essa propriedade verdade, Que permite o painel para usar todas as variveis globais como parmetros. Por vrias razes, recomendamos que voc sempre este conjunto de falsa. Cdigo clich: Componentes Dashboard A seo final do cdigo clich esto l para fazer alm de componentes um pouco mais conveniente. O padro tpico a criao de todos os seus componentes definies e adicion-los todos de uma vez para o Dashboards objeto com uma chamada para o seu init mtodo. Listagem 17-6 criada uma varivel global chamada componentes, E recebe um novo matriz vazia para ele. Como voc criar definies novo componente, um por um, voc adicion-los a essa matriz. Finalmente, na ltima linha do cdigo, voc passa a componentes da matriz para Dashboards.init. Captulo 17 Construindo Painis 547 A vantagem dessa abordagem que permite que voc mantenha o cdigo que cria cada definio de componente, juntamente com o cdigo que faz com que seja adicionada ao painel. Uma vantagem adicional que a linha atual que adiciona os componentes no tem a lista de nomes de variveis do indivduo componentes. Em nossa experincia, isso torna mais fcil de erro e menos propenso a adicionar e remover componentes. Teste Embora o painel em si ainda no contm nenhum contedo real, voc pode j que o acesso do usurio do console. , de fato, sbio para testar isso agora, s para ter certeza que temos os primeiros passos direita. 1. Porque o customers.xcdf e cliente template.html arquivos residem em a soluo de repositrio, voc deve atualiz-lo para testar o painel. Voc pode fazer isso a partir do console ou Administrao Pentaho diretamente do usurio consola a ltima opo provavelmente a mais conveniente. (Lembre-se voc pode atualizar o repositrio do usurio console menu, escolha Ferramentas Refresh Repositrio de cache, ou voc pode clicar no cone de atualizao pouco no canto superior direito do Procurar painel). 2. Depois de atualizar o repositrio, voc deve ser capaz de invocar o dashboard da consola de utilizador. Figura 17-5 mostra um screenshot do que o painel pode ser semelhante a este ponto. Figura 17-5: Um painel de clientes vazia Agora que voc tem um painel vazio, voc pode iniciar a adio de componentes. Por enquanto, a melhor maneira um passo de cada vez. Testando o painel de instrumentos aps cada Alm torna mais fcil detectar quaisquer problemas logo no incio. 548 Parte IV Inteligncia Aplicaes de Negcio Clientes por grfico de pizza Website Voc vai primeiro adicionar os clientes por grfico de pizza site. Existem duas maneiras de incluir grficos em painis: Construir uma seqncia de ao que proporciona a carta, e que incluem no painel usando CDF XactionComponent. Criar um CDF JFreeChartComponent e configur-lo para carregar os dados diretamente a partir de uma consulta SQL ou MDX ou transformao PDI. Para este exemplo, voc vai ficar com a primeira opo. H uma srie de razes para esta escolha. Primeiro de tudo, uma seqncia de ao em separado sero reutilizveis ao longo do plataforma. Isto pode no ser a melhor razo para todos, mas se o grfico susceptveis de serem reutilizadas em outras seqncias de ao, ou mesmo outros painis, em seguida, um seqncia de ao contribuir para separar a manuteno de uma soluo de BI como um inteiro. A segunda razo para preferir uma seqncia de ao que no so importantes questes de segurana envolvendo todos os componentes que permitem que dados sejam obtidos directamente a partir de uma consulta. Atualmente, essas consultas so executadas pelo servidor, mas a consulta texto controlado a partir do lado do cliente. Embora a definio de componentes decorre de tudo que estava especificado no modelo de contedo no lado do servidor, o texto da consulta podem ser manipulados pelo cliente, levando a SQL e / ou MDX injeo. (Isto pode ser facilmente alcanado atravs de um depurador de JavaScript do navegador como o Firebug ou scripting plugin como o Greasemonkey). Para consultas MDX, as ramificaes talvez no sejam to graves como para SQL, porque os cubos de Mondrian que so alvo de MDX pode ser fixada com autorizao baseada em funo. Para consultas SQL, isso praticamente impossvel. Na estado atual das coisas, ns recomendamos fortemente contra o uso dela. O CDF comunidade est bem ciente desses problemas e est trabalhando atualmente em uma forma de fornecer uma soluo segura para este problema. Clientes / Website: Seqncia de Ao Pie Chart O prximo passo criar a seqncia de aes para entregar a pizza. 1. Para entregar a carta, criar uma seqncia de ao denominada customers_per _website_piechart.xaction e armazen-lo na wcm / painis / Clientes diretrio juntamente com os arquivos do painel outra. A ao design seqncia mostrado na Figura 17-6. 2. O primeiro passo na seqncia de ao chamado Obter Contagem cliente por Website. Esta uma ao do processo relacional. (Voc pode encontrar este tipo de ao no submenu Obter dados de.) A consulta SQL que usada para recuperar os dados do grfico de pizza mostrado na Lista 17-7. Captulo 17 Construindo Painis 549 Figura 17-6: O projeto seqncia de ao para os clientes por grfico de pizza Website Listagem 17-7: A consulta SQL para os clientes por grfico de pizza Website SELECT customer_website_name, COUNT (*) AS customer_count FROMdim_customer WHEREcurrent_record 1 = ANDcustomer_date_unregistered CURRENT_DATE> () GRUPO PELA customer_website_name ORDER BY 2 Esta uma pergunta bastante simples que busca a linha atual do cada cliente registrado, e agrupa as linhas para contar o nmero de clientes pelo site. Finalmente, o resultado ordenado pelo customer_count. A ordem importante e vai afetar a ordem das fatias do bolo grfico. Na seqncia de ao, o resultado da consulta acessvel para o o restante da seqncia de ao no query_result parmetro de sada. 550 Parte IV Inteligncia Aplicaes de Negcio 3. O segundo passo na seqncia de ao simplesmente chamado Grfico de pizza. Voc Pode encontrar este processo de ao no menu no submenu Grfico. A Torta Grfico ao do processo aceita a query_result da etapa anterior e usa-lo para definir o grfico de dados parmetro de entrada. Alm disso, alguns dos o Grfico de pizza'S opes so definidas especificando os atributos diretamente no grfico a seqncia de ao. A configurao mostrado na Lista 17-8. Listing 17-8: Configurando a ao do processo grfico de pizza <chart-attributes> <chart-type> PieChart </ tipo de grfico-> Clientes <title> por site </ title> <title-position> fundo </ a posio title-> <url-template> javascript: piechart_clicked ("{customer_website_name}"); </ Template-url> <paramname> customer_website_name </ paramName> <legend-font> <font-family> Arial </ font-family> <size> 12 </ size> </ Font legenda-> <interior-gap> 0,01 </ lacuna interior-> <width> 350 </ largura> <height> 350 </ altura> </ Carta-atributos> NOTA O XML de configurao usados na Listagem 17-08 maio parece um pouco assustador no em primeiro lugar. No entanto, parece mais difcil do que realmente . O Wiki Pentaho contm excelentes informaes sobre a criao e configurao de grficos. A documentao pode ser encontrado em: http://wiki.pentaho.com/display/ServerDoc2x/Chart+Reference As linhas em negrito da Listagem 17-8 so de interesse particular. Estas linhas permitir que o documento HTML que contm o grfico para reagir no caso de uma fatia de o grfico clicado. Uma discusso completa sobre como essa configurao afeta o HTML gerado est alm do escopo deste livro. Por agora suficiente para perceber que o url-modelo elemento provoca uma funo JavaScript chamada piechart_clicked () para ser chamado sempre que uma fatia do bolo clicado. A paramName elemento eo {} Customer_website_name espao reservado para assegurar que o nome do site que corresponde fatia de pizza passado como um argumento para a funo. Observe que o nome customer_website_name Captulo 17 Construindo Painis 551 idntico ao nome da primeira coluna do conjunto de resultados emitido pelo primeiro passo na seqncia de ao. A tag de imagem parmetro de sada usado para entregar o resultado da pizza Grfico ao do processo para o chamador da seqncia de ao. Isto ir gerar o HTML necessrio para tornar um grfico de pizza no seu painel. Depois de criar a seqncia de ao, uma boa idia test-lo. Se voc acidentalmente cometi um erro na seqncia, mas no test-lo de antemo, voc pode perder muito tempo depurando seu painel apenas para descobrir que ocorreu o problema a montante. Ento, atualize a soluo de repositrio. Voc dever ver uma janela pop up novo item na usurio do console. Abri-lo para verificar se o grfico de pizza exibida. Deve olhar como o grfico mostrado anteriormente na Figura 17-4. Clientes / Website: XactionComponent Depois de ter confirmado a seqncia de ao, voc precisar modificar o cliente template.html arquivo para inclu-lo em seu painel. Voc precisa: Adicionar um elemento de espao reservado HTML que atua como recipiente onde a sada a partir da seqncia de ao pode ser exibida. Criar um objeto JavaScript que sabe como chamar a seqncia de ao. Este objeto o componente do painel de instrumentos reais. Adicione o componente do painel. 1. Para isso, abra o clientes-template.html arquivo e adicionar um div elemento para atuar como um espao reservado. Inseri-lo logo aps a tag de fechamento da inicial h1 elemento, mas antes da script elemento, como mostrado aqui: <h1> O WCM Dashboard Clientes </ h1> id="customersPerWebsite"> </ div> language="javascript" type="text/javascript"> <script ... Resto do ficheiro ... Observe o id atributo no div elemento. Como voc vai ver, voc precisa passar o valor para a definio do componente para que ele saiba onde colocar sua sada. 2. Agora voc pode adicionar uma nova seo dentro do elemento script para definir seu componente. Primeiro, encontre a linha que l: componentes var = []; Imediatamente aps essa linha, adicione o cdigo listado na listagem 17-9 e depois salvar suas alteraes. 552 Parte IV Inteligncia Aplicaes de Negcio Listagem 17-9: O grfico circular definio de componentes / / Clientes / site Pie Chart Component componentes [components.length] = { nome: "customersPerWebsite", tipo: "XactionComponent", : soluo, o caminho: caminho, ao: "customers_per_website_piechart.xaction", parmetros: [] htmlObject: "customersPerWebsite", executeAtStart: true }; O cdigo na listagem 17-9 uma declarao de atribuio. Para o direito do sinal de igual, voc tem um objeto literal (esta a pea a partir da abertura chaveta de imediatamente aps o sinal de igual chave de fechamento em ao final do anncio), que ser usado pelo Dashboards objeto para criar e configurar o componente real. Para a esquerda do sinal de igual, voc tem componentes [components.length]. Como um todo, a declarao tem o efeito de acrescentando um novo componente de configurao para o final da matriz de componentes (Que armazenado no componentes varivel). Nesta fase, o objeto literal em si pouco mais do que um saco de pares nome / valor. Aqui vai uma breve explicao de suas finalidades: nome Um valor de cadeia. Isso deve identificar o componente entre todos os outros componentes na pgina. tipo Um valor de cadeia. Internamente, isso usado para fazer o instanciados real- o de uma das classes de componentes. Neste caso particular, voc quer para obter um resultado de uma seqncia de ao, que porque voc usou o string XactionComponent. Alternativamente, voc tambm pode usar xaction ou Xaction -Todos estes so mapeados para o XactionComponent componente em o CoreComponents.js arquivo. soluo Um valor de cadeia. Este o nome da soluo Pentaho onde a seqncia de ao, queremos chamar reside. Basta atribuir o soluo varivel, que ns vimos em nossa discusso sobre o cdigo clich. caminho Um valor de cadeia. Este o caminho da soluo de repositrio onde o seqncia de ao, queremos chamar reside. Basta atribuir o caminho varivel, que ns vimos em nossa discusso sobre o cdigo clich. ao -O nome do . Xaction arquivo. parmetros -Esta uma matriz para especificar quais parmetros devem ser passou ao invocar a seqncia de ao. A Grfico de pizza ao seqncia no exige (nem esperar) quaisquer parmetros, razo pela qual a matriz est vazia. Quando voc configurar outros componentes, voc vai aprender como configurar o parmetros membro. Captulo 17 Construindo Painis 553 htmlObject Um valor de cadeia. Aqui, voc pode atribuir o valor do atributo ID do titular do componente local. Isto estabelece uma ligao entre a objeto componente JavaScript e HTML do documento e permite a componente para mostrar a sua sada no painel. executeAtStart -Um valor booleano. Configurando-o para verdade faz com que o com- nente a ser prestado, logo que todos os componentes so adicionados painel de instrumentos. Caso contrrio, o componente ser atualizado somente em resposta a uma mudana de parmetros. Isso discutido na prxima subseo. Agora que voc mudou o dashboard para incluir um componente, voc deve Refresca a soluo de repositrio e testar o painel. Quando voc invocar o painel voc ver que o grfico de pizza foi adicionada ao painel. Alterar dinamicamente o ttulo Dashboard Nesta seo, vamos explicar como permitir que componentes do painel de interagir com uns aos outros. Isto envolve trs adies distintas para cliente template.html: A piechart_clicked () funo, que ser chamado sempre que o usurio clica em uma fatia do grfico de pizza A site parmetro do painel, que utilizado para comunicar a nome da fatia clicado grfico de pizza para o Dashboards objeto O marcador de cdigo HTML e JavaScript para uma TextComponent que reage a uma mudana na site parmetro, mostrando o seu valor Adicionando o parmetro website_name Dashboard Porque tanto a piechart_clicked () funo e os novos TextComponent necessidade de se referir ao site parmetro, melhor criar esse primeiro. Acrescente o seguinte cdigo para a parmetro seo que ele l: / Nome / parmetro param_website var = "website"; / / Valor inicial do parmetro Dashboards.setParameter (param_website, "Classe Mundial Filmes"); Este novo trecho de cdigo faz duas coisas: Atribui o nome do parmetro site para a varivel global param_website Na verdade, cria o parmetro na Dashboards objeto e fornece- com um valor padro, neste caso "Classe Mundial Filmes" Como voc pode ver, o nome do parmetro armazenado em uma varivel global para voc pode usar isso para se referir ao nome do parmetro. A vantagem dessa abordagem que voc no precisar digitar repetidamente o nome do parmetro literal todo o cdigo. Se voc tivesse que usar a seqncia literal "Site", H o risco de 554 Parte IV Inteligncia Aplicaes de Negcio acidentalmente apertou o nome. Voc pode, naturalmente, tambm cometeu um erro quando digitando o nome da varivel param_website, Mas isso vai resultar em uma execuo clara de erro sempre que voc se refere varivel no-existentes. Problemas causados por erros de digitao do nome do parmetro literal so muito difceis de solucionar: qualquer erros de execuo podem surgir numa fase muito mais tarde, depois de dashboard inicializao, e tambm provvel que os componentes parecem falhar silenciosamente. Note que so necessrios para criar o parmetro usando setParameter porque voc defina explicitamente a globalcontext membro da Dashboards objeto para falsa. Se voc deixou globalcontext ativada, voc ainda seria necessria para ''''Criar o parmetro, mas teria que se resumia a criao de uma global site varivel, assim: / / Inicializa o parmetro website var site = "Classe Mundial Filmes"; Embora isso possa parecer simples primeira vista, o uso de variveis globais faz mais difcil manter o cdigo de dashboard. Por um lado, mais difcil distin- guir entre as variveis globais que so''apenas''variveis globais e as os que so usados como parmetros. muito fcil de substituir acidentalmente o valor de uma varivel global, o que torna difcil para depurar pro- blemas. Ao desativar globalcontext, Voc forado a usar explicitamente as chamadas para Dashboards.setParameter () e Dashboards.getParameterValue (), Que torna claro que a inteno . Reagindo aos cliques do mouse sobre o grfico de pizza O segundo passo criar o piechart_clicked () funo. Lembre-se que, quando voc configurou o url-modelo propriedade da tabela (veja a lista- o 17-8), s fez com que o piechart_clicked () funo a ser chamada. Voc nunca definiu a funo em si. Agora voc ir adicionar o cdigo para o piechart_clicked () funo. Listagem 17-10 mostra uma possvel implementao do piechart_clicked () funo. Adicione este cdigo para o cliente template.html arquivo, diretamente abaixo a definio do componente grfico de pizza. Listagem 17-10: A funo piechart_clicked / / Funo que lida com os cliques do mouse sobre as fatias de pizza funo piechart_clicked (website) { curr_param_website var = Dashboards.getParameterValue (param_website); if (curr_param_website! site =) { Dashboards.fireChange (site param_website); } } Captulo 17 Construindo Painis 555 Quando piechart_clicked () chamado, o nome da categoria que pertence a fatia correspondente passado atravs da sua funo site argumento. Este um conseqncia imediata da maneira que voc configurou o url-modelo propriedade da Grfico de pizza seqncia de ao. Este cdigo mostrado na ntegra na Lista 17-8. No corpo da funo, voc primeiro determinar o valor atual da o site painel de parmetros. Isso feito chamando o getParameter Valor () mtodo da Dashboards objeto, passando o param_website varivel, que detm o nome do parmetro. Em seguida, verifique se o valor atual da site parmetro difere de o novo valor passado como argumento. Isto usado por um se declarao para decidir se deve chamar o fireChange () mtodo da Dashboards objeto. A fireChange () mtodo da Dashboards objeto de espera para ser passados dois parmetros: O nome de um painel existente parmetro Mais uma vez, voc pode usar o varivel global param_website. O novo valor para o parmetro especificado-Este o valor do argumento voc recebe do grfico de pizza. O objetivo da fireChange () mtodo consiste em comunicar a alterao ao Dashboards objeto, que ento notificar os outros componentes do mudar. NOTA Note-se que fireChange'''' um pouco enganador como o fireChange () mtodo no significa necessariamente uma mudana de fogo. Se voc realmente quiser garantir que voc est apenas a sinalizao mudar, voc tem que certificar-se explicitamente a si mesmo. por isso que o nosso execuo do piechart_clicked () mtodo utiliza um se declarao evitar falsas sinalizao de mudanas que no ocorreu. Adicionando um TextComponent O passo final adicionar um componente do painel que pode exibir o valor de o site parmetro. A TextComponent destina-se precisamente este tipo da tarefa. 1. Para incluir esse componente do painel, voc precisa adicionar um elemento HTML espao reservado onde o componente pode tornar seu texto. Voc vai usar um span elemento para esse fim, que voc vai colocar na j existente h1 elemento: Os clientes da <h1> Website: id="websiteName"> <span </ span> </ h1> Voc usa um span elemento para garantir o texto processado pelo componente ir aparecer''inline''com o texto da contendo h1 elemento. Nota 556 Parte IV Inteligncia Aplicaes de Negcio que incluiu uma id atributo e atribudo o valor WebSiteName. A id atributo ser usado pelo TextComponent para manipular o documento HTML, neste caso, para processar um texto. Esta semelhante ao nosso uso prvio do id atributo no espao reservado correspondente ao XactionComponent ns usado para exibir o grfico de pizza. 2. Depois de adicionar o espao reservado, voc pode adicionar o cdigo JavaScript para criar a componente. O cdigo para a TextComponent mostrado na Listagem 17-11. Adicione este cdigo logo abaixo do piechart_clicked () funo: Listagem 17-11: Cdigo para o TextComponent para alterar dinamicamente o nome do parmetro website no ttulo do painel / / Textcomponent nome Website componentes [components.length] = { nome: "website", tipo: "TextComponent", ouvintes: [param_website] expresso: function () { retorno Dashboards.getParameterValue (param_website); } htmlObject: "site da Web", executeAtStart: true }; O cdigo na Listagem 17-11 revela uma srie de semelhanas com o cdigo para o XactionComponent usado para exibir o grfico de pizza (que mostrado na Listagem 17-9). A nome,tipo,htmlObject e executeAtStart membros foram todos os mostrados aqui, e tem um significado semelhante para este tipo de componente. Ao contrrio da XactionComponent mostrado na Lista 17-9, o TextComponent no no invocar uma seqncia de ao e, portanto, as variveis de membro soluo, caminhoE ao e os parmetros no so aplicveis. H dois membros variveis que no encontrou antes: expresso Funo de uma seqncia. Para o TextComponent, Esta funo ser chamado para entregar o valor de texto que ser colocado no elemento identificados pelo htmlObject membro. Na Listagem 17-11, optamos por anexar uma funo inline chamada annima directamente para o membro. Se no houver uma funo chamada j est disponvel, voc pode simplesmente atribuir a funo nome prprio. Se voc usar uma funo chamada, note que voc no deve anexar o parnteses aps o nome da funo a que tem o efeito de chamar a funo, o que far com que o valor de retorno da funo para ser atribudo, e no a prpria funo. ouvintes -Uma matriz de nomes de parmetro. Esse membro pode ser con- figurado para todos os tipos de componentes. Listagem de um nome de parmetro dashboard Captulo 17 Construindo Painis 557 aqui faz com que o componente de ouvir esse parmetro. Na prtica, isso significa que o componente ser chamado para atualizar-se sempre que o fireChange () mtodo da Dashboards objeto chamado com o respec- nome do parmetro tiva como seu primeiro argumento. Na Listagem 17-11, ns configuramos o componente para ouvir o site parmetro, incluindo o param_website varivel em sua matriz ouvintes. Aps concluir essas etapas, voc deve testar para ver se tudo funciona. Assim Refresca a soluo de repositrio e em seguida, abra o painel. Clique sobre a torta para garantir que os cliques so capturados. Tambm verifique se o ttulo do painel atualizado automaticamente quando clicar no grfico de pizza. Mostrando a localizao do cliente Agora que voc tem um parmetro do painel, que controlado pelo mouse clique no grfico de pizza, voc pode adicionar mais componentes e configurar ouvintes para isso. Nesta subseo, voc vai aprender como adicionar um CDF MapComponent para mostrar distribuio geogrfica dos clientes. Voc vai usar isso para mostrar um mapa de Estados Unidos, que marca os 100 primeiros (por nmero de clientes) locais dos clientes da empresa de classe mundial de filmes para o site atual. NOTA O CDF MapComponent baseado na biblioteca JavaScript OpenLayers. Ao contrrio de outras solues de web popular mapa da pgina, OpenLayers open source e disponvel sob a licena BSD. enviado junto com o CDF. Voc pode encontrar mais informaes sobre o OpenLayers na http://openlayers.org. Alm da biblioteca OpenLayers, o CDF MapComponent Tambm usa web pedidos de www.openstreetmap.org, que fornece os dados para tirar da rua sobreposies para um mapa OpenLayers. O CDF MapComponent tambm podem fazer solicitaes da Web para http://www.geonames . Org / que utilizado para fazer pesquisas de longitude / latitude de nomes local. MapComponent CDF formato de dados O CDF MapComponent pode ser usado para indicar as localizaes no mapa mundial. O componente usa uma seqncia de ao para obter os dados que aparecem no no mapa. O conjunto de dados tem o seguinte formato: id -Um identificador exclusivo para um local. latitude -A latitude geogrfica do local. Isso define o distncia de um local a partir do equador, expresso em nmero de graus. Latitude varia de +90 (No Plo Norte) a 90 (centro de Antrtica). Se a latitude no estiver disponvel, voc pode fornecer um vazio string. 558 Parte IV Inteligncia Aplicaes de Negcio longitude De longitude geogrfica do local. Isso define o distncia de um local a partir do primeiro meridiano, expressa como um nmero de graus. Longitude varia de +180 a -180. Se a longitude no disponvel, voc pode fornecer uma seqncia vazia. nome -A seqncia que representa um nome legvel do local. valor -O valor da mtrica que voc deseja mapear. ttulo -Esse valor opcional pode ser utilizado pelo MapBubbleComponent. (Este um componente que pode ser chamado a partir de uma localizao no mapa para mostrar os detalhes relativos a esse local especfico.) Se voc olhar para o formato do conjunto de dados, voc pode perceber uma redundncia: Localizao pode ser especificado por nome, mas tambm por longitude / latitude. Se o latitude e longitude no esto presentes, o nome do local utilizado para pesquisa um servio web fornecido por www.geonames.org. Isso funciona bem se voc estiver interessados em mapear alguns locais, mas pode se tornar bastante lento quando centenas de mapeamento de locais. Alm disso, um nico nome pode ser mapeado para mltiplas locais, por isso melhor sempre explicitamente fornecer dados de longitude e latitude. Mais tarde nesta seo descrevem como criar a seqncia de ao para fornecer os dados para o MapComponent. Acrescentando uma dimenso Geografia Antes que voc possa criar uma seqncia de ao para entregar os dados para o MapComponent, Voc precisar obter a latitude e longitude para todas as localidades voc deseja mapear. Para manter as coisas simples, optamos por no incluir uma geografia dimenso no nosso armazm de dados Classe Mundial Filmes. No entanto, para o finalidade de demonstrar a MapComponent neste painel, precisamos fornecer a longitude ea latitude de dados para a localizao do cliente. NOTA A dimenso geogrfica ou local uma caracterstica comum em muitos dados projetos armazm. Na Classe Filmes do Mundo de data warehouse, uma geografia tabela de dimenso pode ser usado para navegar na fact_customer, fact_order, e fact_inventory tabelas de fatos. Alm disso, pode servir para o floco de neve dim_customer e dim_warehouse tabelas de dimenso. A nica razo para no inclu-la foi manter a simplicidade. No entanto, incorporando uma geografia tabela de dimenso na wcm_dwh banco de dados (e modificar o processo de ETL nesse sentido) um excelente exerccio para a esquerda para o leitor. Listagem 17-12 mostra o layout da tabela de dimenso geogrfica. Listagem 17-12: O layout da tabela de dimenso dim_geography CREATE TABLE dim_geography ( geography_keyINTEGER Geography_country_code CHAR (2) NOT NULL, NOT NULL, Captulo 17 Construindo Painis 559 Geography_country_name VARCHAR (50) NOT NULL, geography_region_code CHAR (2) NOT NULL, Geography_region_name VARCHAR (50) NOT NULL, geography_longitudeDOUBLENOT NULL, geography_latitudeDOUBLENOT NULL, geography_city_nameVARCHAR (50) NOT NULL, PRIMARY KEY ("geography_key '), NDICE (Geography_city_name, geography_region_code geography_country_code) ) Os dados para a dim_demography tabela pode ser obtido de diversas fontes. Ns usado o''a populao mundial das cidades''dataset fornecido por MaxMind. Voc pode baix-lo como worldcitiespop.txt.gz a partir de http://geolite.maxmind.com/ download / worldcities. Alternativamente, voc pode usar os dados da geonames . Org. J mencionamos que este servio web usada pelo CDF MapComponent para obter dados de latitude e longitude online, mas o mesmo site tambm fornece arquivos comprimidos que esto disponveis para download http://download.geonames.org/export/dump. Ns no vamos discutir o carregamento do dim_geography dimenso em detalhes, como o processo bastante simples. Ns carregamos os dados com PDI. Primeiro ns usou o texto de entrada e sada de mesa etapas para carregar os dados em uma tabela na estadiamento rea de banco de dados. Em seguida, esta tabela indexada para permitir uma eficiente pesquisa no pas, o estado (regio), cidade e. Em uma transformao individual, foi utilizado um Tabela etapa de entrada para carregar todas as linhas atuais do cliente tabela na wcm banco de dados. Ns adicionamos Database Lookup etapas para localizar as linhas correspondentes na o regio e pas tabelas, e isso permitiu-nos olhar para cima e longitude latitude pelo nome da cidade, o cdigo de regio (estado), eo cdigo do pas. O resultado foi despejados no dim_geography tabela. Localizao Seqncia de Ao de Dados Agora que voc tem os dados necessrios, voc pode criar uma seqncia de ao que pode entregar os dados para um MapComponent. Neste caso, voc pode usar um muito seqncia de aes simples, contendo apenas um Obter dados de / Relacional etapa. O projeto da seqncia de ao mostrado na Figura 17-7. Note que a seqncia de ao tem um parmetro de entrada chamado cliente _website_name. Este ser usado para obter os locais para os clientes do cur- atualmente selecionado site. O resultado da ao do processo mapeado para o consulta _result parmetro de sada. Isso garante que os dados podem ser interpretados a partir do resposta depois de fazer uma solicitao da web para a seqncia da ao. 560 Parte IV Inteligncia Aplicaes de Negcio Figura 17-7: Uma seqncia de aes para entregar os dados de localizao O SQL mostrado na Listagem 17-13. Listagem 17-13: Uma consulta SQL para obter os locais dos clientes SELECT , , , g.geography_key CASO QUANDO g.geography_key IS NULL THEN'' g.geography_latitude ELSE latitude ENDAS CASO QUANDO g.geography_key IS NULL THEN'' g.geography_longitude ELSE longitude ENDAS CONCAT (c.customer_city_name , '', C.customer_region_code , '(', C.customer_country_code, ')') AS LOCATION_NAME COUNT (*) AS customer_count CONCAT (c.customer_city_name) LOCATION_TITLE AS dim_customerc g dim_geography c.current_record = 1 c.customer_country_code = g.geography_country_code c.customer_region_code = g.geography_region_code c.customer_city_name = g.geography_city_name {PREPARO: customer_website_name customer_website_name} = c.customer_country_code c.customer_region_code c.customer_city_name customer_count desc 100 , , DA LEFT JOIN ON E E E ONDE GROUP BY , , ORDER BY LIMITE Captulo 17 Construindo Painis 561 NOTA Se o wcm_dwh projeto teve destaque o dim_geography tabela, o dim_customer tabela provavelmente teria sido floco de neve, permitindo uma simples INNER JOIN usando o geography_key. Colocando no Mapa Voc pode agora adicionar o cdigo para incluir o MapComponent em seu painel. 1. Abra o cliente template.html arquivo e adicionar a linha a seguir aps o espao reservado para o grfico de pizza. id="map" div style="width:400px; height:300px;"> </ div> Este ser o espao reservado para o MapComponent. H duas coisas de uma nota, esse elemento de espao reservado HTML: Atualmente, o CDF suporta exatamente um mapa por painel, e deve estar em um espao reservado com o id = "map". A largura ea altura so explicitamente especificados usando um estilo atributo. Normalmente, aconselhvel que se abstenha de utilizar os atributos de estilo inline porque torna mais difcil de painis tema mais tarde. No entanto, neste caso, voc precisa especificar explicitamente as dimenses do placeholder ", ou o mapa no ser visvel. 2. Agora voc pode adicionar o MapComponent O cdigo JavaScript para o componentes seo. O cdigo mostrado na Listagem 17-14. Listagem 17-14: O componente de mapa / / Posies do cliente componente do mapa componentes [components.length] = { nome: "customerLocations", digite: "mapa", : soluo, o caminho: caminho, ao: "customers_per_website_locations.xaction", ouvintes: [param_website] parmetros: [["customer_website_name", param_website]] htmlObject: "mapa", executeAtStart: true, initPosLon: -37,370157, initPosLat: -100,458984, initZoom: 1, expresso: function () { return "" js / Openmap / OpenLayers / img / marker.png "; } }; Um nmero de membros que configurada na Lista 17-14 foram introduzidas na listagem 17-9 (o cdigo do componente grfico de pizza) e 17-11 (o ttulo do painel 562 Parte IV Inteligncia Aplicaes de Negcio componente de cdigo). As configuraes seguintes membros merecem um pouco mais discusso: tipo,nomeE htmlObject Seqncia de valores. Atualmente, o MapComponent depende de algumas variveis globais que restringem todas estas propriedades de ter um valor diferente do "Mapa". Note que isto tambm se aplica a o valor da id atributo do elemento HTML espao reservado. ouvintes -Note-se que o membro est configurado exatamente como voc viu na Listagem 17-11. Ele garante que o mapa ser atualizado em resposta a um mudana na site parmetro. parmetros -Uma matriz de matrizes. Voc j encontrou o parmetros membro na Lista 17-9. Desta vez, voc passa um componente definio de parmetro para vincular o parmetro do painel entrada parmetro da seqncia de ao. Como mostrado na Listagem 17-13, um parmetro definio de um componente tambm uma matriz com duas entradas. O primeiro entrada uma expresso que avalia o nome da seqncia de ao parmetro. Na Listagem 17-13, esta a seqncia de caracteres literal "Customer_website _name ". Note que isso exatamente o nome do parmetro de entrada do customers_per_website_locations.xaction. A segunda entrada no definio de parmetros de componentes a varivel param_website, Que contm o nome do site painel de parmetros. Juntos, esse garante que sempre que o componente de mapa chamado para atualizar a si mesmo, ir utilizar o valor da site parmetro painel para parametrizar o customer_website_name da seqncia de ao. initPosLon e initPosLat -dupla valores. Estes membros so especficos ao MapComponent. Eles controlam o local deve ser inicialmente o centro do mapa. Neste caso, o mapa ir utilizar o centro dos EUA como o ponto focal. initZoom -inteiro. Especifica o fator de zoom inicial para o mapa. expresso -Uma funo string retornando de uma expresso. Para cada ponto o conjunto de dados, essa funo ser chamada. A funo deve retornar uma expresso que avalia para um URI (como um valor de cadeia). A URI usado para criar uma imagem que est a ser colocado no mapa, o correspondente Local. Na Listagem 17-14, sempre voltamos a URL de um marcador pouco Imagem que fornecido com OpenLayer. Isso tudo que existe para ela. Agora voc pode atualizar o cache de repositrio e de teste o painel novamente. Clique no grfico de pizza, e repare que o ttulo eo o mapa so atualizados. Usando marcadores diferentes dependendo dos dados Na subseo anterior, explicamos como adicionar um MapComponent ao painel de visualizao da distribuio geogrfica dos clientes. No entanto, Captulo 17 Construindo Painis 563 voc realmente no fazer nada com a mtrica atual, o nmero de cus- entes. Nesta subseo, voc adicionar alguns cdigos para mostrar diferentes marcadores dependendo da quantidade de clientes que residem naquela localidade. Para o nosso exemplo, vamos supor que voc est interessado em distinguir entre locais que tm poucas quantidades, moderada ou grande quantidade de clientes. Por enquanto Vamos resolver por algumas regras simples: Localidades com 100 ou menos clientes so considerados pequenos, e vai ficar um marcador verde. Localidades com mais de 250 clientes so considerados importantes e obter um marcador vermelho. posies restantes (com mais de 100, mas no mais de 250 clientes) so considerados moderados e obter um marcador amarelo. Vamos primeiro tentar e tentar chegar a algo que funciona mais ou menos. Voc pode, ento, gradualmente melhorar o cdigo, se quiser. Uma execuo muito simples, implementao do novo requisito envolve a escrita de uma expresso alterada de o expresso membro o direito de escolher marcador da imagem URI. Se voc manter as coisas simples e se contentar com as imagens junto com OpenLayer, o cdigo na Listagem 17-15 implementa suas exigncias. Listagem 17-15: Cdigo modificado para o membro de expresso expresso: function () { return "valor <= 100? 'Js / Openmap / OpenLayers img / marcador green.png " + ": Valor> 250? 'Js / Openmap / OpenLayers / img / marker.png " + ":" Js / Openmap / OpenLayers img / marcador gold.png " ; } No entanto, esse cdigo deixa muito a desejar. Primeiro de tudo, muito difcil para ler, devido ao fato de que voc tem que colocar o seu cdigo em uma seqncia literal. Se fazer o exerccio mental de chamar a funo atribuda expresso membros e, em seguida, imagine o cdigo que avalia, voc acaba com algo equivalente ao trecho a seguir: valor <= 100? 'Js / Openmap / OpenLayers img / marcador green.png' : Valor> 250? 'Js / Openmap / OpenLayers / img / marker.png' : 'Js / Openmap / OpenLayers img / marcador gold.png' Agora que abriu o cdigo, voc pode ver que h uma varivel chamada valor que contm o valor da mtrica. Esta varivel colocado disposio os componentes internos. O cdigo desembrulhou permite detectar alguns problemas: O cdigo refere-se s imagens usando literais string. No h nenhuma maneira de configurar o que as imagens sero mostradas. Isso ruim porque difcil uma fios 564 Parte IV Inteligncia Aplicaes de Negcio aspecto da apresentao (a imagem do marcador) para a lgica que escolhido para um apresentao especial. A lgica em si, com os valores-limite de 100 e 250, tambm cabeadas. Se o conceito de''grande''e''locais''pequena provvel que mudar ao longo do tempo, este tipo de cdigo impede que o painel de adaptao para esse tipo de mudana. A soluo para ambos os problemas fazer com que os valores literais configurvel. Felizmente, o MapComponent foi projetado para ter uma instalao para configurar o imagens do marcador. Isso pode ser configurado atravs do marcadores membros, que pode ser definido como um array de strings URI. Assim como o valor varivel, o marcadores membro magicamente colocados disposio da expresso. Isto significa que voc pode utilizar o seguinte cdigo para extrair as strings URI literal da expresso cdigo: componentes [components.length] = { nome: "customerLocations", digite: "mapa", ... Os outros membros ..., Marcadores: [ "Js / Openmap / OpenLayers img / marcador green.png", "Js / Openmap / OpenLayers / img / marker.png", "Js / Openmap / OpenLayers img / marcador gold.png" ] expresso: function () { return "valor <= 100? marcadores [0] " + ": Valor> 250? marcadores [1] " + ": Marcadores" [2] ; } } Este definitivamente melhor, como ns podemos agora alterar as imagens sem marcador alterar o cdigo que executa a lgica. Dito isto, h ainda alguns espao para melhorias. Agora, os limiares de 100 e 250 ainda esto hard-wired no cdigo. Agora, esses valores no so imutveis, nossa idia de que um grande nmero de clientes pode mudar ao longo do tempo, ou neste caso, ns podemos desenvolver a opinio de que os valores-limite deve ser realmente depende do site. Outra razo pela qual no estamos to felizes com o hard-wired constantes que no podemos simplesmente aplicar a mesma lgica de outros painis que no , sem duplicar o cdigo. Combine isso com a obrigao de alterar os valores em algum ponto no futuro, e voc est olhando para o inferno manuteno. Captulo 17 Construindo Painis 565 Felizmente, existe uma maneira simples de lidar com isso. Tudo o que voc realmente tem que fazer substituir a ocorrncia dos valores constantes, com referncias ao painel parmetros. Ento, primeiro adicionar dois novos parmetros para os valores-limite na seo de parmetros: low_customer_count var = "low_customer_count"; Dashboards.setParameter (low_customer_count, "100"); high_customer_count var = "high_customer_count"; Dashboards.setParameter (high_customer_count, "250"); Note-se que atualmente, o CDF suporta apenas parmetros de valor da cadeia. A membro da expresso modificada mostrado aqui: expresso: function () { <voltar valor "= parseInt (Dashboards.getParameterValue (Low_customer_count))? Marcadores [0] " + ": ParseInt> valor (Dashboards.getParameterValue (High_customer_count))? Marcadores "[2] + ": marcadores [1] " ; } Como voc pode ver, as variveis limite so parametrizadas. Observe como o built-in parseInt () funo usada para converter os valores de parmetro para o tipo inteiro. Isso necessrio para uma comparao (numrica) adequada. Note que ns no (ainda) adicionar o low_customer_count e high_customer _count parmetros para o ouvintes matriz do MapComponent. Tornaria bom senso para faz-lo se os valores-limite foram dependentes do site, ou Se o painel permitiu que o usurio final para inserir um novo valor limite para permitir uma anlise what-if. Isso deixado como um exerccio para o leitor. Styling e Personalizao Nas sees anteriores, voc criou um painel, componentes e interao. At agora, ns deliberadamente suprimida a tentao de ter de fazer a painel de boa aparncia. Isto permitiu que voc se concentre em detalhes tcnicos de tornar o trabalho componentes do painel, sem ter que lidar com o distrao dos problemas de layout e afins. Outra considerao que o habilidades necessrias para criar painis e componentes do painel de construo so realmente muito diferente do que voc precisa para fazer um layout e criar um esteticamente agradvel todo. As tarefas so ex-melhor feito por um desenvolvedor de BI apenas com o desenvolvimento de competncias poucos web, enquanto o segundo melhor feito por um desenvolvedor web, talvez em conjunto com um especialista em usabilidade. 566 Parte IV Inteligncia Aplicaes de Negcio Nesta seo, mostramos algumas tcnicas que voc pode usar para adicionar um layout para seu painel. Uma discusso detalhada sobre este tema est fora do escopo deste livro, mas pelo menos podemos mostrar os primeiros passos do processo. Estamos muito confiante de que voc deve ser capaz de comear por aqui e siga o seu prprio percurso, desde que voc tenha algumas habilidades em pginas da Web de estilo, ou se voc pode confiar em uma desenvolvedor web para ajud-lo. Denominando o Dashboard H duas coisas a considerar quando se denominar um painel: Organizando-Layout colocao dos componentes. Isso vale principalmente para painis individuais. Theming-Garantia uma aparncia consistente usado em painis, ou um aplicativo inteiro. Por definio, o componente layout ser em grande parte especfica para um indivduo painel de instrumentos. Por esta razo, o estilo ea estrutura do documento para controlar o layout pertence principalmente no modelo de contedo. Theming, por outro lado, envolve recorrncia de elementos e atributos, tais como cores e fontes. Porque o modelo do documento pode ser reutilizada por vrios painis, faz bom senso de controle theming a esse nvel. (Usando documento modelos personalizados o tema da prxima subseo). Voc pode usar dois diferentes dispositivos para controlar o layout: estrutura de documento usando elementos HTML especficos, eo uso de elemento de assentamento Cascading Style Sheets (CSS) Uma discusso completa sobre esses mtodos e as tcnicas envolvidas seria bem fora do escopo deste livro. Vamos resolver para o ponto de vista que tanto mtodos so vlidos e teis, e muitas vezes o efeito desejado pode ser melhor alcanado atravs da combinao de ambos os mtodos. as tabelas HTML so ainda a maneira mais fcil de alcanar rapidamente um esquema robusto. A layout simples que coloca o ttulo do painel na parte superior do painel, e Abaixo dele, o grfico do lado esquerdo eo mapa na mo direita lado, mostrado na Listagem 17-16. Listagem 17-16: Usando uma tabela HTML para colocar os componentes <table> <- Linha 1:! Cabealho -> <tr> <-! Vos de largura da clula da tabela -> colspan="100%"> <td Os clientes da <h1> Website: id="websiteName"> <span </ span> </ h1> Captulo 17 Construindo Painis 567 <br/> </ Td> </ Tr> <! - Linha 2: componentes -> <tr> <-! Coluna esquerda -> <td> id="customersPerWebsite"> </ div> </ Td> <-! Coluna da direita -> <td> id="map" div style="width:400px; height:300px;"> </ div> </ Td> </ Tr> </ Table> Este mtodo usa o tabela,tr (Para a linha da tabela) e td (Por dados da tabela) elementos para criar um layout tabular. Embora este mtodo seja fcil de configurar e trabalha em uma maneira razoavelmente semelhantes entre os navegadores, geralmente desaprovado por desenvolvedores web moderna porque o layout basicamente um efeito colateral da estrutura do documento (ou seja, os elementos). Isso torna mais difcil de entender documentos HTML, porque no possvel determinar se o documento estrutura existe para seu prprio benefcio (para processar dados tabulares) ou para alcanar um layout efeito. Portanto, boas prticas de desenvolvimento exigem que os layouts devem ser controlada utilizando CSS ao invs de estrutura do documento. Na Listagem 17-17, voc encontrar o cdigo HTML que permite atingir um layout similar ao que resulta o cdigo na Listagem 17-16. Listagem 17-17: Usando CSS para colocar os componentes <style> # {CustomersPerWebsite position: absolute; top: 75px; left: 20px; width: 250px; height: 250px; } # {Mapa position: absolute; top: 75px; esquerda: 400px; width: 400px; height: 300px; } </ Style> Os clientes da <h1> Website: id="websiteName"/> <span </ span> </ h1> id="customersPerWebsite"> </ div> id="map"> </ div> 568 Parte IV Inteligncia Aplicaes de Negcio NOTA O layout da Listagem 17-17 no funciona particularmente bem com o padro CDF modelos, uma vez que estes no antecipar o posicionamento absoluto de elementos. Na prxima seo, ns desenvolvemos um modelo de contedo que mais adequado para este tipo de layout. Criando um modelo de documento personalizado At agora, voc tem usado o modelo do documento padro para seus clientes painel de instrumentos. Isso significa que o painel sempre contou com o cabealho padro com o logotipo da CDF, eo rodap com o link para o site WebDetails. Se voc gosta, voc pode usar o seu prprio modelo de documento para personalizar o aparncia de seu painel adicional. As possibilidades para adicionar sua prprios fundos, layouts, e de navegao so bastante ilimitado. Um detalhado discusso sobre todas as coisas e tcnicas que voc poderia aplicar est alm do escopo deste livro. No entanto, podemos, pelo menos, mostrar-lhe como criar os seus prprios modelo de documento. Para adicionar o seu modelo de documento prprio, criar um novo arquivo chamado em modelo painel-wcm.html diretamente no diretrio home do CDF. Lembre-se que o nome do arquivo importante, mas deve comear com painel de modelo- e ter a . Html extenso. Adicione o contedo mostrado na Listagem 17-18 para o arquivo. Listagem 17-18: O arquivo de modelo-dashboard-wcm.html <DOCTYPE html PUBLIC! "- / / W3C / / DTD XHTML 1.0 Strict / / EN" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> xmlns="http://www.w3.org/1999/xhtml"> <html <head> <META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" /> <title> Comunidade Dashboard Framework para o Word Class Filmes </ title> <script language="javascript"> isadmin = "{isadmin}"; isLoggedIn = "{isLoggedIn}"; </ Script> </ Head> <body> id="header"> </ div> id="content"> <div div id = "primaryContentContainer"> id="primaryContent"> <div {Content} </ Div> </ Div> </ Div> id="footer"> </ div> </ Body> </ Html> Captulo 17 Construindo Painis 569 Lembre-se, a {Content} espao reservado ser substitudo pelo painel modelo de contedo durante a montagem do documento. Voc deve modificar o . Xcdf arquivo para usar o documento personalizado modelo. Basta adicionar uma linha como a seguinte, entre os cdf abertura e tags de fechamento: <style> wcm </ style> Observe que o valor, wcm, Corresponde diretamente ao wcm postfix no nome do arquivo do modelo do documento exemplo, modelo-painel-wcm.html. Consulte a Lista de 17-2 para um exemplo de uma . Xcdf arquivo que especifica um modelo de documento. Resumo Neste captulo, abordamos a criao de dashboards baseados na Comunidade Dashboard Framework. Neste captulo, voc aprendeu o seguinte: O CDF criado e mantido pela comunidade Pentaho. A Pentaho Corporation inclui o CDF no servidor. Os painis so, na verdade pginas web baseadas em tecnologias como o HTML, CSS e JavaScript, e usar AJAX construda sobre JQuery. pedidos painel CDF so manipulados por um plugin que rene os painel de instrumentos a partir de um modelo de documento e um modelo de contedo. A . Xcdf arquivo contm as informaes sobre o documento e contedo modelo a ser usado. modelos de documentos e contedos so na verdade arquivos HTML. Dashboard componentes so adicionados com JavaScript e muitas vezes exigem uma espao reservado HTML para exibir seu contedo. componentes Dashboard pode ouvir as mudanas nos parmetros do painel, que atua como uma sugesto para automaticamente atualizar-los. Os componentes podem sinalizar uma mudana de parmetro com o fireChange mtodo. componentes Dashboard pode confiar em seqncias de ao de entregar o real BI contedo. A XactionComponent pode ser usado para exibir o contedo de um arbitrrio seqncia de ao. O texto dinmico pode ser implementado usando a TextComponent. 570 Parte IV Inteligncia Aplicaes de Negcio Tambm discutimos o seguinte: Como capturar cliques do mouse em um JFreeChart Como usar o MapComponent para mostrar a distribuio geogrfica da data Como mostrar diferentes marcadores em um MapComponent dependendo da valor das mtricas Como o seu estilo de painis Como criar e utilizar um modelo de documento personalizado ndice A posicionamento absoluto, PRD, 398 controle de acesso privilgios camada de metadados de refino, 349 esquema de projeto e, 483 acumulando tabela peridica fato instantneo, 149-150 definies de aes, 68 editor de seqncia de ao, 80-82 Assistente de Aco Sequence, 80, 86 seqncias de ao adicionar como modelos para Design Studio, 88 criando com PDS. Veja PDS (Pentaho Design Studio) Clientes por grfico de pizza, Website 548-551 executado pelo motor soluo, 68 execuo em segundo plano, 422-423 funcionalidade, de 78 anos insumos para, 83-85 para dados de localizao, 559-561 sadas para, 85 aes do processo e, 85-89 Agendador de programao com, 412 417-420 executar trabalhos no interior, 335 contendo soluo de repositrio, 68 subscrever, 423-426 usando transformaes em, 334-336 aes, processos, 85-89 Active Directory (AD), e EE nico sign-on, 77 Active @ ISO Burner, 22 Ad Hoc Assistente de Relatrio, 373-375 Boto Adicionar Cubo, 466-467 Adicionar tarefa ao, processo Scheduler, 418-419 Nveis Adicionar, 474-476 Adicione funo de parmetros, PRD, 386-389 Adicionar etapa seqncia, PDI carregamento dimenso de data, 268-269 carregamento dimenso demogrfica, 283, 284 medidas aditivo, 150 Endereos de pginas de guia, Correio de trabalho, 290 Ad-Hoc componente Report, 192 admin usurio criao de servidores escravos, 340 gerenciamento de contas de depsito PDI, 326-327 PDI repositrio, 324 administrao console, 38, 44 tarefas administrativas fontes de dados, 60-61 gesto de agendas e assinaturas 61 Pentaho Administrative Console. Veja PAC (Pentaho Administrativa Console) gerenciamento de usurios, 58-60 Administrador de perfil, repositrio PDI, 327 Advanced categoria, Database Connection dilogo, 250 Advisor boto, PAD, 501 Idade e Idade etapa seqncia, a demografia dimenses, 282 571 572 ndice A ARFF (Attribute Relation File Format), 511, 519 AS. Veja seqncias de ao ASPs (Application Service Providers), 144 atribuies, gerenciamento de usurios, 59 associao, como ferramenta de minerao de dados, 507-508 no servio pblico, programao de trabalho, 421 Atributo File Format Relao (ARFF), 511, 519 atributos dimenses, 476-477 global de data mart modelo de dados, 206-207 hierarquias, 472-473 nvel, 474-475 medidas, 469-470 cubos de Mondrian, 467 no se adaptam s tabelas de dimenso, 180-181 colunas de auditoria, 163-164 autenticao hibernar banco de dados armazenando dados sobre, 45, 47 JDBC configurao de segurana, 50 A configurao de correio de entrada de emprego, 290- 291 Pentaho Console Administrativo configurao, 57-58 configurao do servidor escravo, 340 Configurao de SMTP, 53-54 Primavera de manipulao de Segurana, 60, 69 autorizao hibernar banco de dados de armazenamento de dados no usurio, 47, 60 JDBC configurao de segurana, 50 gerenciar contas de usurio, 327-328 Primavera de manipulao de Segurana, 60, 69 configurao de usurio, 58-60 descoberta de conhecimento automatizada, 503. Veja tambm minerao de dados inicializao automtica, UNIX / Linux, 40-41 execuo, disponibilidade remota, 338-339 mdias, de clculo, 217-218 eixos colocao na dimenso controle, 489-490 dimenses em apenas um eixo, 455 MDX informao representam em vrios eixos, 453 Azzurri Clay, 32 Idade etapa Group, dimenses, demografia 282, 284-285 Agregado Designer, 130, 442 tabelas agregadas criar manualmente, 500 inconvenientes de, 502 prorroga Mondrian com, 497-500 gerao e preencher, 445 Pentaho Analysis Services, 445 agregao alternativas para, 502 benefcios, 496-497 processo de integrao de dados, 229 dados de projeto do armazm, 163-164 desempenho do data warehouse, 130 Mondrian, 496 relatrios PRD, 393-395 restringir resultados, 157 Slice and Dice exemplo de tabela de piv, 17-18 com sub-relatrios para diferentes 404-406, relatrios WAQR, 374 Tecnologia AJAX, painis CDF, 529-530 algoritmos, como ferramentas de data mining, 508-509 aliases, 152-153, 384-385 todos os nveis, hierarquias MDX, 450-451 todos os membros, as hierarquias MDX, 450 Todos os Horrios painel, o servidor admin espao de trabalho, 428 Alves, Pedro, 530 anlise exemplos de, 16-19 pontos de vista em Pentaho BI Server, 484-485 pontos de vista do usurio do console, 73-74 bases de dados analticos, 142-143 anlise de negcios, 503 E operador, mltiplas restries, 157 aparelhos, data warehouse, 143-144 Fornecedores de aplicaes (ASPs), 144 arquitetura Quadro Comunitrio de Dashboard, 532-534 data warehouse. Veja armazenamento de dados arquitetura Pentaho Analysis Services, 442-444 Pentaho BI, 64 relatrios, 371-373 arquivamento desempenho do data warehouse e, 132 dados da transao, 128 ndice B-C 573 B back office de arquitetura de dados do armazm, 117 suporte de banco de dados para, 95-96 programas de back-end, Pentaho BI pilha, 66 fundo diretrio, o contedo do repositrio, 413 execuo em segundo plano, 422-423, 426-429 backup, PDI repositrio, 329 ferramentas de relatrio em faixas, 376 grficos de barras, 400-402 Base conceito, camada de metadados, 357 ETL por lotes, 118 BC (business case), 192. Veja tambm Mundo Classe Filmes BDW (Business Warehouse), 111, 115 Entre ... e operadores, 151-152 BI (business intelligence). Veja tambm Pentaho BI Server anlises e, 503 componentes, 70-73 painis e, 529 dados de projeto mart e. Veja data marts, design minerao de dados e, 505-506 definio de, 107 exemplo de caso de negcio. Veja WCM (World Classe Filmes), exemplo de negcio caso importncia dos dados, 108-109 plataforma Pentaho BI pilha, 64 finalidade de, 105-109 dados em tempo real de armazenagem e, 140-142 relatrios e documentos. Veja relatrios usando o gerenciamento de dados mestre, 127-128 exemplos BI Developer boto nico-parameter.prpt, 13-14 CDF seo, 530 Resumo dos, 8-9 Regional de Vendas - HTML relatrios, 11-12 Vendas Regional - Linha de grfico de barras /, 16-17 Slice e Anlise de Dados, 17-18 relatrios BIRT, 72, 372 biserver-ce, 38. Veja tambm home Pentaho Diretrio ndices de bitmap, e data warehousing, 129-130 campo blob, relatrios com imagens, 401-403 BOTTOMCOUNT funo, consultas MDX, 457 mesas de bridge manuteno de, 229 vrios valores e dimenses, 182-183 hierarquias de comando usando, 184-185 navegadores, entrando, 6-7 Construindo o Data Warehouse (Inmon), 113-114 variveis internas, 314 vagabundo, Gerenciar Linux init scripts, de 42 anos Burst relatrio de vendas, 54 ruptura definido, 430 aplicao em Pentaho, 430 outras implementaes, 438 Resumo dos, 430 Aluguer exemplo lembrete e-mails, 430-438 arquitetura de barramento, 179-189 analistas de negcios, 193-195 anlise de negcios, 503 business case (BC), 192. Veja tambm WCM (World Class Filmes), por exemplo caso de negcio Negcios Colunas, na camada lgica, 362-363 Business Warehouse (BDW), 111, 115 business intelligence. Veja BI (business inteligncia) Business Intelligence Server. Veja Pentaho BI Server camada de negcio, modelo de metadados, 71 modelagem de negcios, usando esquemas estrela. Veja esquemas estrela Modelos de Negcios, a camada lgica, 362 mecanismos de regras de negcios, 141 Tabelas de negcios, 362-365 Vistas Business, 71, 362 boto nico-parameter.prpt amostra, 13-14 C C3P0 pool de conexo, 49-50 C4.5 algoritmo rvore de deciso, 508, 512 C5.0 algoritmo rvore de deciso, 508-509 cache, Junte-se linhas (produto cartesiano) etapa, 280 Calcular e formatar passo Datas, 269-273 Calcular o intervalo de tempo, 277, 281 membros calculados, 459-460, 483 clculos, funes para PRD, 395 574 ndice C resumo, 569-570 sinergia com a comunidade e Pentaho corporao, 529-530 modelos, 538 Arquivo. Xcdf, 537-538 armazm de dados central, 117, 119-121 CEP (processamento de eventos complexos), 141 Change Data Capture. Veja CDC (Change Data Capture) CAPTULOS, Machados, 453 Grfico editor, 398-399 grficos. Veja tambm Os clientes, por torta Website grfico adicionar grficos de barra com os relatrios do PRD, 400 adicionar imagens aos relatrios PRD, 401-404 adicionar grficos de pizza para os relatrios do PRD, 400-402 adicionando aos relatrios PRD, 397-400 estourando. Veja ruptura exemplos, 14-16 incluindo em painis, 548 JPivot, 494-496 no disponvel em WAQR, 375 reagir aos cliques do mouse sobre a torta, 554-555 Verifique se o preparo Tabela etapa existe, 293-294 objetos filho, e herana, 356 Citrus, 13-14 caminho de classe, minerao de dados Weka, 512-515 classificao algoritmos, 508-509 como ferramentas de data mining, 506-507 com Weka Explorer, 524 cliente, definido, 65 computao em nuvem, 144 clustering como ferramentas de data mining, 507 opes de conexo para banco de dados, 250 execuo remota com Carte usando, 337, 341-342 snowflaking e, 186-187 dimenses desmoronou, 498 funes de cobrador, 397, 399-400 cores, para os relatrios do PRD, 390-391 perfis coluna, 197-198, 199 bases de dados em colunas, 142-143 bancos de dados orientados por colunas, 502 colunas dimenso de data, 213-216 nomes significativos para, 163 rapidamente abrir as propriedades de, 210 SCD tipo 3, 174 Calculadora etapa, PDI grupos de idade e renda para a demografia dimenso, 285 Calcular o intervalo de tempo, 281 passado e atual indicadores anos, 276 carregamento dimenso de data, 269-273 carregamento dimenso demogrfica, 282 dias de calendrio, data do clculo dimenses, 270 servidor Carte clustering, 341-342 criao de servidores de escravos, 340-341 como ferramenta PDI, 231 execuo remota e, 337-339, 341 execuo, 339-340 carte.bat script, 339-340 carte.sh script, 339-340 produto cartesiano, 153 Cascading Style Sheets. Veja CSS (Cascading Style Sheets) catlogo, com conexo DataCleaner, 202 Catlogo de Modelagem OMG e Metadados Especificaes, 352 CategorySet funo de coletor, 399-400 causalidade, a correlao de vs em minerao de dados, 508 CDC (Change Data Capture), 133-137 escolher a opo, 137 processos intrusiva e no intrusiva, 133 baseado em log, 136-137 mtodos de execuo, 226 Resumo dos, 133 instantneo baseado, 135-136 fonte de dados de base, 133-134 desencadeamento de base, 134-135 CDF (Painel da Comunidade Framework), 542-569 conceitos e arquitetura, 532-534 modelo de contedo, 541-542 cliente e painel sites. Veja painel do cliente e sites exemplos de painis, 19-20 modelo de documento, 538-541 histria de, 530-531 diretrio home, 534-535 JavaScript e CSS recursos, 536-537 Resumo dos, 529 plug-in, 534 plugin.xml arquivo, 535-536 habilidades e tecnologias para, 531-532 ndice usar dicionrio para verificaes de dependncia na, 205 COLUNAS, Machados, 453-454 Colunas seo, OLAP Navigator, 19 colunas de lojas, bancos de dados analticos, 142-143 Combine etapa, PDI Junte-se linhas (produto cartesiano) passo, 278-281 carregamento dimenso demogrfica, 283 carregamento dimenso de tempo, o PDI, 277 linha de comando criando links simblicos de, 26 instalar o Java SDK, 27-28 sistemas Linux usando, 24-25 execuo de tarefas e transformaes de, 330-334 criao de esquemas de MySQL, 46 iniciar programas de desktop, de 76 anos linhas de comentrio, scripts de inicializao, 52 Metamodelo Armazm Comum (CWM), 70, 352 Quadro Comunitrio de Dashboard. Veja CDF (Painel da Comunidade Quadro) Comunidade Edio do Pentaho modelos de documento padro, com, 539 A tecnologia Java Servlet, 74 Resumo dos, 76-77 comparao de dados, DataCleaner, 199, 205 Competir no Analytics, 503 painel completo, rea de trabalho, 427 processamento de eventos complexos (CEP), 141 compresso, bases de dados analticos e, 142 conceitos, Pentaho metadados, 356-357 formatao condicional, projeto de esquema e, 483 dados conflitantes, armazns de dados, 124 dimenses conformado, 115, 158-160 cumulativo conformado, 498 contato com a declarao prvia, SQL, 184 pools de conexo adicionar a configurao do Hibernate, 49-50 opes de conexo do banco de dados, 250 gesto, 69 conexes. Veja conexes de banco de dados consistncia, e transformaes, 247 tabelas de fato consolidada, 189 consultores, a contratao de analistas externos, 193-194 repositrio de contedo, 412-413, 429 C 575 modelo de contedo, CDF, 533, 541-542 contedo, de modelos de documentos, 540 funes de converso, PRD, 393 Assistente para Copiar Quadros, 210 correlao, causalidade versus na minerao de dados, 508 count_rows transformao, 315 primos, os relacionamentos familiares cubo, 452 Criar etapa dim_date, dimenso, data 265-267 Criar dim_demography etapa, dimenso demogrfica, 282 Criar dim_time etapa, a dimenso do tempo, 277 Criar Chaleira opo Job, 210 Criar stage_demography etapa, dimenso demogrfica, 282 Criar Staging etapa de mesa, 293, 295-296 CREATE TABLE declarao Criar dim_date, data de carregamento dimenso, 265-267 criar tabela de teste, 296 dim_demography tabela de dimenso, 283-284 tabela de dimenso simplificada data, 263-265 stage_promotion tabela, 305 create_quartz_mysql.sql script, 46 create_repository_mysql.sql script, 46 create_sample_datasource.sql script, 46 credenciais, Pentaho Administrativa Console, 57-58 CRISP-DM (Cross Industry Standard Processo de Minerao de Dados), 505 cron implementaes, 415, 421 CROSS JOIN, 153, 155-156 Crossjoin consultas funo MDX, 457 tabelas cruzadas, visualizao de cubo, 447-448 crosstabs, visualizao de cubo, 447-448 validao cruzada compensar vieses, 509 estratificada, 509-510 com Weka Explorer, 524 CSS (Cascading Style Sheets) construo de painis CDF, 532 CDF e, 536-537 painis estilo, 566-567 Ctrl + Alt + N, 287 CTRL + C, 25 CTRL + R, 25 Ctrl + Barra de espao, 312, 317 576 ndice C-D mostrando no cliente e sites painel de instrumentos, 557-562 clientes, como por exemplo WCM cumprimento de ordem do cliente, 94 desenvolvimento de modelo de dados, 101-102 principais fluxos de processos, 96 despachos e promoes, 102-105 sites de segmentao, 94-95 Clientes por grfico de pizza Website seqncias de ao, 548-551 Resumo dos, 548 XactionComponent, 551-553 Customize tela Seleo, WAQR, 374 CWM (Common Warehouse metamodelo), 70, 352 cubos acrescentando dimenses Mondrian esquemas, 470 adicionando medidas para tabelas de fatos do cubo, 469-470 analisando. Veja JPivot associar-se com dimenses compartilhadas, 476-477 criar, 466-467 tabelas de fatos para, 468 relaes familiares, 451-452 FILTRO funo, 455-456 Consultas MDX que operam em, 445-446 Resumo dos, 446-447 publicao, 482-483 testes, 481-482 visualizao de, 447-448 chavetas {} sintaxe definida, 458-459 escopo de trabalho atual, 313 indicador do ano em curso, data de carregamento dimenso, 276-277 current_record coluna, 172-173 current_week coluna, 167-168, 216-218 cliente e sites do painel, 542-569 acrescentando TextComponent, 555-557 cdigo clich para tablier componentes, 546-547 cdigo clich para tablier parmetros, 546 cdigo clich para soluo de dashboard eo caminho, 545-546 modelo de documento personalizado para, 568-569 Clientes por grfico de pizza, Website 548-553 alterar dinamicamente o ttulo do painel, 553-554 Arquivo. Html para, 545 MapComponent formato de dados, 557-562 opes marcador de dados, 562-565 reagir aos cliques do mouse no grfico de pizza, 554-555 constituio, 544 mostrando a localizao do cliente, 557 o estilo do painel, 565-568 teste, 547 Arquivo. Xcdf para, 544 dimenses do cliente, esquemas de Mondrian, 478-480 localizaes de clientes. Veja tambm MapComponent opes marcador para mostrar, 563-565 D DaaS (DataWarehouse como um servio), 144 Dashboard Builder, Enterprise Edition, 77 modelo de painel de contedo, CDF, 533, 541-542 painel modelo do documento. Veja modelos de documentos (templates exterior), CDF dashboards CDF. Veja CDF (Painel da Comunidade Quadro) componentes, 543 clientes e sites. Veja cliente e painel sites exemplos de, 19-20 Resumo dos, 529 resumo, 569-570 Dashboards objeto, 534 Dashboards.js, 536 dados, opes de marcador, 562-565 aquisio de dados e preparao, Weka minerao de dados, 521-522 anlise de dados dados de perfil para, 197-198 armazenamento de dados e, 195-197 usando DataCleaner. Veja DataCleaner alteraes de dados, a dimenso da promoo, 301-302, 304-306 limpeza de dados, fonte de dados, 228 governana de dados, 125 integrao de dados atividades. Veja ETL (Extrao, Transformao e carregamento) definido, 223 ndice motor, 230, 232 viso geral, 223-224 usando PDI. Veja PDI (Pentaho Data Integration) dados linhagem, 114 data marts arquitetura de barramento, 119-121 de arquitetura de dados do armazm, 117 independentes, 119 Inman, ou abordagem Kimball, 115-116 cubos OLAP, 121-122 Resumo dos, 121 formatos de armazenamento e MDX, 122-123 data marts, design, 191-220 anlise de dados, 195-198. Veja tambm DataCleaner modelagem de dados com Power * Architect, 208-209 desenvolvimento de modelo, 206-208 anlise de requisitos, 191-195 origem para o destino de mapeamento, 218-219 WCM exemplo. Veja WCM (World Class Filmes), a construo de data marts minerao de dados. Veja tambm Minerao de dados Weka algoritmos, 508-509 associao em, 507-508 classificao, 506-507 agrupamento em, 507 definido, 504 motor, 72-73 ler mais, 527 numricos de previso (regresso), 508 processo, 504-506 estratificada de validao cruzada, 509-510 resumo, 527 conjunto de ferramentas, 506 treinamento e testes, 509 modelos de dados desenvolvimento de data mart global, 206-208 como formas de metadados, 114 normalizada versus dimensional, 115-116 com Power * Architect, 208-209 referncia para a compreenso, 208 Data Profiler, Talend, 206 dados de perfil solues alternativas, 205-206 Resumo dos, 197-198 usando DataCleaner. Veja DataCleaner utilizando ferramenta Power * Architect, 208 qualidade dos dados. Veja DQ (qualidade dos dados) conjuntos de dados, relatrios PRD, 381-386 D 577 fontes de dados gesto, 60-61 trabalhar com sub-relatrios para diferentes 404-406 dados de teste, 226-227 actualidade dos dados, 114 validao de dados, ETL e, 227-228 abbada de dados (DV), 125-127 O Data Warehouse Lifecycle Toolkit (Kimball), 158, 170, 194 armazenamento de dados, 111-145 bases de dados analticos, 142-143 aparelhos, 143-144 Captura de dados alterados e, 133-137 evoluo das necessidades do usurio, 137-139 problemas de qualidade de dados, 124-128 volume de dados e problemas de desempenho, 128-133 debate sobre Inmon vs Kimball, 114-116 na demanda, 144 exemplo de So Paulo. Veja WCM (World Class Cinema), business case exemplo necessidade de, 112-114 Resumo dos, 113-114 em tempo real, 140-142 usando esquemas estrela. Veja esquemas estrela virtual, 139-140 arquitetura de data warehousing, 116-123 armazm de dados central, 119-121 data marts, 121-123 Resumo dos, 116-118 rea de preparo, 118-119 O Data Warehousing Institute (TDWI), 119 banco de dados de descritores de conexo, 252-253, 359-360 Database de dilogo Connection, 249-252, 257-258, 360 conexes de banco de dados adicionar a data mart, 201-202 configurando, 256-257 criar, 249-252 que institui a PSW, 462 genrica, 257-258 ''Ol Mundo''exemplo, 253-256 JDBC e ODBC, 248 JNDI, 319-322 Repositrio de gesto no Explorer, 326 gesto com variveis, 314-318 ao PDI repositrio, 322-324 ao PDI repositrio, automaticamente, 324-325 578 ndice D Data Mask perfil Matcher, DataCleaner, 200 date_julian, O tempo relativo, 167-168 dia da semana nmero, dimenses, data 271-272 Dias etapa seqncia, dimenses, data 268-269 Linux baseado em Debian, a inicializao automtica em, 42 algoritmos de rvore de deciso, 508-509 decodificao, integrao de dados e, 228-229 membro padro, hierarquias MDX, 450-451 Definir guia processo, editor de seqncias de ao, 81-83 dimenses de degenerao, 181 Excluir Trabalho ao, processo Scheduler, 420 link Excluir Pblica painel de listas de rea de trabalho, 428 horrios de excluir, 417 camada de entrega, modelo de metadados, 355, 365-366 demografia dimenso de carga, 281-286 gerao de idade e os grupos de renda, 284-285 mltiplas ingoing e que parte correntes, 285-286 Resumo dos, 281-283 stage_demography e dim_demography tabelas, 283-284 dimenso demogrfica, Ordens de data mart, 212 Demografia etapa seqncia chave, 283, 285-286 desnormalizao, 115-116 dependncias,''Ol Mundo'' transformao, 247 perfis de dependncia, 197-198 implantao do PDI. Veja PDI (Pentaho Data Integrao), a implantao Pentaho de metadados, 366-368 descendentes, as relaes familiares cubo, 452 texto descritivo, para programaes, 415 ferramentas de design, o esquema, 444 programas de desktop, 65, 74-76, 196 Detalhes do corpo, relatrios PRD, 378 desenvolvimento de competncias, painis CDF, 531 Devlin, Barry, 113-114 cubos, definido, 441 dicionrio, DataCleaner, 205 conexes de banco de dados (Continuao) na camada fsica do domnio de metadados, 359-360 teste, 252 usando, 252-253 para minerao de dados Weka, 512-514 segmentao do banco de dados (clustering), 507 banco de dados baseado em repositrio, 358-359 bases de dados bancos de dados orientados por colunas, 502 gerenciamento de conexo piscina, 69 drivers de gesto, 44-45 as polticas que probem a extrao de dados, 226 sistema, 45-52 ferramentas para, 31-34 utilizado por WCM exemplo, 95-97 DataCleaner, 198-206 adicionar conexes de banco de dados, 201-202 adicionar tarefas perfil, 200-201 soluo alternativa, 205-206 verifica coluna fazendo dependncia, 205 fazendo perfil inicial, 202 Resumo dos, 198-200 resultados de perfis e explorar, 204-205 selecionando tabelas de origem, 218-219 validao de dados e comparando, 205 trabalhar com expresses regulares, 202-204 datacleaner-config.xml arquivo, 201 DataWarehouse como um Servio (DWaaS), 144 data e hora, modelagem, 165-168 dimenso de data gerando, 213-216 role-playing, 182 especial campos de data e clculos, 216-218 data de carregamento dimenso, 263-277 Adicionar etapa seqncia, 268-269 Calculadora etapa, 269-273 passado e atual indicadores ano, 276-277 Execute passo script SQL, 265-267 Gerar etapa Linhas, 267-268 internacionalizao e suporte local, 277 ISO semana e do ano atributos, 276 Resumo dos, 263-265 Tabela etapa de sada, 275-276 uso de procedimentos armazenados, 262-263 Valor etapa Mapper, 273-275 ndice Dicionrio perfil Matcher, DataCleaner, 200 dim_demography tabela, 282-284 dim_promotion Dimenso da tabela. Veja dimenso promoo chaves de dimenso, 162, 169 tabelas de dimenso agregao de dados, 229 atributos em pequenas versus grandes 206-207, escolhendo para esquemas Mondrian, 471-474 contra o fato de tabelas, 148-150 carregamento dimenso demogrfica, 281-286 carregamento simples dimenso de data. Veja data dimenso, a carga carregamento dimenso de tempo simples, 277-281 manuteno de, 229 Resumo dos, 262 esquema em estrela e, 148 uso de procedimentos armazenados, 262-263 uso da dimenso, 476-477 modelo dimensional, conceitos avanados, 179-189 hierarquias de construo, 184-186 consolidao mesas multi-gro, 188-189 lixo, heterogneo e degenerado dimenses, 180-181 dimenses monstro, 179-180 multi-valorizados dimenses e ponte tabelas, 182-183 retranca, 188 Resumo dos, 179 role-playing dimenses, 181-182 flocos de neve e dimenses de agrupamento, 186-187 modelo dimensional, registrando a histria, 170-179 Resumo dos, 169-170 SCD tipo 1: substituir, 171 SCD tipo 2: adicionar linha, 171-173 SCD tipo 3: adicionar a coluna, 174 Tipo de SCD 4: mini-dimenses, 174-176 SCD tipo 5: tabela de histria independente, 176-178 estratgias hbridas, 178-179: tipo SCD 6 modelo dimensional, definido, 17 dimenses adicionar a esquemas Mondrian, 470-471 associando cubos com partilhada, 476-477 membros calculados, 459-460 colocao de controle sobre os eixos, 489-490 D 579 cubos, pastilhas e, 446 data marts com 115 conformados, definida, 17 DVD e cliente, 478-480 em apenas um eixo, 455 corte com o OLAP Navigator, 490-491 esttico, 213-216 diretrios comandos de navegao para, 24-25 Repositrio de gesto Explorer, 326 instalao do servidor, 38 para sistemas baseados em UNIX, 39 Desligue a opo de depsito, 324 discos, em esquemas de poupana, 464-465 distribuio de valores de classe, a previso modelos, 509 Documento estrutura, painel de instrumentos, estilo 566 modelos de documentos (templates exterior), CDF contedo de, 540 personalizao, 568-569 modelos padro de transporte com Community Edition, 539 exemplos de contedo reutilizvel, 538-539 convenes de nomenclatura, 540-541 Resumo dos, 533 marcadores, 540 documentao CDF, 531 Pentaho Data Integration, 261-262 DOM especificaes, normas de HTML, 532 domnios, metadados 359 DQ (qualidade dos dados) categorias de, 124-125 dados inditos e, 125-127 usando dados de referncia e mestre, 127-128 Dresner, Howard, 107 drill down, OLAP e, 441 ao da broca membros, 487 posio de perfurao, 488 substituir o mtodo de perfurao, 488 perfurar atravs da ao, 488 drill up, OLAP e, 441 perfurao, 486-488 motoristas de dados de perfis em DataCleaner, 201-202 para conexes JNDI, 320-321 gerenciamento de banco de dados, 44-45 Drools, 141 580 ndice D-E eobjects.org. Veja DataCleaner ERD (diagrama entidade relacionamento), 102, 104 ERMaster, 32 caminho de erro de execuo, 288 Esper, 141 E-stats site, U. S. Censo, 109 ETL (extrao, transformao e Carregando). Veja tambm PDI (Pentaho Data Integration) de back office, 118 construo''Ol Mundo!''. Veja Spoon, ''Ol Mundo!'' de arquitetura de dados do armazm, 117-118 motor, 72 Resumo dos, 224 programao independente do Pentaho BI Servidor, 420 rea de teste de otimizao, 118-119 ETL (extrao, transformao e Carregando), atividades agregao, 229 Change Data Capture, 226 limpeza de dados, 228 dados de teste, 226-227 validao de dados, 227-228 decodificao e renomear, 228-229 dimenso e manuteno tabela da ponte, 229 extrao, 226 gerenciamento de chaves, 229 carregamento de tabelas de verdade, 229 Resumo dos, 225 ETLT (extrao, transformao, carga e transformar), 224 EUL (End User Layer), 117 exemplos, fornecidos com Pentaho anlise, 16-19 grficos, 14-16 dashboards, 19-20 outros tipos de, 20 Resumo dos, 8-9 relatrios, 11-14 compreenso, 9-11 usando o navegador de repositrio, 9 exportaes Excel, JPivot, 494 Executar um trabalho de dilogo, Carte, 341 Executa uma caixa de dilogo de Transformao, Carte, 341 Privilgios de execuo, 424 DROP TABLE declarao, dimenses, data 265-267 sistemas dual-boot, 23 Dummy etapa, 296-297 dados duplicados, e armazns de dados, 124 DV (abbada de dados), 125-127 DVD dimenses, esquemas de Mondrian, 478-480 DVDs gerenciamento de inventrio, 104-105 Aluguer exemplo lembrete e-mails, 430-438 WCM modelo de dados, 99-102 DWaaS (DataWarehouse como um servio), 144 E ECHO comando, 29 Eclipse IDE, 77-80 ECMAScript, 532 Link Editar Pblica painel de listas de Workspace, 427-428 modos de edio, editor do esquema, 465-466 EE (Enterprise Edition), do Pentaho, 76-77, 530 elementos, PRD relatrio, 380-381 ELT (extrao, carga, transformar), 224 e-mail configurando, 52-54 exemplo de ruptura. Veja lembrete de aluguer e-mail exemplo Pentaho BI Server servios, 70 configurao de teste, 54 Email guia Mensagem, Correio entrada de emprego, 290- 291 EMAIL ao do processo, 436-437 email_config.xml, 52, 70 funcionrios coleta de requisitos, 194 desenvolvimento do modelo de dados, 101, 103 gerenciamento de inventrio, 105 Encr.bat script, 334 encr.sh script, 334 camada do usurio final (EUL), 117 utilizadores finais, definidos, 192 Enterprise Edition (EE) da Pentaho, 76-77, 530 Enterprise Resource Planning (ERP), em anlise de dados, 195 variveis de ambiente, a instalao de Java, 28 ndice Execute SQL Script etapa, PDI data de criao da tabela de dimenso, 265-267, 277 criao da tabela de dimenso, demografia 282 criao da tabela de teste, 295-296 Execuo de painel de resultados, Spoon, 245-246, 255 Experimentador, Weka, 510, 517-518 Explorer, Weka criar e salvar os dados do modelo de minerao, 523-524 Resumo dos, 510 trabalhar com, 516-517 exportadores dados a planilha ou arquivo CSV com WAQR, 375 emprego e transformaes, 326 metadados para o servidor, 367 relatrios PRD, 408 arquivos XMI, 366 expresso funo string, TextComponent, 556 expresses MQL Query Builder limitaes, 385 em frmulas de relatrios Pentaho, 396 eXtensible atributo relao-File Format (XRFF), 511-512 Extensible Markup Language. Veja XML (Extensible Markup Language) extrato, 306-307
extrao, transformao, carga e transformao (ETLT), 224 extract_lookup_type transformao, 287, 292-293 extract_lookup_value transformao, 287, 292-293 extract_promotion transformao, 302-304 Extrao, Transformao e Carga. Veja ETL (Extrao, Transformao, e carregamento) processo de extrao, ETL Change Data Capture atividades, 226 dados de teste atividades, 226-227 definido, 224 Resumo dos, 226 atividades de apoio de, 225 E-F 581 F atalho F3, 249 tabelas de fatos dimenses conformado vinculando, 115 consolidadas, 189 criao de ordens de data mart, 212 desenvolvimento global de data mart modelo de dados, 208 contra as tabelas de dimenso, 148-150 de carga, 230 esquemas de Mondrian, 468 tipos de, 149-150 utilizando as teclas inteligentes data para particionar, 166 Fake Name Generator, 97, 101-102 relaes familiares, cubos, 451-452 Lista de recursos, as conexes JNDI, 320-321 arquitetura federada, data warehousing, 119-120 campos criar consultas SQL usando JDBC, 383 desenvolvimento global de data mart modelo de dados, 207-208 formatao ao usar imagens em relatrios, 404 passo para a falta de data, as tabelas de dimenso, 267-268 data especial, 216-218 WAQR relatrio, 374 formatos de arquivo, Weka, 511-512 repositrio baseado em arquivo, 358-359 FILTRO consultas funo MDX, 455-456 Filtro etapa linhas, 293-295 filtros OLAP Navigator, 19 horrios pertencentes ao mesmo grupo, 414-415 relatrios WAQR, 374 Grficos Flash, Pentaho, 15-16 fluxo orientado ferramentas de relatrio, 376 painel de contedo da pasta, o usurio do console de 8 pastas, de 68 anos dobras, validao cruzada e, 509-510 restries de chave estrangeira, 150-151, 383 Formato opo de linha de bandas, PRD relatrios, 391 formatao datas, 271 corpo de e-mail em HTML, 292 camada de metadados aplicao consistncia de, 360 582 ndice F-H Get System Info etapa, 333 comeando, 20/03 baixar e instalar o software, 4-5 login, 6-7 Mantle (Pentaho usurio do console), 7-8 Resumo dos, 3 a partir do servidor Pentaho VI, 5-6 trabalhar com exemplos. Veja exemplos, fornecido com Pentaho global de data mart modelo de dados, 206-208 funes globais, relatrios PRD, 393-395 fonte de entrada global, 84 variveis globais, definidas pelo usurio, 312 Gmail, configurao 70 GNOME Terminal, 24 pai-av escopo de trabalho, 313 granularidade consolidao mesas multi-gro, 188-189 dados de projeto do armazm, 163-164 tabelas de dimenso e tabelas de fato, 149 global de data mart modelo de dados, 208 modelagem do esquema estrela, 163-164 dimenses de tempo, 165 grficos adicionando aos relatrios PRD. Veja grficos no disponvel em WAQR, 375 Greenplum, 143 grelhas de campo, 244 GROUP BY declarao, SQL, 151-153 Grupo cabealho / rodap, relatrios PRD, 378 grupos criao de agenda usando, 414-415 MQL Query Builder limitaes, 385 para os relatrios do PRD, 378, 391-393 para sistemas baseados em UNIX, 39 para relatrios WAQR, 373-374, 375 convidado usurio, PDI repositrio, 324, 326-327 ferramentas grficas, MySQL, 31 formatao (Continuao) PRD relatrio com imagens, 404 relatrios PRD, 389-390 visualizaes de relatrio, 376 relatrios WAQR, 374, 375 Frmula passo, carregando dimenses, data 276-277 frmulas, Pentaho Reporting, 395-396 link Frum, PRD tela de boas vindas, 377 engenharia para a frente, 208 Freakonomics, 503 Free Java boto Download, 28 Free limite de memria, o estadiamento de pesquisa valores, 299 DA declarao, SQL, 151-152 front office, de arquitetura de dados do armazm, 117-118 front-end Pentaho BI pilha, 66 console como usurio, 73 FULL OUTER JOIN, 155 varredura de toda a tabela, 129 funcionalidade, Pentaho BI pilha, 65 funes de relatrio, 393-395 G GA lanamento (geralmente disponvel), 4 Sexo e Gnero etapa seqncia, dimenso demogrfica, 282 Sexo etapa rtulo, a demografia dimenso, 282 Categoria Geral, Database Connection dilogo, 249-251 Na guia Geral, editor de seqncia de ao, 81, 86-89 Gerar 24 horas etapa, a dimenso do tempo, 277 Gerar 60 Minutos etapa, a dimenso do tempo, 277 Gerar etapa Linhas dimenso de data, 267-268 dimenso demogrfica, 282-283 Gerar linhas com passo data inicial, data dimenso, 267-268 gerao de idade e os grupos de renda, dimenso demogrfica, 284-285 genricas conexes de banco de dados, 257-258, 316 tabela de dimenso, geografia MapComponent, 558-559 H TENDO declarao, SQL, 151, 157 cabealhos, os relatrios do PRD, 378 ''Ol Mundo!''. Veja Spoon,''Ol Mundial!'' tabelas auxiliares, 184 dimenses heterogneas, 181 banco de dados Hibernate configurar a segurana JDBC, 50-51 ndice definida, 45 Resumo dos, 47-50 hierarquias acrescentando, 471 nveis de adio, 474-476 atributos, 472-473 agregao do cubo e, 448-449 cubo de relaes familiares, 451-452 nveis, e membros, 449-451 mltipla, 451 navegar pelos dados utilizando, 184-186 histria captura em data warehouse. Veja modelo dimensional, capturando histria criar tabela separada para, 176-178 vantagens do armazm de dados, 113 armazm de dados de reteno, 128 armazenar comandos, 25 HOLAP (OLAP Hbrido), 122 diretrio home, CDF, 534-535 Home Theater site Info, 100-101 sistemas de home-grown, para anlise de dados, 195 lpulo conectando as transformaes e empregos, 233-234, 287 criao de''''Ol Mundo, 242-243 etapas de filtro de linha no estadiamento valores de pesquisa, 295 diviso existente, 254 compartimentao horizontal, 180 Seqncia passo horas, dimenso de tempo, 277 HSQLDB servidor de banco de dados gerenciar bancos de dados do sistema por padro, 45 migrao de dados do sistema de, 46-52 start-pentaho explorao script, 6 HTML (HyperText Markup Language) construo de painis CDF, 531 Especificao DOM, 532 formatao no corpo da mensagem, 292 para o layout, 566-567 Arquivo. Html, 545 hub and spoke arquitetura, 119-121 hubs, para modelos de dados abbada, 125 Hybrid OLAP (HOLAP), 122 estratgias hbridas, 178-179 H-I 583 I varivel, cone 311 identificao, para contas de usurio, 327-328 Identificaes personalizadas, definindo, 387 imagens adicionando aos relatrios PRD, 401-404 criar CDs de boot do download arquivos, 22 software de virtualizao e, 23-24 importao valores de parmetros para sub-relatrios, 405-406 arquivos XMI, 366 EM operador, 151 Renda e Renda etapa seqncia, dimenso demogrfica, 282 Renda etapa Group, demografia dimenso, 282, 284-285 Declarao de Renda de relatrio de exemplo, 12 dados incompletos, armazns de dados, 124 dados incorretos, armazns de dados, 124 independente de data marts, 119-120 ndices bases de dados analticas no necessitando, 142 criando em SQL, 212-213 melhorar desempenho do data warehouse, 129 Infobright, 23, 143, 502 herana Pentaho camada de metadados e, 356-357 PRD relatrios usando estilo, 389-390 script de inicializao (rc arquivo), 40-42 fase de inicializao, transformaes 266-267 estilos inline, HTML e-mail, 436 Inmon, Bill, 113-116 INNER JOIN, 153-154 formatos de entrada, minerao de dados Weka, 511- 512 fluxos de entrada, conjuntos de transformao PDI, 285-286 insumos, seqncia de ao, 83-85 instalao, Pentaho BI Server Diretrio, 38 Resumo dos, 4 criao de conta de usurio, 38-39 subdiretrios, 38 diviso inteira, dimenses data, 272 Endereo de interface parmetro, Carte, 340 Organizao Internacional para Padronizao. Veja ISO (International Organization for Standardization) 584 ndice I-J Resumo dos, 248-249 Weka leitura de bases de dados usando, 512-513 JDBC Explorer, 463 JDBC-ODBC bridge, 249 jdbc.properties arquivo, 320-321 Jetty, 55, 57-58 JFreeChart, 15, 397-404 JFreeReports, 72. Veja tambm PRD (Pentaho Designer de Relatrios) JNDI (Java Naming and Directory Interface) configurar conexes de metadados editor, 360 criao e edio de fontes de dados, 60-61 criar conexes de banco de dados, 319-322 entradas de emprego definido, 287 lpulo conexo, 287-288 Mail Sucesso, Falha e correio, 289-292 START, 288 Transformao, 288-289 utilizando variveis. Veja variveis empregos adicionar notas a lona, 264-265 criar, 287-288 criar conexes de banco de dados, 249 manipulao de dados mecanismo de integrao, 232 exportadores Repository Explorer, 326 Resumo dos, 235 remotamente executando com Carte, 341-342 execuo da linha de comando, 330-334 execuo dentro Pentaho BI Server, 334-337 correndo com cozinha, 332 funcionando dentro de seqncias de ao, 335 armazenamento em 232 repositrio, transformaes vs, 232-233, 287 variveis definidas pelo usurio para, 312 o uso de conexes de banco de dados, 252-253 com conexo banco de dados variveis, 317-318 JOIN clusulas, 151-154 juntar-se caminhos, 364-365 participar de perfis, 197-198 Junte-se linhas (produto cartesiano) passo, 277-281, 283 JPivot vista de anlise, 484-485 grficos, 494-496 perfurao com tabelas dinmicas, 486-488 internacionalizao, 277, 484 Internet Movie Database, 99 processo de entrevista, coleta de requisitos, 194 CDC intrusivo, 133-135 dados invlidos, de limpeza, 228 inventrio, por exemplo WCM, 94-95, 104-105 ISO (International Organization for Standardization) imagens, 22 normas, 97 semana e do ano atributos, 276 _ISO colunas, dimenso de data, 182-183 gerenciamento de problemas, CDF, 531 Item Band, o relatrio lembrete de execuo, 435 J J48 classificador de rvore, 508-509 Jar. arquivos, 44-45 Jar. arquivos, 201 JasperReports, 72, 372 Java instalando e configurando, 27-29 Pentaho programadas, 4, 66 A tecnologia servlet, 67, 74 java - weka.jar java comando, 514 Java Database Connectivity. Veja JDBC (Java Database Connectivity) Java Naming and Directory Interface. Veja JNDI (Java Naming and Directory Interface) Mquina Virtual Java (JVM), 43, 314, 333-334 JAVA_HOME varivel, 28 JavaMail API, 52, 54 JavaScript construo de painis CDF, 532 CDF e, 536-537 avaliao, 205 JDBC (Java Database Connectivity) configurar a segurana, 50-51 parmetros de conexo, 462 pool de conexo, 69 criao e edio de fontes de dados, 60-61 criar conexes de banco de dados, 250-251 criar conexes de banco de dados genricos, 257-258 criao de consultas SQL, 382-385 gerenciamento de drivers de banco de dados, 44-45 ndice Painel de consulta MDX, 493 No vazio funo e, 458 Resumo dos, 442, 484 PDF e exportaes Excel, 494 barra, 485 JQuery, 532 jquery. <name>. js, 536 js diretrio, CDF, 535 jsquery.js, 536 tabela lixo dimenso, 181 JVM (Java Virtual Machine), 314, 333-334 J L- 585 K K.E.T.T.L.E. Veja Pentaho Data Integration empregos Chaleira, 73, 210 Kettle.exe script, 236 kettle.properties arquivo, 312-313, 324-325 gerenciamento de chaves, e integrao de dados, 229 Kickfire aparelho, 144 Kimball, Ralph volta e em definies de escritrio, 117-118 arquitetura de barramento de dados do armazm, 158 dados Inmon vs modelo de armazm, 114-116 estratgias de SCD, 170 snowflaking e, 186-187 ferramenta da cozinha genrico parmetros de linha de comando, 330-332 PDI como ferramenta, 230-231 executar trabalhos / transformaes de linha de comando, 330-334 utilizando repositrio com PDI. Veja repositrio, PDI Klose, Ingo, 530 KnowledgeFlow, Weka, 510, 518-519 valores conhecidos, os resultados de minerao de dados, 506 L ltimo dia do ms, as dimenses da data, 273 indicador do ano passado, dimenses, data 276-277 last_week coluna, 167-168, 216-218 latncia, de execuo remota de reduo, 339 layout painel de instrumentos, 566 relatrios PRD, 389-390, 393 LEFT OUTER JOIN, 154 nveis adio de nveis de hierarquia, 474-476 atributos, 474-475 Expresses multidimensionais, 449-451 lib diretrio, CDF, 535 Biblioteca de Support Vector Machine (LibSVM), 512 LibSVM Biblioteca (para Support Vector Machine), 512 grficos de linhas, 543 links, para modelos de dados abbada, 125 Linux, 24-25, 40-42 lista, escolhendo a partir de variveis, 312, 317 Empregos lista agendada processo de ao, Scheduler, 420 ouvintes,TextComponent, 556-557 modo Live, a correr o Ubuntu em, 23 etapa Load dim_demography, 283 etapa Load dim_time, 277 Comando LOAD FILE, MySQL, 402 etapa Load stage_demography, 283 load_dim_promotion trabalho, 302-303, 306-307 processo de carregamento, ETL. Veja tambm ETL (Extrao, transformao e Carregando) definido, 224 manuteno de tabela de dimenso, 229 carregamento de tabelas de verdade, 230 atividades de apoio de, 225 hora local, UTC versus tempo (Zulu), 165-166 apoio local, data dimenses, 277 localizao, na camada de metadados, 349, 357 locais, o cliente. Veja cliente locais; MapComponent CDC baseado em log, 136-137 login, comeando, 6-7 consistncia lgica, 247 camada lgica, o modelo de metadados Modelos de Negcios, 362 Tabelas de negcios e colunas de negcios, 362-363 definido, 355 finalidade de, 362 relacionamentos, 364-365 Entrar boto, comear, 6-7 mdulos de login, Jetty, 57-58 logos, os relatrios com, 401-404 valores de pesquisa estadiamento, 286-300 Verifique se existe Staging Tabela etapa, 294 Criar Staging etapa de mesa, 295-296 586 ndice L-M mapas dashboard, 543 opes marcadas, para os locais dos clientes, 562-565 Anlise de Mercado Por exemplo, no ano, 18-19 anlise de mercado da cesta, e de associao, 507 processamento paralelo macio (MPP) cluster, 142 gerenciamento de dados mestres (MDM), 126-128 Dominando Data Warehouse Design (Imhoff et al.), 208 MAT (movimento total anual), 217-218 vises materializadas, data warehouse desempenho, 130-131 MDM (Master Data Management), 126-128 MDX (expresses multidimensionais), 445-460 membros calculados, 459-460 COM clusula para trabalhar com conjuntos, 458-459 Crossjoin funo, 457 cubo de relaes familiares, 451-452 cubos, 446-448 FILTRO funo, 455-456 hierarquias, 448-449, 451 nveis, e membros, 449-451 NonEmpty funo, 457-458 ORDEM funo, 456-457 Resumo dos, 445-446 sintaxe da consulta, 453-455 formatos de armazenamento e, 122-123 TopCount e BOTTOMCOUNT funes, 457 Painel de consulta MDX, JPivot, 493 Ferramenta de consulta MDX, PSW, 481-482 dimenses medida, 447 medidas adicionando s tabelas de cubo fato, 469-470 cubos, pastilhas e, 447 OLAP Navigator exibir mltiplas 493 ORDEM funo, 456 Slice and Dice exemplo de tabela de piv, 17 transao e instantneo tabelas de fato, 150 conjuntos de membros, OLAP Navigator, especificando, 492 membros, MDX, 449-451 barra de menus, o usurio do console, 7 campos de mensagens, imagens em relatrios, 404 filas de mensagens, dados em tempo real warehousing, 141 valores de pesquisa, estadiamento, (Continuao) Dummy etapa, 296-297 extract_lookup_type / extract_ valor_procurado transformaes, 292-293 Filtro etapa linhas, 294-295 Correio xito e entradas de emprego Mail Failure, 289-292 Resumo dos, 286-287 Classificar em pesquisa do tipo degrau, 299-300 stage_lookup_data trabalho, 287-288 stage_lookup_data transformao, 293-294 START entrada de trabalho, 288 Stream etapa de pesquisa, 297-299 Tabela etapa de sada, 300 transformao de entradas de emprego, 288-289 valor_procurado tabela, os mapeamentos de promoo, 301 exemplo, looping estourando, 432-434 dimenses perdidas, 498 LucidDB banco de dados analticos, 140, 142-143, 502 M aprendizagem de mquina, 503. Veja tambm minerao de dados Falha Mail entradas de emprego, 288-292 Mail Sucesso entradas de emprego, 288-292 sistemas de mainframe, anlise de dados usando, 195-196 gestores, a partir de coleta de requisitos, 194 Mantle. Veja usurio Pentaho console (manto) MapComponent, 557-562 acrescentando tabela de dimenso, geografia 558-559 cdigo para incluir no painel de instrumentos, 561-562 formato de dados, 556-557 Local de aco seqncia de dados, 559-561 opes marcador para mostrar a distribuio das posies do cliente, 563-565 Resumo dos, 557 mapeamento acrescentando independncia esquema, 348-349 dim_promotion tabela, 301 planejamento de carregamento da tabela de dimenso, 300 modelo relacional para multi-dimensional modelo, 444 origem para o destino, 218-219 ndice Modelo de Mensagem ao do processo, 438 M 587 metadados. Veja tambm Pentaho camada de metadados em ambiente de data warehouse, 113-114 exibio em DataCleaner, 200 refrescante aps a publicao de relatrio servidor, 407-408 transformao, 233 claro, 124 utilizando sistemas ERP para anlise de dados, 195 Editor de Metadados fonte de dados, 385 domnios de metadados, 359 Metadados Query Language. Veja MQL (Query Language metadados) repositrio de metadados, 358-359 metadata.xmi arquivo, 367 MetaEditor.bat arquivo, 358 arquivo metaeditor.sh, 358 MetaMatrix soluo, 140 mtricas. Veja medidas Microsoft Windows inicializao automtica, de 43 anos criao de links simblicos no Windows Vista, 26 PDI como se mantm informado dos repositrios, 328-329 instalar o Java em, 28-29 instalar as ferramentas GUI MySQL em, 31 instalar o servidor MySQL eo cliente na, 30 instalar Pentaho Server, 38 Esquilo na instalao, 33 programao de trabalho para, 421 ofuscado senhas de banco de dados, 334 Pentaho editor de metadados em, 357-358 execuo Carte, 339-340 partida e parada no PAC, 56 a partir Pentaho BI Server, 5-6 a partir Pentaho Design Studio, 10 aplicao a partir Spoon, 236 mini-dimenses melhorar monstro com dimenses, 174-176 vs lixo dimenso, 181 versus separao vertical, 179-180 Minuto etapa seqncia, dimenses de tempo, 277 falta de dados, data warehouses, 124 Faltando duas datas, dimenses, data 267-268 Misso empresarial, gesto de vista, 105-106 modelos, criando / poupana Weka, 523 Modificado JavaScript passo valor, PDI, 277 Mogwai ERDesigner, 32 MOLAP (OLAP Multidimensional), 122 Mondrian Agregado Designer, 130 agregao e, 496 alternativas para a agregao, 502 benefcios de agregao, 496-497 armazenamento de dados com, 123 descarga, 460 extenso com tabelas agregadas, 497-500 Pentaho Designer de agregao e, 500-502 como motor Pentaho OLAP, 72 tipos de usurios que trabalham com, 192 usando tabelas agregadas, 229 esquemas Mondrian adicionando medidas para tabelas de fatos do cubo, 469-470 criao e edio bsica, 466 criando com PSW, 444 cubo de tabelas de fato, 468 cubos, 466-467 cubos, associando as dimenses, 476-477 tabelas de dimenso, 471-474 dimenses, acrescentando: 470-471 DVD e dimenses do cliente, 478-480 tarefas de edio, 466 hierarquias, 471-476 outros tpicos de design, 483-484 Resumo dos, 444, 460 Esquema Pentaho Workbench e, 460-463 cubos de publicao, 482-483 testes, 481-482 usando o editor de esquema, 463-466 XML de origem para, 480-481 MonetDB, 142, 502 Moneyball, 503 monitoramento, definidos, 309 dimenses monstro mini-dimenses manipulao, 174-176 particionamento, 179-180 nmero do ms, as dimenses data, 271-272 cliques do mouse, reagindo a no grfico de pizza, 554-555 movimento total anual (MAT), 217-218 MPP (processamento paralelo massivo) clusters, 142 588 ndice M-O modo nativo, o Ubuntu em, 23 chaves naturais, 161, 229 Nautilus, 26 navegao, dos dados de data mart, 184-186 trfego de rede, reduo de distncia execuo, 339 Novo assistente de Sequncia de Aco, 80 Nova opo, PRD, 378 Assistente para Novo projeto, PDS, 80-82 Novo painel de tarefas, DataCleaner, 199 No h dados, relatrios PRD, 379 No vazio funo, consultas MDX, 457-458 fatos no-aditivos, 150 CDC no-intrusiva, 133, 136-137 normalizao, 115-116, 186-187 Classificao da Indstria Norte Americana System (NAICS), 128 notas de transformao, ou emprego de lona, 264-265 NULL valores, 124, 169 Nmero de anlise de perfil, DataCleaner, 200, 202 numricos de previso (regresso), os dados minerao, 508 MQL (Query Language metadados) gerar consultas SQL com, 351, 355-356 Pentaho Metadata camada de gerao de SQL de, 70-71 armazenar as especificaes da consulta como, 352 MQL Query Builder, 385-386 instalador MSI, 30 clique multi-usurios (construtores), 192-193 banco de dados multi-suporte, 208 Expresses multidimensionais. Veja MDX (Expresses multidimensionais) modelo multi-dimensional, o mapeamento para modelo relacional, 444 Multidimensional OLAP (MOLAP), 122 multi-disciplinar de dados a equipe do armazm, 192 mltiplas hierarquias, MDX, 451 mltiplas ingoing e que parte correntes, dimenses da demografia, 285-286 multi-dimenses avaliadas, ea ponte tabelas, 182-183 Murphy, Paul, 113-114 Meu painel de listas, Workspace, 427 MySQL ferramentas grficas, 31 instalao, 29-31 Kickfire para, 144 migrao do sistema de bancos de dados. Veja dados do sistema nonsupport para as funes de janela, 132 Cumulativo de funes, 132 configurao de conexes de banco de dados para Weka minerao de dados, 512-515 MySQL Administrator, 31 mysql ferramenta de linha de comando, 46 MySQL Query Browser, 31 MySQL Workbench, 32 mysqlbinlog, 137 O OASI (Um conjunto de atributos Interface), 184-186 senhas ofuscado, 314, 334 atributos do objeto, a edio com o esquema editor, 465 Object Management Group (OMG), 352 ODBC (Open Database Connectivity) criar conexes de banco de dados, 251 criar conexes de banco de dados genricos, 258 Resumo dos, 249 deslocamentos e tempo relativo, 167 OLAP (Online Analytical Processing) cubos, 121-122 minerao de dados em comparao com, 503 Navigator, 18-19 como componente do Pentaho BI Server, 72 formatos de armazenamento e MDX, 122-123 OLAP Navigator colocao de controle de dimenses em eixos, 489-490 Resultados de vrias medidas, 493 N NAICS (indstria norte-americana Sistema de Classificao), 128 <name> Components.js, 537 convenes de nomenclatura dados do processo de integrao, 228-229 armazns de dados, 162-163 modelos de documentos (templates exterior), 540-541 passos, 240 ndice Resumo dos, 488-489 corte com, 490-491 especificando conjuntos de membros, 492 OMG (Object Management Group), 352 armazenagem de dados sobre a demanda, 144 Um conjunto de atributos Interface (AHV), 184-186 um-clique os usurios (consumidores), 192-193 Online Analytical Processing. Veja OLAP (Online Analytical Processing) dados on-line, e anlise de dados, 196 Open Database Connectivity. Veja ODBC (Open Database Connectivity) Projeto Open Symphony, 69-70, 411-412 OpenRules, 141 BI Operacional, 140-141
dilogo, 250 OU operador, 157 ORDER BY declarao, SQL, 151, 158 ORDEM consultas funo MDX, 456-457 nmeros de ordem, como dimenses de degenerao, 181 ordenao dos dados, 158 Pedidos de data mart, criando, 210-212 desempenho organizacional, anlise e, 503 OUTER JOIN, 153-155 exterior modelos, CDF. Veja documento modelos (templates exterior), CDF sada seqncia de ao, 85 formatos, 11-14 ''Ol Mundo''exemplo, 246 crregos, PDI, 285-286 retranca, 188 Mais clusula, as funes de janela, 131-132 substituir, 356 O P- 589 P P * A (Power * Architect) ferramenta construo de data marts dados usando, 210-212 criar conexes de banco de dados para construir data marts, 210 modelagem de dados com, 208-209 bases de dados de produo, 212-213 Resumo dos, 30-31 PAC (Pentaho Administrao Console) configurao bsica, 55-56 criao de fontes de dados com, 60-61 diretrio home, 38 home page, 56-57 Resumo dos, 55 autenticao conectvel, 58 segurana e credenciais, 57-58 partida e parada, de 56 anos painel de testes, 547 gerenciamento de usurios, 58-60 PAC (Pentaho Console Administrativo), horrios criao de novo horrio, 414-416 horrios de excluir, 417 Resumo dos, 413 horrios de funcionamento, 416 suspenso e retomada de horrios, 416-417 Package Manager, 29-30 PAD (Designer de agregao Pentaho) benefcios de agregao, 496-497 definida, 75 melhorar o desempenho com, 496 Mondrian, com extenso agregada tabelas, 497-500 gerao e preencher total tabelas, 445 Resumo dos, 500-502 usando tabelas agregadas, 229 quebras de pgina, relatrios WAQR, 375 Pgina cabealho / rodap, relatrios PRD, 378 PGINAS, Machados, 453 ferramenta Pan PDI como ferramenta, 230-231 executar trabalhos / transformaes de linha de comando, 330-334 usando PDI repositrio. Veja repositrio, PDI parmetros personalizado linha de comando, 333-334 painel de instrumentos, 546 agendador de tarefas, 418-419 relatrio, 13-14, 386-389 execuo Carte, 340 executar trabalhos de cozinha, 332 execuo transformaes com Pan, 332 especificando o valor de, 330-331 sub-relatrio, 405-407 quando usar ao invs de variveis, 316-317 escopo pai de emprego, com variveis, 313 objeto pai, e herana, 356 relao pai-filho, cubos, 452 590 ndice P carregamento dos dados dos sistemas de origem. Veja estadiamento valores de pesquisa, ea promoo dimenso arquitetura plug-in, 235 repositrio, 232 Reservatrio de amostragem, 520 ferramentas e utilitrios, 230-231 Weka, comeando com, 520-521 Weka e, 519-520 Weka aquisio de dados e preparao, 521-522 modelo Weka, criar e salvar, 523 pontuao Weka plugin, 523-524 trabalhar com conexes de banco de dados, 248-258 PDI (Pentaho Data Integration), implantao, 309-343 configurao, utilizando conexes JNDI, 319-322 configurao, usando PDI repositrio, 322-330 configurao, utilizando variveis, 310-319 gerenciamento de configurao, 310 Resumo dos, 309 execuo remota com Carte, 337-342 execuo da linha de comando, 330-334 execuo dentro Pentaho BI Server, 334-337 utilizando variveis. Veja variveis PDI (Pentaho Data Integration), projetando, 261-308 gerao de dados de tabela de dimenso. Veja tabelas de dimenso carregamento dos dados dos sistemas de origem. Veja estadiamento valores de pesquisa, ea promoo dimenso Resumo dos, 261-262 PDI repositrio. Veja repositrio, PDI PDM (Pentaho Data Mining). Veja Weka minerao de dados PDS (Pentaho Design Studio), 77-89 Ao editor de seqncia, 80-82 anatomia da seqncia de ao, 83-89 definida, 75 Eclipse, 78-80 Resumo dos, 77-78 exemplos estudar usando, 10 PeaZip, 4-5 Pentaho Administrative Console. Veja PAC (Pentaho Administrao Console) Partio clusula, as funes de janela, 131-132 particionamento para o desempenho do data warehouse, 129 opes de conexo do banco de dados, 250 horizontal, 180 utilizando as teclas inteligentes data, 166 vertical, 179 PAS (Pentaho Analysis Services). Veja tambm OLAP (Online Analytical Processing) tabelas agregadas, 445 arquitetura, 442-444 componentes, 442-443 Resumo dos, 441 esquema, 444 esquema de ferramentas de projeto, 444 senhas conectar ao repositrio, 324 criao de servidores escravos, 340 instalao do MySQL em Linux, 29-30 instalao do MySQL em Windows, 30 no armazenar em arquivos de texto simples, 202 banco de dados ofuscado, 314, 334 PAC home page, de 56 anos editor, 54-55 a publicao do relatrio a Pentaho BI Server, 407 conta de usurio, 327-328 caminho varivel global, o caminho do painel de instrumentos, 545-546 Padro perfil Finder, DataCleaner, 200 Pause, PAC, 416 Arquivos PDF gerado pela Steel Wheels, 12 estourando nos relatrios de execuo, 438 exportaes JPivot, 494 PDI (Pentaho Data Integration), 223-259 adicionar plugins Weka, 520 verificao de consistncia e dependncias, 247-248 conceitos, 224-230 PDI (Pentaho Data Integration) mecanismo de integrao de dados, 232 Viso geral da integrao de dados, 223-224 definida, 76 solues de concepo, 261-262 Enterprise Edition e, 77 gerao de dados de tabela de dimenso. Veja tabelas de dimenso comeando com uma colher. Veja Colher empregos e transformaes, 232-235 ndice Pentaho Designer Aggregate. Veja PAD (Designer de agregao Pentaho) Pentaho Analysis Server. Veja Mondrian Pentaho Analysis Services. Veja OLAP (Online Analytical Processing), PAS (Pentaho Analysis Services) Pentaho BI Server, 66-74 vista de anlise, 484-485 construo de painis, 529 exemplos de grficos, 14-16 configurar e-mail, 70 solues de exemplo includo, 8-9 incorporao de empregos em seqncias de ao, 336 incorporao de transformaes em ao seqncias, 334-336 instalao, 4, 38-43 login, 6-7 Resumo dos, 67 e PDI repositrio, 336-337 usurio Pentaho console, 7-8 plataforma, 67-70 camada de apresentao, 73-74 publicao cubos, 482-483 metadados para publicao, 367 publicao de relatrios para, 406-407 exemplos de relatrios, 11-14 resposta aos pedidos de painel, 533 partida, 5-6 A tecnologia subjacente servlet Java, 74 Pentaho BI Server, os componentes dados do motor de minerao, 72-73 ETL motor, 72 OLAP motor, 72 PML (Pentaho camada de metadados), 70-72 mecanismos de informao, 72 Web consulta ad hoc e relatrios Servio (WAQR), 72 Pentaho BI Server, configurando tarefas administrativas. Veja administrativa tarefas e-mail, 52-54 instalao, 38-43 gerenciamento de drivers de banco de dados, 44-45 Resumo dos, 37-38 senha editora, 54-55 bases de dados do sistema. Veja dados do sistema Pentaho BI pilha, 63-90 criao de seqncias de ao com PDS. Veja PDS (Pentaho Design Studio) programas de desktop, 74-76 P 591 aspecto front-end/back-end, 66 funcionalidade, de 65 anos Resumo dos, 63-65 Pentaho BI Server. Veja Pentaho BI Server EE e Pentaho Community Edition, 76-77 cliente-servidor, desktop e programas, 65 tecnologia subjacente, 66-67 Weka minerao de dados. Veja Minerao de dados Weka Pentaho comunidade, mantendo a CDF painis, 529-530 Pentaho Corporation, CDF e, 530 Pentaho Data Integration. Veja PDI (Pentaho Data Integration) Pentaho Data Mining (PDM). Veja Weka minerao de dados Pentaho Design Studio. Veja PDS (Pentaho Design Studio) Pentaho diretrio home, 38 Pentaho Editor de Metadados. Veja PME (Pentaho Metadata Editor) Pentaho camada de metadados, 347-369 vantagens de, 348-350 conceitos, 356 criao de consultas de metadados, 385-386 criao de conjuntos de dados PRD, 381-382 banco de dados e abstrao da consulta, 352-355 definido, 347-348 camada de entrega, 365-366 implementao e utilizao de metadados, 366-368 herana, 356-357 localizao dos imveis, 357 camada lgica, 362-365 domnios de metadados, 359 repositrio de metadados, 358-359 Resumo dos, 70-72 Pentaho editor de metadados, 357-358 camada fsica, 359-362 PRD usando como fonte de dados, 373 propriedades, 355-356 alcance e uso de, 350-352 Pentaho Metadata Layer (PML), 70-72 Pentaho Report Designer. Veja PRD (Pentaho Report Designer) Esquema Pentaho Workbench. Veja PSW (Esquema Pentaho Workbench) usurio Pentaho console (manto) comeando, 7-8 camada de apresentao, 73 metadados refrescante, com, 367-368 592 ndice P PME (Pentaho Metadata Editor) definida, 75 definio de metadados com, 350 edio dos contedos do repositrio de metadados, 358-359 Resumo dos, 357-358 PML (Pentaho camada de metadados), 70-72 polticas, ferramentas de programao, 420 Comparticipao categoria, Database Connection dilogo, 250 porta 8080, Tomcat, 39-40 porta 8099, o PAC, 56 portas, funcionando Carte, 340 PostgreSQL, 132, 143 power users (analistas), 192-193 Power * Architect. Veja P * A (Power * Architect) ferramenta PRD (Pentaho Report Designer) grupos de adicionar e modificar, 391-393 parmetros de adio e usando, 386-389 adicionar grficos e grficos, 397-404 como editor de relatrio em faixas, 376 criao de conjuntos de dados, 381-386 criao de relatrios de metadados baseado em 366 definida, 76 relatrios de exportao, 408 layout e formatao, 389-390 modificao de relatrios WAQR em, 375 Resumo dos, 376-377 publicao de relatrios, 406-408 elementos relatrio, 380-381 estrutura do relatrio, 378-380 bandagem linha, 390-391 frmulas que utilizam, 395-396 utilizando funes, 393-395 sub-utilizao, 404-406 Tela de boas vindas, 377-378 PRD Designer de Consulta, 397-398 previses minerao de dados para, 506 no numricos, 506-508 numrico, 508 pr-requisitos, 21-36 configurao bsica do sistema, 22-25 ferramentas de banco de dados, 31-34 Java instalao e configurao, 27-29 Instalao do MySQL, 29-31 Resumo dos, 21-22 usando links simblicos, 25-26 Preview opo de menu, os relatrios do PRD, 408 usurio Pentaho console (manto) (Continuao) painel de testes, 547 tela de boas vindas e de dilogo de login, 6-7 Pentaho Portal usurio, 376 pentaho-init.sh, 41-42 PentahoSystemVersionCheck cronograma, 413 desempenho anlises e, 503 volume de dados e, 128-133 baseado em arquivo de banco de dados contra repositrios, 358-359 tabela peridica fato instantneo, 150 carregamento de dados de peridicos, 118 permisses, gerenciar, 327 perspectivas, IDE Eclipse, 80 Petabyte, 128 Colunas de Fsica, 360-362 dados fsicos de armazenamento, 139 camada fsica, o modelo de metadados conexes, 359-360 definida, 71, 355 Resumo dos, 359 Quadros e Tabelas de Fsica da coluna, 360-362 Tabelas Fsica, 360-362 grficos de pizza adicionando aos relatrios PRD, 400-402 Clientes por Website, 548-553 como componente do painel, 543 reagir aos cliques do mouse sobre, 554-555 pieclicked (), 554-555 PieSet funo de coletor, 399-402 tabelas dinmicas para visualizao do cubo, 447-448 perfurao e, 486-488 OLAP Navigator e. Veja OLAP Navigator Slice and Dice exemplo de anlise, 17-18 Steel Wheels exemplos Anlise, 18 PivotCategorySet funo de cobrador, 399 espaos reservados documento, modelos 540 plataforma Pentaho BI Server, 67-70 plug-ins acrescentando Weka, 520 pedidos painel levada a cabo, 534-536 Esquilo instalar no Ubuntu, com, 33 PDI, 235-236 Weka pontuao, 523-524 plugin.xml arquivo, CDF, 535-536 ndice Os ndices de chave primria, 129 chaves primrias, 160-161, 229 agendas privadas, 412, 418-419 privilgios criar o repositrio, 323 acesso refinao, 349 Linha de Produtos Anlise exemplo, 18-19 gerenciamento de produtos, bases de dados para, 95-96 product_type, 217 perfis solues alternativas, 205-206 de autorizao de contas de usurio, 327-328 Resumo dos, 197-198 usando DataCleaner. Veja DataCleaner utilizando ferramenta Power * Architect, 208 Diretrio Arquivos de Programas, 5 projetos, Eclipse IDE, 79-82 dimenso promoo alteraes de dados, 301-302 determinar alteraes de dados, promoo 304-306 extract_promotion trabalho, 303-304 load_dim_promotion trabalho, 302-303 mapeamentos, 301 Resumo dos, 300-301 pegar arquivo e extrair o carregamento, 306-307 extrato de poupana e passar no nome do arquivo, 306 freqncia de sincronizao, 302 promoo tabela, 301-302 promoes, WCM exemplo, 94-95, 102-105 alerta, a correr em background, 422-423 Prompt / Secure Ao de filtro, o processo aes, 85 propriedades acessando relatrio, 435 Tabelas de coluna, 361-362 conexes de banco de dados, 249-251 genricas conexes de banco de dados, 257-258 Pentaho camada de metadados, 355-356 Tabelas fsicas, 361 PRD relatrio, 378 rapidamente a abertura de tabelas ou colunas, 210 servidores escravos, 340 Configurao de SMTP e-mail, 53 subscrevendo a agenda pblica, 423-424 variveis, 311-312 . PRPT formato de arquivo, relatrios PRD, 376 P-Q 593 poda, bases de dados analticas, 142 PSW (Esquema Pentaho Workbench), 460-463 criar esquemas de Mondrian, 444 definida, 75 descarga, 460 estabelecer conexo com, 462 instalao, 461 JDBC Explorer e, 463 Ferramenta de consulta em MDX, 481-482 Resumo dos, 442 especificando tabelas agregadas, 499 a partir de 461 agendas pblicas permitindo aos utilizadores subscrever, 423-424 criao, 414 definido, 412 Pblico painel de listas, Workspace, 427 Publicar dilogo Servidor, 367 senha editora, 54-55 publisher_config.xml arquivo, 55, 407 publicao cubos, esquemas Mondrian, 482-483 definida, 68 diretamente a Pentaho BI Server, 372, 406-408 ordens de compra, por exemplo WCM, 101-105 Q Nmero trimestre, as dimenses da data, 272, 273 Quartzo configurando, 47 definida, 45 Empresa Job Scheduler, 411-412 o agendamento de tarefas com, 69-70 Designer de Consulta, SQL, 382-384 governador de consulta, 164 o desempenho da consulta, data warehousing, 128-133 agregao, 130 arquivamento, 132 ndices de bitmap, 129-130 ndices, 129 vises materializadas, 130-131 particionamento, 129 funes de janela, 131-132 redirecionamento de consulta, com materializada vistas, 130 sintaxe da consulta, MDX, 453-455 594 ndice Q-R DVDs ficar devido a ser devolvido, 434 loop clientes, 432-433 Resumo dos, 430-431 relatrio lembrete execuo, 434-436 envio de relatrio via e-mail, 436-438 replicao, armazenamento de dados e, 134 relatrio de ruptura, 85-89 Relatrio cabealho / rodap, PRD, 378 Assistente de relatrio, PRD, 378 relatrios motores definida, 72 Pentaho Report Designer, 76 arquitetura de informao, 372 relatrios. Veja tambm PRD (Relatrio Pentaho Designer) alternativas para a criao, 64 sada anexar mensagem de e-mail, 436-438 estourando. Veja ruptura com coleta de requisitos existentes, 194 exemplos de, 11-14 multi-usurios clicam trabalhar com, 192 JasperReports manipulao Pentaho ou BIRT, 372 Pentaho camada de metadados. Veja Pentaho camada de metadados ferramentas de poder para o usurio, 192 usos prticos do WAQR, 375-376 lembrete, 434-435 arquitetura de informao, 371-373 WAQR, 72 relatrios baseados na Web, 373-375 repositrios contedo, 412-413 contedo, gesto, 429 Colher com o lanamento do banco de dados, 236 metadados, 358 soluo, 68 trabalhos de conservao e as transformaes no banco de dados, 232 repositories.xml arquivo, 328-329 repositrio, PDI, 322-330 ligar automaticamente para o padro, 324-325 configurando para Pentaho BI Server, 336-337 conectar-se, 323-324 criar, 322-323 Manter o controle de, 328-329 gerenciar contas de usurio, 326-328 consultando esquemas estrela. Veja esquemas em estrela, consulta Guia de Incio Rpido, PRD, 377 R Raju, Prashant, 51 aleatoriedade dos dados, modelos de previso, 509 rc arquivo (script de inicializao), 40-42 perfil de Read-Only, PDI repositrio, 327 dados em tempo real de armazenagem, 140-142 ETL em tempo real, 118 registro de fluxos, transformao, 233-234 tipos de registro, transformao, 233-234 registros sada de distribuio atravs dos crregos, 286 transformao, 233-234 opes de recorrncia, horrios, 415-416 recursividade, 184 Red Hat Linux-based, a inicializao automtica, 42 dados de referncia, contra mestre de dados, 128 metadados refrescante aps a publicao de relatrio, 407-408 com o usurio do console, 367-368 Regex perfil Matcher, DataCleaner, 200, 202-204 regexes (expresses regulares), em dados Cleaner, 202-204 RegexSwap, 203 regio, Ordens de data mart, 212 Regional de Vendas - HTML exemplo de relatrio, 11-12 Vendas Regional - Linha / Bar exemplo de grfico, 16-17 regresso (previso numrica), dados minerao, 508 modelo relacional, mapeamento, 444 OLAP relacional (ROLAP), 122, 442 relaes Pentaho metadados, 362, 364-365 tempo relativo, 452 tempo relativo manipulao, 166-168 relacionamentos, 452 relatrio de lembrete, correr, 434-436 execuo remota de, 337-339 Aluguer lembrete exemplo e-mails, 430-438 encontrar clientes com DVDs devido esta semana, 431-432 ndice abertura Repositrio Explorer, 325-326 Resumo dos, 322 atualizar existentes, 329-330 browser do repositrio, 8-9 Repositrio de dilogo, 322-324 Repository Explorer, PDI, 325-328 fonte pedido de entrada, sequncias de ao, 83-84 anlise de requisitos A coleta de requisitos, 193-195 para soluo de data warehouse, 191-192 usurios direito de se envolver, 192-193 palavras reservadas, evitando-se a bancos de dados, 163 Amostragem Reservatrio Weka, 520 opo de Recursos, PRD tela de boas vindas, 377 recursos diretrio, CDF, 535 opo de Recursos, PRD tela de boas vindas, 377 resources.txt, CDF, 537 restries, 156-157 Currculo de Emprego ao, processo Scheduler, 420 Resume Scheduler processo de ao, Scheduler, 420 horrios de retomar, 416-417, 420 engenharia reversa, 208 RIGHT OUTER JOIN, 155 ROLAP (OLAP Relacional), 122, 442 role-playing dimenses, 181-182 papis gesto do servidor, 59-60 segurana de apoio Mondrian, 72 esquema de projeto e, 483 Cumulativo de funes, MySQL, 132 raiz trabalho escopo, variveis, 313-314 linha de bandas, relatrios, 390-391 linhas bandas de cor nos relatrios PRD, 390-391 OLAP Navigator, 19 SCD tipo 2, 171-173 trabalhar com redes de campo, 244 ROWS, Machados, 453-454 Os arquivos RTF, relatrios de exportao, 408 algoritmo de regra, para a classificao, 508 Executar link Agora, Pblico painel listas de rea de trabalho, 427 funes de execuo, relatrios PRD, 393-395 fonte de entrada de execuo, seqncias de ao, 84 R-S 595 S SaaS (Software as a Service), 144 Sakila banco de dados da amostra, 97 SampleData banco de dados, 45 amostras diretrio, PDI, 261 satlites, modelos de dados baseados em abbada, 125 SBI (serializado instncias binrio), 512 escalabilidade de execuo remota de, 338 scale-out, 338 scale-up, 338 trabalho com grfico, 401-402 SCDs (Lentamente Dimenses Alterar) criao de ordens de data mart, 212 desenvolvimento global de data mart modelo de dados, 207 Resumo dos, 170 Tipo 1: substituir, 171 Tipo 2: adicionar linha, 171-173 Tipo 3: adicionar a coluna, 174 Tipo 4: mini-dimenses, 174-176 tipo 5: tabela de histria independente, 176-178 estratgias hbridas, 178-179: tipo 6 Agenda privilgios, 424 Programador conceitos, 412-413 criao e manuteno de horrios com PAC, 413-417 programao de sequncias de ao, 417-420 Status Scheduler processo de ao, Scheduler, 420 horrios, definidos, 412 agendamento, 411-422 alternativas para a utilizao Scheduler, 420-422 execuo em segundo plano e, 422-423 repositrio de contedo, 412-413 criao / manuteno com o PAC, 413-417 como assinaturas de trabalho, 423-426 gesto, 61 Resumo dos, 411-412 Agendador de programao com ao seqncias, 417-420 agendas pblicas e privadas, 412 conceitos Scheduler, 412 espao de trabalho do usurio, 426-429 esquema. Veja tambm esquemas Mondrian agrupamento e, 342 ferramentas de projeto, 444 camada de metadados impacto limitao de alteraes, 348-349 596 ndice S servlet container, 74 servlets, Java, 67, 74 fonte de entrada da sesso, seqncias de ao, 84 SET comando, 29 Definir Ambiente de dilogo Variveis, 312 configurado, o cliente eo painel websites, 544 Definir etapa Variveis escolher uma varivel do escopo, 313-314 dinmica exemplo de conexo do banco de dados, 314-318 limitaes, 319 variveis definidas pelo usurio para, 312 trabalhar com, 318-319 conjuntos em consultas MDX, 458-459 especificando membros, 492 settings.xml arquivo, 336-337 dimenses compartilhadas, 471, 476-477 arquivos compartilhados objetos, 256-257 shared.xml arquivo, 256-257 shell scripts, comeando PSW, 461 Show de dilogo repositrio, Spoon, 322-323 irmos, cube relaes familiares, 452 Simple Mail Transfer Protocol. Veja SMTP (Simple Mail Transfer Protocol) single sign-on, Enterprise Edition, 77 nica verso da verdade, 126 dimensionamento vantagens do armazm de dados, 112-113 objetos de relatrio, 398 servidores escravos, e Carte, 337, 340-341 Slice and Dice exemplo de anlise, 17-18 fatias, pizza, 400-401 corte / slicers definido, 441 olhando na parte de dados com, 454 com o OLAP Navigator, 490-491 Slowly Changing Dimensions. Veja SCDs (Slowly Changing Dimensions) teclas inteligentes data, 166 SMTP (Simple Mail Transfer Protocol) autenticar pedido, 53-54 configurao bsica, 52-53 e-mails usando, 52, 70 A configurao de correio de entrada de emprego, 289-291 configurao segura, 54 CDC instantneo baseado, 135-136 tcnica de floco de neve criao de ordens de data mart, 212 retranca, 188 esquema. (Continuao) Pentaho Analysis Services e, 444 criao MySQL, 46 usando o editor de esquema, 463-466 esquema editor, 463-466 alterao dos modos de edio, 465-466 criao de novo esquema com, 463-464 objeto com atributos de edio, 465 Resumo dos, 463 esquema de poupana no disco, 464-465 escopo escolha de variveis, 313-314 da camada de metadados, 350-351 pontuao plugin, Weka, 519, 525-526 SEES, Machados, 453 Secure Sockets Layer (SSL), 290-291 segurana automaticamente se conectar ao PDI repositrio e, 325 JDBC configurao, 50-51 Mondrian papis coadjuvantes, 72 PAC configurao, 57-58 configurao do servidor escravo, 340 Configurao de SMTP, de 54 anos configurao de usurio, 58-60 o uso de senhas de banco de dados ofuscado para, 314 fonte de segurana de entrada, sequncias de ao, 84-85 Selecione um dilogo repositrio, Spoon, 322-323 SELECT declarao, SQL, 151, 156-157 auto-associao, 184 medidas semi-aditivas, 150 nmero de seqncia, tempo relativo, 167 seqncia com ndice 0, o tempo relativo, 167 Instncias serializada binrio (SBI), 512 servidor espao de trabalho do administrador, 428 Business Intelligence. Veja Pentaho BI Servidor Carte. Veja servidor Carte cliente e programas de desktop, Pentaho BI pilha, 65 definidos, de 65 anos Banco de dados HSQLDB, 6, 45-52 escravo, 337, 340-341 Tomcat. Veja servidor Tomcat Administration Server Console, 368 Service Manager, Windows, 43 service.bat script, 43 ndice Resumo dos, 186-187 esquema de projeto e, 483 software, baixar e instalar, 4-5 Software como Servio (SaaS), 144 mecanismo de soluo Pentaho BI Server, 68 soluo varivel global, painel de instrumentos, 545-546 soluo de repositrio, Pentaho BI Server, 68 Ordenar propriedade de diretrio, o estadiamento de pesquisa valores, 300 Classificar em pesquisa do tipo degrau, 293, 299-300 Ordenar etapa Linhas, 299-300 classificao relatrios PRD, 385-386 relatrios WAQR, 374 cdigo fonte, empregos e contra a transformao, 233 CDC fonte de dados de base, 133-134 Fonte site Forge, 4 sistemas-fonte, 286-307 dados vault reproduzindo informaes armazenada em, 126 de arquitetura de dados do armazm, 117 extrao de dados, 226 carregar os dados. Veja valores de pesquisa, estadiamento, dimenso promoo mapeamentos para data warehouse de destino, 218-219 rea de teste para, 118-119 Site SourceForge, 460 diviso existente lpulo, 254 Colher Pentaho Data Integration utilitrio, 230-231 variveis definidas pelo usurio, 312 utilizando repositrio com PDI. Veja repositrio, PDI Spoon,''Ol Mundo!'' transformao do edifcio, 237-244 Execuo de painel de resultados, 245-246 lanamento de candidatura, 236-237 produo, 246 Resumo dos, 237 execuo de transformao, 244-245 trabalhar com conexes de banco de dados, 253-256 Spoon.bat script, 236 spoon.sh script, 236 planilhas e anlise de dados, 196 Spring Security, 69-70 SQL (Structured Query Language) aplicar restries de consulta, 156-158 S 597 blocos de construo para selecionar os dados, 151-153 Criar dim_date, data de carregamento dimenses, 265-267 criao de scripts personalizados para perfis, 206 data de criao da tabela de dimenso, 265-267, 277 criao da tabela de dimenso, demografia 282 criao de consultas usando JDBC, 382-385 criao da tabela de teste, 295-296 a criao de tabelas e ndices, 212-213 anlise da camada de metadados, 353-354 tipos de juno, 153-156 tabela de carga total, 498 MDX em comparao com, 453 Pentaho Metadata gerando Layer, 70 consultando esquemas estrela e, 151-152 Editor de SQL, 255 SQLeonardo, 33-34 conexes de banco de dados SQLite, 254, 323 SQLPower, 205-206, 208 Esquilo, 32, 46 SSL (Secure Sockets Layer), 290-291 pilha. Veja Pentaho BI pilha membros da equipe. Veja funcionrios stage_demography tabela, 282, 283-284 stage_lookup_data transformao, 287-288, 293-294 stage_promotion tabela, 304-305 rea de teste para a extrao de dados, 226-227 Resumo dos, 118-119 Encenao etapa existe tabela, como etapa do manequim, 296-297 Standard perfil de Medidas, DataCleaner, 200, 202 normas data warehousing, 113, 139 ISO, 97 esquemas estrela hierarquias de construo, 184-186 consolidao mesas multi-gro, 188-189 criar consultas SQL usando JDBC, 383 tabelas de dimenso e tabelas de fato, 148-150 lixo, heterogneo e degenerado dimenses, 180-181 MDX comparado com, 447-448 dimenses monstro, 179-180 multi-valorizados dimenses e ponte tabelas, 182-183 598 ndice S etapas, a transformao construo de transformao em''Ol Mundo!'', 238-244 criar, mover e remover, 239 lpulo ligao, 287 horizontalmente ou verticalmente alinhando, 243 Emprego versus entradas, 287 Resumo dos, 233-235 tipos de, 239-240 utilizando variveis. Veja variveis stop.bat, 56 parar pentaho.bat script, 51 parar pentaho.sh script, 52 stop.sh, 56 Loja de preparo passo de mesa, 294 procedimentos armazenados, dimenses, data 262-263 soluo stovepipe, 119-120 estratificada de validao cruzada, minerao de dados, 509-510 Stream etapa de Pesquisa, 293, 297-299 String anlise de perfil, DataCleaner, 200, 202 estrutura, o relatrio do PRD, 378-380 estruturado de dados externos, anlise de dados, 196 Linguagem de Consulta Estruturada. Veja SQL (Structured Query Language) herana de estilo, os relatrios do PRD, 389 <style> marca, . Xcdf arquivo, 538 estilo, forando para HTML e-mail, 436 estilo, painis, 565-568 subcamadas, Pentaho camada de metadados, 359-366 sub-relatrios, 404-406 subscries, 423-430 criar, 425-426 concesso de Execuo e Programao privilgios, 424 gesto, 61 Resumo dos, 423 para os usurios, 423-424 exibio em pblico painel de listas de Workspace, 427-428 aprendizado supervisionado. Veja classificao suporte, CDF, 531 chaves substitutas integrao de dados e, 229 modelagem de estrelas esquema com, 160-162 Suspender Trabalho ao, processo Scheduler, 420 esquemas estrela (Continuao) retranca, 188 Resumo dos, 147-148, 179 role-playing dimenses, 181-182 flocos de neve e dimenses de agrupamento, 186-187 esquemas estrela, registrando a histria, 170-179 Resumo dos, 169-170 SCD tipo 1: substituir, 171 SCD tipo 2: adicionar linha, 171-173 SCD tipo 3: adicionar a coluna, 174 Tipo de SCD 4: mini-dimenses, 174-176 SCD tipo 5: tabela de histria independente, 176-178 estratgias hbridas, 178-179: tipo SCD 6 esquemas estrela, princpios de design, 160-169 colunas de auditoria, 164 granularidade e agregao, 163-164 data e hora de modelagem, 165-168 nomeao e tipo de convenes, 162-163 desconhecido chaves de dimenso, 169 usando chaves substitutas, 160-162 esquemas estrela, consultando, 150-158 restries aplicveis, 156-157 combinando mltiplas restries, 157 tipos de juno, 153-156 ordenao dos dados, 158 Resumo dos, 150-153 restringir resultados agregados, 157 starflake, 186 START entrada de trabalho, 287, 288 start-pentaho.bat script, 5-6, 51 start-pentaho.sh script, 5-6, 52 start.sh, 56 inicializao automtico, 40-43 programa de mesa, 76 modificar scripts quando descartando Banco de dados HSQLDB, 51-52 Resumo dos, 5-6 startup.bat, 56 exemplos Steel Wheels anlise, 18-19 Grfico Lista de Escolha, 15 Lista Flash Chart, 15-16 Declarao de Renda relatrio, 12-13 Resumo dos, 8-9 Top 10 relatrio clientes, 13 grade Passo Metrics, Execuo painel de resultados, 245-246 ndice Suspender Scheduler processo de ao, S-T 599 Scheduler, 420 horrios de suspenso, 416, 420 links simblicos (links simblicos), 25-26 Gerenciador de Pacotes Synaptic instalao vagabundo, 42 instalar o Java no Ubuntu Linux, 27-28 instalar as ferramentas GUI MySQL no Ubuntu, 31 instalao do MySQL em Linux, 29-30 frequncia de sincronizao, 301-302 bancos de dados, 45-52 como configurar o Hibernate, 47-50 configurar a segurana JDBC, 50-51 configurao de quartzo, 47 configurar os dados da amostra, 51 Pentaho modificando os scripts de inicializao, 51-52 Resumo dos, 45-46 criao de esquemas MySQL, 46 sistema de entrada, 127 sistema de registro, MDM, 127 configurao do sistema, os pr-requisitos, 22-25 T Tabela editor Datasource, PRD, 387 Tabela etapa existe, estadiamento tabelas de pesquisa, 294 Tabela passo de entrada, 316 Tabela etapa de sada dinmica exemplo de conexo do banco de dados, 317 dimenso de data do carregamento de PDI, 275-276 estadiamento valores de pesquisa, 300 Loja de preparo passo de mesa, 294 tabelas ponte. Veja mesas de bridge corantes Power * Architect, 212 convenes para, 162 criando em SQL, 212-213 criar consultas SQL usando JDBC, 383-385 manualmente para definir relacionamentos relatrio, 383 dimenso. Veja tabelas de dimenso rapidamente abrir as propriedades de, 210 marcao, o carregamento de dados invlido aps, 228 Alvo de conexo de banco de dados, 253-256 metas, resultados de minerao de dados, 506 . Tar.gz arquivo, 357 Agendador de Tarefas, 421 o agendamento de tarefas, Pentaho BI Server plataforma, 69-70 TDWI (The Data Warehousing Institute), 119 equipe, armazm de dados multi-disciplinar, 192 tecnologias Quadro Comunitrio de Dashboard, 531-532 Pentaho BI pilha, 66-67 Teiid, 140 Temp propriedade de diretrio, junte-se linhas (Produto cartesiano) etapa, 280 <template> marca, . Xcdf arquivo, 538 modelos criao de seqncias de ao como PDS, 88 modificando relatrio PRD, 375-376 relatrios WAQR, 373 modelos, CDF contedo, 533, 541-542 documento personalizado, 568-569 documento, 533, 538-541 Resumo dos, 538 terminal, 24-25 Teste guia, editor seqncia de ao, 81-82 testes cliente e sites do painel, 547 modelos de minerao de dados, 507 conexes de banco de dados, 252 esquemas de Mondrian, 481-482 parmetros de relatrio PRD, 388 programaes, 415 modelo de validao de derivados de formao processo, 509 texto, adicionando o horrio, 415 anlise de texto, de minerao de dados, 503 editores de texto, esquemas de Mondrian, 444 Texto etapa arquivo de entrada, Spoon, 240-243 Texto etapa arquivo de sada, Spoon, 243-245 TextComponent, Painel de instrumentos, 555-557 ''Os 38 subsistemas de ETL'' (Kimball), 225 temas do painel, 566 tempo data de modelagem e, 165-168 relativa relaes de tempo, 452 Tempo de anlise de perfil, DataCleaner, 200, 202 dimenso de tempo gerando, 213-216 granularidade, 165 600 ndice T U- dinmica exemplo de conexo do banco de dados, 314-318 exportadores Repository Explorer, 326 extract_promotion transformao, 303-304 incorporar seqncias de ao, 334-336 postos de trabalho composto por, 235 postos de trabalho versus, 232-233, 287 carregamento dimenso demogrfica, 281-286 carregamento dimenso da promoo, 302-306 dimenso do tempo de carregamento, PDI, 277-281 Resumo dos, 233-235 ferramentas de integrao de dados e Pentaho componentes, 231-232 remotamente executando com Carte, 341-342 execuo da linha de comando, 330-334 executado em''Ol Mundo!'', 244-245 execuo dentro Pentaho BI Server, 334-337 correndo com Pan, 332 armazenamento em 232 repositrio, variveis definidas pelo usurio para, 312 o uso de conexes de banco de dados, 252-253 transformaes, a carga dimenso de data tabela Calcular e formatar passo Datas, 269-273 Criar dim_date, 264-265 Dias etapa seqncia, 268-269 Gerar linhas com passo data inicial, 267-268 dim_date Carga, 275-276 Faltando duas datas, 267-268 Resumo dos, 264-265 Valor etapa Mapper, 273-275 exibio em rvore, navegador de repositrio. Veja navegador repositrio CDC-trigger based, 134-135 Dados do Censo 2000 CEP conjunto, 109 dois cliques de usurios (refrigerantes), 192-193 dimenso de tempo (Continuao) carregamento simples, 277-281 role-playing, 182 TimeSeries funo de cobrador, 399 timestamps, gesto de inventrio, 105 <title> marca, . Xcdf arquivo, 538 ttulos, painel de instrumentos, 543, 553-554 prefixo TMP arquivos, teste de pesquisa de valores, 300 servidor Tomcat configurando, 39-40 start-pentaho script a partir de 6 de Tomcat5.exe, 43 barras de ferramentas JPivot, 485 usurio Pentaho console, 7 conjunto de ferramentas de minerao de dados algoritmos, 508-509 associao, 507-508 classificao, 506-507 clustering, 507 numricos de previso (regresso), 508 Resumo dos, 506 Weka minerao de dados, 510 Top 10 relatrio clientes, 13 TopCount consultas funo MDX, 457 formao, modelos de minerao de dados, 507, 509 transacional tabelas de fato, 149 entradas trabalho de transformao, preparo de pesquisa valores 288-289 processo de transformao, ETL. Veja tambm ETL (Extrao, transformao e Carregando) agregao de valor, 229 atividades de limpeza de dados, 228 atividades de validao de dados, 227-228 decodificao e renomeando atividades, 228-229 definido, 224 principais actividades de gesto, 229 atividades de apoio, 225 Transformao de dilogo Propriedades, 253 transformaes adio de suporte de banco de dados''Ol, Mundial'', 253-256 adicionar notas a lona, 264-265 edifcio em''Ol Mundo!'', 238-244 verificao de consistncia e dependncias, 247-248 criar conexes de banco de dados, 249 dados do motor de integrao e, 232 U Ubuntu inicializao automtica, de 42 anos criar links simblicos em, 26-27 descarga de 22 instalar o Java em, 27-28 ndice instalar as ferramentas GUI MySQL em, 31 instalao do MySQL em cliente e servidor, 29-30 Esquilo na instalao, 32-33 funcionando como mquina virtual, 23 usando em modo nativo, 23 Ubuntu Linux Toolbox (Negus e Caen), 24-25 hierarquias desbalanceadas, 185-186 sistemas baseados em UNIX inicializao automtica, 40-41 programao de trabalho para, 421 manter o controle dos depsitos no PDI, 328-329 local para instalao do Servidor Pentaho, 38 gerenciamento de drivers JDBC em, 44-45 Pentaho BI Server colocao software em, 5 Carte em execuo, 339-340 criao de conta de usurio, grupo e diretrio, 39 partida e parada no PAC, 56 a partir Pentaho BI Server em, 5-6 a partir Pentaho Design Studio, em, 10 Spoon na partida, 236 agendador de tarefas com CRON em, 415 o uso de senhas de banco de dados obfuscated in, 334 usando Pentaho Metadata Editor, 357-358 Demografia Desconhecido etapa, 283 desconhecido chaves de dimenso, 169 Desconhecido valor, dimenso desconhecida chaves, 169 aprendizado no supervisionado. Veja clustering update-rc.d utilitrio, Linux automtica inicializao, 42 atualizaes, data warehousing, 112 readaptao, PDI repositrio, 323, 329-330 EUA-PT (dimenso de data), 213-216 usurio do console. Veja Pentaho console de usurio (Manto) Usurio de dilogo Informao, Repositrio Explorer, 327-328 O perfil de utilizador, PDI repositrio, 327 funes definidas pelo usurio, de design do esquema, 484 variveis definidas pelo usurio, 312-314 usernames log in, 6-7 PAC home page, de 56 anos U-V 601 servidores escravos, 340 conta de usurio, 327-328 usurios configurao de conta, 38-39 autenticao e autorizao, 69 coletando requisitos a partir de entrevistas com, 194 conectar ao repositrio, 323-324 anlise da camada de metadados, 353-354 gesto, 58-60 gerenciamento de contas de depsito, 326-328 mudanas nos requisitos, data warehousing, 137-139 subscrevendo a agenda pblica, 423-424 tipos de dados envolvidos no projeto mart, 192-193 uso de metadados para a interface amigvel para, 348 usurio Workspace, horrios / plano de fundo execuo, 426-429 Hora UTC (Zulu), 165-166 V valid_from carimbo do tempo, a histria preservao, 171-172 valid_to carimbo do tempo, a preservao da histria, 171-173 validao DataCleaner, 199, 205 ETL e dados, 227-228 ''Ol Mundo transformao exemplo'', 247-248 Valor perfil de distribuio, DataCleaner, 201 Valor etapa Mapper, PDI carregamento dimenso de data, 273-275 carregamento dimenso demogrfica, 282 valores adicionar e usar em relatrios PRD, 386-389 transformando-se em valores relativos usando sinal%, 398 servidores escravos com a criao de, 340 Resumo dos, 330-331 passando para sub-relatrios, 405-407 variveis, 310-319 built-in, 314 em propriedades de configurao, 311-312 servidores escravos com a criao de, 340 602 ndice V-W obteno de dados e gerando, 97 Resumo dos, 93-94, 95-97 ordens de compra, 101-102 finalidade de business intelligence, 105-109 Web consulta ad hoc e relatrios Servio. Veja WAQR (Web Ad Hoc Consulta e Reporting Service) desenvolvimento de competncias Web, painis CDF, 531 pginas web, como painis CDF, 532 Publicar Web URL, 406-407 referncias da Web, 49 analticos de produtos de banco de dados, 142-143 disponveis expresses regulares, 203 Azzurri Clay, 32 pools de conexo, 49-50 criao de fontes de dados com o PAC, 60-61 expresses cron, 415 crontab e cron implementaes, 421 CWM informaes, 352 abbada de dados, 126 DataCleaner, 198 data de mscaras de formato, 271 baixar nightly builds do Pentaho, 4 e-commerce de dados de receitas, 109 ERMaster, 32 atividades de ETL, 225 gravador de imagem para criar CD de arquivo baixado, 22 Infobright, 23 JavaMail API, 54 Jetty, 55 JFreeChart, 397 JNDI, 320 Kickfire aparelho, 144 Modificado JavaScript passo valor, PDI, 277 relatrio modificar templates, 376 Mogwai ERDesigner, 32 movimentao de dados de exemplo para MySQL, 51 ferramentas GUI MySQL a downloads de 31 MySQL sintaxe SELECT, 158 MySQL Workbench, 32 obteno de informaes cinematogrficas, 99 regras de negcios de cdigo aberto motores, 141 PAC autenticao conectvel, 58 Pentaho Data Integration documentao, 261-262 Pentaho Data Integration ferramentas download, 230 Pentaho Data Integration trans- es e baixar os trabalhos, 261 variveis, (Continuao) exemplo, as conexes de banco de dados dinmico, 314-318 cone para, 311 Resumo dos, 310-311 escolhendo da lista, 312 Definir passo variveis, 318-319 definida pelo usurio, 312-314 compartimentao vertical, 179 Visualizaes Eclipse IDE, 79 rea de trabalho do usurio, 426-427 armazenamento de dados virtual, 139-140 mquinas virtuais, 23, 67 VirtualBox, 23-24 visibilidade, alternando Resultados da Execuo painel, 246 visualizao, minerao de dados e, 503 W Waikato Environment for Knowledge Anlise. Veja Minerao de dados Weka Esperando painel, rea de trabalho, 427 WAQR (Web consulta ad hoc e Reporting Service) vistas no relatrio a criao de usurios do console, 73 modificao no PRD, 373, 375 como componente do Pentaho BI Server, 72 usos prticos, 375-376 relatrios baseados na Web usando, 373-375 armazm, por exemplo WCM, 95, 96, 104-105 Marca d'gua, relatrios do PRD, 379 WCM (World Class Filmes), a construo de dados marts, 210-218 gerao de banco de dados, 212-213 gerando dimenses esttica, 213-216 Resumo dos, 210-212 especial campos de data e clculos, 216-218 WCM (World Class Filmes), por exemplo business case, 95-105 bsico, 94-95 panorama geral, 97-99 pedidos de clientes e promoes, 102-104 clientes, 101 DVD catlogo, 99-101 funcionrios, 101 gerenciamento de inventrio, 104-105 principais fluxos de processos, 96 ndice Pentaho Metadata Editor, 357 frmulas de comunicao Pentaho, 396 Download liberado Pentaho software, 4 Power * Architect, 32 * A ferramenta Power Architect, 208 Quartzo e projeto Open Symphony, 412 dados em tempo real de armazenagem, 141-142 service.bat roteiro e Tomcat5.exe, 43 snowflaking, 186-187 SQLeonardo, 34 Esquilo cliente SQL, 32-33 TDWI (The Data Warehousing Institute) relatrio, 121 Tomcat manual, 40 Ubuntu, como instalar, 23 Ubuntu, rodando como mquina virtual, 23 Ubuntu download, 22 na utilidade e Agendador de Tarefas, 422 armazenamento de dados virtual, 140 instaladores do Windows para o MySQL 5.1, 30 relatrios baseados na Web, 373-375 Weblogs, anlise de dados usando, 196 site mesa, 301, 302 site_name parmetro Dashboard, 553-554 websites, WCM exemplo, 94-95 Weka minerao de dados, 503-527 motor, 72-73, 76, 192 Experimentador, 517-518 Explorer, 516-517 ler mais, 527 formatos de entrada, 511-512 KnowledgeFlow, 518-519 configurao de conexes de banco de dados para, 512-514 a partir Weka, 514-516 resumo, 527 conjunto de ferramentas, 510 Weka minerao de dados, usando com PDI adicionar plugins PDI, 520 criar / salvar modelo, 523 aquisio de dados e preparao, 521-522 comeando com o Weka eo PDI, 520-521 Resumo dos, 519-520 pontuao plugin, 519, 523-524 Bem-vindo pgina, Spoon, 236-237 Tela de boas vindas, Pentaho Report Designer, 377-378 W-X 603 What You See Is What You Get (WYSIWYG), editor e PRD, 376-377 ONDE clusulas, SQL, 151-152 onde condio, 383-384 ONDE declarao, SQL, 151, 153 funes de janela, data warehouse desempenho, 131-132 Windows Installer, 30-31 COM clusula, define MDX, 458-459 espao de trabalho Eclipse IDE, 78-79 usurio Pentaho console, 8 usurio, para programaes / plano de fundo execuo, 426-429 Filmes Classe Mundial. Veja WCM (World Classe Filmes), construo de data marts de dados; WCM (World Class Filmes), por exemplo caso de negcio WYSIWYG (What You See Is What You Obter e editor), e PRD, 376-377 X Terminal X, 24 editor xaction, 80-82 . Xaction extenso, 10-11, 68. Veja tambm seqncias de ao XactionComponent, 551-553 . Xcdf arquivo, 533, 537-538, 544 XMI (XML Metadata Interchange) de formato relatrios com base nos metadados, 366 criao de consultas de metadados, 385-386 publicao de metadados para o servidor, 367 . Xmi arquivos de metadados, como armazenar, 350 XML (Extensible Markup Language) seqncias de ao como, 68 adicionar conexes de banco de dados DataCleaner, 201 A anlise dos dados, 196-197 programas de desktop baseados em, 76 dumping diretrio do repositrio e contedo para, 326 exportando objetos no repositrio para PDI, 329-330 configurao do Tomcat usando, 39-40 O editor de XML, esquemas de Mondrian, 444 XML for Analysis (XML / A) da especificao, 123 XML Metadata Interchange. Veja XMI (XML Metadata Interchange) de formato 604 ndice X-Z ytd_ly, 217 ytd_lyvalue, 217 XML fonte, esquemas Mondrian, 480-481 XML / A (XML for Analysis), especificao 123 XRFF (eXtensible atributo-relao Arquivo Format), 511-512 XYZSeries funo de cobrador, 400 YYSeries funo de cobrador, 399 Z Zip. arquivo Y ano () relatrios de funo, PRD, 397 ytd_cy, 217 ytd_cyvalue, 217 ferramentas de PDI como, 230 Pentaho editor de metadados como, 357 O software lanado Pentaho como, 4-5 conjuntos de dados Zipcensus, 196 Zulu hora (UTC), 165-166
Seu recurso one-stop para o cdigo aberto BI e solues de data warehousing Pentaho uma full-featured, Open Source Business Intelligence Suite, que permite que voc crie dados depsitos e aplicaes ricas e poderosas de BI em uma frao do custo de uma soluo proprietria. Este livro leva voc para cima e correndo com Pentaho em poucos minutos: desde o comeo voc vai ser relatrios de exemplo em execuo, painis e tabelas dinmicas de OLAP, enquanto voc aprende sobre Pentaho conceitos e arquitetura. Usando um estudo de caso prtico, voc vai aprender o que a modelagem dimensional e como aplic-lo para projetar um data warehouse. Voc vai criar e preencher seus dados armazm com ferramentas de integrao de dados Pentaho. Finalmente, voc vai aprender como construir seu prprio BI aplicaes em cima de seu data warehouse com Pentaho relatrios, anlise, dashboards, e ferramentas de minerao de dados. Compreender conceitos importantes Pentaho, incluindo seqncias de ao ea soluo repositrio Aplicar os conceitos-chave da dimenso modelagem e construo de um data warehouse usando esquemas estrela Use Pentaho ferramentas de integrao de dados para construir aplicaes ETL Explore avanada PDI recursos, incluindo execuo remota e clustering Design e relatrios e grficos utilizando implantar Pentaho Report Designer Aproveite OLAP e criar interativo tabelas dinmicas com drill up / drill down utilizando Pentaho Analysis Services Concentrao e contedo de BI compacto para usurios corporativos com ampla dashboards Descobrir e explorar padres em seus dados Pentaho usando minerao de dados Roland Bouman um desenvolvedor de aplicaes com foco em tecnologia open source da Web, bancos de dados e Business Inteligncia. Ele membro ativo das comunidades MySQL e Pentaho, e voc pode acompanhar seu blog em http://rpbouman.blogspot.com/. Jos van Dongen um autor experiente profissional de Business Intelligence e bem conhecido e apresentador. Ele fala regularmente em conferncias e seminrios. Voc pode encontrar mais informaes sobre a Jos http://www.tholis.com. Visite www.wiley.com / go / pentahosolutions para exemplos de cdigo e dados da amostra. ISBN: 978-0-470-48432-6 $ 50,00 EUA / CAN $ 60,00 Visite nosso site em www.wiley.com / compbooks Database Management / Geral