construindo soluÇÕes de business intelligence com pentaho …
TRANSCRIPT
UNIVERSIDADE DO SUL DE SANTA CATARINA
MICHEL ANGELO DA SILVA DARABAS
CONSTRUINDO SOLUÇÕES DE BUSINESS INTELLIGENCE COM PENTAHO BI
SUITE COMMUNITY EDITION (CE)
Palhoça
2012
MICHEL ANGELO DA SILVA DARABAS
CONSTRUINDO SOLUÇÕES DE BUSINESS INTELLIGENCE COM PENTAHO BI
SUITE COMMUNITY EDITION (CE)
Este Trabalho de Conclusão de Curso foi julgado
adequado à obtenção do título de Bacharel em
Sistemas de Informação e aprovado em sua forma
final pelo Curso de Graduação em Sistemas de
Informação da Universidade do Sul de Santa
Catarina.
Orientador: Prof. Aran Morales, Dr.
Palhoça
2012
MICHEL ANGELO DA SILVA DARABAS
CONSTRUINDO SOLUÇÕES DE BUSINESS INTELLIGENCE COM PENTAHO BI
SUITE COMMUNITY EDITION (CE)
Este Trabalho de Conclusão de Curso foi julgado
adequado à obtenção do título de Bacharel em
Sistemas de Informação e aprovado em sua forma
final pelo Curso de Graduação em Sistemas de
Informação da Universidade do Sul de Santa
Catarina.
Palhoça, 21 de novembro de 2012.
Dedico este trabalho a minha esposa e a minha
família, principalmente aos mais próximos, que
me ajudaram a alcançar mais um objetivo.
AGRADECIMENTOS
A Deus por tudo que me proporciona na vida.
A minha esposa, Jacqueline F. R. Darabas, pelo seu apoio, paciência e incentivo
no decorrer deste projeto.
A minha mãe, Terezinha da Silva, pelo seu suporte e apoio.
Ao amigo, João A. Bertotti, por seu apoio, incentivo e aconselhamento.
Ao professor e orientador Aran Morales, por ter dado a ideia e orientação para
este trabalho e, também, pelo incentivo na trajetória de conclusão do mesmo.
Aos professores do curso de Sistemas de Informação, que foram tão importantes
na minha vida acadêmica e no desenvolvimento desta monografia.
A todos que de alguma forma contribuíram para este trabalho, com dicas,
sugestões e opiniões.
RESUMO
Os recursos de business intelligence (BI) são muito utilizados na indústria. Porém a utilização
de ferramentas open source ainda é um tanto limitada. Essas ferramentas têm como vantagem
o fato de não terem custo de licenciamento de software e de possuírem código fonte aberto.
Este trabalho mostra a criação de uma solução de BI, através da construção de um repositório
de dados do tipo data warehouse, utilizando as ferramentas open source da suite Pentaho
para, no fim, se ter um uma interface gráfica ou front end para o usuário final. Para a criação
da solução, foram escolhidos dados públicos do Portal da Transparência e do IBGE, ambos
subordinados ao governo federal, com o objetivo de cruzar informações sobre a transferência
de recursos federais para os estados e municípios com a estimativa da população dos mesmos,
entre os anos de 2005 e 2011, subdivididos por projeto em que o recurso foi aplicado. Esta
solução de BI, que utiliza ferramentas da suite Pentaho, começa com a criação do data
warehouse, seguindo pela criação de um repositório de metadados com a ferramenta
Metadata Editor. Na sequência, mostra o processo ETL criado com ferramenta Kettle, e a
conclusão da carga dos dados. A ferramenta utilizada para criação de relatórios é a Report
Designer e, para a criação de gráficos, a Design Studio. Por fim, são criados cubos de dados
OLAP com a ferramenta Schema Workbench, e tanto os cubos como os relatórios e gráficos
são publicados no BI Server. Este último possui o motor para o fornecimento de uma série de
funções essenciais para suite Pentaho e também contém um servidor web com uma ferramenta
chamada de Console do Usuário, sendo este um front end para interagir com o usuário final.
Palavras-chave: Business Intelligence. Data Warehouse. ETL. OLAP. Pentaho. Kettle.
Mondrian. Metadata Editor. Report Designer. Schema Workbench. Design Studio.
LISTA DE ILUSTRAÇÕES
Figura 1 – Uma arquitetura de alto nível do BI ........................................................................ 18
Figura 2 – Ilustração data mart ................................................................................................. 20
Figura 3 – Importância da definição da granularidade no projeto de data warehouse ........... 21
Figura 4 – Elementos participantes da ocorrência de uma compra .......................................... 23
Figura 5 – Modelo multidimensional ....................................................................................... 24
Figura 6 – Modelo estrela ......................................................................................................... 25
Figura 7 – Modelo floco de neve .............................................................................................. 26
Figura 8 – O processo de ETL .................................................................................................. 27
Figura 9 – Pilha BI Pentaho ..................................................................................................... 29
Figura 10 – Console do Usuário .............................................................................................. 31
Figura 11 – Interface de Pentaho Metadata Editor .................................................................. 32
Figura 12 – Pentaho Data Integration, ferramentas e componentes ........................................ 35
Figura 13 – Arquitetura do processo de geração de relatórios ................................................. 36
Figura 14 – Data warehouse com Mondrian ........................................................................... 38
Figura 15 – Visão geral dos componentes Pentaho OLAP ...................................................... 39
Figura 16 – Etapas Metodológicas ........................................................................................... 44
Figura 17 – Modelo no formato estrela para o banco de dados multidimensional .................. 50
Figura 18 – Administration Console – Conexão com o banco de dados .................................. 52
Figura 19 – Console do Usuário – Solução transferência de recursos ..................................... 53
Figura 20 – Console do Usuário - Relatório aberto na parte central ........................................ 54
Figura 21 – Publisher config .................................................................................................... 54
Figura 22 – Modelo de metadados Transferência de Recursos ................................................ 55
Figura 23 – Modelo lógico de tabelas de negócio .................................................................... 57
Figura 24 – Propriedades da tabela de negócio Fato População .............................................. 57
Figura 25 – Configuração de um relacionamento com PME ................................................... 58
Figura 26 – Visão de negócios com PME ................................................................................ 59
Figura 27 – Publicação de PME para o BI Server .................................................................... 60
Figura 28 – Exemplo de interface do PDI Spoon – Transformação Dimensão Tempo ........... 61
Figura 29 – Job principal do processo ETL ............................................................................. 62
Figura 30 – Job Carrega Dimensão Geográfica ....................................................................... 62
Figura 31 – Transformação Carrega Dimensão Geográfica 1 .................................................. 63
Figura 32 – Transformação Carrega Dimensão Geográfica 2 .................................................. 64
Figura 33 – Transformação Código Portal da Transparência 1 ................................................ 65
Figura 34 – Transformação – Configuração Modifield Java Script Value ............................... 67
Figura 35 – Transformação Dimensão Tempo ......................................................................... 68
Figura 36 – Job Carrega Fato População.................................................................................. 69
Figura 37 – Transformação Carrega Fato População 2005 ...................................................... 69
Figura 38 – Carga Fato População 2005, Merge Join .............................................................. 70
Figura 39 – População dos municípios em PDF para o ano de 2008 ....................................... 71
Figura 40 – Transformação Carga Fato População 2008 ......................................................... 72
Figura 41 – Job Carrega Dimensão Projeto.............................................................................. 73
Figura 42 – Transformação Dimensão Projeto 2011 ................................................................ 73
Figura 43 – Configuração do Componente Insert / Update ..................................................... 74
Figura 44 – Job Carrega Fato Recurso Transferido ................................................................. 75
Figura 45 - Transformação Carrega Fato Recurso Transferido 2011 ....................................... 76
Figura 46 – Transformação Fato Recurso Transferido por Habitante ...................................... 77
Figura 47 – Métricas da transformação da dimensão tempo .................................................... 78
Figura 48 – Relatório Transferência de Recursos por Função e Estado ................................... 80
Figura 49 – PRD – Metadados como fonte dos dados ............................................................. 81
Figura 50 – PRD – Query Editor .............................................................................................. 82
Figura 51 – PRD Wizard, Definição do Layout do Relatório .................................................. 83
Figura 52 – Interface de relatório de Pentaho Report Designer............................................... 84
Figura 53 – Configuração de parâmetros ................................................................................. 85
Figura 54 – Publicação no BI Server ........................................................................................ 86
Figura 55 – Relatório Transferência de Recursos aos Municípios por Estado e Ano .............. 87
Figura 56 – Gráfico Bolha Transferência de Recursos por Localidade ................................... 88
Figura 57 – Interface de Pentaho Design Studio ...................................................................... 90
Figura 58 – Design Studio código fonte XML ......................................................................... 91
Figura 59 – Gráfico Linha Transferência de Recursos por Localidade e Ano ......................... 92
Figura 60 – Configuração do gráfico com XML ...................................................................... 93
Figura 61 – Gráfico Linha Transferência de Recursos por Regiões do Brasil e Ano .............. 94
Figura 62 – Interface de Pentaho Schema Workbench ............................................................. 95
Figura 63 – Cubo Transferência de Recursos com JPivot no Console do Usuário ................. 96
Figura 64 – Árvore do cubo Transferência de Recursos .......................................................... 97
Figura 65 – Atributos da medida valor transferido................................................................... 99
Figura 66 – Cubo Transferência de Recursos por Habitante – JPivot...................................... 99
Figura 67 – Publicação no BI Server por Schema Workbench ............................................... 101
LISTA DE SIGLAS
BI - Business Intelligence
BPM - Business Performance Management
CDF - Community Dashboard Framework
CE - Community Edition
CFO - Chief Financial Officer
CGU - Controladoria Geral da União
DB - Data Base
DM - Data Mart
DML - Data Manipulation Language
DS - Data Source
DW - Data Warehouse
ETL - Extract, Transform and Load
IBGE - Instituto Brasileiro de Geografia e Estatística
IDE - Integrated Development Environment
JDBC - Java Database Connectivity
MDX - Multidimensional Expressions
OLAP - On-Line Analytical Processing
OLTP - Online Transaction Processing
PDI - Pentaho Data Integration
PDS - Pentaho Design Studio
PL/pgSQL - Procedural Language/Postgre SQL
PME - Pentaho Metadata Editor
PRD - Pentaho Report Designer
PSW - Pentaho Schema Workbench
RDBMS - Relational Database Management System
ROLAP - Relacional OLAP
SQL - Structured Query Language
TCU - Tribunal de Contas da União
XML - Extensible Markup Language
XML/A - XML for Analysis
SUMÁRIO
1 INTRODUÇÃO................................................................................................................. 14
1.1 PROBLEMÁTICA .......................................................................................................... 14
1.2 OBJETIVOS .................................................................................................................... 15
1.2.1 Objetivo Geral ............................................................................................................. 15
1.2.2 Objetivos Específicos................................................................................................... 15
1.3 JUSTIFICATIVA ............................................................................................................ 15
1.4 ESTRUTURA DA MONOGRAFIA ............................................................................... 16
2 REFERENCIAL BIBLIOGRÁFICO ............................................................................. 17
2.1 DEFINIÇÕES E CONCEITOS DE BI ............................................................................ 17
2.2 ARQUITETURAS DE BI ................................................................................................ 17
2.2.1 Data Warehouse (DW) ................................................................................................ 18
2.2.1.1 Data Mart (DM) .......................................................................................................... 19
2.2.1.2 Granularidade ............................................................................................................. 20
2.2.1.2 Metadados................................................................................................................... 21
2.2.2 Modelagem Multidimensional .................................................................................... 22
2.2.2.1 Modelo Estrela............................................................................................................ 24
2.2.2.2 Modelo Floco de Neve ............................................................................................... 25
2.2.3 Extract, transform and load (ETL) ........................................................................... 26
2.2.4 On-Line Analytical Processing (OLAP) .................................................................... 27
2.3 SUITE PENTAHO ........................................................................................................... 28
2.3.1 Arquitetura Pentaho ................................................................................................... 28
2.3.2 BI Server ...................................................................................................................... 30
2.3.3 Pentaho Metadata Editor (PME) ............................................................................... 31
2.3.4 Pentaho Data Integration (Kettle) ............................................................................. 33
2.3.5 Pentaho Reporting....................................................................................................... 35
2.3.5.1 Pentaho Report Designer ............................................................................................ 36
2.3.6 Pentaho Design Studio ................................................................................................ 37
2.3.7 Pentaho Analysis Services (Mondrian) ..................................................................... 37
2.3.7.1 Pentaho Schema Workbench ...................................................................................... 40
2.4 CONSIDERAÇÕES FINAIS .............................................................................................. 40
3 MÉTODO .......................................................................................................................... 42
3.1 CARACTERIZAÇÃO DO TIPO DE PESQUISA .......................................................... 42
3.2 ETAPAS METODOLÓGICAS ....................................................................................... 43
3.3 DELIMITAÇÕES ............................................................................................................ 43
4 SOLUÇÃO DE BI TRANSFERÊNCIA DE RECURSOS ............................................ 45
4.1 ESCOLHA DA FONTE DOS DADOS ........................................................................... 45
4.1.1 Portal da Transparência ............................................................................................. 45
4.1.1.1 Dados do Portal da Transparência .............................................................................. 46
4.1.2 Portal do IBGE ............................................................................................................ 46
4.1.2.1 Pesquisa Demográfica ................................................................................................ 47
4.1.2.2 Dados do Portal da IBGE ........................................................................................... 47
4.2 MODELAGEM MULTIDIMENSIONAL ...................................................................... 48
4.2.1 Tabelas de Fatos .......................................................................................................... 48
4.2.2 Tabelas de Dimensões ................................................................................................. 48
4.2.3 Modelo .......................................................................................................................... 49
4.3 PLATAFORMA DE BI PENTAHO (SERVER) ............................................................ 50
4.3.1 Administration Console .............................................................................................. 51
4.3.2 Console do Usuário ..................................................................................................... 52
4.3.3 Publicações Externas................................................................................................... 54
4.4 REPOSITÓRIO DE METADADOS (PME) ................................................................... 55
4.4.1 Conexão ........................................................................................................................ 56
4.4.2 Modelo de Negócios ..................................................................................................... 56
4.4.2.1 Tabelas de Negócios ................................................................................................... 56
4.4.2.2 Relacionamentos......................................................................................................... 57
4.4.2.3 Visão de Negócios ...................................................................................................... 58
4.4.3 Publicação no BI Server ............................................................................................. 59
4.5 PROCESSO ETL (KETTLE) .......................................................................................... 60
4.5.1 Job Carrega Dimensão Geográfica ............................................................................ 62
4.5.1.1 Transformação Dimensão Geográfica 1 ..................................................................... 63
4.5.1.2 Transformação Dimensão Geográfica 2 ..................................................................... 64
4.5.1.3 Transformação Dimensão Geográfica 3 – Nomes dos Estados.................................. 64
4.5.1.4 Transformação Dimensão Geográfica – Código Portal da Transparência ................. 65
4.5.1.5 Transformação Dimensão Geográfica – Registro de Estados .................................... 67
4.5.2 Transformação Dimensão Tempo.............................................................................. 67
4.5.3 Job Carrega Fato População ...................................................................................... 68
4.5.3.1 Transformação - Carga Fato População 2005, 2006, 2007 e 2011 ............................ 69
4.5.3.2 Transformação - Carga Fato População 2008 e 2009 ................................................ 70
4.5.3.3 Transformação - Carga Fato População 2010 ............................................................ 72
4.5.4 Job Carrega Dimensão Projeto .................................................................................. 72
4.5.4.1 Transformação Dimensão Projetos de 2005 a 2011 ................................................... 73
4.5.5 Job Carrega Fato Recurso Transferido .................................................................... 74
4.5.5.1 Transformações - Carga Fato Recurso Transferido de 2005 a 2011 .......................... 75
4.5.6 Transformação Fato População Recurso Transferido por Habitante ................... 76
4.5.7 Execução do Job Principal do Processo ETL ........................................................... 77
4.6 PENTAHO REPORTING ............................................................................................... 78
4.6.1 Pentaho Report Designer ............................................................................................ 78
4.6.1.1 Relatório Transferência de Recursos por Função e Estado ........................................ 79
4.6.1.2 Relatório Transferência de Recursos aos Municípios por Estado e Ano ................... 86
4.7 PENTAHO DESIGN STUDIO ........................................................................................ 87
4.7.1 Gráfico Bolha Transferência de Recursos por Localidade ..................................... 88
4.7.2 Gráfico Linha Transferência de Recursos por Localidade e Ano .......................... 91
4.8 PENTAHO MONDRIAN COM SCHEMA WORKBENCH ......................................... 94
4.8.1 Cubo de Dados Transferência de Recursos .............................................................. 95
4.8.1.1 Elementos do Cubo de Dados ..................................................................................... 96
4.8.2 Cubo de Dados Transferência de Recursos por Habitante ..................................... 99
4.8.3 Publicação no BI Server ........................................................................................... 100
5 CONCLUSÕES E TRABALHOS FUTUROS ............................................................. 102
REFERÊNCIAS ................................................................................................................... 104
APÊNDICES ......................................................................................................................... 108
APÊNDICE A – Script SQL para Criação do Data Warehouse ...................................... 109
APÊNDICE B – Script PL/pgSQL Auxiliar para Execução dos Gráficos ...................... 111
ANEXO .................................................................................................................................. 118
ANEXO A – Exemplo de Origem dos Dados ..................................................................... 119
14
1 INTRODUÇÃO
Segundo Scheps (2008), Business Intelligence (BI) é um conjunto de ferramentas
com o propósito principal de entregar as informações adequadas para os corretos tomadores
de decisões em momentos oportunos. Contudo, isso só funciona se os últimos forem não
somente capazes de usar as ferramentas de BI, mas também devem ser capazes de formular as
questões certas. Com soluções de BI, empresas podem descobrir informações valiosas dentro
de uma massa de dados complexa.
As soluções de BI tratadas, nesta proposta, são as da Pentaho BI Suite
Community Edition (CE), que representam um conjunto de ferramentas Pentaho
mantidas pela comunidade, open source1 e com processos de extração de dados e
organização dos mesmos para que se tornem informações. Isto através de ferramentas de
análise e de apresentação de relatórios e gráficos.
1.1 PROBLEMÁTICA
A utilização de soluções de BI vem crescendo gradativamente ao longo dos anos,
cada vez mais organizações procuram por esse tipo de tecnologia para terem parâmetros
precisos na tomada de decisão.
Os sistemas transacionais, Online Transaction Processing (OLTP2) geram um
grande número de dados, tornando-se difícil, com o tempo, a obtenção de informações
históricas precisas, sendo assim, necessária uma solução de BI para utilizar as informações
temporais de forma compacta e objetiva, tornando-se possível a obtenção de informações
valiosas para a tomada de decisão.
Soluções de BI podem exigir adequação às necessidades específicas de uma
organização, em muitos casos, sendo necessário realizar customizações no código fonte, ou
até mesmo, de novas implementações de software e, ainda, essa organização pode necessitar
distribuir esta solução customizada para suas filiais. As soluções de BI proprietárias têm
condições mais rígidas de licenciamento e distribuição, neste caso, uma solução open source
pode ser inevitável, pois o custo de se desenvolver uma solução de BI do zero pode ser
inviável. Em contra partida, as soluções open source não possuem custo com licenciamento e
1 Open source é uma modalidade de licenciamento de software no qual não há custos com licenças. É baseado
em padrões abertos e o código fonte está disponível para qualquer um. (BOUMAN; DANGEN, 2009). 2 Processamento de Transações online (OLTP) são ambientes de software que lidam com os negócios rotineiros
no andamento de uma empresa, sendo eficientes no processamento de transações, porém ineficientes na geração
de consultas e relatórios. (TURBAN et al., 2008).
15
também possuem código fonte aberto, podendo ser modificadas e depois distribuídas à
vontade.
Neste sentido, a pesquisa deste trabalho procura responder a seguinte pergunta:
Como construir soluções de BI com ferramentas open source para auxílio ao
processo de tomada de decisão?
1.2 OBJETIVOS
Os objetivos podem ser divididos em objetivo geral e objetivos específicos.
1.2.1 Objetivo Geral
Construir uma solução de BI, para auxílio ao processo decisório, utilizando
ferramentas open source e disponibilizadas pela Pentaho em sua suite3 de aplicativos.
1.2.2 Objetivos Específicos
Construir um repositório de dados tipo data warehouse4 de uma base de dados
pública específica.
Realizar o processo de extração, transformação e carga de dados com uma
ferramenta gráfica e open source.
Construir soluções de análises de dados com ferramentas open source e
disponibiliza-las através de uma ferramenta de front end5.
1.3 JUSTIFICATIVA
Como objetivos principais do BI estão relacionados, o acesso interativo aos dados,
a manipulação dos mesmos e a análise adequada dos dados por parte dos gerentes e analistas
3 Suite são um conjunto de programas de computador, com um design uniforme e com a capacidade de
compartilhar dados. (OXFORD, 2012). 4 Data warehouse é grande base de dados capaz de reunir as informações de interesse de uma empresa,
provenientes de fontes de dados diversas. (MACHADO, 2004). 5 Front end são programas que fornecem uma interface amigável com o usuário, permitindo que os mesmos
interajam com o software. (BOUMAN; DANGEN, 2009).
16
de negócios. O processo do BI baseia-se em transformar os dados em informações, as
mesmas em decisões, para, no final, tomar as ações adequadas. (TURBAN et al., 2008).
O uso de ferramentas de business intelligence é muito popular na indústria.
Entretanto, o uso de ferramentas open source é ainda um tanto limitada se comparada com
outros tipos de software. As ferramentas dominantes são as de código fechado e comercial.
(THOMSEN; PEDERSEN, 2009).
Para apresentar este trabalho, os softwares escolhidos foram os da suite de
ferramentas Pentaho, por ser um ferramental de BI bem completo, bastante difundido,
multiplataforma, baseado em padrões abertos e open source.
Segundo Weber (2003), ferramentas open source permitem o acesso ao código
fonte das mesmas sem limites, não possuem custos com licenciamento e ainda podem ter seu
código fonte customizado, conforme a necessidade, para que depois se possam distribuir as
aplicações modificadas.
1.4 ESTRUTURA DA MONOGRAFIA
O capítulo 1 apresentou a problemática e justificativas sobre a construção de
soluções de BI com Pentaho BI Suite Community Edition (CE).
No capítulo 2 é apresentado o referencial teórico que dará embasamento científico
para o desenvolvimento deste trabalho, nessa seção, serão apresentados conceitos sobre BI,
incluindo ELT, data warehouse, OLAP e sobre a suite de Ferramentas Pentaho.
O capítulo 3 apresenta o método proposto juntamente com a metodologia adotada
e delimitação do trabalho.
No capítulo 4, é apresentada a solução do projeto.
No quinto e último capítulo, serão apresentadas as conclusões e trabalhos futuros.
17
2 REFERENCIAL BIBLIOGRÁFICO
Neste capítulo, são apresentados os conceitos essenciais para a construção de um
repositório de dados do tipo data warehouse, assim como conceitos de business intelligence.
Também, são apresentadas as ferramentas open source da suite Pentaho que serão
utilizadas para apresentar a solução de BI aqui proposta.
2.1 DEFINIÇÕES E CONCEITOS DE BI
Business Intelligence (BI) não é um simples produto, aplicação, programa,
usuário, área ou sistema, mas, sim, uma arquitetura abrangente de sistemas integrados e
métodos que oferecem informações para tomada de decisão e aprendizado. As pressões
competitivas fazem com que as organizações tenham que continuamente se adaptarem e
melhorarem para obterem sucesso em ambientes de negócio que estão em constante mudança.
As informações podem ser requeridas em todos os níveis da organização para contínua
tomada de decisão. (WOODSIDE, 2010).
O benefício principal do BI para uma organização é a capacidade do mesmo
fornecer informações precisas de acordo com a necessidade, incluindo uma visão do
desempenho da empresa em tempo real e, também, de suas partes. (TURBAN et al., 2008).
De acordo com Chaudhuri, Dayal e Narasayya (2011), software de BI são um
conjunto de tecnologias de apoio à decisão direcionadas a trabalhadores do conhecimento
como: executivos, gerentes e analistas, permitindo com que tomem decisões mais rápidas e
confiáveis.
2.2 ARQUITETURAS DE BI
De acordo com Turban e outros (2008), o BI tem quatro grandes componentes:
a) data warehouse com seus dados fonte, ver seção 2.2.1;
b) ferramentas para monitoramento e análise dos dados (OLAP), ver seção 2.2.4, do data
warehouse, inclusive data mining. Segundo Turban e outros (2008), data mining é
uma classe de análise de informações, que procura padrões ocultos num conjunto de
dados com o objetivo de prever comportamentos futuros;
c) business performance management (BPM), que serve para monitorar e analisar o
desempenho. Segundo Turban e outros (2008, p. 31), “é uma forma de conectar
18
métricas de nível superior, como as informações financeiras criadas pelo diretor
financeiro (CFO), a desempenhos reais de todos os níveis hierárquicos da
corporação”;
d) interface com o usuário, como dashboards, sendo que, segundo Turban e outros
(2008), eles fornecem uma visão abrangente e visual das medidas através de
indicadores-chaves de desempenho.
Cada um desses componentes é demonstrado na figura 1.
Figura 1 – Uma arquitetura de alto nível do BI
Fonte: Turban e outros, 2008, p. 30.
2.2.1 Data Warehouse (DW)
Segundo Turban e outros (2008), DW é uma infra-estrutura reorganizada de banco
de dados, de modo a estar sempre on-line, contendo todas as informações de sistemas OLTP,
incluindo dados históricos, porém que ofereça eficiência e rapidez nas consultas, análises e
suporte à decisão. É uma coleção de dados projetada para oferecer suporte à tomada de
decisões gerenciais.
Data warehouse representa uma grande base de dados capaz de integrar as
informações de interesse para a empresa, de forma confiável e concisa, sendo que estão
espalhadas pelos sistemas operacionais e fontes externas a empresa para, posteriormente,
serem utilizados nos sistemas de apoio à decisão. (MACHADO, 2004).
19
De acordo com Turban e outros (2008), um data warehouse possui as seguintes
características fundamentais:
a) orientados por assunto: O DW se baseia nos principais assuntos de interesse da
empresa, como vendas, produtos ou clientes. A ideia é não só permitir determinar
como está o desempenho da empresa, mas, também, determinar o porquê deste
desempenho. (TURBAN et al., 2008). Esses assuntos devem estar representados no
modelo de dados da empresa em uma série de tabelas relacionadas inseridas no DW.
(INMON, 1997);
b) integrado: Dados de diferentes fontes devem ser alocados no DW de forma
consistente. Sendo assim, conflitos de nomenclatura e unidades de medida de
diferentes fontes devem ser resolvidos para que ocorra integração. (TURBAN et al.,
2008);
c) variável no tempo (série temporal): De acordo com Turban e outros (2008, p. 58), “O
tempo é uma dimensão importante à qual todo data warehouse deve oferecer suporte”.
Um DW mantém os dados históricos para ser possível detectar tendências, variações,
relações de longo prazo para revisão e variações, levando à tomada de decisão.
(TURBAN et al., 2008);
d) não-volátil: Após a inserção dos dados no data warehouse, os mesmos não podem
mais serem alterados. Porém dados obsoletos podem ser descartados. (TURBAN et al.,
2008). A não volatilidade do DW se dá pois os dados têm alta durabilidade no tempo,
diferente dos sistemas operacionais. (INMON, 1997).
2.2.1.1 Data Mart (DM)
Segundo Machado (2004), um DM é um subconjunto de dados em um data
warehouse e é direcionado a uma área ou departamento específico de processos do negócio,
conforme figura 2.
20
Figura 2 – Ilustração data mart
Fonte: Machado. 2004, p. 44.
Um data mart é um mecanismo de armazenamento de dados semelhante a um
data warehouse, contudo menor e especializado. Um DW armazena dados para toda a
organização, enquanto um DM armazena dados para uma determinada unidade funcional,
divisão, ou departamento dentro da organização. (WITHEE, 2010).
2.2.1.2 Granularidade
De acordo com Inmon (1997), o aspecto mais importante de um projeto de DW é
a questão da granularidade. Ela diz respeito ao nível de detalhamento dos dados contidos no
data warehouse. Quanto menor o nível de detalhe, maior será o nível de granularidade.
A razão para a granularidade ser a principal questão de um projeto de data
warehouse é que ela afeta o volume de dados que será contido no DW, ao mesmo tempo
afetando o tipo de consulta que poderá ser efetuada. Sendo que o volume de dados de um DW
é balanceado conforme o nível de detalhe que se deseja em uma consulta. (INMON, 1997).
Como mostra a figura 3, a tabela chamada de regatividade, no lado esquerdo, tem
mais detalhes (informações) do que a tabela com o mesmo nome do lado direito,
consequentemente, precisa ser projetada para um volume de dados maior, resultando num
menor grau de granularidade do que a tabela do lado direito. Assim, quando menor o nível de
detalhe, maior o nível de granularidade. (INMON, 1997).
21
Figura 3 – Importância da definição da granularidade no projeto de data warehouse
Fonte: Machado, 2004, p. 47.
2.2.1.3 Metadados
Metadados são dados de alto nível que contêm informações sobre os dados que
estão armazenados no sistema, os dados de mais baixo nível. Um data warehouse possui um
dicionário de metadados que fornece ao usuário informações que permitem ao mesmo julgar a
qualidade do conteúdo. (MACHADO, 2004).
Conforme Turban e outros (2008), os metadados descrevem a estrutura e o
significado dos dados, contribuindo para o seu uso, que pode ser eficiente ou ineficiente.
De acordo com Machado (2004), para um data warehouse, o processo de
metadados deve realizar a geração e o gerenciamento de uma documentação sobre:
a) o levantamento dos dados;
b) banco de dados;
c) relatórios que serão gerados;
d) origem dos dados que alimentarão o data warehouse;
e) processos de extração e carga dos dados;
f) regras de negócio da empresa e suas mudanças.
22
Os metadados permitirão a transformação dos dados crus em informações que
gerem conhecimento, sendo um processo de vital importância para qualquer projeto de data
warehouse. (MACHADO, 2004).
2.2.2 Modelagem Multidimensional
Segundo Kimball e Ross (2002), o método dimensional representa uma força dos
projetos de banco de dados, no qual o projetista tem como principais objetivos a capacidade
de compreensão da base de dados e melhor desempenho nas consultas em cima dessa base.
Quando se desenha um modelo de dados, cria-se uma visualização que representa
tabelas no banco de dados. Os dados geralmente analisados tomam a forma de dados
numéricos, como: número de vendas, quantidade em estoque, valores ou qualquer coisa que
possa ser quantificada. Esses valores numéricos, também conhecidos como medidas ou fatos
são geralmente colocados em uma tabela no centro do modelo projetado. Essa tabela leva o
nome de tabela de fato. Também há tabelas que representam as dimensões, que são meios de
dividir os dados, que, geralmente, ficam situadas ao redor da tabela de fato. (WITHEE, 2010).
De acordo com Machado (2004, p. 79, grifo nosso), “A modelagem
multidimensional é uma técnica de concepção e visualização de um modelo de dados de um
conjunto de medidas que descrevem aspectos comuns de negócios. [..] Um modelo
multidimensional é formado por três elementos básicos: Fatos, Dimensões e Medidas”.
a) fatos:
- fato é um assunto que pode ser medido com valores numéricos para descrevê-
lo, tendo os seus valores mutáveis no decorrer do tempo. Ex: “O índice de
aprovação escolar da cadeira de Cálculo vem aumentando nos últimos dois
anos”. (MACHADO, 2004, p. 100);
- segundo Kimball e Ross (2002), a lista de dimensões define qual vai ser a
granularidade da tabela de fatos, definindo qual é o escopo da medição, sendo
que uma medição é uma linha na tabela de fatos.
b) dimensões:
- de acordo com Machado (2004), dimensões são elementos que participam de
algum fato, ou seja o: ‘Onde?’, ‘Quando?’, ‘Quem?’ ou ‘O Que?’ relativos
aos dados. A única dimensão que deve estar presente em todo data warehouse
é a de tempo, por isso tem uma importância acentuada;
- ex: Considerando o fato compra: (MACHADO, 2004, p. 115). Ver figura 4;
23
- “Quando foi realizada a compra”;
- “Onde foi realizada a compra”;
- “Quem realizou a compra”;
- “O que foi comprado”;
Figura 4 – Elementos participantes da ocorrência de uma compra
Fonte: Machado, 2004, p. 115.
- “As tabelas de dimensões contêm informações de classificação e agregação
sobre as linhas de fatos centrais. Elas incluem atributos que descrevem dados
contidos na tabela de fatos e tratam de como os dados serão analisados.”.
(TURBAN et al, 2008, p. 80).
c) medidas:
- Conforme Machado (2004), medidas são atributos numéricos que representam
um fato, são atributos do mesmo, como, por exemplo, o fato venda: valor de
vendas, quantidade de determinado produto vendido, total em estoque do
produto, o custo de venda, etc.
Um exemplo de modelagem multidimensional pode ser visto na Figura 5, no qual
a tabela de fatos está no centro, sendo que inclui as medidas: quantidade vendida, valor total
de venda e valor total de custo, com as dimensões: tempo, geográfica, cliente e produto ao
redor da tabela de fato.
24
Figura 5 – Modelo multidimensional
Fonte: Adaptado de Machado, 2004 e Withee, 2010.
2.2.2.1 Modelo Estrela
Modelo Estrela (Star schema) é um termo comum utilizado para designar modelos
multidimensionais em geral. (MACHADO, 2004).
Segundo Turban e outros (2008, p. 80), “O esquema estrela oferece tempo
extremamente rápido de resposta a consultas, simplicidade e facilidade de manutenção para
estruturas de banco de dados somente leitura“.
Como é ilustrado na Figura 6, a tabela de fatos está associada a um conjunto de
tabelas de dimensões com características semelhantes a uma estrela. Essa característica é
normalmente denominada: “esquema de junção em estrela”. (KIMBALL; ROSS, 2002, p. 27).
Um conjunto de entidades menores, denominadas dimensões, ao redor de uma
entidade principal, tabela de fato, forma uma estrela. (MACHADO, 2004).
Conforme figura a seguir:
25
Figura 6 – Modelo estrela
Fonte: Machado, 2004, p. 93.
2.2.2.2 Modelo Floco de Neve
O modelo Floco de Neve (Snowflake) ocorre quando há divisão de uma ou mais
dimensões, do modelo estrela, de forma hierárquica. Desse modo, ocorre a normalização
dessa dimensão, evitando a redundância de valores textuais em uma tabela. (MACHADO,
2004).
É importante resaltar que os dados de um data warehouse não possuem valores
incluídos diretamente por um digitador, não sendo necessário controles para garantir
unicidade dos dados. O importante é garantir a informação de forma rápida e não economizar
espaço para armazenamento de dados. (MACHADO, 2004).
Segundo Machado (2004), o modelo de dados tem esse nome devido a sua
semelhança visual com um floco de neve. As tabelas de dimensões no modelo de banco de
dados floco de neve tem tabelas adicionais em relação ao modelo em estrela. Essas são
anexadas para reduzir a quantidade de dados armazenados em uma única tabela de dimensão,
como pode ser visto na figura 7.
26
Figura 7 – Modelo floco de neve
Fonte: Adaptado de Machado, 2004.
2.2.3 Extract, transform and load (ETL)
Segundo Withee (2010), ETL (extração, transformação e carga), é o processo de
extrair dados de sistemas fonte, para organiza-los em um data warehouse central.
O processo de ETL consiste em extrair os dados, que é a leitura dos mesmos de
um ou mais bancos de dados, transformá-los ou convertê-los de forma que possam ser
inseridos de forma padronizada e, por fim, carregá-los já transformados no DW, como pode
ser visto na figura 8. (TURBAN et al, 2008).
27
Figura 8 – O processo de ETL
Fonte: Turban e outros, 2008, p. 72.
Para migrar os dados para um data warehouse, varias fontes relevantes podem
estar envolvidas, como: bancos de dados OLTP, planilhas, banco de dados pessoais, etc. Um
DW contém várias regras de negócio, e qualquer problema, na qualidade dos dados, precisa
ser corrigido antes que os mesmos sejam inseridos no data warehouse. Essas regras podem
ser armazenadas em um repositório de metadados. (TURBAN et al, 2008).
De acordo com Brown (2004, apud Turban et al, 2008, p. 73), ferramentas ETL já
existentes podem ser utilizadas, poupando-se do trabalho de se criar softwares ETL novos,
sendo que, para selecionar qual ferramental utilizar, devem-se ser observados importantes
critérios como:
a) ter a capacidade de ler e gravar dados, em uma ilimitada quantidade de formatos de
fontes de dados;
b) ter a capacidade de captura e entrega imediata de metadados;
c) estar em conformidade com padrões abertos em seu histórico;
d) ter uma interface de fácil utilização tanto para o desenvolvedor quanto para o usuário
final.
2.2.4 On-Line Analytical Processing (OLAP)
De acordo com Machado (2004), OLAP, ou processamento analítico on-line, é um
conjunto de ferramentas que possibilita a análise dos dados em um data warehouse.
A análise multidimensional OLAP, ao longo do tempo, possibilita a descoberta de
tendências e cenários através de operações como: os dez maiores, comparações entre valores,
28
médias, percentuais de variação, somas, valores cumulativos e outras diversas operações
estatísticas e financeiras, possibilitando, assim, a transformação dos dados de um data
warehouse em informação estratégica. (MACHADO, 2004).
Conforme Turban e outros (2008, p. 109), “produtos OLAP oferecem recursos de
modelagem, análise de visualização de grandes volumes de dados [..] mais frequentemente
para sistemas de data warehouse. Os produtos oferecem também uma visão conceitual
multidimensional dos dados”.
Segundo Withee (2010), banco de dados OLAP são otimizados para análise ao
invés de recebimento e armazenamento de dados. OLAP pode dividir os dados para observá-
los por diferentes ângulos. Desde que o objetivo de bancos de dados OLAP é aumentar o
desempenho da análise dos dados, muito dos dados são armazenados redundantemente.
2.3 SUITE PENTAHO
Segundo Bouman e Dangen (2009), Pentaho é uma suite de ferramentas de
business intelligence ao invés de um simples produto. É construído sobre um conjunto de
programas de computadores que trabalham juntos para criar e oferecer soluções de BI.
Algumas dessas ferramentas fornecem funcionalidades desde as básicas, como, autenticação
de usuário ou gerenciamento de conexão com banco de dados, até funcionalidades de alto
nível, como a visualização de dados utilizando tabelas e gráficos.
De acordo com Bouman e Dangen (2009), praticamente todos os programas da
suite Pentaho são programados na linguagem de programação Java. A plataforma Java é
extremamente portável entre arquiteturas de hardware e sistemas operacionais.
Consequentemente, Pentaho está disponível para diferentes arquiteturas e sistemas
operacionais.
2.3.1 Arquitetura Pentaho
O conjunto de programas que compõem a suite Pentaho pode ser visualizado
como uma pilha de componentes, como pode ser visto na figura 9, no qual todos os
componentes que constituem a solução completa são apresentados. (BOUMAN; DANGEN,
2009).
29
Figura 9 – Pilha BI Pentaho
Fonte: Bouman e Dangen, 2009, p. 64.
Como apresentado na figura 9, a camada principal da pilha é a de apresentação no
topo e a camada de dados junto com integração de aplicação na parte baixa. A maioria dos
usuários finais interagem com a camada de aplicação. Através da suite Pentaho, essa camada
pode ser acessada de um simples navegador web, pode estar embutida em portais de terceiros
ou até mesmo enviar relatórios no formato PDF por e-mail. (BOUMAN; DANGEN, 2009).
As principais áreas funcionais da pilha de BI são: reporting (relatórios), analysis
(análise), dashboards (painéis) e gerenciamento de processos, que constituem a camada do
meio da pilha, enquanto a plataforma de BI em si oferece recursos básicos de administração e
segurança. A integração dos dados completa a pilha e é necessária para se obter dados de
diferentes fontes, unindo-os em um ambiente compartilhado de data warehouse. (BOUMAN;
DANGEN, 2009).
Uma arquitetura define a estrutura e o esboço de uma solução, mas não diz
exatamente como uma solução deve ser construída. No caso da Pentaho, a arquitetura define
30
as camadas e blocos de construção, mas não obriga ninguém a utilizar tudo da pilha ou das
ferramentas da suite Pentaho. Embora haja várias vantagens em usar software Pentaho para
construir a pilha, os projetistas estão livres para misturar outros componentes também.
(BOUMAN; DANGEN, 2009).
Segundo Bouman e Dangen (2009, p.65, tradução nossa), "A pilha de BI Pentaho
é portanto, uma entidade em evolução, como uma cidade onde os novos edifícios são criados
e os mais velhos são restaurados, expandidos, ou substituídos em uma base contínua".
2.3.2 BI Server
Pentaho BI Server é um conjunto de programas que trabalham juntos para
fornecer uma série de funções essenciais da suite BI Pentaho. Esses programas são
implementados como servlets Java. Os servlets são executados dentro de um contêiner de um
servidor web (ou Servidor HTTP). (BOUMAN; DANGEN, 2009).
Segundo Bouman e Dangen (2009), em um nível funcional, Pentaho Server pode
ser dividido em três camadas:
a) a plataforma: As funcionalidades desta camada são, relativamente, de baixo nível e
constituem uma infraestrutura básica da plataforma de BI. Essa camada fornece uma
coleção de componentes que oferecem os seguintes serviços:
- repositório de soluções e motor de soluções;
- gerenciamento do pool de conexão com o banco de dados;
- autenticação de usuários e autorização de serviços;
- logging e serviços de auditoria;
- agendamento de tarefas;
- serviços de e-mail.
b) componentes de BI: Os seguintes componentes são encontrados nessa camada:
- camada de metadados;
- ad hoc serviço de relatório;
- motor ETL;
- motor Reporting;
- motor OLAP;
- motor de mineração de dados.
c) a camada de apresentação: Pentaho vem com uma interface web embutida, chamada
de Console do Usuário. Esse forma um front end que permite ao usuário humano
31
interagir com o servidor. A camada de apresentação pode ser usada para navegação e,
para abrir conteúdo existente como: relatórios, dashboards (painéis) e análises, porém
em certa medida pode ser utilizado para criar novo conteúdo de BI.
A figura 10 apresenta o Console do Usuário em uma interface web, tendo na
esquerda superior, uma árvore de diretórios utilizada para organizar arquivos, na esquerda
inferior, o conteúdo da pasta selecionada, e no centro direito, abas do conteúdo aberto como:
dashboards, análises e relatórios. (PENTAHO, 2012a).
Figura 10 – Console do Usuário
Fonte: Pentaho, 2012a.
2.3.3 Pentaho Metadata Editor (PME)
PME, ou Pentaho Editor de Metadados, é uma aplicação desktop multiplataforma,
que pode editar e criar metadados para a suite de ferramentas Pentaho. Um exemplo da
32
interface pode ser visto na figura 11. Por padrão, PME utiliza arquivos binários para
armazenar os metadados, sendo esse um repositório baseado em arquivos. Outra opção
disponível é utilizar um repositório de metadados baseados em banco de dados, que pode
aumentar o desempenho, quando utilizado com uma grande camada de metadados, se
comparado com o repositório baseado em arquivos. Também, a solução baseada em banco de
dados é mais indicada, quando múltiplos desenvolvedores estão editando a camada de
metadados ao mesmo tempo. (BOUMAN; DANGEN, 2009).
Figura 11 – Interface de Pentaho Metadata Editor
Fonte: Pentaho Metadata Editor CE, 2011.
De acordo com Pentaho (2012b), PME é uma ferramenta que constrói domínios e
modelos de metadados. Um modelo de metadados Pentaho mapeia a estrutura física do banco
de dados em um modelo de negócio lógico. Esse mapeamento é armazenado em um
repositório de metadados e permite administradores a:
a) criar definições em linguagem de negócios para tabelas de banco de dados;
b) diminuir o custo e impacto relativo a alterações de banco de dados de baixo nível;
33
c) definir parâmetros de segurança relativo ao acesso de usuários aos dados;
d) conduzir a formatação de dados textuais, datas e valores numéricos, melhorando a
manutenção de relatórios;
e) localizar a informação com base nas configurações regionais do usuário.
Com PME, designers podem criar camadas de metadados que servem como uma
camada de abstração entre um banco de dados relacional e um usuário final. A camada de
metadados pode levar objetos de usuários, como Nome do Cliente e País e traduzir essa
seleção na correta instrução SQL necessária para recuperar essas informações do banco de
dados. (BOUMAN; DANGEN, 2009).
Segundo Bouman e Dangen (2009), uma camada de metadados é organizada em
um ou mais domínios, que são contêineres de conjunto de objetos de metadados que podem
ser usados como fonte de metadados para alguma solução Pentaho. A camada de metadados
pode ser dividida em três subcamadas: a física, a lógica e a de entrega:
a) a camada Física: Mais ou menos, os elementos dessa camada correspondem aos
elementos do banco de dados como: conectores, tabelas e colunas;
b) a camada Lógica: O propósito dessa camada é descrever como os objetos da camada
física se relacionam com o negócio;
c) a camada de entrega contém objetos de metadados que são visíveis ao usuário final,
como Visões de Negócio e Categorias de Negócio.
2.3.4 Pentaho Data Integration (Kettle)
Pentaho Data Integration (PDI), também conhecido como Kettle, oferece
capacidades de ETL, usando uma abordagem orientada por metadados. Tem uma interface
gráfica intuitiva, com ferramentas de arrastar e soltar e é baseado em padrões abertos.
(PENTAHO, 2012e).
Soluções de Pentaho Data Integration são construídas a partir de dois tipos de
objetos: transformações e jobs (Tarefas). O core do produto PDI é formado pelo motor PDI.
Esse motor é um componente de software que é capaz de interpretar e executar os jobs e
transformações. Além do motor PDI, a solução fornece uma série de ferramentas e utilitários
para criar, gerenciar e iniciar transformações e jobs. Uma visão de alto nível pode ser vista na
figura 12. (BOUMAN; DANGEN, 2009).
34
Uma transformação Pentaho representa uma tarefa ETL em sentido restrito.
Transformações são orientadas aos dados e seu propósito é extrair, transformar e carregar os
dados. (BOUMAN; DANGEN, 2009).
Jobs são compostos por uma ou mais transformações, como, por exemplo,
carregar um esquema estrela, normalmente se construiria uma transformação para fazer a
extração em si, e uma transformação para tabela de dimensão e outra, para a tabela de fatos.
(BOUMAN; DANGEN, 2009).
Segundo Bouman e Dangen (2009), o PDI inclui o seguinte conjunto de
ferramentas e utilitários:
a) Spoon: Uma IDE de integração de dados para criar transformações e jobs;
b) Kitchen: Uma ferramenta de linha de comando para rodar jobs;
c) Pan: Uma ferramenta de linha de comando para rodar transformações;
d) Carte: Um servidor leve para executar transformações e jobs de em um host remoto.
35
Figura 12 – Pentaho Data Integration, ferramentas e componentes
Fonte: Bouman e Dangen, 2009, p. 231.
2.3.5 Pentaho Reporting
Pentaho Reporting inclui: Pentaho Report Designer, Pentaho Report Engine,
Pentaho Reporting SDK e as bibliotecas compartilhadas com toda a plataforma BI Pentaho.
Esse conjunto de ferramentas open source de relatórios permite ao usuário criar relatórios
relacionais e analíticos de uma ampla gama de fontes de dados e de tipos de saída como: PDF,
Excel, HTML, TXT, RTF, XML e CSV como saída dos dados. (PENTAHO, 2012h).
O conjunto Pentaho Classic Reporting Engine está embutido na biblioteca Java
Reporting. Essa biblioteca pode ser usada em dois cenários, no lado cliente e no lado servidor.
Essa biblioteca é, originalmente, conhecida como JFreeReport. SDK é um pacote de Classic
36
Engine, documentação e todas as bibliotecas de apoio necessárias para inserir o Pentaho
Reporting Engine em aplicações de terceiros. (PENTAHO, 2012c).
De acordo com Bouman e Dangen (2009), todas modernas soluções de relatórios
têm uma arquitetura similar com a da figura 13. A figura mostra os diferentes componentes de
um arquitetura de relatórios, como:
a) um report designer para definir a especificação do relatório;
b) a especificação do relatório em um formato aberto XML;
c) um motor de relatório para executar o mesmo de acordo com as especificações e gerar
a saída em diferentes formatos;
d) definição da conexão com o banco de dados que pode usar uma middleware padrão,
como JDBC para se conectar a diferentes fontes de dados.
Figura 13 – Arquitetura do processo de geração de relatórios
Fonte: Bouman e Dangen, 2009, p. 372.
2.3.5.1 Pentaho Report Designer
Pentaho Report Designer (PRD) é um front end gráfico para criar, editar e
publicar relatórios para a plataforma BI Pentaho. PRD tem como vantagem, frente a outros
37
criadores de relatórios, o fato de usar modelos de metadados Pentaho como fontes dos dados.
(BOUMAN; DANGEN, 2009).
Segundo Pentaho (2012g), PRD é uma aplicação desktop que fornece um
ambiente de design visual para criar definições de relatórios. Os relatórios podem ser salvos
localmente ou publicados para um sistema BI Server.
2.3.6 Pentaho Design Studio
Pentaho Design Studio (PDS) é baseado na IDE Eclipse e pode ser baixado como
uma solução pronta que contém o Eclipse, mas também pode ser adicionado, a IDE Eclipse já
pré-instalada, como um plugin. (BOUMAN; DANGEN, 2009).
PDS tem como propósito a criação e manutenção de sequências de ações, que são
conjuntos de ações que podem ser executadas no BI Server. Uma execução de uma ação pode
ser desencadeada através da ação de um usuário, de um agendamento, ou qualquer outro
evento, incluindo outra sequência de ação. As ações podem ser simples como: executar um
gráfico ou um relatório. Também pode disparar mensagens na tela, algumas até complexas
como, por exemplo: localizar todos os clientes com itens atrasados e enviar-lhes um lembrete
no formato PDF, contendo uma descrição dos itens. (BOUMAN; DANGEN, 2009).
2.3.7 Pentaho Analysis Services (Mondrian)
Pentaho Analysis Services (Mondrian) é um servidor OLAP que permite aos
usuários de negócios analisarem grandes quantidades de dados em tempo real. Usuários
exploram dados de negócios através do detalhamento e cruzamento de informações com alta
velocidade a consultas analíticas complexas. (PENTAHO, 2012f).
Conforme Bouman e Dangen (2009), Mondrian é o motor OLAP da Pentaho que
traduz MDX queries (Expressões Multidimensionais) ou XML/A (XML Analítico) em SQL
para um modelo multidimensional, sendo que fornece uma sintaxe especializada para consulta
de dados armazenados em cubos OLAP. Mondrian faz muito mais do que apenas traduzir de
uma linguagem para outra, também trabalha com cache e buffering para otimizar o
desempenho, guardando resultados e cálculos prévios em memória para tornar consultas
posteriores mais rápidas.
38
De acordo com Bouman e Dangen (2009), Mondrian, também, tem um módulo de
segurança que permite o controle de papéis a serem atribuídos aos usuários, restringindo
acesso a determinados relatórios e dados.
Mondrian também é conhecido com uma ferramenta ROLAP (Relacional OLAP)
pelo fato dos dados e suas agregações estarem armazenados um banco de dados relacional
padrão. (BOUMAN; DANGEN, 2009).
Pentaho Mondrian não é nem um banco de dados nem uma ferramenta de análise,
sendo necessário um banco de dados relacional para armazenamento dos dados do data
warehouse e uma ferramenta de front end para analisar os dados, como pode ser visto na
figura 14 abaixo. (BOUMAN; DANGEN, 2009).
Figura 14 – Data warehouse com Mondrian
Fonte: Bouman e Dangen, 2009, p. 123.
A figura 15 abaixo mostra uma visão esquemática dos componentes de serviço de
análise da Pentaho e seus relacionamentos com uma típica solução Pentaho. (BOUMAN;
DANGEN, 2009).
a) o usuário de um navegador web faz uma requisição HTTP para visualizar, detalhar ou
procurar em uma tabela dinâmica OLAP;
b) JPivot Servlet recebe a requisição e a transforma em uma consulta MDX;
c) Mondrian interpreta a consulta MDX e a transforma em uma ou mais consultas SQL;
d) o sistema de gerenciamento do banco de dados relacional (RDBMS) executa as
consultas SQL enviadas pelo Mondrian e na sequência este recebe os dados tabulados;
e) Mondrian processa os resultados recebidos e os transforma em uma conjunto de
resultados multidimensional e envia-os como resposta da consulta MDX no passo b;
f) JPivot recebe e usa o resultado da consulta, a transformando em uma página HTML
que é enviada para o navegador e apresentado para o usuário.
39
Figura 15 – Visão geral dos componentes Pentaho OLAP
Fonte: Bouman e Dangen, 2009, p. 443.
Na parte central da figura acima, está o esquema (schema). Um esquema é um
arquivo XML que descreve um ou mais cubo de dados. Os cubos descrevem o mapeamento
das dimensões e medidas relativo a tabelas e a colunas de um banco de dados relacional. Para
40
o Mondrian, o esquema é a chave para traduzir uma query MDX em uma query SQL.
(BOUMAN; DANGEN, 2009).
Na parte superior central direita da figura acima, são mostradas ferramentas
utilizadas para design e construção de esquemas XML, incluindo a ferramenta Pentaho
Schema Workbench. Porém qualquer editor XML poderia realizar a configuração do esquema.
(BOUMAN; DANGEN, 2009).
O motor Mondrian já está incluso no Pentaho BI Server e não precisa ser baixado
separadamente, caso já se esteja utilizando o último. Mas, caso se queira fazer alguma
atualização do motor Mondrian no BI Server ou utiliza-lo separadamente, também é possível
baixá-lo isoladamente. (BOUMAN; DANGEN, 2009).
O Console com o Usuário do BI Server permite a criação de visões de análise com
JPivot, permitindo, assim, analisar cubos Mondrian de forma facilitada. JPivot front end é
uma ferramenta baseada em Java incluída no BI Server, para trabalhar com cubos OLAP.
(BOUMAN; DANGEN, 2009).
2.3.7.1 Pentaho Schema Workbench
Pentaho Schema Workbench (PSW), oferece uma interface gráfica ao usuário para
criar esquemas de cubos de dados multidimensionais Mondrian. Essa ferramenta, também,
pode publicar os esquemas diretamente no Servidor Pentaho, dentro de um repositório de
solução. (BOUMAN; DANGEN, 2009).
2.4 CONSIDERAÇÕES FINAIS
A suite de ferramentas Pentaho aqui apresentada é open source e chamada
Community Edition CE (Edição da Comunidade), pois é mantida pela comunidade através de
um grupo de pessoas de talentos variados que estão dedicados a entregar um completo, bem
integrado e de alta qualidade conjunto de software de Business Intelligence. (PENTAHO,
2012d).
Pentaho também tem uma versão comercial denominada Enterprise Edition (EE),
que oferece além de suporte, alguns componentes que não estão disponíveis na edição da
comunidade. Apesar da distinção entre as duas distribuições estar mais ligada ao suporte do
que aos componentes na verdade. (BOUMAN; DANGEN, 2009).
41
Como apresentado, a suite Pentaho se mostra um conjunto de ferramentas de BI
bastante completa, além de ser quase em toda sua totalidade open source.
42
3 MÉTODO
Neste capítulo, serão apresentadas a caracterização do tipo de pesquisa, as etapas
metodológicas e as delimitações do projeto.
Através do estudo da suite de ferramentas Pentaho e da criação de uma solução
para dar subsidio a análise dos dados, espera-se, aqui, mostrar que é possível construir uma
solução open source de qualidade levando em conta as etapas necessárias para se construir
uma solução de BI de qualidade.
3.1 CARACTERIZAÇÃO DO TIPO DE PESQUISA
Segundo Silva e Menezes (2005, p. 20), “Pesquisa Aplicada: objetiva gerar
conhecimentos para aplicação prática e dirigidos à solução de problemas específicos”. Esta
pesquisa do ponto de vista da natureza é aplicada, pois o que será desenvolvido é uma
solução de BI com o uso da suite de ferramentas Pentaho, sendo uma aplicação prática com o
objetivo de auxiliar no processo decisório.
De acordo com Silva e Menezes (2005 p. 21), “Pesquisa Exploratória: visa
proporcionar maior familiaridade com o problema com vistas a torná-lo explícito ou a
construir hipóteses. Envolve levantamento bibliográfico”. Esta pesquisa do ponto de vista dos
objetivos é exploratória, pois envolve levantamento bibliográfico, tornando a questão do
custo benefício do uso de ferramentas open source explícita.
Uma pesquisa é bibliográfica do ponto de vista de procedimentos técnicos,
quando a mesma envolve pesquisa em materiais publicados, como em livros ou periódicos.
(SILVA; MENEZES, 2005). Assim, esta pesquisa é bibliográfica, pois é baseada em material
já publicado como: livros, artigos de periódicos e material obtido através da Internet.
Porém, a pesquisa também pode ser considerada um estudo de caso no ponto de
vista de procedimentos técnicos, pois, segundo Silva e Menezes (2005, p. 21), “Estudo de
caso: quando envolve o estudo profundo e exaustivo de um ou poucos objetos de maneira que
se permita o seu amplo e detalhado conhecimento”, assim, no caso desta pesquisa, o foco está
em algumas das Ferramentas da suite Pentaho para a construção de uma solução de BI.
Também, permitindo o conhecimento dessas com bom nível de detalhamento.
Conforme Silva e Menezes (2005, p. 20), “Pesquisa Qualitativa: [..] um vínculo
indissociável entre o mundo objetivo e a subjetividade do sujeito que não pode ser traduzido
em números. [..] Não requer o uso de métodos e técnicas estatísticas”. Com relação à
43
abordagem, está pesquisa é qualitativa, pois a relação de custo benefício com o uso de
Ferramentas open source é algo subjetivo, assim como a análise da qualidade de uma solução
de BI, não requerendo o uso de métodos estatísticos.
3.2 ETAPAS METODOLÓGICAS
Utilizando-se da suite Pentaho, a solução segue aos seguintes passos:
a) escolha de uma fonte de dados como base para a construção da solução;
b) modelagem de uma base de dados multidimensional, incluindo a escolha das
dimensões e fatos abordados;
instalação da ferramenta Pentaho BI Server e configuração da mesma, realizando conexão
com o data warehouse;
c) construção de um modelo de metadados com a ferramenta Pentaho Metadata Editor;
d) realização do processo ETL com a utilização da ferramenta Kettle, e a criação de jobs
e tranformações para a concretização do data warehouse;
e) utilização de Pentaho Report Designer para criação de relatórios, utilizando-se do
modelo de metadados criado por PME, para serem publicados no BI Server e serem
acessados no front end Console do Usuário;
f) utilização de Pentaho Design Studio para criação de gráficos, para serem publicados
no BI Server e, também, serem acessados no front end Console do Usuário;
g) construção de um esquema com cubos de dados com Pentaho Schema Workbench,
para que o esquema seja publicado no BI Server, permitindo acesso pelo front end
Console do Usuário com JPivot.
Os passos das etapas acima podem ser visualizados na figura 16 a seguir.
44
Figura 16 – Etapas Metodológicas
Fonte: Elaborado pelo Autor, 2012.
3.3 DELIMITAÇÕES
Os dados fonte selecionados foram os da transferência de recursos do governo
federal para as unidades da federação e municípios e, também, os dados do Instituto Brasileiro
de Geografia e Estatística (IBGE), relativos à população destes entre 2005 e 2011.
As ferramentas utilizadas de Pentaho BI Suite Community Edition (CE) são:
a) Pentaho BI Server: com o Console do Usuário, Console Administrador, Motor OLAP
Mondrian e JPivot;
b) Pentaho Metadata Editor;
c) Kettle: utilizado a ferramenta Spoon dentro de PDI;
d) Pentaho Report Designer: Inclui a criação de dois relatórios;
e) Pentaho Design Studio: Inclui a criação de dois gráficos;
f) Pentaho Schema Workbench: Inclui a criação de um esquema com dois cubos de
dados.
Outras ferramentas, além das que estão aqui citadas, não serão abordadas.
45
4 SOLUÇÃO DE BI TRANSFERÊNCIA DE RECURSOS
Este capítulo apresenta a solução do projeto proposto, desde a obtenção dos dados
fonte até a apresentação de resultados através de relatórios, gráficos e ferramentas de análise
no Console do Usuário no BI Server.
Para que as ferramentas Pentaho conseguissem acesso ao banco de dados Postgre
Sql, foi necessário a obtenção do driver JDBC versão 9.1-902. Este driver pode ser obtido em
PostgreSql (2012) .
4.1 ESCOLHA DA FONTE DOS DADOS
Visando apresentar a suite Pentaho e seu potencial, foram consideradas algumas
fontes públicas e privadas para criação do data warehouse, sendo desejado obter informações
reais durante um determinado período de tempo.
Após a pesquisa, foram escolhidos dados públicos que podem ser encontrados no
Portal da Transparência, no endereço: http://www.portaltransparencia.gov.br/ e no
Portal do IBGE, no endereço http://www.ibge.gov.br/, com o objetivo de cruzar
informações sobre a transferência de recursos federais para os estados e municípios, com a
estimativa da população dos mesmos, entre os anos de 2005 e 2011, subdivididos por área em
que o recurso foi aplicado.
4.1.1 Portal da Transparência
Através de uma iniciativa da Controladoria Geral da União (CGU), em novembro
de 2004, foi lançado o Portal da Transparência. Com o objetivo de aumentar a transparência
relativo aos gastos públicos, visando garantir a correta aplicação de recursos, permite a
população ajudar a fiscalizar de que forma o dinheiro público está sendo gasto. (BRASIL,
2012d).
Nesse portal, podem ser encontradas informações sobre transferências de recursos
para os estados, municípios, pessoas jurídicas, feitas no exterior ou diretamente para pessoas
físicas. Também, podem ser encontradas informações sobre gastos diretos do governo como a
contratação de obras e serviços, gastos feitos diariamente com cartões de pagamento pelo
governo federal, informações sobre receitas previstas organizadas por órgão e por categoria
46
das receitas e, também, informações sobre agentes e servidores públicos do Poder Executivo
federal, entre outras. (BRASIL, 2012e).
Também, podem ser encontradas informações sobre a lista de Empresas
Sancionadas pelos órgãos e entidades da administração pública, desde que da esfera federal e
informações sobre projetos e ações do governo federal, que são divulgados pelos órgãos em
suas respectivas páginas eletrônicas, formando assim uma rede de transparência. (BRASIL,
2012e).
Segundo Brasil (2012a), a responsabilidade sobre os dados contidos no portal são
dos ministérios e outros órgãos do Poder Executivo Federal, devido serem eles os
responsáveis pela execução dos programas e pela administração de ações do governo. A CGU
é a responsável por disponibilizar essas informações no portal.
4.1.1.1 Dados do Portal da Transparência
As despesas do Governo Federal escolhidas foram a de transferência de recursos,
que segundo Brasil (2012c), "Transferência de Recursos - No Portal representam os recursos
federais transferidos da União para estados, municípios, Distrito Federal ou diretamente
repassados a cidadãos".
O formato original em que os dados foram coletados foi em CSV, encontrados no
seguinte link http://www.portaldatransparencia.gov.br/planilhas/, Item DESPESAS –
TRANSFERÊNCIAS, entre os anos de 2005 e 2011. (BRASIL, 2012b).
4.1.2 Portal do IBGE
Segundo o Instituto Brasileiro de Geografia e Estatística (2012l), "IBGE se
constitui no principal provedor de dados e informações do país, que atendem às necessidades
dos mais diversos segmentos da sociedade civil, bem como dos órgãos das esferas
governamentais federal, estadual e municipal".
Como uma instituição de administração pública federal, o IBGE está subordinado
ao Ministério do Planejamento, possuí 27 unidades nas capitais dos estados e no distrito
federal e 539 agências de coleta nos principais estados e municípios. (INSTITUTO
BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA, 2012l).
47
4.1.2.1 Pesquisa Demográfica
De acordo com Instituto Brasileiro de Geografia e Estatística (2012k), realizado
de dez em dez anos, “o Censo Demográfico se constitui como núcleo das estatísticas
sociodemográficas”. No intervalo entre um Censo e outro, é realizada a contagem da
população, “operação censitária fundamental para aprimorar as estimativas anuais de
população”.
4.1.2.2 Dados do Portal do IBGE
Os dados utilizados são os do Censo 2010, os da contagem da população de 2007
e estimativas da população nos anos de 2005, 2006, 2008, 2009 e 2011.
Em 2010, foi realizado levantamento cessionário em todos os municípios do país
através do Censo realizado neste ano. Foram visitados 67,6 milhões de domicílios nos 5.656
municípios brasileiros. (INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA,
2012b).
Para o ano de 2007, foi realizada a contagem da população com referência a 1° de
abril de 2007, incluindo 5435 municípios com levantamento censitário e o restante com base
em estimativas. (INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA, 2012c).
Com relação aos anos de 2011, 2009, 2008, 2006 e 2005, foram consideradas
estimativas populacionais com referencia a 1° de julho do respectivo ano, no qual são
publicadas anualmente desde 1991, para os Municípios, Unidades da Federação e Brasil.
(INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA, 2012j).
Para os anos de 2011, 2009, 2008 e 2006, foram utilizados dados enviados para o
Tribunal de Contas da União (TCU), e para o ano de 2005, foram utilizados dados publicados
no Diário Oficial da União.
Os dados estão organizados por unidade da federação e por município, sendo uma
planilha ou tabela para cada ano, exceto em 2010, que tem uma planilha para cada unidade da
federação. Esses dados se encontram nos formatos XLS e PDF, sendo que foram obtidos, nas
seguintes referências para os respectivos anos:
a) 2011: Foi feito download de uma planilha no formato XLS em Instituto Brasileiro de
Geografia e Estatística (2012i);
48
b) 2010: Foi realizado download de múltiplas planilhas, por unidade da federação, no
formato XLS, totalizando 27 planilhas, em Instituto Brasileiro de Geografia e
Estatística (2012m);
c) 2009: O download ocorreu no formato PDF em Instituto Brasileiro de Geografia e
Estatística (2012h);
d) 2008: O download também no formato PDF ocorreu em Instituto Brasileiro de
Geografia e Estatística (2012g);
e) 2007: Download no formato XLS em Instituto Brasileiro de Geografia e Estatística
(2012d);
f) 2006: Download no formato XLS em Instituto Brasileiro de Geografia e Estatística
(2012f);
g) 2005: Download no formato XLS em Instituto Brasileiro de Geografia e Estatística
(2012e).
4.2 MODELAGEM MULTIDIMENSIONAL
A ferramenta escolhida para a modelagem multidimensional foi o DB Designer
Fork verão 1.5, pois é uma ferramenta simples que gera scripts para posterior criação do data
warehouse que será criado como uma base relacional do Postgre Sql versão 9.1.4-1.
4.2.1 Tabela de Fatos
A primeira tabela de fatos contém, como medidas, a quantidade de população e o
valor transferido por habitante em reais de determinado município em determinada UF em
determinado ano, sendo que o nome dessa tabela é de ft_populacao.
A segunda tabela de fatos contém como medida o valor transferido em reais que
foi repassado ao município de determinado unidade da federação em determinado ano,
subdivididos em: função, subfunção, programa e ação. O nome dessa tabela é de
ft_recurso_transferido.
4.2.2 Tabelas de Dimensões
As dimensões utilizadas são as seguintes:
a) tempo: Com o atributo ano, esta tabela se chama de di_tempo;
49
b) geográfica: Com os atributos na sequência conforme modelo abaixo, figura 16: código
do município segundo o IBGE, código do município segundo o Portal da
Transparência, nome do município, código, sigla e nome da unidade da federação
(UF), código e nome da região, código e nome da meso região, código e nome da
micro região. O nome desta tabela é di_geo;
c) projeto: Com os atributos, código e nome da função, código e nome da sub função,
código e nome do programa, código e nome da ação e nome da linguagem cidadã.
Esta tabela tem o nome de di_projeto.
4.2.3 Modelo
O modelo escolhido para a criação do data warehouse foi o Modelo Estrela, pois
apesar do mesmo apresentar algumas redundâncias, tem um melhor desempenho em relação
ao modelo floco de neve. Segue o modelo na figura a seguir, com as tabelas de fatos (prefixo
ft) e dimensões (prefixo di).
50
Figura 17 – Modelo no formato estrela para o banco de dados multidimensional
Fonte: Elaborado pelo Autor, 2012.
O script SQL, gerado por meio da ferramenta DB Designer Fork, para criação do
DW pode ser visualizado no Apêndice A.
4.3 PLATAFORMA DE BI PENTAHO (SERVER)
A implementação da plataforma de BI Pentaho utilizada foi a BI Server
Community Edition (CE) 3.9.0, por ser a versão estável mais recente e pode ser encontrada em
Pentaho BI Platform CE (2011).
Para a utilização do BI Server, é necessário primeiro ter uma máquina virtual
JAVA da Oracle instalada, a partir do Java 5, JRE ou JDK. Para este trabalho, a versão
utilizada foi a Java SE Development Kit 7. O servidor foi instalado no Sistema Operacional
51
Windows 7 profissional, suficiente para os fins deste trabalho, contudo vale a pena ressaltar
que tanto o Java, quanto a suite de ferramentas da Pentaho são multiplataforma.
Esta implementação de solução de BI da Pentaho, que inclui por padrão o servidor
Java Web Apache Tomcat, permite acesso ao usuário final através do protocolo HTTP,
chamado de Console do Usuário. Por padrão, o acesso à interface do usuário final se dá por
http://localhost:8080/.
Também, é incluída nesta implementação, a ferramenta Administration Console,
que pode ser acessada por padrão em http://localhost:8099/.
Antes de iniciar os servidores, é necessário configurar algumas variáveis de
ambiente no Sistema Operacional. Basta clicar na pasta-do-servidor/biserver-ce/et-
pentaho-env.bat para tudo seja feito automaticamente.
Para iniciar ou parar os servidores, BI Server e Administration Console, basta
clicar em pasta-do-servidor/biserver-ce/start-pentaho.bat ou stop-pentaho.bat para o BI
Server, e pasta-do-servidor/administration-console/start-pac.bat ou stop-pac.bat, para o
Administration Console.
4.3.1 Administration Console
Este console de administração, acessado por http://localhost:8099/ em um
navegador web, pode ser utilizado para criação de usuários e papéis, porém para o fins deste
trabalho, os usuários utilizados são os que vêm cadastrado por padrão, como joe e admin,
ambos com papel (role) de administrador.
Esta ferramenta também permite a criação de conexões com o banco de dados,
permitindo que outras ferramentas como o Design Studio e o Console do Usuário tenham
acesso a esta conexão.
A figura 17 abaixo mostra a configuração de uma conexão chamada dwtransf-
recursos¸ que é necessária para a construção e reprodução de gráficos do Design Studio, por
exemplo.
52
Figura 18 – Administration Console – Conexão com o banco de dados
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho BI Platform CE, 2011.
4.3.2 Console do Usuário
Este console permite a criação de uma solução de BI apenas criando uma pasta na
raiz do sistema, bastando clicar com o botão direito do mouse na parte esquerda superior da
tela e nova pasta, que ficará localizada fisicamente dentro de pasta-do-servidor/biserver-
ce/pentaho-solutions. A figura 18 mostra como esta tela se apresenta.
A parte inferior esquerda da tela mostra os arquivos da pasta, porém apenas os
pertinentes a solução de BI, como relatórios e gráficos.
53
Figura 19 – Console do Usuário – Solução transferência de recursos
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho BI Platform CE, 2011.
Dando um duplo clique em um arquivo, o mesmo deverá ser aberto em uma aba
localizada na parte central, como mostrado na figura 19 abaixo. Podem ser abertos gráficos,
relatórios, dashboards, visões analíticas, entre outros.
54
Figura 20 – Console do Usuário - Relatório aberto na parte central
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho BI Platform CE, 2011.
4.3.3 Publicações Externas
Para se publicar algo no BI Server, como metadados, relatórios, gráficos, entre
outros, é necessário a criação de uma senha pública de publicação, esta senha deve ser
configurada em pasta-do-sevidor/biserver-ce/pentaho-solutions/system/publisher_config.xml,
conforme figura abaixo, que contém a senha de exemplo 123456.
Figura 21 – Publisher config
Fonte: Elaborado pelo Autor, 2012.
Após publicações externas como de Pentaho Metadata Editor, Pentaho Design
Studio ou Pentaho Report Designer, por exemplo, é necessário atualizar o BI Server através
do Console do Usuário, que pode ser feito apenas clicando no ícone de duas setas verdes em
círculo no próprio Console do Usuário, localizado na parte superior da visualização das
pastas na tela do console.
55
4.4 REPOSITÓRIO DE METADADOS (PME)
A ferramenta escolhida para a criação de um repositório de metadados é a
Pentaho Metadata Editor ou PME na versão 4.0.0, pois é a versão estável mais recente até o
momento, que pode ser obtida através de Pentaho Metadata Editor CE (2011).
A figura abaixo mostra a visão gráfica do domínio ou modelo de metadados
gerado.
Figura 22 – Modelo de metadados Transferência de Recursos
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Metadata Editor CE, 2011.
Inicialmente, é criado um domínio ou modelo de metadados chamado de
Transferência de Recursos. A ferramenta mapeia a estrutura física do banco de dados ou
data base (DB), sendo assim possível exportar as informações iniciais do data warehouse,
para posteriormente, realizar alterações nos metadados gerados automaticamente.
56
4.4.1 Conexão
Foi criada uma nova conexão com o DB Postgre Sql, e na sequência, escolhida as
tabelas a serem exportadas, que foram di_projeto, di_tempo, di_geo, ft_recurso_transferido e
ft_populacao. Essa estrutura física mapeada pode ser vista na parte superior esquerda da
figura 21, logo abaixo de Connerctions em DCTransfRecursos.
4.4.2 Modelo de Negócios
Na sequência, construiu-se um Modelo de Negócios (Business Model), nomeado
de Transferência de Recursos, logo abaixo de Connections. Esse modelo é responsável pelo
mapeamento lógico do data warehouse e possui três camadas: Tabelas de Negócios (Business
Tables), Relacionamentos (Relationships) e Visões de Negócios (Business View).
4.4.2.1 Tabelas de Negócios
As Tabelas de Negócios são criadas quando seguramos com o mouse e
arrastarmos as mesmas da camada física para Business Tables.
Ao expandir o fato população, por exemplo, temos a visão dos campos da tabela
como pode ser visto na figura 22. Ao dar um duplo clique ou na tabela ou em algum campo,
algumas propriedades podem e devem ser alteradas, como, por exemplo, para o componente
tabela: nome, descrição, informações de segurança com permissões de acesso, entre outras.
Para os campos, há opções como: nome, descrição, tipo de dado, tipo de função de agregação
permitida (Máximo, Mínimo, Soma, Contagem, Média, e mais), entre outras. Para o campo
físico vl_transf_habitante, por exemplo, temos o nome lógico de Vl. Transf. Por
Habitante, que é o nome que será visto pelo usuário final de um relatório, por exemplo, como
pode ser visto na figura 23.
57
Figura 23 – Modelo lógico de tabelas de negócio
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Metadata Editor CE, 2011.
Figura 24 – Propriedades da tabela de negócio Fato População
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Metadata Editor CE, 2011.
4.4.2.2 Relacionamentos
58
Os relacionamentos (Relationships) criados são configurações de como as tabelas
lógicas ou de negócio devem se relacionar, como por exemplo, o relacionamento entre a
dimensão geográfica e o fato população, que pode ser visto na figura 24, na qual se escolhe a
tabela origem e o campo origem (From Table/Field) e a tabela destino com o campo destino
(To Table/Field). Em seguida, é escolhida a cardinalidade (1:N) e o tipo de relacionamento
(Inner).
Figura 25 – Configuração de um relacionamento com PME
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Metadata Editor CE, 2011.
4.4.2.3 Visão de Negócios
A visão de negócios criada (Business View), que são os meta dados visíveis ao
usuário final, foram criadas arrastando com o mouse das Tabelas de Negócios e soltando em
Visão de Negócios, cada tabela dessa arrastada cria uma categoria. Alguns campos das
categorias foram excluídos, pois são indiferentes ao usuário final, como: Seq geo da
Dimensão Geográfica, Seq tempo da Dimensão Tempo e Seq tempo, Seq geo e Seq projeto
da Tabela de Fato Recurso Transferido, como pode ser visto na figura abaixo que não
contém mais estes campos.
59
Figura 26 – Visão de negócios com PME
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Metadata Editor CE, 2011.
4.4.3 Publicação no BI Server
O modelo de metadados pode ser exportado como arquivo XMI ou publicado
diretamente no BI Server, sendo que, também, ira gerar um arquivo de mesmo formato. Para
efeito deste trabalho, foi escolhida a importação para o BI Server, para que este modelo seja
utilizado para a criação de relatórios com Pentaho Report Designer.
Com o simples procedimento de clicar em File / Publish To Server, a tela de
publicação é apresentada, como mostrado na figura 26. Filename deve ser metadata.xmi, isso
para que o BI Server entenda o modelo, sendo que o arquivo será colocado dentro da pasta da
solução criada no Console do Usuário (transf-recursos). O nome desta solução deve ser
colocado em Publish Location. Web Publish URL deve ser preenchido com o host onde se
encontra o servidor Web seguido de RepositoryFilePublisher, como demonstrado na figura
26. A senha de publicação, configurada previamente no BI Server, deve ser informada em
Publish Password. Por fim, deve ser informado o usuário e senha do BI Server, com um
usuário com perfil de administrador, para realizar a publicação.
60
Figura 27 – Publicação de PME para o BI Server
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Metadata Editor CE, 2011.
Após a publicação do modelo, poderia ser utilizada a ferramenta Pentaho Web
Ad Hoc Query and Reporting, para criação de relatórios diretamente dentro da interface
Web do BI Server. Porém, como a ferramenta não é mais oficialmente suportado pela
Pentaho, sendo mantida apenas por uma questão de conveniência, não será utilizada.
4.5 PROCESSO ETL (KETTLE)
A ferramenta escolhida para o processo ETL foi a Pentaho Data Integration, PDI,
ou simplesmente Kettle, com a utilização da IDE Spoon. A ferramentaa PDI foi obtida através
de Pentaho Data Integration CE (2011), sendo que já inclui a IDE Spoon. Essa IDE é uma
ferramenta intuitiva e gráfica, que facilita a utilização. A figura 27 abaixo, mostra a interface
de Spoon.
61
Figura 28 – Exemplo de interface do PDI Spoon – Transformação Dimensão Tempo
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
As fontes ou origem dos dados foram diversas, como a utilização de diversos
padrões como: planilhas XLS, arquivos PDF e arquivos CSV. No total foram 41 arquivos,
sendo 34 relativos ao IBGE e 7 relativos ao Portal da Transparência. Exemplos dos formatos
dessas fontes dos dados podem ser vistos no Anexo A.
Para o processo ETL do data warehouse, foram necessárias a criação de 5 jobs e
30 transformações para a conclusão do processo total.
Os jobs basicamente foram criados para organizar as transformações em grupos.
O job da figura 28, representa o processo inicial para o processo ETL, e é chamado de
JobDwTransferenciaRecursos. Neste, as próximas etapas do processo são representadas
graficamente, sendo que o fluxo se inicia em START, passa por
JobCarregaDimensãoGeografica e assim sucessivamente. Quando o fluxo chega a Success,
o data warehouse está concluído.
62
Figura 29 – Job principal do processo ETL
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.1 Job Carrega Dimensão Geográfica
As etapas para carregar a dimensão geográfica, são demonstradas na figura 29
abaixo.
Figura 30 – Job Carrega Dimensão Geográfica
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
63
4.5.1.1 Transformação Dimensão Geográfica 1
Responsável pelos dados iniciais da tabela di_geo do banco, como:
cod_mun_ibge, nme_municipio, cod_uf, cod_regiao, nme_regiao, cod_meso, nme_meso,
cod_micro, nme_micro. A transformação é representada no diagrama abaixo:
Figura 31 – Transformação Carrega Dimensão Geográfica 1
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
Inicialmente, são carregados os mesmos arquivos CSV por quatro vezes, porém
com objetivos diferentes, como pode ser visto na figura acima com o componente CSV file
input. O mesmo arquivo CSV carrega as informações de região, UF, meso região, micro
região e município de forma hierárquica, sendo que as localidades estão em linhas diferentes e
relacionados por códigos.
Em seguida, são aplicados filtros para cada objetivo: municípios, micro região,
meso região e regiões do Brasil. Os dados passados como positivo nos filtros, são ordenados
com os componentes Sort Rows. Na sequência, os componentes Merge Join atuam, fazendo
relacionamento através de códigos entre os municípios e as micro regiões, depois a mesma
lógica com as meso regiões e, ao final, com a regiões.
64
Por fim, são inseridos os registros organizados pelo componente Insert/Update,
que se conecta com o banco Postgre Sql.
O arquivo CSV utilizado não tem as siglas das unidades da federação, e por isso
tanto os nomes quanto as siglas foram deixados para depois, e também com o objetivo de
simplificar a estrutura.
4.5.1.2 Transformação Dimensão Geográfica 2
Essa transformação tem como objetivo atualizar os nomes dos municípios de
di_geo, através da planilha mais recente do IBGE de 2011, que teoricamente teria os nomes
mais atualizados e já aproveitando também, atualiza as siglas das unidades da federação.
Figura 32 – Transformação Carrega Dimensão Geográfica 2
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
O processo acima relaciona os dados já inseridos no data warehouse, Table input,
relativo aos municípios e os relaciona com a planilha de dados populacionais XLS de 2011.
Os componentes Modified Java Script Value atuam para que possa existir um relacionamento
entre a tabela di_geo e a planilha com os dados, pois as mesmas não seguem o mesmo
padrão de código, porém seguem uma lógica parecida, sendo que os códigos puderam ser
corelacionados.
4.5.1.3 Transformação Dimensão Geográfica 3 – Nomes dos Estados
65
Esta transformação é simples e utiliza a mesma planilha da Transformação
Geográfica 1, simplesmente para atualizar o nome dos estados.
4.5.1.4 Transformação Dimensão Geográfica – Código Portal da Transparência
As próximas três transformações foram criadas para atualizar os códigos dos
municípios do Portal da Transparência, campo cod_mun_ptransp de di_geo, este necessário
para, depois se ter, a relação entre os valores transferidos por município com os dados
populacionais do IBGE.
O problema foi que não existe relação entre os códigos dos municípios do IBGE e
dos municípios do Portal da Transparência, sendo assim, a correlação teve que se dar
comparando os nomes dos municípios e dos estados.
A primeira transformação a tratar do assunto retira os acentos dos nomes dos
municípios, ignora caracteres como aspas simples (‘) e traço (-) e, em seguida, coloca tudo em
caixa alta, tanto para os dados obtidos da tabela di_geo, quanto para os dados do arquivo
CSV do Portal da Transparência de 2011, o mais recente. Estas transformações são realizadas
através dos componentes Modifield Java Script Value. O diagrama do processo pode ser visto
na figura abaixo.
Figura 33 – Transformação Código Portal da Transparência 1
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
66
A segunda transformação a tratar do código do Portal da Transparência resolve
problemas de comparação entre nomes de municípios, que ainda não foram correlacionados,
com problemas básicos de grafia, como excesso de espaços entre palavras compostas, ou de
preposições diferentes em palavras compostas como: do, da, de, dos, das, como, por exemplo,
comparando BRACO DE NORTE (SC) e BRACO DO NORTE (SC), que na verdade, são os
mesmos municípios com problema de grafia. A solução foi ignorar as proposições de ambos
os lados.
A terceira transformação a tratar da atualização do código do Portal da
Transparência da tabela de dimensão geográfica di_geo, foi realizada para corrigir
problemas de grafia ou de trocas de nomes de 38 municípios que ficaram sem código do
Portal da Transparência. Após pesquisa no site do IBGE relativo a história dos municípios, foi
possível obter uma correlação entre nome atual e antigo de um mesmo município. O
componente utilizado para realizar a troca dos nomes, para assim ser possível comparar os
municípios para se obter o código do Portal da Transparência, foi Modifield Java Script
Value. Entre os municípios que deram problema podem ser citados alguns exemplos:
a) para o estado do Amapá, Pedra Branca do Amapari se considerou o mesmo que
Ampari;
b) para o estado da Bahia, Lajedo do Tabocal com ‘j’ se considerou o mesmo que
Lagedo do Tabocal com ‘g’;
c) para o estado da Paraíba, Joca Claudino considerou-se o mesmo que Santarem para
efeito de obtenção do código do Portal da Transparência, pois Santarem é o nome
antigo.
Parte da configuração do componente Modifield Java Script Value pode ser visto
na figura 33, onde a variável nme_municipio recebe o nome do Portal da Transparência, isso
se dá somente para a obtenção do código do Portal da Transparência, que é o único campo
atualizado nesta transformação.
67
Figura 34 – Transformação – Configuração Modifield Java Script Value
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.1.5 Transformação Dimensão Geográfica – Registro de Estados
Esta é a última transformação relativa ao processo ETL da dimensão geográfica,
responsável por criar registros para todas as Unidades da Federação e outro nomeado de
transferência ao exterior. Isso foi necessário, pois nos dados do Portal da Transparência
existe a transferência de recursos diretamente para os estados e, também, transferências de
recursos para o exterior.
4.5.2 Transformação Dimensão Tempo
Esse processo foi relativamente simples, uma vez que cadastra apenas a
informação ano. Para efeito deste trabalho, somente o ano foi necessário, uma vez que não se
tem dados de transferência de recursos ou de população mensais.
68
A figura 34 abaixo mostra o procedimento criado para realizar o processo ETL
para a dimensão tempo. Generate Rows cria o campo ano, e Add sequence, no caso, cria uma
sequência de valores de 2005 até 2011, incrementados de um em um, como pode ser
visualizado na tela de propriedades deste componente abaixo. Por fim, o campo ano recebe os
valores criados e são inseridos no DB em Insert / Update.
Figura 35 – Transformação Dimensão Tempo
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.3 Job Carrega Fato População
Com o processo ETL da dimensão geográfica e da dimensão tempo concluídos, é
possível a realização do processo ETL para o fato população. As etapas para carregar o fato
população, são demonstradas na figura 35 abaixo.
69
Figura 36 – Job Carrega Fato População
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.3.1 Transformação - Carga Fato População 2005, 2006, 2007 e 2011
As transformações para os anos de 2005, 2006, 2007 e 2011 são muito
semelhantes, com processo igual ao mostrado na figura 36 abaixo. O componente Microsoft
Excel Input faz a captura dos dados da planilha obtida do site do IBGE e, após configuração
do componente, como: linha inicial, coluna inicial e tipos de dados, é possível obter os dados
de forma que o Spoon possa entender.
Figura 37 – Transformação Carrega Fato População 2005
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
70
Os componentes Modified Java Script Value fazem com que os códigos de
municípios sejam compatíveis, e os componentes Sort rows são necessários para se ter um
critério de ordenação igual para as duas fontes, planilha e Table input – di_geo.
O componente Merge Join só funciona com informações devidamente ordenadas
de ambos os lados, por isso sendo necessário os componentes Sort Rows. A configuração do
Merge Join pode ser vista na figura abaixo, sendo que primeira etapa (First Step) representa
um lado e a segunda etapa (Second Step) o outro, assim como as chaves (Keys) respectivas
para cada etapa que devem se igualar.
Figura 38 – Carga Fato População 2005, Merge Join
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
Por fim, ocorre o último Merge Join, para obtermos o código da dimensão tempo,
correlacionado com a população do respectivo ano, em seguida são inseridas no data
warehouse.
4.5.3.2 Transformação - Carga Fato População 2008 e 2009
71
Para os anos de 2008 e 2009, foi possível obter as informações do portal do IBGE
no formato PDF, sendo que o procedimento foi um pouco diferente do que na transformação
acima. A apresentação dos dados no formato PDF pode ser visto na figura abaixo.
Figura 39 – População dos municípios em PDF para o ano de 2008
Fonte: Instituto Brasileiro de Geografia e Estatística, 2012g, p 01.
Na figura 39, pode ser visualizado o processo para a carga do ano de 2008.
Inicialmente, foi selecionado todo o texto do arquivo PDF e colado de forma simples em um
arquivo TXT, sendo carregado por Text file input. Este componente já conseguiu separar
algumas colunas do arquivo PDF, como siglas da UF e código da UF, porém ainda com muito
lixo gerado pelo cabeçalho do PDF que está em todas as suas 136 páginas.
O componente Filter rows, utilizando as expressões regulares ‘^[0-9][0-9]$’ para
o código da UF e ‘^[A-Z][A-Z]$’ para sigla da UF, excluem as linhas desnecessárias como os
cabeçalhos de cada página e o número das páginas.
Já, o componente Regex Evaluation foi utilizado para separar a população do
nome do município, coisa que Text File input não conseguiu fazer, através da seguinte
expressão regular ‘(.+) ([0-9]*\.*[0-9]*\.*[0-9]*)’, sendo a primeira parte para o nome e a
segunda para a população, que é a principal informação de interesse.
O restante das etapas se dá de forma muito semelhante as outras transformações
acima apresentadas e, a transformação para o ano de 2009, é praticamente igual a esta.
72
Figura 40 – Transformação Carga Fato População 2008
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.3.3 Transformação - Carga Fato População 2010
Para o ano de 2010, a carga da população foi muito semelhante às de 2005, 2006,
2007 e 2011, com a diferença de que, em vez de selecionar uma planilha no componente
Microsoft Excel Input, foi selecionada uma pasta que continha 27 arquivos, sendo um para
cada UF, porém todos seguindo o mesmo padrão.
4.5.4 Job Carrega Dimensão Projeto
A carga da dimensão projeto, mostrada na figura abaixo, se dá de modo
semelhante para todos os anos, pois todos os arquivos do Portal da Transparência utilizados
seguem o mesmo padrão, sendo que estão no formato CSV.
73
Figura 41 – Job Carrega Dimensão Projeto
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.4.1 Transformação Dimensão Projetos de 2005 a 2011
A estrutura para as transformações de 2005 a 2011 são iguais, mudando apenas o
arquivo CSV. A figura 41 abaixo mostra o exemplo para 2011, sendo que esse processo
carrega o arquivo com CSV file input e o separa em colunas, na sequência Sort rows ordena os
campos e Unique rows os torna únicos.
Figura 42 – Transformação Dimensão Projeto 2011
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
Por fim, Insert / Update insere os registros únicos (Keys) por códigos de: função,
subfunção, programa e ação como pode ser visualizado na figura 42 abaixo. Em campos a
serem atualizados (Update fields), estão os campos e os respectivos valores que serão
inseridos no DW.
74
Figura 43 – Configuração do Componente Insert / Update
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.5 Job Carrega Fato Recurso Transferido
Como ocorreu com o job anterior, todos os arquivos de entrada das
transformações envolvidas no processo, mostrado na figura abaixo, são formados por arquivos
CSV e seguem o mesmo padrão para todos os anos envolvidos.
75
Figura 44 – Job Carrega Fato Recurso Transferido
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.5.1 Transformações - Carga Fato Recurso Transferido de 2005 a 2011
Com as dimensões geográfica, tempo e projeto prontas, o próximo passo a fazer
a carga dos recursos transferidos obtidos pelo Portal da Transparência, já devidamente
organizados por ano, local e projetos, conforme as dimensões apresentadas. A figura próxima
mostra o processo necessário para a carga dos recursos para o ano de 2011, que também serve
de referência para os outros anos.
76
Figura 45 - Transformação Carrega Fato Recurso Transferido 2011
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
Primeiro é carregado o arquivo CSV file input com o arquivo CSV do Portal da
Transparência que contém 151.896 registros de transferência de recursos para o ano de 2011.
Em seguida, o componente Modified Java Script Value modifica o código do município de
transferência para o exterior para -1, sendo que o mesmo vem nulo e, também, o município de
Pinto Bandeira/RS que é colocado como sendo o mesmo que Bento Gonçalves/RS, pois Pinto
Bandeira não existe nos registros de IBGE utilizados. Segundo o Instituto Brasileiro de
Geografia e Estatística (2012a), o município de Pinto Bandeira teve sua área agregado a Bento
Gonçalves por decisão da Justiça.
O componente Group by soma e agrupa os recursos transferidos para um mesmo
projeto, com função, sub função, programa e ação iguais.
Na sequência, as informações vão sendo mescladas com os componentes Merge
Join. Primeiramente o arquivo CSV é mesclado com di_geo, depois com di_tempo e no fim
di_projeto. Por fim, as informações são inseridas no DW.
4.5.6 Transformação Fato População Recurso Transferido por Habitante
Esta transformação apenas executa uma atualização no campo
vl_transf_habitante, na tabela de fato ft_populacao. Esses valores são obtidos através de
uma consulta aos dados já existentes no data warehouse e, em seguida, são inseridos
77
conforme localização geográfica e tempo. A figura abaixo mostra o componente que executa
instruções de data manipulation language (DML) ou linguagem de manipulação de dados no
banco, com o componente Execute SQL script.
Figura 46 – Transformação Fato Recurso Transferido por Habitante
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.5.7 Execução do Job Principal do Processo ETL
Por fim, ao executar o job principal, todos os outros jobs e transformações são
executados na sequência das flechas, e o processo corre até terminar.
Por medida de precaução, durante a construção das transformações as mesmas
foram sendo testadas. E, após as inserções ou atualizações do DW, foram realizadas consultas
que contavam quantos registros foram inseridos ou alterados e, também, foram observadas as
métricas mostradas pelo Kettle, como pode ser observado na figura 46 abaixo, que apresenta
métricas da transformação da dimensão tempo. Na figura, pode ser vista a coluna Saída para o
componente Insert / Update. O número 7 de saída, neste caso, indica que foram inseridos sete
registros, no caso os anos de 2005 a 2011.
Após a execução de cada transformação, a quantidade de inserções ou alterações
tinha que bater com a quantidade de linhas alvo dos arquivos fontes dos dados. Foi dessa
forma que foi descoberto que alguns municípios estavam com nomes diferentes ao do Portal
da Transparência, ou a descoberta de que não existia Pinto Bandeira nos dados populacionais
obtidos do IBGE.
78
Figura 47 – Métricas da transformação da dimensão tempo
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Data Integration CE, 2011.
4.6 PENTAHO REPORTING
A ferramenta escolhida para a criação de relatórios foi a Pentaho Report Designer
por ser uma ferramenta que gera arquivos que podem trabalhar com os metadados gerados
pelo Metadata Editor, e também pode exportar esses relatórios para o BI Server.
Para criação de gráficos, foi escolhida a ferramenta Pentaho Design Studio, por
ser uma ferramenta baseada no Sistema de Desenvolvimento Integrado (IDE) Eclipse, uma
ferramenta bastante conhecida pela maioria dos desenvolvedores de sistemas em Java.
4.6.1 Pentaho Report Designer
Pentaho Report Designer ou PRD é uma ferramenta construída em Java, utilizada
para criação de relatórios de forma fácil e rápida, se comparado com outros meios
convencionais para a criação desses relatórios, como JSP com Servlets Java ou PHP, por
exemplo.
A versão utilizada da ferramenta foi a 3.8.2-GA.14313, que pode ser encontrada
para download em Pentaho Report Designer CE (2011).
Para a criação dos relatórios, foram utilizados os metadados gerados pelo Pentaho
Meta Data Editor, apesar da ferramenta dar suporte a vários outros tipos de fontes de dados
possíveis como JDBC.
Para os fins deste trabalho, foi utilizada a função Report Wizard da Ferramenta,
por gerar de forma facilitada relatórios complexos, com customizações posteriores para a
inserção de parâmetros e modificação de Data Sets.
79
Com a utilização do modelo de metadados do PME, fica mais fácil para se criar
relatórios, pois somente a visão de negócios do mesmo fica visível para ao criador de
relatórios, não sendo necessário ter conhecimento de SQL. Sendo assim, um usuário de
negócios poderia utilizar a ferramenta PRD de forma mais facilitada.
Para os fins deste trabalho, foram criados dois relatórios, um trata da transferência
de recursos por função e estado, com foco nos projetos do governo federal, e o outro trata dos
recursos transferidos aos municípios por ano e estado.
4.6.1.1 Relatório Transferência de Recursos por Função e Estado
Este relatório, que pode ser visto na figura 47, mostra os recursos transferidos
para um determinado estado e função selecionados pelos filtros, e apresenta as seguintes
informações:
a) Dimensão Tempo: Com o atributo Ano, mostrado no canto superior direito, apresenta
informações de 2005 a 2012;
b) Dimensão Geográfica: Com o atributo UF, que pode ser visualizado na parte superior
esquerda, apresenta o estado selecionado pelo filtro;
c) Dimensão Projeto: Com os atributos Função, Sub Função, Programa e Ação, que
podem ser visualizados nas legendas da figura, mostra os dados relativos à função
selecionada por filtro;
d) Fato Recurso Transferido: Com o atributo Valor Transferido, está agregado por
soma através dos atributos das dimensões citadas acima.
80
Figura 48 – Relatório Transferência de Recursos por Função e Estado
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Report Designer CE, 2011.
Este relatório foi iniciado com um wizard, menu File / Report Wizard, onde pode
ser escolhido um template, ou esquema de cores. Neste caso, foi escolhido o template de
nome Cobalt.
Na sequência, são escolhidos os Data Sources (DS) ou fontes dos dados, sendo
que a opção metadata foi selecionada. A figura 48, mostra como deve ser configurado o DS
metadata. Primeiro deve ser indicado onde está o arquivo XML correspondente ao modelo de
metadados. Segundo, deve ser preenchido o nome da solução do BI Server, no qual o relatório
deverá ser publicado. Em seguida, clica-se no sinal de mais para adicionar uma query e se
escolhe um nome para a mesma em Query Name.
81
Figura 49 – PRD – Metadados como fonte dos dados
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Report Designer CE, 2011.
O próximo passo é selecionar a query e clicar no lápis para editá-la. Duas queries
foram criadas, sendo a primeira, como o principal DS e a segunda, criada para carregar o
filtro Função. A figura 49 na continuação mostra a configuração do DS principal, onde os
campos, do lado esquerdo inferior, organizados por tabelas de negócio, podem ser
adicionados aos itens:
a) Colunas Selecionadas (Selected Columns): São as colunas selecionadas para
participarem do relatório. No caso abaixo: Ano, UF, Função, Sub Função, e Vl.
Transferido. Sendo que para o último foi selecionado a agregação (aggregation) SUM
que significa soma;
b) Condições (Conditions): São as condições para a consulta, neste caso temos as
colunas Função e UF, que serão criados posteriormente como parâmetros. Porém as
mesmas já podem ser referenciadas em value como {func_param} e {uf_param};
c) Ordena Por (Order By): É como o relatório deve ser ordenado em prioridade de cima
para baixo, como no caso abaixo: Ano, UF, Função, Sub Função, Programa e Ação.
82
Figura 50 – PRD – Query Editor
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Report Designer CE, 2011.
Após a criação e configuração das fontes dos dados, o wizard pergunta qual DS
gerará o relatório, ou seja, o DS principal. Em seguida, apresenta uma tela de seleção de
campos para o relatório com duas opções: a primeira para os campos que serão agrupados em
ordem (Group Itens By), de cima para baixo, e a segunda para os campos que não serão
agrupados (Selected Itens), mas mostrados em ordem. A figura as seguir mostra esta
configuração.
83
Figura 51 – PRD Wizard, Definição do Layout do Relatório
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Report Designer CE, 2011.
Ao se clicar em next, aparece uma tela com opções como: alterar legendas dos
campos e modificar o formato dos dados. Para o campo Vl. Transferido foi selecionado o
formato sugerido ‘#,###.00;(#,###.00)’, que mostra o valor com duas casas após a vírgula e
com pontos a cada milhar. O botão Preview é muito útil, pois pode mostrar como o relatório
está ficando antes de encerrar o Wizard. Por fim, é só clicar em Finish e a interface do
relatório é apresentada, como mostrado na figura a seguir.
84
Figura 52 – Interface de relatório de Pentaho Report Designer
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Report Designer CE, 2011.
Através desta interface acima, podem ser criados ou editados relatórios
personalizados. Como o Wizard já cuidou da estrutura do relatório através de um template
com cores e posições, na parte estrutural foi alterado apenas o título do relatório e o formato
da data para português. Porém, os componentes da tela como BC_DI_TEMPO_ANO, por
exemplo, podem ser configurados apenas selecionando o respectivo componente e indo para a
aba Struture, na parte superior direita da tela.
Para tentar visualizar uma prévia do relatório, basta clicar em play na parte
superior direita da tela a qualquer momento durante a criação do relatório. Se tudo estiver
correto, o relatório será executado.
Ao lado da aba Struture, há a aba Data, onde os data sets e parâmetros podem ser
criados. Ao criar um parâmetro, a seguinte tela é mostrada conforme mostrado na figura 52,
sendo que deve ser escolhida a query, tipo de componente (Display Type), nome do campo a
ser mostrado (Display Name) e valor (Value) a ser passado como parâmetro, após seleção do
mesmo, ao relatório. Lembrando que o campo Name deve ser preenchido com o mesmo nome
colocado em Query Editor, na parte de condições, porém sem os caracteres chaves, como
pode ser visualizado em Name, onde func_param foi referenciado anteriormente em Query
Editor como {func_param}.
85
Figura 53 – Configuração de parâmetros
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Report Designer CE, 2011.
Outro parâmetro foi criado, uf_param, sendo que foi criada uma nova query, além
do mesmo procedimento mostrado na figura acima.
O passo final, é publicar o relatório no BI Server, sendo que este já deve estar
salvo em disco. A figura 53 a seguir mostra a tela de publicação, sendo necessário escolher a
pasta com o nome da solução, Location, onde o modelo de metadados foi publicado
previamente, senão não funcionará. Em título (Title), deve ser escolhido o nome com o qual o
relatório será mostrado no BI Server. A senha de publicação, configurada previamente no BI
Server, deve ser informada em Publish Password. Por fim, basta clicar em OK.
86
Figura 54 – Publicação no BI Server
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Report Designer CE, 2011.
4.6.1.2 Relatório Transferência de Recursos aos Municípios por Estado e Ano
Este relatório, que pode ser visto na figura 54, mostra os recursos transferidos
para os municípios de determinado estado em determinado ano, selecionados pelos filtros, e
mostra as seguintes informações:
e) dimensão tempo: Com o atributo Ano, mostrado no canto superior direito, apresenta
informações conforme o ano selecionado pelo filtro;
f) dimensão geográfica: Com o atributo UF e Município, apresenta o estado selecionado
pelo filtro e todos os municípios do estado;
g) fato recurso transferido: Com o atributo Valor Transferido, está agregado por soma
através dos atributos das dimensões citadas acima.
87
Figura 55 – Relatório Transferência de Recursos aos Municípios por Estado e Ano
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Report Designer CE, 2011.
O campo Output type, localizado na parte superior da figura, representa o tipo de
saída do relatório, que pode ser em HTML, HTML paginado, PDF, Excel, Excel 2007, CSV,
Rich-Text ou somente texto puro.
4.7 PENTAHO DESIGN STUDIO
Esta ferramenta, baseada no IDE Eclipse, gera arquivos XACTION, porém com
formatação XML, que no final, podem ser exportados para o BI Server, apenas copiando os
arquivos para pasta pentaho-solutions dentro do servidor. A versão utilizada foi a 4.0.0, que
pode ser encontrada em Pentaho Design Studio CE (2011).
88
Com está ferramenta, é possível criar relatórios e gráficos, porém para este
trabalho, esta foi utilizada somente para a criação do último.
Esta ferramenta trabalha com uma conexão com o banco de dados chamada
dwtransf-recursos, sendo que esta foi criada e configurada com a ferramenta web
Administration Console, como foi mostrado na seção 4.3 Pentaho BI Server.
4.7.1 Gráfico Bolha Transferência de Recursos por Localidade
O gráfico no formato de bolha pode ser visto na figura abaixo, sendo que possui
filtros por Ano, Região, Estado, Micro Região e Meso Região, sendo o único obrigatório o
ano. Os arquivos do gráfico foram salvos dentro da pasta pentaho-solutions/transf-
recursos/grafico-bolha no BI Server.
Figura 56 – Gráfico Bolha Transferência de Recursos por Localidade
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Design Studio CE, 2011.
89
O gráfico mostra a transferência de recursos para as regiões do Brasil para o ano
selecionado de 2011. O eixo Y mostra a população, enquanto o eixo X o valor transferido
para a região em milhares de reais. Quanto menor o círculo, menor a quantidade de
transferência de recurso por habitante no ano. Fica claro no gráfico, por exemplo, que o
Nordeste além de ter recebido uma fatia maior dos recursos em 2011, também teve uma
grande transferência de recursos por habitante. Contudo, o circulo do Nordeste deu uma
pequena crescida pelo fato do mouse estar em cima dele, porém a região com maior
transferência de recursos per capta em 2011 na verdade, foi a Norte. Também, fica visível que
o Sul e o Sudeste, os dois círculos menores, tiveram a menor transferência por habitante para
o ano de 2011.
Para a criação do gráfico, foi necessário a criação dos seguintes arquivos:
a) graficoBubble.xaction: Arquivo principal, responsável por chamar os outros
arquivos. Formatado com XML, possui as principais funções SQL e filtra os
resultados conforme os filtros aplicados;
b) localizacaoParameterTemplate.html: Arquivo HTML responsável pelo layout da
página que contém o gráfico, porém não o layout do gráfico;
c) graficoBubble.xml: Arquivo responsável pela configuração do gráfico em si, como:
tipo de gráfico, legendas, tipo de fonte, cores e muito mais. Sendo que o gráfico é
processado digitalmente por um componente em Flash disponibilizado pelo BI Server;
d) estadosPorRegiao.xaction: Arquivo chamado via Javascript, para fazer a alteração
dinâmica do componente de seleção HTML Estado, ao se alterar uma região;
e) mesoPorEstado.xaction: Arquivo chamado via Javascript, para fazer a alteração
dinâmica do componente de seleção HTML Meso Região, ao se alterar um estado;
f) microPorEstadoMeso.xaction: Arquivo chamado via Javascript, para fazer a
alteração dinâmica do componente de seleção HTML Micro Região, ao se alterar uma
meso região.
Com o Design Studio, não é necessária a criação dos arquivos XACTION
digitando todo o arquivo. A IDE têm características que ajudam a criar e manipular esses
arquivos de forma organizada.
A interface de Pentaho Design Studio pode ser vista na figura 56, sendo que, na
parte esquerda, temos os arquivos físicos do projeto. Na parte direita central, temos o arquivo
principal graficoBubble.xaction aberto com abas na sua parte inferior, sendo as principais,
Geral (General), Definição do Processo (Define Process) e Fonte do Arquivo em XML (XML
90
Source). Em General informações mais básicas como nome da ação, descrição e autoria são
configuradas. Em Define Process, aba aberta no centro da figura a seguir, é onde a ação em si
é configurada, onde são criados processos, definidas entradas e saídas, selecionado a fonte dos
dados e o código SQL para consultas.
Para auxiliar a execução deste e de outros gráficos, foram criados algumas
funções no banco de dados com a linguagem PL/pgSQL (Procedural Language/PostgreSQL),
essas funções, usadas para realizar apenas consultas, podem ser vistas no Apêndice B.
Figura 57 – Interface de Pentaho Design Studio
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Design Studio CE, 2011.
Por fim, a aba XML Source, onde pode ser visto código do arquivo XACTION
que está sendo gerado na integra, pode ser visto na figura 57.
91
Figura 58 – Design Studio código fonte XML
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Design Studio CE, 2011.
4.7.2 Gráfico Linha Transferência de Recursos por Localidade e Ano
O gráfico, no formato de linha, pode ser visto na figura 58 a seguir, este possui
filtros por Ano, Região, Estado, Micro Região e Meso Região, não tendo nenhum campo
obrigatório. Os arquivos do gráfico foram salvos dentro da pasta pentaho-solutions/transf-
recursos/grafico-linha no BI Server.
92
Figura 59 – Gráfico Linha Transferência de Recursos por Localidade e Ano
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Design Studio CE, 2011.
O gráfico mostra a transferência de recursos para a região Sul do Brasil, estado de
Santa Catarina, meso região de Grande Florianópolis e micro região de Florianópolis, entre os
anos de 2005 e 2011. O eixo Y mostra os valores transferidos em milhares de Reais, enquanto
o eixo X os municípios da micro região. Pode ser visto no gráfico que a proporção de valores
transferidos ao longo dos anos não muda muito, e que o município de Florianópolis foi o que
mais recebeu recursos do governo federal de forma absoluta.
Para a confecção do gráfico em Linha, foi necessário a criação dos mesmos tipos
de arquivos que o gráfico Bolha apresentado, sendo que os tipos de gráficos são diferentes. A
configuração do tipo de gráfico se dá no arquivo XACTION principal, neste caso
graficoLinha.xaction, com a configuração do gráfico em si em graficoLinha.xml. A figura
próxima mostra parte do conteúdo do arquivo XML. Neste arquivo, são configurados o tipo
de gráfico, eixos, estilos e legendas.
93
Figura 60 – Configuração do gráfico com XML
Fonte: Elaborado pelo Autor, 2012, adaptado de Pentaho Design Studio CE, 2011.
Um exemplo interessante pode se visto na figura 60, a qual mostra o gráfico em
nível de regiões do Brasil entre os anos de 2005 e 2011. Pode ser visto que houve um
crescimento mais acentuado na transferência de recursos ao longo dos anos para o Nordeste e
Sudeste, se comparado com as outras regiões.
94
Figura 61 – Gráfico Linha Transferência de Recursos por Regiões do Brasil e Ano
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Design Studio CE, 2011.
4.8 PENTAHO MONDRIAN COM SCHEMA WORKBENCH
A versão do Pentaho Mondrian utilizada é a 3.2.1, sendo que está já está embutida
no Pentaho BI Server, sendo assim, não foi feito o download separadamente.
Para a criação de esquemas Mondrian, o software escolhido foi o Pentaho Schema
Workbench, por permitir uma criação de cubos de dados de forma gráfica e facilitada. Esta
ferramenta pode se conectar com o banco de dados para exportar informações pertinentes e
também pode publicar os esquemas diretamente no BI Server. Por esta ferramenta ser feita em
Java, ela é também multiplataforma. A versão utilizada desta foi a 3.3.0.14703, que pode ser
encontrada para download em Pentaho Mondrian Schema Workbench CE (2011).
A interface de Schema Workbench pode ser vista na figura abaixo, com dois cubos
de dados, sendo que, na parte esquerda se encontra os componentes criados. Ao se clicar em
algum destes componentes, abre do lado direito a tela de atributos do elemento selecionado,
como mostrado com a medida QtdPopulacao.
95
Figura 62 – Interface de Pentaho Schema Workbench
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Mondrian Schema Workbench CE, 2011.
Para iniciar a criação de um esquema, foi criada uma nova conexão com o DB
Postgre Sql, indo no menu Options / Connection.
Em seguida, foi criado um novo esquema clicando em File / New / Schema. Para
os propósitos deste trabalho, foram criados dois cubos dentro deste esquema, um chamado de
Transferência de Recursos e o outro de Transferência de Recursos por Habitante.
4.8.1 Cubo de Dados Transferência de Recursos
Para criação do cubo de dados, basta clicar com o botão direito em cima de
schema, Add cube. Assim, também, segue para os outros elementos, para adicionar uma tabela
(Table), por exemplo, basta clicar em cima do cubo com o botão direito, Add table, e assim
por diante, conforme a árvore mostrada na figura 61 acima.
O resultado do cubo pode ser visto no front end JPivot dentro Console do
Usuário, como mostrado na figura a seguir.
96
Figura 63 – Cubo Transferência de Recursos com JPivot no Console do Usuário
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Mondrian Schema Workbench CE, 2011.
O resultado mostra uma tabela, em que os valores podem ser visualizados em
diferentes perspectivas. A navegação pode se dar nas dimensões tempo, geográfica e
projeto, com diferentes níveis de granularidade.
4.8.1.1 Elementos do Cubo de Dados
O elemento Table, mostrado na parte superior da figura 63, é relativo à tabela de
fatos que se deseja trabalhar. Basicamente, é selecionada a tabela de fatos que se deseja, com
base na conexão com o banco de dados. Neste caso, a tabela ft_recurso_transferido.
Os elementos mostrados na figura abaixo, como: Tempo, Geografica e Projeto,
são as dimensões. Dentro de cada dimensão, foi adicionado o elemento hierarquia
(hierarchy), e dentro deste adicionado, os elementos table hierarchy e os níveis desta
hierarquia.
97
A figura abaixo mostra a árvore para o cubo Transferência de Recursos, contendo
todos os elementos utilizados.
Figura 64 – Árvore do cubo Transferência de Recursos
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Mondrian Schema Workbench CE, 2011.
Pegando como exemplo a dimensão Geografica, ela possui uma hierarquia com o
mesmo nome. Dentro desta, existem os elementos Table e outros cinco representando os
níveis da dimensão no cubo. Ao selecionar um elemento qualquer, o Schema Workbench abre
do lado direito uma tela onde os atributos desse elemento podem ser modificados.
Configuração dos atributos dos elementos:
a) Table: di_geo: Basicamente, é informada qual a tabela física no data warehouse;
b) NivelMunicipio: Os seguintes atributos (em negrito) foram configurados com os
valores (em itálico), seguido pela explicação de cada atributo abaixo:
- name: NivelMunicipio;
- Nome do elemento.
- columm: cod_mun_ibge;
- Selecionado a coluna física na tabela do data warehouse.
98
- ordinalColumn: nme_municipio;
- A coluna física responsável pela ordenação.
- type: String;
- O tipo de dados, neste caso com caracteres literais (String).
- hideMemberif: Never;
- Nunca esconderá um membro, mesmo que este seja nulo.
- captionColumn: nme_municipio;
- Coluna física cujos valores serão apresentados no cubo de dados no
lugar do atributo column acima.
a) Outros níveis: Seguem a mesma lógica de NivelMunicipio.
b) Hierarchi: Geografica: Os seguintes atributos (em negrito) foram configurados com
os valores (em itálico), seguido pela explicação de cada atributo abaixo:
- name: Geografica;
- Nome do elemento.
- allMemberName: Todas as Regiões;
- Nome que representa os registros iniciais da dimensão Geográfica
mostrados no cubo.
- primary key: seq_geo;
- Chave primária física da tabela di_geo.
c) Dimension: Geografica: Neste elemento foram configurados os seguintes atributos:
- name: Geografica;
- Nome do elemento;
- foreignKey: seq_geo;
- A chave estrangeira relativa a tabela de fato.
- type: StandardDimension;
- O tipo de dimensão, que no caso é a padrão.
d) As dimensões Tempo e Projeto seguem a mesma lógica da dimensão Geografica.
O elemento VlTransferido, diretamente abaixo do nível do cubo, representa uma
medida (Measure), que no caso é valor transferido. Este elemento foi configurado, conforme
imagem 64. O atributo name recebe o nome do componente, o atributo aggregator
(agregador) recebe o valor sum (soma), agregador responsável por mudar o valor transferido,
conforme o nível de granularidade. O tipo de dado (datatype) é configurado com o valor
numérico (numeric).
99
Figura 65 – Atributos da medida valor transferido
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Mondrian Schema Workbench CE, 2011.
4.8.2 Cubo de Dados Transferência de Recursos por Habitante
O resultado do cubo pode ser visto no front end JPivot dentro Console do
Usuário, como mostrado na figura abaixo.
Figura 66 – Cubo Transferência de Recursos por Habitante - JPivot
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Mondrian Schema Workbench CE, 2011.
100
O resultado mostra uma tabela, em que os valores transferidos por habitante
podem ser visualizados em diferentes perspectivas, ao lodo da respectiva população.
A configuração deste cubo é bastante semelhante ao cubo anterior, com a
diferença de que a tabela de fato considerada é a ft_populacao, e a dimensão Projeto não é
utilizada. Também aqui são utilizadas duas medidas ao invés de uma. Uma das medidas
chamada de VlTransfHabitante recebe o agregador AGV (average) ou média aritmética, ao
invés de soma, ou seja, na medida em que o menor nível de granularidade é alcançado, sendo
o menor possível o de valor transferido por habitante por município e no ano, este último é
absoluto e a média não precisa ser aplicada. Contudo, para grãos maiores como UF, por
exemplo, o valor apresentado será uma média entre os municípios, isto no caso deste cubo. Já
a outra medida, chamada de QtdPopulacao, utiliza o agregador soma.
4.8.3 Publicação no BI Server
Após o esquema pronto, o mesmo pode ser publicado no BI Server, clicando no
menu File / Publish. A tela de autenticação é apresentada, solicitando informações como:
URL do servidor, usuário e senha. Após a autenticação, a seguinte tela é apresentada,
conforme figura abaixo. A pasta com a solução do BI Server deve ser indicada, neste caso a
pasta transf-recursos. Uma informação muito importante é a Pentaho or JDNI Data Source,
que representa o nome da conexão com o banco criada com a ferramenta Administration
Console do BI Server, neste caso: dwtransf-recursos. Esta informação é necessária para que o
Mondrian ligue o esquema criado com o data warehouse.
101
Figura 67 – Publicação no BI Server por Schema Workbench
Fonte: Elaborado pelo Autor, 2012, por meio de Pentaho Mondrian Schema Workbench CE, 2011.
102
5 CONCLUSÕES E TRABALHOS FUTUROS
A construção de uma solução de BI com ferramentas open source se tornou
viável, devido a forte cobertura da comunidade internacional em volta das ferramentas
Pentaho. Esses permitem o download e instalação das ferramentas de forma facilitada e
também fornecem documentação e fóruns de discussões relativo a cada programa da suite
Pentaho. Estes materiais podem ser encontrados no portal web Pentaho de forma gratuita em
Pentaho (2012d), com o objetivo de auxiliar as organizações que desejarem utilizar as
ferramentas da Pentaho BI Suite CE.
A solução, aqui criada, atingiu os objetivos propostos relativo à criação de uma
solução de BI, pois iniciou-se com a criação do data warehouse e permitiu a efetivação do
processo ETL com suporte a vários formatos de fonte de dados, de forma gráfica e facilitada.
Seguido pela criação de um repositório de metadados, que foram utilizados para criação de
relatórios. Estes últimos, juntamente com os gráficos e cubos de dados criados, podem
auxiliar na obtenção de informações e no processo decisório de interesse. Também, foi
instalado o servidor BI com motor OLAP que possui uma ferramenta web de front end para
interagir com o usuário final.
A forma de que a solução foi criada foi facilitada, sem a necessidade de utilização
de linguagens de programação mais complexas como, por exemplo, C++, JAVA ou PHP.
Estas necessitariam de muito mais tempo, trabalho e especialização para se desenvolver do
zero a solução apresentada. Contudo, as ferramentas Pentaho são de código fonte aberto,
permitindo assim, que customizações possam ser feitas por programadores especializados,
caso seja necessário.
Vale apena ressaltar que, apesar de não ter sido necessário a utilização de
linguagens de programação mais complexas para a criação da solução, um bom nível de
conhecimento em banco de dados e SQL foi necessário. Exceto para a forma em que a
ferramenta Report Designer foi empregada, pois a mesma foi utilizada com um modelo de
metadados gerado por PME, permitindo a um usuário de negócios criar relatórios de forma
facilitada, sem utilizar SQL diretamente.
Para as ferramentas open source utilizadas, ou outras da Pentaho não exploradas
no escopo deste trabalho, não há custo com licenciamento de software, sendo assim, as
organizações interessadas podem utilizar, customizar e distribuir as soluções de BI criadas,
conforme a necessidade. Porém vale a pena ressaltar que uma solução de BI não será livre de
103
custos, pois ainda existem outros custos associados como: hardware, implementação da
solução, manutenção, treinamento, migração de dados, entre outros.
Para a realização de trabalhos futuros, alguns itens podem complementar ou dar
continuidade a este trabalho como:
a) análise dos dados incluídos do data warehouse, permitindo assim, a obtenção de
informações e conhecimento sobre a transferência de recursos do governo federal para
os estados e municípios. Neste caso, também sendo necessário a criação de novos
cubos de dados, gráficos e relatórios adicionais, possibilitando tentar estabelecer uma
relação entre as transferências e as populações dos estados e municípios brasileiros;
b) inclusão de dados no data warehouse relativos ao PIB de cada município e dos
partidos políticos que assumiram cada prefeitura, os governos dos estados e o governo
federal em cada ano, para assim, possibilitar uma análise mais precisa da qualidade da
transferência de recursos do governo federal, e se os critérios adotados têm relação
com o PIB ou partidos políticos;
c) criação de dashboards para permitir comparações entre regiões ou informações
consolidadas por projetos ou localização geográfica. Exploração de outras ferramentas
Pentaho como: Community Dashboard Framework (CDF), para criação de
dashboards de forma facilitada; Pentaho Analyzer para análise de cubos OLAP; Entre
outras com propósitos diversos, sendo que estas podem ser encontradas em Pentaho
(2012d).
104
REFERÊNCIAS
BOUMAN, R.; DONGEN, J. V. Pentaho Solutions: Business Intelligence and Data
Warehousing with Pentaho and MySQL. Indianapolis, Indiana, USA: Wiley Publishing, 2009.
BRASIL. Controladoria-Geral da União. Portal da Transparência - Dados do Portal.
Disponível em: <http://www.portaldatransparencia.gov.br/sobre/Origem.asp> Acesso em: 17
jun. 2012a.
BRASIL. Controladoria-Geral da União. Portal da Transparência - Download de
Consultas. Disponível em: <http://www.portaldatransparencia.gov.br/planilhas/> Acesso em:
17 jun. 2012b.
BRASIL. Controladoria-Geral da União. Portal da Transparência - Glossário. Disponível
em: <http://www.portaldatransparencia.gov.br/glossario/DetalheGlossario.asp?letra=t>
Acesso em: 17 jun. 2012c.
BRASIL. Controladoria-Geral da União. Portal da Transparência - Sobre o Portal.
Disponível em: <http://www.portaldatransparencia.gov.br/sobre/> Acesso em: 17 jun. 2012d.
BRASIL. Controladoria-Geral da União. Portal da Transparência - Sobre o Portal - O que
você encontra no Portal. Disponível em:
<http://www.portaltransparencia.gov.br/sobre/OQueEncontra.asp> Acesso em: 30 jul. 2012e.
CARVALHO, Luiz Alfredo Vidal de. Datamining: A Mineração de Dados no Marketing,
Medicina, Economia, Engenharia e Administração. São Paulo, SP: Érica, 2001.
CHAUDHURI, Surajit; DAYAL, Umeshwar; NARASAYYA, Vivek. An overview of
business intelligence technology. Communications of the ACM, New York, USA, v. 54, n.
8, p. 88-98, ago. 2011. Disponível em:
<http://delivery.acm.org/10.1145/1980000/1978562/p88-
chaudhuri.pdf?ip=189.26.130.197&acc=OPEN&CFID=75668290&CFTOKEN=95664262&_
_acm__=1333460546_603f9f0da642ffdd23592b958edfb471>. Acesso em: 02 abr. 2012.
INMON, William H. Como construir o Data Warehouse. 2 ed. Rio de Janeiro, RJ: Campus,
1997.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Área Territorial Oficial.
Disponível em:
<http://www.ibge.gov.br/home/geociencias/cartografia/default_territ_area.shtm> Acesso em:
28 set. 2012a.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Censo Demográfico 2010.
Disponível em: <http://www.ibge.gov.br/home/estatistica/populacao/censo2010/default.shtm>
Acesso em: 17 jun. 2012b.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Contagem da População
2007. Disponível em:
105
<http://www.ibge.gov.br/home/estatistica/populacao/contagem2007/default.shtm> Acesso
em: 17 jun. 2012c.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Contagem da População
2007. Disponível em:
<http://www.ibge.gov.br/home/estatistica/populacao/contagem2007/popmunic2007layoutTC
U14112007.xls> Acesso em: 17 jun. 2012d.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Estimativa da População
2005. Disponível em:
<ftp://ftp.ibge.gov.br/Estimativas_Projecoes_Populacao/Estimativas_2005/UF_Municipio.zi>
Acesso em: 17 jun. 2012e.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Estimativa da População
2006. Disponível em:
<ftp://ftp.ibge.gov.br/Estimativas_Projecoes_Populacao/Estimativas_2006/UF_Municipio.zi>
Acesso em: 17 jun. 2012f.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Estimativa da População
2008. Disponível em:
<http://www.ibge.gov.br/home/estatistica/populacao/estimativa2008/POP_2008_TCU.pdf>
Acesso em: 17 jun. 2012g.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Estimativa da População
2009. Disponível em:
<http://www.ibge.gov.br/home/estatistica/populacao/estimativa2009/POP_2009_TCU.pdf>
Acesso em: 17 jun. 2012h.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Estimativa da População
2011. Disponível em:
<ftp://ftp.ibge.gov.br/Estimativas_Projecoes_Populacao/Estimativas_2011/tab_Municipios_T
CU.zip> Acesso em: 17 jun. 2012i.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Estimativas de
População. Disponível em:
<http://www.ibge.gov.br/home/estatistica/populacao/estimativa2011/default.shtm> Acesso
em: 17 jun. 2012j.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Informações Sociais,
Demográficas e Econômicas. Disponível em:
<http://www.ibge.gov.br/home/disseminacao/eventos/missao/informacoessociais.shtm>
Acesso em: 17 jun. 2012k.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. O IBGE. Disponível em:
<http://www.ibge.gov.br/home/disseminacao/eventos/missao/instituicao.shtm> Acesso em:
17 jun. 2012l.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA. Primeiros resultados do
Censo 2010. Disponível em:
106
<http://www.ibge.gov.br/home/estatistica/populacao/censo2010/primeiros_resultados/populac
ao_por_municipio_zip.shtm> Acesso em: 17 jun. 2012m.
KIMBALL, Ralph; ROSS, Margy. The data warehouse toolkit: guia completo para
modelagem dimensional. Rio de Janeiro: Campus, 2002.
MACHADO, Felipe Nery Rodrigues. Tecnologia e Projeto de Data Warehouse. 2. ed. São
Paulo, SP: Érica, 2006.
OXFORD UNIVERSITY PRESS. Oxford Dictionaries Online. Definition of suite.
Disponível em: < http://oxforddictionaries.com/definition/american_english/suite> Acesso
em: 20 out. 2012.
PENTAHO. Console do Usuário. Disponível em:
<http://demo.pentaho.com/pentaho/Home/> Acesso em: 29 abr. 2012a.
PENTAHO. Metadata Business Model Overview. Disponível em:
<http://wiki.pentaho.com/display/ServerDoc2x/01.+Metadata+Business+Model+Overview/>
Acesso em: 05 mai. 2012b.
PENTAHO. Pentaho Classic Engine. Disponível em:
<http://reporting.pentaho.com/classic_engine.php/> Acesso em: 02 mai. 2012c.
PENTAHO. Pentaho Community Home. Disponível em: <http://community.pentaho.com/>
Acesso em: 05 mai. 2012d.
PENTAHO. Pentaho Kettle Project. Disponível em: <http://kettle.pentaho.com/> Acesso
em: 24 mar. 2012e.
PENTAHO. Pentaho Mondrian Project. Disponível em: <http://mondrian.pentaho.com/>
Acesso em: 24 mar. 2012f.
PENTAHO. Pentaho Report Designer. Disponível em:
<http://reporting.pentaho.com/report_designer.php/> Acesso em: 02 mai. 2012g.
PENTAHO. Pentaho Reporting Project. Disponível em: <http://reporting.pentaho.com/>
Acesso em: 24 mar. 2012h.
PENTAHO BI Platform CE. Versão 3.9.0 [S.l.]: Source Forge, 2011. Disponível em:
<http://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/3.9.0-
stable/>. Acesso em: 17 jun. 2012.
PENTAHO Data Integration CE: Spoon. Versão 4.2.0 [S.l.]: Source Forge, 2011. Disponível
em: <http://sourceforge.net/projects/pentaho/files/Data%20Integration/4.2.0-stable/>. Acesso
em: 17 jun. 2012.
PENTAHO Design Studio CE. Versão 4.0.0 [S.l.]: Source Forge, 2011. Disponível em:
<http://sourceforge.net/projects/pentaho/files/Design%20Studio/4.0.0-stable/>. Acesso em: 17
jun. 2012.
107
PENTAHO Metadata Editor CE. Versão 4.0.0 [S.l.]: Source Forge, 2011. Disponível em:
<http://sourceforge.net/projects/pentaho/files/Pentaho%20Metadata/4.0.0-stable/>. Acesso
em: 17 jun. 2012.
PENTAHO Mondrian Schema Workbench CE. Versão 3.3.0.14703 [S.l.]: Source Forge,
2011. Disponível em:
<http://sourceforge.net/projects/mondrian/files/schema%20workbench/3.3.0-stable/>. Acesso
em: 17 jun. 2012.
PENTAHO Report Designer CE. Versão 3.8.2.GA.14313 [S.l.]: Source Forge, 2011.
Disponível em:
<http://sourceforge.net/projects/jfreereport/files/04.%20Report%20Designer/3.8.2-stable/>.
Acesso em: 17 jun. 2012.
POSTGRESQL. JDBC Driver. Disponível em: < http://jdbc.postgresql.org/download.html>
Acesso em: 17 jun. 2012.
SCHEPS, Swain. Business Intelligence for Dummies. 1. ed. Indianapolis, Indiana, USA:
Wiley Publishing, 2008.
SILVA, E.L. da; MENEZES, E. M. Metodologia da Pesquisa e elaboração de Dissertação.
4a Ed. UFSC, Florianópolis, 2005.
THOMSEN, C.; PEDERSEN, T. B. A Survey of Open Source Tools for Business
Intelligence. International Journal of Data Warehousing and Mining, Hershey, PA, USA.
IGI Global. v. 5, n. 3, p.56-75. 2009.
TURBAN, E. et al. Business Intelligence: Um Enfoque Gerencial para a Inteligência do
Negócio. 1. ed. Porto Alegre: ARKMED, 2008.
WEBER, Steven. The success of open source. vol. 368. Cambridge, MA, USA: Harvard
University Press, 2003.
WITHEE, Ken. Microsoft Business Intelligence for Dummies. 1ª ed. Indianapolis, Indiana,
USA: Wiley Publishing, 2010.
WOODSIDE, Joseph M. Business Intelligence and Learning, Drivers of Quality and
Competitive Performance. 2010. 197 f. Tese (Doutorado)-Cleveland State University,
Cleveland, OH, EUA, 2010. Disponível em: <http://etd.ohiolink.edu/send-pdf.cgi/Joseph
Woodside M.pdf?csu1304981512>. Acesso em: 30 mar. 2012.
109
APÊNDICE A – Script SQL para Criação do Data Warehouse
CREATE TABLE di_tempo (
seq_tempo SERIAL NOT NULL,
ano INTEGER,
PRIMARY KEY(seq_tempo)
);
CREATE TABLE di_projeto (
seq_projeto SERIAL NOT NULL,
cod_funcao BIGINT,
nme_funcao VARCHAR(400),
cod_sub_funcao BIGINT,
nme_sub_funcao VARCHAR(400),
cod_programa BIGINT,
nme_programa VARCHAR(400),
cod_acao BIGINT,
nme_acao VARCHAR(400),
nme_ling_cidada VARCHAR(400),
PRIMARY KEY(seq_projeto)
);
CREATE TABLE di_geo (
seq_geo SERIAL NOT NULL,
cod_mun_ibge INTEGER,
cod_mun_ptransp INTEGER,
nme_municipio VARCHAR(150),
cod_uf INTEGER,
sigla_uf VARCHAR(2),
nme_uf VARCHAR(100),
cod_regiao INTEGER,
nme_regiao VARCHAR(50),
cod_meso INTEGER,
nme_meso VARCHAR(100),
cod_micro INTEGER,
nme_micro VARCHAR(100),
PRIMARY KEY(seq_geo)
);
CREATE TABLE ft_populacao (
seq_tempo INTEGER NOT NULL,
seq_geo INTEGER NOT NULL,
qtd_populacao INTEGER,
vl_transf_habitante DOUBLE PRECISION,
PRIMARY KEY(seq_tempo, seq_geo),
FOREIGN KEY(seq_tempo) REFERENCES di_tempo(seq_tempo),
FOREIGN KEY(seq_geo)
REFERENCES di_geo(seq_geo)
);
CREATE INDEX ft_populacao_FKIndex1 ON ft_populacao (seq_tempo);
CREATE INDEX ft_populacao_FKIndex2 ON ft_populacao (seq_geo);
CREATE INDEX IFK_Rel_10 ON ft_populacao (seq_tempo);
CREATE INDEX IFK_Rel_11 ON ft_populacao (seq_geo);
110
CREATE TABLE ft_recurso_transferido (
seq_geo INTEGER NOT NULL,
seq_tempo INTEGER NOT NULL,
seq_projeto INTEGER NOT NULL,
vl_transferido DOUBLE PRECISION,
PRIMARY KEY(seq_geo, seq_tempo, seq_projeto),
FOREIGN KEY(seq_geo) REFERENCES di_geo(seq_geo),
FOREIGN KEY(seq_tempo) REFERENCES di_tempo(seq_tempo),
FOREIGN KEY(seq_projeto) REFERENCES di_projeto(seq_projeto)
);
CREATE INDEX ft_recurso_transferido_FKIndex1 ON ft_recurso_transferido (seq_geo);
CREATE INDEX ft_recurso_transferido_FKIndex2 ON ft_recurso_transferido (seq_tempo);
CREATE INDEX ft_recurso_transferido_FKIndex3 ON ft_recurso_transferido (seq_projeto);
CREATE INDEX IFK_Rel_07 ON ft_recurso_transferido (seq_geo);
CREATE INDEX IFK_Rel_08 ON ft_recurso_transferido (seq_tempo);
CREATE INDEX IFK_Rel_09 ON ft_recurso_transferido (seq_projeto);
111
APÊNDICE B – Script PL/pgSQL Auxiliar para Execução dos Gráficos
Os scripts abaixo são todos functions e realizam apenas consultas, com o objetivo
de facilitar a criação dos gráficos com a ferramenta Pentaho Design Studio.
.......................................................................................................................................................
CREATE OR REPLACE FUNCTION sem_acento(text)
RETURNS text AS
$BODY$
SELECT translate( $1, text 'åáàãâäéèêëíìîïóòõôöúùüûçÿýñÅÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇÝÑ', text
'aaaaaaeeeeiiiiooooouuuucyynAAAAAAEEEEIIIIOOOOOUUUUCYN')
$BODY$
LANGUAGE sql VOLATILE STRICT;
CREATE OR REPLACE FUNCTION total_populacao_meso_regiao(siglauf character varying, mesoregiao
character varying, valano integer)
RETURNS bigint AS
$BODY$
DECLARE
total BIGINT;
BEGIN
select sum(ep.qtd_populacao) INTO total from ft_populacao ep
inner join di_geo eg on ep.seq_geo=eg.seq_geo
inner join di_tempo et on ep.seq_tempo=et.seq_tempo
where lower(eg.sigla_uf) = lower(siglaUf) and
lower(sem_acento(eg.nme_meso))=lower(sem_acento(mesoRegiao))
and et.ano = valAno;
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_populacao_micro_regiao(siglauf character varying, mesoregiao
character varying, microregiao character varying, valano integer)
RETURNS bigint AS
$BODY$
DECLARE
total BIGINT;
BEGIN
select sum(ep.qtd_populacao) INTO total from ft_populacao ep
inner join di_geo eg on ep.seq_geo=eg.seq_geo
inner join di_tempo et on ep.seq_tempo=et.seq_tempo
where lower(eg.sigla_uf) = lower(siglaUf) and
lower(sem_acento(eg.nme_meso))=lower(sem_acento(mesoRegiao))
and lower(sem_acento(eg.nme_micro))=lower(sem_acento(microRegiao))
and et.ano = valAno;
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
112
CREATE OR REPLACE FUNCTION total_populacao_municipio(seqgeo integer, valano integer)
RETURNS bigint AS
$BODY$
DECLARE
total BIGINT;
BEGIN
select sum(ep.qtd_populacao) INTO total from ft_populacao ep
inner join di_geo eg on ep.seq_geo=eg.seq_geo
inner join di_tempo et on ep.seq_tempo=et.seq_tempo
where eg.seq_geo = seqGeo
and et.ano = valAno;
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_populacao_regiao(nomeregiao character varying, valano integer)
RETURNS bigint AS
$BODY$
DECLARE
total BIGINT;
BEGIN
select sum(ep.qtd_populacao) INTO total from ft_populacao ep
inner join di_geo eg on ep.seq_geo=eg.seq_geo
inner join di_tempo et on ep.seq_tempo=et.seq_tempo
where lower(eg.nme_regiao) = lower(nomeRegiao) and et.ano = valAno;
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_populacao_uf(siglauf character varying, valano integer)
RETURNS bigint AS
$BODY$
DECLARE
total BIGINT;
BEGIN
select sum(ep.qtd_populacao) INTO total from ft_populacao ep
inner join di_geo eg on ep.seq_geo=eg.seq_geo
inner join di_tempo et on ep.seq_tempo=et.seq_tempo
where lower(eg.sigla_uf) = lower(siglaUf) and et.ano = valAno;
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_meso_regiao(siglauf character varying, mesoregiao
character varying, valano integer)
RETURNS numeric AS
$BODY$
DECLARE
total NUMERIC;
BEGIN
select sum(x.vl_transferido) INTO total from ft_recurso_transferido x
113
inner join di_geo y on y.seq_geo=x.seq_geo
inner join di_tempo z on z.seq_tempo=x.seq_tempo
where lower(y.sigla_uf) = lower(siglaUf) and z.ano = valAno and
lower(sem_acento(y.nme_meso))=lower(sem_acento(mesoRegiao));
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_micro_regiao(siglauf character varying, mesoregiao
character varying, microregiao character varying, valano integer)
RETURNS numeric AS
$BODY$
DECLARE
total NUMERIC;
BEGIN
select sum(x.vl_transferido) INTO total from ft_recurso_transferido x
inner join di_geo y on y.seq_geo=x.seq_geo
inner join di_tempo z on z.seq_tempo=x.seq_tempo
where lower(y.sigla_uf) = lower(siglaUf) and z.ano = valAno and
lower(sem_acento(y.nme_meso))=lower(sem_acento(mesoRegiao))
and lower(sem_acento(y.nme_micro))=lower(sem_acento(microRegiao));
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_estado(regiaoparam character varying)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select CAST(sem_acento(g.nme_uf) as VARCHAR) as REGIAO,
t.ano as ANO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where g.nme_uf is not null and lower(g.nme_regiao)=lower(regiaoParam)
group by t.ano, REGIAO, g.sigla_uf
order by t.ano ASC, REGIAO;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_estado(regiaoparam character varying, valano
integer)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select CAST(sem_acento(g.nme_uf) as VARCHAR) as REGIAO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO,
total_populacao_uf(g.sigla_uf, t.ano) as POPULACAO,
114
CAST(sum(r.vl_transferido)/total_populacao_uf(g.sigla_uf, t.ano) as BIGINT) as
VALOR_TRANS_HAB_ANO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where g.nme_uf is not null and lower(g.nme_regiao)=lower(regiaoParam)
and t.ano = valAno
group by REGIAO, g.sigla_uf, t.ano
order by REGIAO;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_meso_regiao(siglauf character varying)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select CAST(sem_acento(g.nme_meso) as VARCHAR) as REGIAO,
t.ano as ANO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where g.nme_meso is not null
and g.sigla_uf = siglaUf
group by t.ano, g.sigla_uf, REGIAO
order by t.ano, REGIAO;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_meso_regiao(siglauf character varying, valano
integer)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select CAST(sem_acento(g.nme_meso) as VARCHAR) as MESOREGIAO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO,
total_populacao_meso_regiao(g.sigla_uf, g.nme_meso, t.ano) as POPULACAO,
CAST(sum(r.vl_transferido)/total_populacao_meso_regiao(g.sigla_uf, g.nme_meso, t.ano) as BIGINT)
as VALOR_TRANS_HAB_ANO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where g.nme_meso is not null
and t.ano = valAno and g.sigla_uf = siglaUf
group by g.sigla_uf, g.nme_meso, t.ano
order by g.nme_meso;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
115
CREATE OR REPLACE FUNCTION total_transferido_por_micro_regiao(siglauf character varying,
mesoparam character varying, valano integer)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select CAST(sem_acento(g.nme_micro) as VARCHAR) as MICROREGIAO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO,
total_populacao_micro_regiao(g.sigla_uf, g.nme_meso, g.nme_micro, t.ano) as POPULACAO,
CAST(sum(r.vl_transferido)/total_populacao_micro_regiao(g.sigla_uf, g.nme_meso, g.nme_micro,
t.ano) as BIGINT) as VALOR_TRANS_HAB_ANO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where g.nme_meso is not null
and t.ano = valAno and lower(g.sigla_uf) = lower(siglaUf) and sem_acento(lower(g.nme_meso)) =
sem_acento(lower(mesoParam))
group by g.sigla_uf, g.nme_meso, g.nme_micro, t.ano
order by g.nme_micro;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_micro_regiao(siglauf character varying,
mesoparam character varying)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select CAST(sem_acento(g.nme_micro) as VARCHAR) as REGIAO,
t.ano as ANO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where g.nme_meso is not null
and lower(g.sigla_uf) = lower(siglaUf) and sem_acento(lower(g.nme_meso)) =
sem_acento(lower(mesoParam))
group by g.sigla_uf, g.nme_meso, g.nme_micro, t.ano
order by t.ano, REGIAO;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_municipio(siglauf character varying, mesoparam
character varying, microparam character varying)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select CAST(sem_acento(g.nme_municipio) as VARCHAR) as REGIAO,
t.ano as ANO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
116
where g.nme_meso is not null
and lower(g.sigla_uf) = lower(siglaUf) and sem_acento(lower(g.nme_meso)) =
sem_acento(lower(mesoParam))
and sem_acento(lower(g.nme_micro)) = sem_acento(lower(microParam))
group by g.sigla_uf, g.nme_meso, g.nme_micro, g.nme_municipio, g.seq_geo, t.ano
order by t.ano, REGIAO;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_municipio(siglauf character varying, mesoparam
character varying, microparam character varying, valano integer)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select CAST(sem_acento(g.nme_municipio) as VARCHAR) as MUNICIPIO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO,
total_populacao_municipio(g.seq_geo, t.ano) as POPULACAO,
CAST(sum(r.vl_transferido)/total_populacao_municipio(g.seq_geo, t.ano) as BIGINT) as
VALOR_TRANS_HAB_ANO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where g.nme_meso is not null
and t.ano = valAno and lower(g.sigla_uf) = lower(siglaUf) and sem_acento(lower(g.nme_meso)) =
sem_acento(lower(mesoParam))
and sem_acento(lower(g.nme_micro)) = sem_acento(lower(microParam))
group by g.sigla_uf, g.nme_meso, g.nme_micro, g.nme_municipio, g.seq_geo, t.ano
order by g.nme_municipio;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_regiao()
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select g.nme_regiao AS REGIAO,
t.ano as ANO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where nme_regiao is not null
group by t.ano, REGIAO
order by t.ano ASC, REGIAO;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_por_regiao(valano integer)
117
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY select g.nme_regiao AS REGIAO,
CAST(sum(r.vl_transferido)/1000 as BIGINT) as TOTAL_TRANSFERIDO,
total_populacao_regiao(g.nme_regiao, t.ano) as POPULACAO,
CAST(sum(r.vl_transferido)/total_populacao_regiao(g.nme_regiao, t.ano) as BIGINT) as
VALOR_TRANS_HAB_ANO
from public.ft_recurso_transferido r
inner join public.di_geo g on g.seq_geo=r.seq_geo
inner join public.di_tempo t on t.seq_tempo=r.seq_tempo
where nme_regiao is not null
and t.ano = valAno
group by REGIAO, t.ano
order by REGIAO;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_regiao(nomeregiao character varying, valano integer)
RETURNS numeric AS
$BODY$
DECLARE
total NUMERIC;
BEGIN
select sum(x.vl_transferido) INTO total from ft_recurso_transferido x
inner join di_geo y on y.seq_geo=x.seq_geo
inner join di_tempo z on z.seq_tempo=x.seq_tempo
where lower(y.nme_regiao) = lower(nomeRegiao) and z.ano = valAno;
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
CREATE OR REPLACE FUNCTION total_transferido_uf(siglauf character varying, valano integer)
RETURNS numeric AS
$BODY$
DECLARE
total NUMERIC;
BEGIN
select sum(x.vl_transferido) INTO total from ft_recurso_transferido x
inner join di_geo y on y.seq_geo=x.seq_geo
inner join di_tempo z on z.seq_tempo=x.seq_tempo
where lower(y.sigla_uf) = lower(siglaUf) and z.ano = valAno;
RETURN total;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
119
ANEXO A – Exemplo de Origem dos Dados
Arquivo CSV com os códigos do IBGE das regiões, unidades da federação, meso
regiões, micro regiões e municípios brasileiros de forma hierárquica.
Arquivo XLS com dados populacionais de todos os municípios brasileiros para o
ano de 2007.