Este documento descreve o desenvolvimento e implementação de um data warehouse utilizando o software Pentaho para armazenar informações sobre resíduos sólidos coletados em Porto Velho. O projeto envolve modelagem dimensional, criação de tabelas no MySQL e processos ETL para carregar dados nas dimensões e fatos.
1. ______________________________
1 Discente do Curso de Ciência da Computação da Universidade Federal de Rondônia
2 Professora Orientadora do Curso de Ciência da Computação da Universidade Federal de Rondônia
DATA WAREHOUSE: DESENVOLVIMENTO UTILIZANDO O SOFTWARE
PENTAHO
Darlene Figueiredo Borges Coelho1
darlene@unir.br
Rodrigo da Silveira2
rodrigosilveirax@gmail.com
Resumo
Este trabalho apresenta o desenvolvimento e a implementação de um Data Warehouse,
utilizando técnicas de ETL e o software PENTAHO. Consiste ainda na elaboração de
uma maneira mais eficiente para gerenciar as informações a cerca dos dados necessários
para o controle de resíduos da cidade de Porto Velho.
Palavras-chave: Data Warehouse, ETL, PENTAHO
1 INTRODUÇÃO
As organizações possuem um vasto volume de dados importantes armazenados
de diversas formas e, geralmente, é muito difícil reuni-los de maneira integrada. Assim,
nesse cenário torna-se complexo realizar análise das informações das organizações e
consequentemente chegam a ser pouco aproveitadas para dar suporte à decisões.
Com a finalidade de minimizar essas dificuldades, no centro desse ambiente,
está o conceito de Data Warehouse. A idéia do Data Warehouse é reunir em um único
local, somente os dados considerados úteis no processo decisório.
Este trabalho tem como objetivo principal o desenvolvimento e a
implementação de um Data Warehouse para armazenar as informações sobre os resíduos
sólidos do município de Porto Velho-RO., utilizando para isso o software Pentaho.
As informações sobre resíduos sólidos são procedentes da Secretaria Municipal
de Serviços Básicos de Porto Velho-RO (SEMUSB). Dentre as inúmeras atividades, a
SEMUSB é responsável pela coleta de resíduos sólidos (cimento, madeira, pedra, restos
de construção civil, etc.) no município de Porto Velho/RO. A criação do Data
Warehouse irá possibilitar que a SEMUSB tenha controle sobre resíduos sólidos
coletados.
Todo a modelagem e implementação do Data Warehouse está baseada em
exemplos de dados coletados da SEMUSB para fins de aprendizado exclusivamente
acadêmico.
As técnicas e softwares que cobrem todas as etapas do desenvolvimento e
implementação do Data Warehouse foram realizadas através da utilização de ETL e do
software PENTAHO.
1.1 PRINCIPAIS CONCEITOS
a) Data Warehouse
2. Segundo Date (2004) “Data Warehouse é um deposito de dados orientado por
assunto, integrado, não volátil, variável com o tempo, para apoiar as decisões
gerenciais”.
b) ETL, segundo De Paula:
O processo de ETL (Extract, Transform and Load) é um processo
que exige esforço e a maior parte do tempo de construção de um Data
warehouse, este processo vai extrair dados de fontes de dados heterogêneas e
tem que alimentar o Data Warehouse de forma homogênea e concisa, pois vai
servir de base para gerar relatórios e gráficos de apoio à decisão para a
gerencia da corporação e não pode trazer resultados errôneos.
c) Software Pentaho.
Segundo a Pentaho: “Pentaho é uma abrangente plataforma para integração de
dados e Business Analytics (Inteligência Empresarial)”.
É um software desenvolvido em Java, que funciona como uma plataforma
completa para solução de Business Inteligence (Inteligência Empresarial). Que envolve
no seu desenvolvimento e execução as seguintes áreas: ETL (Extraction, Transformation
and Load), OLAP, Reporting, Dashboard, e Data-Mining (Mineração de Dados)
Possui os seguintes componentes:
- Pentaho Data Integration (também conhecido como PDI ou Kettle)
Ferramenta de ETL.
- Pentaho Workbench Schema (também conhecido como PSW)
Ferramenta para criação e publicação de Cubos OLAP no Sevidor OLAP.
- Pentaho BI Server/Pentaho Analysis Services (também conhecido como
Mondrian)
Ferramenta utilizada como Servidor OLAP.
- Pentaho Report Design (também conhecido como PRD)
Ferramenta para criação de relatórios e consultas.
- Pentaho BI Server/Ctools
Ferramenta para criação de dashboards.
- Pentaho Data Mining (também conhecido como Weka)
Ferramenta para Data Mining (Mineração de Dados).
Pentaho possui duas versões, que são: a Pentaho Enterprise Edition (versão
licenciada, paga) e a Pentaho Comunity Edition (versão livre, open source, não paga).
Neste trabalho utilizou-se a Pentaho Comunity Edition.
d) MySQL, segundo a ORACLE BRASIL:
MySQL é o banco de dados de código aberto mais
popular do mundo e possibilita a entrega econômica de
aplicativos de banco de dados confiáveis, de alto desempenho e
redimensionáveis, com base na Web.
e) OLAP, segundo De Campos:
OLAP é um conceito de interface com o usuário que proporciona a capacidade
de ter idéias sobre os dados, permitindo analisá-los profundamente em
diversos ângulos. As funções básicas do OLAP são:
• Visualização multidimensional dos dados;
• Exploração;
• Rotação;
• Vários modos de visualização.
O OLAP e o Data Warehouse são destinados a trabalharem juntos, enquanto
o DW armazena as informações de forma eficiente, o OLAP deve recuperá-
3. las com a mesma eficiência, porém com muita rapidez. As duas tecnologias
se complementam, ao ponto de que um Data Warehouse para ser bem
sucedido, já na sua concepção, deve levar em consideração o que se deseja
apresentar na interface OLAP.
2 DESENVOLVIMENTO DE UM DATA WAREHOUSE COM DADOS DE
RESÍDUOS SÓLIDOS
2.1 LEVANTAMENTOS DOS DADOS
Os dados de resíduos sólidos são provenientes da Secretaria Municipal de
Serviços Básicos de Porto Velho-RO (SEMUSB), que estão registrados em um
formulário de papel de forma manual. Isto é, o usuário utiliza uma caneta para registrar
os dados em um formulário de papel.
Como não possuem uma fonte de dados digitais, então todos os dados coletados
foram digitados em uma única planilha eletrônica do padrão Microsoft Excel.
Posteriormente, essa planilha eletrônica foi convertida para um arquivo padrão CSV Text
como mostra a figura 1.
Figura 1 - Arquivo padrão CSV Text dos dados da SEMUSB
Fonte: elaborada pelo autor
2.2 ANÁLISES DOS DADOS
Após o procedimento de criação do arquivo padrão CSV Text, foi feita a análise
dos dados e o desenvolvimento do dicionário de dados. Para o dicionário de dados
(figura 2) foi criado um arquivo (dicionario_de_dados-semusb_residuos.xlsx) que
contempla as definições e representações de elementos de dados obtidos a partir da
coleta e levantamento das informações sobre os dados de resíduos sólidos da SEMUSB.
4. Figura 2 - Dicionário de Dados:
Fonte: elaborada pelo autor
2.3 MODELAGEM
A seguir foi elaborado o Modelo Dimensional do Data Warehouse (Figura 3),
sendo para isso utilizado o software denominado Power Architect (SQL Power
Software), que é uma ferramenta utilizada para projetar o Modelo Dimensional do Data
Warehouse.
Figura 3: Modelo Dimensional
Fonte: elaborada pelo autor
5. 2.4 IMPLEMENTAÇÃO DO DATA WAREHOUSE
dados do Data Warehouse são armazenados no Sistema Gerenciador de Banco
de Dados (SGBD) chamado de MySQL.
Primeiramente foi criado no MySQL um banco de dados com o nome de
SEMUSBDW. Através do software Power Architect, de forma automática, é possível
criar o script SQL para a geração de todas as tabelas previamente modeladas. Assim, a
partir da console do MySQL, foi executado o script do SQL para criação dessas tabelas.
De forma conclusiva, tem-se o Script SQL (Figura 4) para criação do banco de
dados do Data Warehouse [semusbdw]:semusbdw_cria-db.sql.
Figura 4: Criação do banco de dados [semusbdw] no MySQL
Fonte: elaborada pelo autor
Em seguida, foi utilizado o software Power Architect para criar
automaticamente o script SQL (Figura 5), envolvendo todas as definição das tabelas para
posteriormente os dados serem armazenados no Data Warehouse.
Figura 5: Criação das tabelas do banco de dados [semusbdw] no MySQL
Fonte: elaborada pelo autor
2.5 PROCESSO ETL
Nesta fase do desenvolvimento é necessário criar e executar o processo de ETL
para ler toda a fonte de dados; tratar os dados lidos (limpa, calcula, seleciona, trata) e
posteriormente, gravar os dados no Banco de Dados do Data Warehouse [semusbdw].
O processo de ETL foi criado e executado utilizando o software denominado
Pentaho Data Integration (Kettle). Tem-se um processo de ETL para carregar cada tabela
do Modelo Dimensional, conforme a seguir apresentado:
Processo de ETL para carregar a tabela [d_data]:
t_d_data.ktr
Processo de ETL para carregar a tabela [d_placa]:
t_d_placa.ktr
Processo de ETL para carregar a tabela [d_setor]:
t_d_setor.ktr
Processo de ETL para carregar a tabela [d_enc_aterro_sanit] :
t_d_enc_aterro_sanit.ktr
Processo de ETL para carregar a tabela [d_balanc_semusp]:
t_d_balanc_semusp.ktr
mysql> create database semusbdw;
Query OK, 1 row affected (0.03 sec)
mysql> use semusbdw;
Database changed
mysql> . Semusbdw_cria-db.sql
6. Processo de ETL para carregar a tabela [d_responsavel_destinacao_final]:
t_d_responsavel_destinacao_final.ktr
Processo de ETL para carregar a tabela [d_tipo_residuo]:
t_d_tipo_residuo.ktr
Processo de ETL para carregar a tabela [d_origem]:
t_d_origem.ktr
Processo de ETL para carregar a tabela [f_volume]:
t_f_volume.ktr
Exemplos: Descrição de processos de ETL
"
+-> [t_d_data.ktr]
Efetua a carga da tabela [d_data].
Efetua a carga da [Dimensão Data].
Descrição do processo de ETL [t_d_data.ktr]:
1) [10000 dias: 25 anos]
O tipo do Step é [Generate Rows].
Gera 10000 valores.
O tipo do valor gerado é [date].
O formato do valor é [aaaammdd].
Cada valor gerado representará uma data ou um dia.
Os 10000 dias representarão 25 anos.
O primeiro dia gerado será o dia [20100101].
O último dia gerado será o dia [20370518].
Portanto, a dimensão [d_data] estará apta a tratar dados movimentados entre
01/01/2010 a 18/05/2037.
2) Days_since
O tipo do Step é [Obtêm o valor da sequecia do banco de dados].
Controla a sequência do banco de dados.
3) [Calc Date]
O tipo do Step é [Calculadora].
Calcula:
- O [ano] da [Data].
- O [mês] da [Data].
- O [dia do ano] da data.
- O [dia do mês] da data.
- O [dia da semana] da data.
- A [semana do ano] da data.
4) [Quarter]
O tipo do Step é [Value Mapper].
Calcula a que [trimestre] a data pertence.
5) [DayOfWeekDesc]
O tipo do Step é [Stream Value Lookup].
Define a [descrição do dia da semana] da data.
7. 6) [MonthDesc]
O tipo do Step é [Stream Value Lookup].
Define a [descrição do mês] da data.
7) [Select/Rename values]
O tipo do Step é [Select values].
Renomeia os nomes das variáveis para os respectivos nomes da tabela [d_data].
8) [d_data]
O tipo do Step é [Saída a Tabela].
Grava os dados na tabela [d_data]. Isto é, gera a dimensão [d_data].
+-> [t_d_placa.ktr]
Efetua a carga da tabela [d_placa].
Efetua a carga da [Dimensão Placa].
Descrição do processo de ETL [t_d_placa.ktr]:
1) [CSV file Input]
O tipo do Step é [CSV Input].
Lê os dados da fonte de dados.
2) [Select values]
O tipo do Step é [Select/Rename values].
Remove os dados que não serão utilizados.
3) [Uppercase]
O tipo do Step é [Calculadora].
Caso a [placa] possua letras em minúscula, converte as letras para maiúsculo.
4) [Carrega Dimensão Placa]
O tipo do Step é [Dimension Lookup/Update].
Grava os dados na tabela [d_placa]. Isto é, gera a dimensão [d_placa].
+-> [t_d_setor.ktr], [t_d_enc_aterro_sanit.ktr], [t_d_balanc_semusp.ktr],
[t_d_responsavel_destinacao_final.ktr], [t_d_tipo_residuo.ktr] e [t_d_origem.ktr]
Os processo de ETL [t_d_setor.ktr], [t_d_enc_aterro_sanit.ktr],
[t_d_balanc_semusp.ktr], [t_d_responsavel_destinacao_final.ktr],
[t_d_tipo_residuo.ktr] e [t_d_origem.ktr] seguem a mesma lógica do processo de
ETL [t_d_placa.ktr ].
+-> [t_f_volume.ktr]
Efetua a carga da tabela [f_volume].
Efetua a carga da [Fato Volume].
Descrição do processo de ETL [t_f_volume.ktr]:
1) [CSV file Input]
O tipo do Step é [CSV Input].
Lê os dados da fonte de dados.
2) [Data yyyy/mm/dd]
O tipo do Step é [Calculadora].
Converte a data do formato dd/mm/aaaa para o formato aaaa/mm/dd.
8. 3) [Uppercase]
O tipo do Step é [Calculadora].
Caso os campos possuam letras minúsculas, converte as letras para maiúsculo.
4) [Dimensiona Placa]
O tipo do Step é [Dimension Lookup/Update].
Localiza a [placa] na tabela [d_placa] e descobre o respectivo SK.
5) [Dimensiona Setor]
O tipo do Step é [Dimension Lookup/Update].
Localiza o [setor] na tabela [d_setor] e descobre o respectivo SK.
6) [Dimensiona Enc_aterro_sanit]
O tipo do Step é [Dimension Lookup/Update].
Localiza o [enc_aterro_sanit] na tabela [d_enc_aterro_sanit] e descobre o
respectivo SK.
7) [Dimensiona Balanc_semusp]
O tipo do Step é [Dimension Lookup/Update].
Localiza o [balanc_semusp] na tabela [d_balanc_semusp] e descobre o respectivo
SK.
8) [Dimensiona Responsavel_destinacao_final]
O tipo do Step é [Dimension Lookup/Update].
Localiza o [responsavel_destinacao_final] na tabela
[d_responsavel_destinacao_final] e descobre o respectivo SK.
9) [Dimensiona Tipo_residuo]
O tipo do Step é [Dimension Lookup/Update].
Localiza o [tipo_residuo] na tabela [d_tipo_residuo] e descobre o respectivo SK.
10) [Dimensiona Origem]
O tipo do Step é [Dimension Lookup/Update].
Localiza o [origem] na tabela [d_origem] e descobre o respectivo SK.
11) [Dimensiona Data]
O tipo do Step é [Lookup de valor do banco de dados].
Localiza a [data] na tabela [d_data] e descobre o respectivo SK.
12) [Grava Fato]
O tipo do Step é [Insert/Update].
Grava dados na tabela fato [f_volume].
o Fato Volume é relacionado com as respectivas Dimensões em função das SK's.
"
A figura 6 exemplifica um processo de Processo de ETL para carregar a tabela
[d_data]: t_d_data.ktr.
9. Figura 6 - t_d_data.ktr
Fonte: elaborada pelo autor
Depois que todo processo de ETL foi realizado sobre os dados, então faz-se a
criação do Cubo OLAP, tendo como idéia principal disponibilizar o acesso ao Data
Warehouse aos usuários via Cubo OLAP. Para a criação d o Cubo OLAP utilizou-se o
software denominado Pentaho Schema Workbench., conforme Figura 7
Figura 7 - OLAP Schema
Fonte: elaborada pelo autor
10. 3. RESULTADOS
O Data Warehouse está criado e pronto para que os usuários possam usá-lo. O
usuário poderá consultar o Data Warehouse utilizando as seguintes ferramentas
encontradas no software Pentaho:
Pentaho BI Server/Pentaho User Console (PUC):
Ferramentas OLAP (OLAP Analysis )
Ferramentas de consulta (Dashboard)
Ferramentas de emissão de relatórios (Report)
A Figura 8 exemplifica um Navegador OLAP (denominado Saiku) analisando
dados do Cubo OLAP
Figura 8 - OLAP Navegador
Fonte: elaborada pelo autor
REFERÊNCIAS
DATE, C. J. Introdução a Sistemas de Bancos de Dados. 8ª Ed., Rio de Janeiro: Campus,
2004.
DE CAMPOS, Wylton Luis Moura, “Conceitos Básicos Sobre OLAP”. Disponível em
http://www.devmedia.com.br/conceitos-basicos-sobre-olap/12523#ixzz3lLUghe8S.
Acessado em 25 de agosto de 2015, às 20:05hs.
DE PAULA, Welington Lourenco Melo De Paula. “Extract, Transformation and Load
(ETL) - Ferramentas BI”. Disponível em http://www.devmedia.com.br/extract-
transformation-and-load-etl-ferramentas-bi/24408#ixzz3lLRUg7Ro. Acessado em 10 de
julho de 2015, às 15:00hs.
ORACLE BRASIL. Disponível Em
http://www.oracle.com/br/products/mysql/overview/index.html. Acessado em 08 de
maio de 2015, às 21:00hs.
11. PENTAHO, “A Hitachi Data Systems Company”, Disponível em: <
http://www.pentaho.com/>, acesso em: 05 mai. 2015 às 10hs.
SQL Power Software, “Data Modeling & Profiling Tool: SQL Power Architect”.
Disponível em (http://www.sqlpower.ca/page/architect). Acessado em 03 de abril de
2015 às 10:32hs.