escola superior aberta do brasil – esab curso de engenharia de

Propaganda
ESCOLA SUPERIOR ABERTA DO BRASIL – ESAB
CURSO DE ENGENHARIA DE SISTEMAS
RACHEL TEREZA MENEGAZZO
IMPLEMENTANDO UMA SOLUÇÃO OLAP UTILIZANDO SOFTWARE
LIVRE
CURITIBA – PR
2009
RACHEL TEREZA MENEGAZZO
IMPLEMENANDO UMA SOLUÇÃO OLAP UTILIZANDO SOFTWARE
LIVRE
Monografia apresentada à ESAB – Escola
Superior Aberta do Brasil sob orientação da
Professora Beatriz Christo Gobbi.
CURITIBA – PR
2009
RACHEL TEREZA MENEGAZZO
IMPLEMENTANDO UMA SOLUÇÃO OLAP UTILIZANDO SOFTWARE
LIVRE
Aprovada em 06 de Abril de 2009.
_________________________________
_________________________________
_________________________________
CURITIBA – PR
2009
Á Deus pela vida. A meus pais pelo exemplo e
sabedoria. Aos meus filhos Guilherme, Helena
e Marcelo que sempre me apoiaram em todas
as minhas iniciativas.
“Só quem sonha o azul do vôo sabe o seu
poder de pássaro. ”
(Thiago de Mello)
RESUMO
As técnicas de construção de data warehouse (DW) e uso ferramentas on-line
analytical processing (OLAP) para permitir o armazenamento e consulta a
informações estratégicas como apoio ao processo de tomada de decisão têm
despertado o interesse de organizações desde os anos 90. De encontro a essa
tendência, este estudo tem como objetivo conhecer e apresentar os conceitos
necessários para implementação de uma solução OLAP com uso de ferramentas
Open Source. Como etapas para alcançar este objetivo, inicialmente foi feita uma
abordagem dos conceitos envolvidos e relacionados a OLAP e na sequência os
softwares escolhidos para montagem do ambiente operacional foram apresentados
conforme utilização específicas através de um estudo de caso. Os autores
consultados destacam que OLAP é uma tecnologia recente que tem recebido
desenvolvimentos significativos nos últimos 10 anos e que apresenta uma grande
diversidade nas possibilidades de aplicação, ficando o sucesso do empreendimento
a cargo das decisões a serem tomadas quanto a componentes, arquitetura e projeto.
A pesquisa mostra também que existem opções de uso de software livre,
possibilitando uma escolha por parte das empresas e órgãos do governo em adotar
outras soluções tecnológicas além dos softwares proprietários, usufluindo desta
forma de tecnologias de ponta a preços acessíveis para alavancar seu
desenvolvimento.
Conclui-se colocando que o trabalho contribui para o
conhecimento da tecnologia de data warehouse e ferramentas OLAP e sua
aplicação no processo de suporte a decisão, possibilitando ao usuário chegar a
resultados significativos através de consultas complexas feitas de modo
relativamente simples utilizando ferramentas Open Source.
LISTA DE FIGURAS
Figura 1 - Integração dos dados................................................................................18
Figura 2 - Elementos básicos do data warehouse.....................................................20
Figura 3 - Implementação top-down. .........................................................................25
Figura 4 - Implementação botton up..........................................................................25
Figura 5 - Modelo estrela...........................................................................................30
Figura 6 - Modelo Estrela – visão relacional..............................................................30
Figura 7 - Modelo Floco de Neve ou Snowflake........................................................31
Figura 8 – Cubo.........................................................................................................32
Figura 9 - Hierarquias................................................................................................34
Figura 10 - Exemplo de arquivo XML definindo um schema mondrian .....................41
Figura 11 - Consulta MDX .........................................................................................42
Figura 12 - Resultado da consulta MDX da figura 10. ...............................................43
Figura 13 - Extração de dados ..................................................................................47
Figura 14 - Transformação de dados ........................................................................48
Figura 15 - Script de transformação no Kettle ...........................................................48
Figura 16 - Tipo de alta..............................................................................................51
Figura 17 - Composição da dimensão tempo............................................................51
Figura 18 – Transformação para gerar a dimensão tempo........................................52
Figura 19 - Cubo emergência1.no Schema Workbench............................................53
Figura 20 - Tela do Discoverer – Cubo, medida, dimensões e montagem da consulta
..................................................................................................................................54
Figura 21 - Navigator - Seleção de filtros. .................................................................55
Figura 22 - Table viewer – Atendimento do mês de março/2008 por sexo e de 0 a 6
anos. .........................................................................................................................55
Figura 23 - Resultado de consulta em formato PDF .................................................55
Figura 24 - Gráfico da consulta visualizada na figura 22...........................................56
Figura 25 - Operação drill through.............................................................................57
Figura 26 - Operação slice and dice –perspectiva.A .................................................58
Figura 27 - Operação slice and dice – perspectiva.B ................................................58
Figura 28 - Operação slice and dice – perspectiva.C................................................58
LISTA DE QUADROS
Quadro 1 - Faixa etária de sete anos. .......................................................................49
Quadro 2 -Faixa etária de dez anos. .........................................................................49
Quadro 3 - Tempo de permanência. ..........................................................................49
Quadro 4 - Descrição dos capítulos do CID-10. ........................................................50
Quadro 5 - Motivo e tipo de alta ................................................................................51
LISTA DE SIGLAS
OLAP
On-Line Analytical Processing
OLTP
On-Line Transaction Processing
HOSPUB
Sistema de Gestão Hospitalar
DM
Data Mart
DW
Data Warehouse
ETC
Extração, Transformação e Carga de Dados
HOLAP
Hybrid On-Line Analytical Processing
MOLAP
Multidimensional On-Line Analytical Processing
MS
Microsoft
ROLAP
Relational On-Line Analytical Processing
SGBD
Sistema de Gerenciamento de Banco de Dados
SGBDR
Sistema de Gerenciamento de Banco de Dados Relacional
SQL
Structured Query Language (Linguagem de Consulta Estruturada)
XML
eXtensible Markup Language
MDX
Multidimensional Expression (Expressão Multidimensional)
API
Application Programming Interface (Interface de Programação de
Aplicativos)
JDBC
Java Data Base Conector.
CID10
Classificação Estatística Internacional de Doenças e Problemas
Relacionados à Saúde – Décima revisão.
SUMÁRIO
1
INTRODUÇÃO ................................................................................12
2
DATA WAREHOUSE.......................................................................16
2.1
CARACTERÍSTICAS ...............................................................16
2.1.1
Orientação por Assunto.....................................................................17
2.1.2
Variação no tempo .............................................................................17
2.1.3
Não volatilidade..................................................................................18
2.1.4
Integração ...........................................................................................18
2.2
COMPONENTES E ARQUITETURAS DE IMPLEMENTAÇÃO.19
2.2.1
2.2.1.1
Sistemas operacionais de origem ................................................20
2.2.1.2
Data staging area.........................................................................21
2.2.1.3
Área de apresentação de dados ..................................................22
2.2.1.4
Ferramentas de acesso a dados..................................................22
2.2.1.5
Papeis..........................................................................................23
2.2.2
3
Arquiteturas ........................................................................................23
2.3
GRANULARIDADE DE DADOS...............................................25
2.4
METADADOS...........................................................................26
MODELAGEM PARA DATA WAREHOUSE ...................................28
3.1
4
Componentes .....................................................................................19
MODELAGEM MULTIDIMENSIONAL OU DIMENSIONAL......28
3.1.1
Modelo Estrela ou Star.......................................................................29
3.1.2
Modelo floco de neve ou snowflake .................................................31
3.1.3
Cubos ..................................................................................................31
3.1.4
Fatos....................................................................................................32
3.1.5
Dimensões ..........................................................................................33
3.1.6
Medidas...............................................................................................33
3.1.7
Hierarquias .........................................................................................34
ON-LINE ANALYTICAL PROCESSING .........................................35
4.1
ARQUITETURAS .....................................................................36
4.2
OPERAÇÕES BÁSICAS OLAP ...............................................36
4.2.1
Slice-and-Dice.....................................................................................37
4.2.2
Drill Down e Roll Up ...........................................................................37
4.2.3
Drill Across .........................................................................................37
4.2.4
Drill Through.......................................................................................37
4.3
5
6
TECNOLOGIAS .......................................................................38
4.3.1
Kettle ...................................................................................................38
4.3.2
Mondrian .............................................................................................38
4.3.2.1
Camada de apresentação............................................................39
4.3.2.2
Camada Dimensional...................................................................39
4.3.2.3
Camada Estrela ...........................................................................39
4.3.2.4
Camada de armazenamento .......................................................40
4.3.3
Mondrian Schema Workbench ..........................................................41
4.3.4
Mdx (Multidimensional Expressions) ...............................................41
4.3.5
Jrubik ..................................................................................................43
4.3.6
MySql...................................................................................................44
ESTUDO DE CASO ........................................................................45
5.1
NECESSIDADE .......................................................................45
5.2
IDENTIFICANDO A FONTE DOS DADOS:..............................46
5.3
EXTRAÇÃO, TRANSFORMAÇÃO E CARGA - ETC ...............47
5.4
IMPLEMENTANDO OS CUBOS OLAP. ...................................52
5.5
CONSULTAS............................................................................53
CONCLUSÃO .................................................................................59
12
1
INTRODUÇÃO
Data Warehouse Modelagem Multidimensional On-Line Analytical Processing
Trabalhar a informação, do nível operacional ao estratégico, é um aspecto relevante
para alcançar o sucesso em todas as áreas de atuação. A necessidade de respostas
confiáveis, em tempo hábil, que retratem a realidade ou apontem caminhos futuros
tem movimentado profissionais de tecnologia da informação na busca de novas
soluções tecnológicas.
Na área da saúde, especificamente falando do Sistema Único de Saúde, onde são
utilizados uma variedade de sistemas de informação atendendo aos níveis Federal,
Estadual e Municipal, encontramos sistemas que em sua maioria utilizam diferentes
bancos de dados, transacionais, atendendo basicamente o nível operacional e
administrativo.
A decisão de escrever este trabalho foi a partir da constatação da grande dificuldade
quem encontrei como profissional da área de tecnologia da informação, diante da
necessidade de extrair dados gerenciais de bancos de dados transacionais. É
comum nesta área de atuação, Sistema Único de Saúde, encontrar em um único
ambiente operacional
integrados,
vários sistemas informatizados, quase sempre
não
atendendo basicamente as necessidades operacionais diárias e
imediatas de informação. A integração dos sistemas fica difícil e trabalhosa, visto a
diversidade de soluções implementadas ao longo do tempo, sendo muitas vezes
inviabilizada por barreiras tecnológicas e a forma como se encontram pulverizados
os sistemas nas esferas municipal, estadual e federal. Então, um simples relatório
gerencial, para ser realizado em tempo
hábil mobiliza um exército de pessoas,
utilizando recursos rudimentares e deixando no ar a incerteza dos resultados.
Por isso, o processo de extração, tratamento e armazenamento de dados, bem
como o processo de modelagem multidimensional para permitir a maximização de
consultas com o uso de ferramentas OLAP despertou grande curiosidade e
interesse.
13
Pode-se dizer que a situação encontrada no Sistema Único de Saúde é bastante
similar a descrita por Machado (2008,p.26), como justificativa para a aplicação de
tecnologia de Data Warehouse, a seguir:
Várias plataformas de hardware e software.
Constantes alterações nos sistemas transacionais corporativos.
Dificuldade acentuada na recuperação de dados históricos em períodos
superiores ao ano atual de operações.
Existência de sistemas “pacotes” de fornecedores diferentes.
Falta de padronização e integração dos dados existentes nos diversos
sistemas.
Carência de documentação e segurança no armazenamento dos dados.
Dificuldade de aplicação de sistemas EIS ou DSS devido a dependências
múltiplas de sistemas corporativos.
Tomando como base o modelo de montagem de Data Warehouse
apresentado, a empresa pode optar por construí-lo em uma base global ou
em bases teoricamente locais de acordo com as áreas de negócios.
Isso implica na utilização de arquiteturas específicas para a construção de
um Data Warehouse, as quais têm evoluído desde o princípio dos conceitos
de Data Warehouse até o momento atual sempre em busca do sucesso de
sua utilização.
Frente a este cenário, o presente trabalho tem como objetivo geral conhecer
conceitos e um conjunto de ferramentas para implementação de uma solução OLAP
(On-Line Analytical Processing), utilizando software livre.
Como etapas para
alcançar este objetivo, inicialmente é feita abordagem dos conceitos envolvidos e
relacionados a OLAP e na sequência os softwares escolhidos para montagem do
ambiente operacional são apresentados conforme utilização específicas de cada um
e demonstrados os exemplos de um estudo de caso.
Como
escopo do trabalho os processos de um Data Warehouse e ferramentas
OLAP. Como processos a extração dos dados dos sistemas legados, a organização
e integração desses dados para compor o data warehouse e o acesso aos dados
para consultas de forma rápida e extremamente flexível, auxiliando como ferramenta
de apoio a tomada de decisão.
Para exemplificar a utilização das ferramentas é apresentado um estudo de caso
sobre um hospital público, limitando o escopo de aplicação e demonstração de uso
das ferramentas ao setor de atendimento de emergência hospitalar. Por questões de
segurança das informações é utilizado uma base de dados onde os dados pessoais
14
dos pacientes, como nomes e endereços, são omitidos. O hospital em questão é o
Hospital do Trabalhador, referência em atendimentos ao trauma na região de
Curitiba, estado do Paraná, que nos últimos cinco anos vem se informatizando e
fazendo uso de um sistema de gestão hospitalar, HOSPUB, desenvolvido e
disponibilizado pelo Ministério da Saúde.
Para possibilitar consultas que atendam a níveis estratégicos da administração e
prover a direção do hospital de respostas hoje não disponíveis nos sistemas
tradicionais em tempo real, também conhecidos como On-Line Transaction
Processing (OLTP), a construção de um ambiente de data warehouse tornou-se uma
opção viável técnica e financeiramente, considerando a opção do uso de software
Open Source.
Os softwares utilizados para compor o ambiente com o propósito de demonstrar a
utilização da técnica Olap são independentes de plataforma e são:
Para o processo de extração, transformação e carga dos dados é utilizado
ferramentas do Projeto Kettle, onde
Kettle é um acrônimo para "Extraction ,
Transformation, Transportation and a Loading Data Enviroment". Como banco de
dados é utilizado o MySql e como ferramentas para modelagem e apresentação
dos dados são utilizados o Mondrian Workbench e Jrubik, respectivamente.
A escolha desse conjunto de ferramentas é unicamente para possibilitar a
construção de um ambiente teste para o propósito da pesquisa e possível de
implementação dado o escasso período de tempo disponível para a sua conclusão.
Entretanto, vale ressaltar que outras opções de softwares podem ser compostas,
como por exemplo a utilização combinada do servidor Mondrian com o jPivot.
Este trabalho é realizado através de uma combinação do Método de pesquisa
exploratória bibliográfica e estudo de caso, o qual representa mais do que uma
exemplificação da aplicação dos conceitos na utilização de algumas ferramentas.
Representa também as necessidades de informação que dão sentido a construção
de um data warehouse como ambiente de apoio ao planejamento estratégico e
15
operacional de uma empresa ou organização.
16
2
DATA WAREHOUSE
Segundo Inmon (1997, p. 33, p.37), Data Warehouse é uma coleção de dados
baseada em assuntos, integrados, variáveis com o tempo e não voláteis, para dar
suporte ao processo de tomada de decisão.
Data Warehouse também pode ser entendido como um conjunto de tabelas (banco
de dados) contendo dados extraídos dos sistemas de operação ou transacionais da
empresa, podendo ter adicionado a este contexto informações provenientes de
documentos, planilhas eletrônicas e outras fontes objetivando fornecer e apresentar
um repositório único, consolidado, como representação do negócio da empresa para
processamento de consultas que apoiam o processo de tomada de decisão.
Machado (2008,pag.27) contextualizando o Data Warehouse afirma que:
[...], o Data Warehouse proporciona uma sólida e concisa integração dos
dados da empresa, para a realização de análises gerenciais estratégicas de
seus principais processos de negócio. Ele se preocupa em integrar e
consolidar as informações de fontes internas, na maioria das vezes
heterogêneas, e fontes externas, sumarizando, filtrando e limpando esses
dados, preparando-os para análise e suporte à decisão.
Como subconjuntos lógicos de um data warehouse, tem-se os data marts,
contextualizado na Wikipedia (2008) como:
O Data Warehouse é normalmente acessado através de Data Marts, que
são pontos específicos de acesso a subconjuntos do Data Warehouse. Os
Data Marts são construídos para responder prováveis perguntas de um tipo
específico de usuário. Por exemplo: um Data Mart financeiro poderia
armazenar informações consolidadas dia-a-dia para um usuário gerencial e
em periodicidades maiores (semana, mês, ano) para um usuário no nível
diretoria.
2.1 CARACTERÍSTICAS
Em Machado (2008,pag.27) pode-se encontrar as características que diferenciam
um Data Warehouse de sistemas convencionais:
„
Extração de dados de fontes heterogêneas (existentes ou externas);
17
Transformação e integração dos dados antes de sua carga final;
Normalmente requer máquina e suporte próprio;
Visualização dos dados em diferentes níveis. Os dados do Data
Warehouse podem ou não ser extraídos para um nível mais específico, os
Data Marts, e a partir deste para um banco de dados individual;
„
Utilização de ferramentas voltadas para acesso com diferentes níveis
de apresentação;
„
Dados somente são inseridos, não existindo atualização, ou melhor,
updates.
„
„
„
Outras características de um data warehouse podem ser citadas como orientação
por assunto, variação no tempo, não volatilidade e integração.
2.1.1
Orientação por Assunto
Um data warehouse armazena os dados obedecendo uma orientação por assunto.
Isto indica sua derivação dos principais processos de negócio da organização. No
modelo de dados corporativo é onde pode-se encontrar as representações dos
principais processos de negócios de uma empresa. E por esse motivo Inmon (2000)
afirma que o modelo corporativo de dados é um lugar muito bom para iniciar o
processo de construção do Data Warehouse.
Para Machado (2008, p.29) enquanto o projetista de sistemas transacionais tem o
foco em projeto de banco de dados, projeto dos processos transacionais e suas
atividades e controles operacionais, o projetista de data warehouse tem o foco em
modelagem dos dados e
projeto de banco de dados. No data warehouse “[...]
somente interessam dados que sejam importantes para a tomada de decisões, que
sejam relativos à análise e desempenho de processos ou atividades críticas [...]”.
(MACHADO,2008, p.29).
2.1.2
Variação no tempo
Os dados de um Data Warehouse representam resultados operacionais de um
18
momento de tempo, o momento em que foram capturados. É um conjunto estático
de registros referentes a um período de tempo, onde a data é elemento essencial e
componente chave, que norteia a organização do armazenamento e da pesquisa.
Esse elemento é obrigatoriamente trabalhado na composição dos dados de um data
warehouse.
2.1.3
Não volatilidade
Basicamente um Data Warehouse tem duas operações de dados: carga (inicial +
incremental) e consulta aos dados. Desse modo difere de um sistema transacional,
pois não tem operações como atualizações registro a registro ou bloqueio por
concorrência no acesso. O acesso a seus dados é apenas como leitura.
2.1.4
Integração
A Integração proporciona a unicidade de informações. É no processo de extração,
filtragem e agregação que os dados provenientes de diferentes fontes são
integrados, proporcionando conformidade ao Data Warehouse considerando também
os aspectos de padronização e granularidade dos dados. (fig. 1).
Figura 1 - Integração dos dados.
19
2.2 COMPONENTES E ARQUITETURAS DE IMPLEMENTAÇÃO.
2.2.1
Componentes
A arquitetura de um data warehouse apresenta um conjunto de componentes , onde
cada um assume uma função específica no ambiente como mecanismos de
armazenamento e comunicação de dados, ferramentas de extração, carga, consulta
e apresentação de dados.
Conforme a figura 2,
um modelo padrão de ambiente de DW considera quatro
componentes separados e distintos: sistemas operacionais de origem, data staging
area, área de apresentação de dados e ferramentas de acesso a dados.
20
Figura 2 - Elementos básicos do data warehouse
Fonte: Adaptado de Kimball e Ross (2002).
Como descrito pelos autores Kimball e Ross (2002, p.7), “Cada componente do data
warehouse atende a uma função específica. E precisamos aprender a importância
estratégica de cada um deles e como controlá-los de modo eficiente para obtermos
êxito com o data warehouse.”.
2.2.1.1
Sistemas operacionais de origem
São os sistema onde são gravadas as transações dos negócios da empresa e a
origem dos dados que povoarão o data warehouse. Os sistemas de origem estão
fora do data warehouse e geralmente as pessoas responsáveis pelo data warehouse
tem pouco ou nenhum controle sobre o conteúdo ou formato dos dados nos
sistemas de origem. Mesmo assim é interessante considerar e aproveitar o estudo e
discussão realizada durante o processo de modelagem do data warehouse sobre a
origem dos dados como possibilidade de reengenharia dos sistemas transacionais
visando facilitar o desenvolvimento do data warehouse.
21
Segundo Inmon (2000) , o modelo corporativo de dados é um lugar muito bom para
iniciar o processo de construção do Data Warehouse, devido a facilitar a
identificação das tabelas de fatos. Portanto, caso o modelo de dados corporativo não
exista deve ser construído considerando principalmente os tópicos:
Em particular, o modelo corporativo de dados deve ter identificado e
estruturado - pelo menos - o seguinte:
●
●
●
os principais assuntos da empresa;
as relações entre os assuntos;
a criação de um ERD (diagrama entidade relacionamento);
para cada área temática:
●
as chaves (s) do sujeito,
os atributos do sujeito,
os subtipos do sujeito,
os conectores de um tema para a próxima,
o agrupamento dos atributos.
●
●
●
●
2.2.1.2
Data staging area
Este componente compreende uma área de armazenamento de dados e os
processos de extração, transformação e carga (ETC).
Essa área de armazenamento de dados representa um repositório intermediário para
armazenamento e processamento dos dados extraídos dos sistemas de origem dos
dados, transacionais, e outras fontes, onde os dados poderão receber o tratamento
necessário antes de ser realizada a carga para o data warehouse.
A partir do modelo de dados corporativo, Inmon(2000) estabelece alguns passos
para iniciar a transformação dos dados, sendo :
●
●
●
●
a remoção de dados de natureza puramente operacional;
a adição de um elemento de tempo para as principais estruturas do
Data Warehouse;
adição apropriada de dados derivados;
a transformação de dados de relacionamentos em dados de
artefatos;
22
●
●
●
●
Kimball (2002,p.8)
acomodação de diferentes níveis de granularidade;
fusão de dados de diferentes tabelas;
criação de matrizes de dados;
separação de atributos de dados de acordo com características de
estabilidade.
ressalta que “Um requisito arquitetural chave para um data
staging area é estar fora do limite dos usuários e não fornecer serviços de consulta.”
Comparativamente, Kimball descreve um data staging área como uma cozinha de
um restaurante, onde os alimentos crus vão ser preparados e transformados em um
prato palatável para o cliente, assim como os dados também o serão para os
usuários.
2.2.1.3
Área de apresentação de dados
Área de apresentação de dados é a área onde os dados estão armazenados, sendo
o próprio repositório de dados do data warehouse e data marts,
de forma
organizada e disponíveis para
softwares
consultas de usuários através de
geradores de relatórios e ferramentas analíticas de dados.
O data warehouse é a espinha dorsal do ambiente, constituindo uma enorme base
de dados históricos sobre assuntos de negócios institucionais de períodos que são
geralmente acima de três anos, permitido desta forma análises onde possam ser
identificadas indicadores e tendências.
Os data marts representam um subconjunto lógico de dados do DW. Seus dados
são direcionados a uma área específica de negócios da empresa e tem como
principal vantagem permitir uma rápida implementação, como maior envolvimento do
usuário final e menor tempo de retorno de resultados.
2.2.1.4
Ferramentas de acesso a dados.
23
Ferramentas de acesso a dados são todas as ferramentas que podem ser oferecidas
aos usuários do data warehouse ou data mart para uso na realização de consultas a
essas bases. Variam de simples ferramentas para realização de consultas ad hoc
até sofisticadas ferramentas de modelagem e aplicações para realização de data
mining.
2.2.1.5
Papeis
No ambiente de data warehouse um dos aspectos importantes a se observar é o
conjunto de usuários envolvidos no processo de construção e manutenção do DW e
que podem ser agrupados conforme a função específica de cada um, conforme a
seguir: Analistas responsáveis pela carga dos dados – conhecem o mapeamento
entre os sistemas de origem dos dados e o DW além das transformações
necessárias para filtragem e integração dos dados; usuários finais – são os usuários
que conhecem os termos de negócios da organização e irão explorar os dados do
DW para resolução de problemas apresentados. São os especialistas, gerentes e
administradores; analistas responsáveis pelo desenvolvimento e manutenção do
data warehouse e data marts – profissional responsável pelas arquiteturas de
armazenamento e dados e metadados; administradores de dados - tem o papel de
integrador dos ambientes transacional e dimensional garantindo a integridade e
qualidade dos dados nos processos de manutenção de extração, transformação e
carga do DW.
2.2.2
Arquiteturas
Machado (2008,p.50) apresenta três tipos de arquitetura para data warehouse:
arquitetura global, arquitetura de data marts independentes e arquitetura de data
marts integrados.
24
Na arquitetura global, o data warehouse trata a empresa como um todo, com foco
em visões corporativas. Consequentemente tem-se menor redundância, maior
consistência e integração dos dados. Sua implementação é bastante demorada e de
elevado custo.
Na arquitetura de data marts independentes, as bases são construídas sem foco
corporativo, atendendo as necessidades específicas e departamentais de seus
usuários. Cada departamento ou área da empresa constroi e gerencia o seu data
mart, o que pode resultar em maior redundância e menor integração dos dados. Este
tipo de implementação não tem grande impacto financeiro e é rápidamente
implementado.
A arquitetura de data marts integrados é uma combinação das duas anteriormente
citadas como coloca Machado (2008,p.51):
A arquitetura de Data Marts integrados é basicamente uma distribuição de
implementação. Apesar de os Data Marts serem implementados
separadamente por grupos de trabalho ou departamentos, eles são
integrados ou interconectados, provendo uma visão corporativa maior dos
dados e informações. De fato o alto nível de integração é similar ao da
arquitetura global. Por outro lado, os usuários de um departamento podem
acessar e utilizar os dados de um Data Mart de outro departamento.
No processo de implementação de uma arquitetura de data warehouse, pode-se
adotar uma das seguintes abordagens: top down, botton up ou intermediária.
Na implementação top down a empresa é forçada a definir regras de negócio de
forma corporativa antes de iniciar o projeto de data warehouse, o que torna o
processo de implementação longo e difícil porque as decisões são tomadas em
conjunto por todos os departamentos envolvidos. Em contrapartida os data marts
resultantes utilizarão a arquitetura e os dados do data warehouse
manutenção (fig. 3).
facilitando a
25
Origem 1
Data Mart 1
Origem 2
Data Mart 2
Data Warehouse
Data Mart 3
Origem 3
Figura 3 - Implementação top-down.
Na implementação botton up a contrução de um data warehouse é incremental a
partir de data marts independentes. Segundo Machado (2008,p.54) “ Um dos
grandes problemas dessa implementação é a falta de um gerenciador que garanta
padrões únicos de metadados, mesmo com a independência dos Data Marts.” Caso
não seja adotada forma de controlar esse problema, podem ocorrer falhas no
processo de padronização, ocasionando redundâncias e inconsistências entre os
data marts. (fig. 4).
Origem 1
Data Mart 1
Origem 2
Data Mart 2
Origem 3
Data Mart 3
Data Warehouse
Figura 4 - Implementação botton up
Na implementação intermediária ocorre uma combinação entre as duas abordagens
anteriormente citadas. Inicialmente faz-se uma macro modelagem de dados do data
warehouse e no momento seguinte a escolha das partes mais importantes para
iniciar a implementação dos data marts. Dessa forma tem-se a garantia da
consistência e integração dos dados.
2.3 GRANULARIDADE DE DADOS
Para Machado (2006, p. 59), granularidade de dados refere-se “[...] ao nível de
26
sumarização dos elementos e de detalhes disponíveis nos dados, considerado o
mais importante aspecto do projeto de um Data Warehouse.”.
A granularidade dos dados é considerada importante porque afeta diretamente o
volume de dados no Data Warehouse e também porque determina o nível de detalhe
que uma consulta poderá atingir. Outro aspecto importante referente à granularidade
é a performance que poderá variar devido ao volume de dados. Quanto mais
detalhes, mais baixo o nível de granularidade. Quanto menos detalhes maior o nível
de granularidade.
Um aspecto importante destacado por Machado (2008, p.60) é que “Quando a
granularidade de um Data Warehouse ou de um Data Mart é estabelecida, o projeto
tem seu desenvolvimento com foco e irá fluir com mais tranquilidade. Enquanto não
for visualizado o nível de granularidade, torna-se muito difícil a modelagem do Data
Mart.”
Outro aspecto é a utilização da mesma granularidade definida para um determinado
assunto de negócio em todos os DM ou DW onde se faça referência a este assunto
como forma de garantir a integração dos dados e permitir análises de negócios
comparativas. Desta forma tem-se dois fatores a serem considerados na definição
da granularidade: tempo e forma de agrupamento das informações.
2.4 METADADOS
Os metadados são dados sobre os dados de um banco de dados e estão
organizados em dicionário digital de dados, para facilitar a documentação,
estruturação e manutenção dessas informações.
Na definição da enciclopédia Wikipédia (2008) metadados “[...] , ou Metainformação,
são dados sobre outros dados. Um item de um metadado pode dizer do que se trata
aquele dado, geralmente uma informação inteligível por um computador.”
27
Em Machado (2008,p.299) metadados é definido como um repositório do DW onde
“[...]
dados de mais alto nível descrevem os dados de níveis inferiores que
compõem a estrutura do Data Warehouse.”
Os metadados, organizados em um dicionário de informações, descrevem
informações não somente dos dados armazenados no DW como formato, tamanho,
tipo, nome e alias como o dado é conhecido, mas também guardam informações
sobre fontes geradoras
e
o destino dos dados;
as regras de transformação
aplicadas no processo de extração, limpeza e agrupamento de dados dos sistemas
origem; os níveis de acesso dos usuário; as informações referentes a atualização
dos dados, possibilitando ao usuário conhecer a atualidade dos dados e
periodicidade de atualização dos dados.
28
3
MODELAGEM PARA DATA WAREHOUSE
Kimball (1997), afirma que modelagem multidimensional
é uma técnica de
modelagem de dados viável para suportar consultas de usuários
a um data
warehouse, e que embora a modelagem entidade relacionamento seja muito útil na
captura de transações e administração de dados na fase de construção de um data
warehouse, deve-se evitar repassar este modelo ao usuário final.
Modelagem entidade e relacionamento é uma técnica de modelagem lógica que
busca remover redundâncias de dados. Como conseqüência, no processo de
implementação temos consistência e agilidade nos processamentos transacionais.
Entretanto, na busca do modelo relacional perfeito, cria-se bases de dados onde as
consultas para serem realizadas necessitam de uma quantidades de junções entre
tabelas
que muitas vezes são inviáveis de serem realizadas devido ao grande
número de tabelas originadas no processo de normalização.
Kimball (1997) afirma que essa situação é muito mais do que um incômodo, e
aponta três motivos porque não se pode usar diretamente a modelagem entidade
relacionamento em Data Warehouse: 1) Usuários finais podem não entender ou
relembrar sobre modelo entidade relacionamento e não conseguir navegar
completamente por um
modelo entidade e relacionamento. 2)Não existe uma
interface gráfica para usuário finais
que disponibilize o modelo entidade
relacionamento como um todo para uso; 3)O uso da técnica de modelagem entidade
relacionamento coloca por terra as principais atrações de um data warehouse, a
saber recuperação de dados de forma intuitiva e de alta-performance.
3.1 MODELAGEM MULTIDIMENSIONAL OU DIMENSIONAL
Em Machado (2008), modelagem multidimensional é definida como sendo :
[...] 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. É
utilizada especialmente para sumarizar e reestruturar dados e apresentá-los
29
em visões que suportem a análise dos valores desses dados.
Definindo o modelo multidimensional, Kimball (1997) descreve-o como:
[...] uma técnica de modelagem de dados que busca apresentar os
dados em determinado padrão, apresentando uma estrutura intuitiva
que permite acesso de alta-performance. É naturalmente
dimensional e segue a disciplina que usa o modelo relacional com
algumas importantes restrições. Todo modelo dimensional
é
composto de uma tabela com chave múltipla , chamada de tabela
de fatos, e um conjunto de pequenas tabelas chamadas de tabelas
de dimensões. Cada tabela de dimensão tem uma chave primária
simples que corresponde exatamente a um dos componentes da
chave múltipla na tabela de fatos.
A tabela de fatos, por ter uma chave múltipla, tem uma ou mais
chaves estrangeiras, sempre expressas em relacionamentos
muitos-para-muitos. A tabela de fatos contém também uma ou mais
medidas numéricas, ou fatos, que ocorrem da combinação de
chaves que definem cada registro.
A modelagem multidimensional é aplicada tanto para bancos relacionais quanto para
bancos multidimensionais.
O projeto lógico é o mesmo. A implementação é
diferenciada.
Existem duas formas de modelagem multidimensional, o modelo estrela ou star e o
modelo floco de neve ou snowflake.
3.1.1
Modelo Estrela ou Star
Machado (2008, pag.93) define o modelo estrela como:
O modelo estrela é a estrutura básica de um modelo de dados
multidimensional.
Sua composição típica possui uma grande entidade central denominada fato
(fact table) e um conjunto de entidades menores denominadas dimensões
(dimension tables), arranjadas ao redor dessa entidade central, formando
uma estrela, [...]
No centro da estrela fica o fato Atendimentos de Emergência e ao seu redor, nas
pontas da estrela as dimensões faixa etária, médico, Cid10, motivo de atendimento e
30
tempo(fig. 5)
Figura 5 - Modelo estrela.
Numa visão relacional do modelo estrela, a tabela de fatos ao centro e as tabelas
das dimensões nas extremidades. (fig. 6)
Figura 6 - Modelo Estrela – visão relacional
Neste modelo, os relacionamentos entre a entidade fato e as dimensões são
expressas em relacionamentos de um para muitos no sentido da entidade dimensão
31
para a entidade fato. As dimensões com várias hierarquias são apresentadas em
uma única tabela desnormalizada.
3.1.2
Modelo floco de neve ou snowflake
O modelo floco de neve diferencia-se do modelo estrela por apresentar em uma ou
mais dimensões, hierarquias decompostas, normalizadas. (fig.7)
Figura 7 - Modelo Floco de Neve ou Snowflake
3.1.3
Cubos
Popularmente usa-se o cubo ou hipercubo (fig. 8) para uma representação visual
das possíveis dimensões de um fato em um modelo multidimensional. A intenção é
demonstrar que um fato pode ser visualizado sob diversas óticas e níveis de
hierarquias.
32
Figura 8 – Cubo
Fonte: http://www.bi4all.pt
Machado (2008,p.83) afirma que “A razão de utilizar um cubo para expressar essa
nova realidade de sistemas é transmitir a idéia de múltiplas dimensões. Cubos
podem ter 2, 3, 4 ou qualquer outro número de dimensões.”
3.1.4
Fatos
Um fato é um conceito de interesse primário para o processo de tomada de decisões
e corresponde aos eventos que ocorrem de forma dinâmica no negócio da empresa.
É a tabela primária do modelo dimensional e nela são armazenados os valores do
negócio que se deseja analisar (MICROSOFT, 2007).
Um fato é representado basicamente por valores numéricos e implementado em
tabelas denominadas tabelas de fato (fact tables). Medidas ou métricas
são os
atributos numéricos que representam um fato.
Machado(2008) afirma que um fato satisfaz a três características básicas: 1)varia ao
longo do tempo; 2)possui valores numéricos de avaliação e; 3)seu histórico pode ser
mantido e cresce com o passar do tempo.
Exemplificando, “Qual o índice de pacientes atendidos na emergência, em
33
determinado hospital, com indicação para internação no ano de 2008?” é um fato.
Primeiramente, varia ao longo do tempo; segundo, possui valores numéricos de
avaliação e; terceiro, mantem um histórico que pode ser mantido e cresce com o
passar do tempo.
3.1.5
Dimensões
Dimensões são as formas de apresentação, visualização ou participação dos dados
determinando o contexto de um assunto de negócios. Generalizando o exemplo
acima sobre pacientes atendidos na emergência de um hospital, o fato atendimento
de emergência
pode ter como dimensões tempo, faixa etária, motivos de
atendimento, pacientes, médicos, procedimentos.
No processo para se identificar
as dimensões de apresentação de um fato,
Machado(2008,pag. 111 ) afirma que :
Todo e qualquer fato possui sempre quatro pontos de referência, que
podemos denominar de quatro pontos cardeais de um fato.
Os elementos que participam de um fato, seja qual for ele, no mínimo são
estes quatro:
„
„
„
„
Onde aconteceu o fato.
Quando aconteceu o fato.
Quem executou o fato.
O que é objeto do fato.
Quando uma dimensão possui um número enexpressível de ocorrências que não
justifique sua implementação como uma entidades, ela pode ser implentada como
atributo de um fato, recebendo o nome de dimensão mascarada.
3.1.6
Medidas
Medidas são fundamentais na criação de fatos. Através delas podemos analisar o
34
desempenho de alguma atividade ou negócio.
As medidas se classificam em 2 tipos: valores aditivos e valores não aditivos.
Machado(2008,pag.134) apresenta a seguinte definição:
Valores aditivos: são aqueles referentes ao fato sobre os quais podem ser
aplicadas as operações de soma, subtração e média. Os valores, como, por
exemplo, “número de crimes” e “número por tipo de transplante”
representam valores aditivos.
Valores não aditivos: referentes aos fatos que não podem ser manipulados
livremente, como valores percentuais ou relativos. Na realidade
representam os indicadores de desempenho do fato.
3.1.7
Hierarquias
As dimensões são estruturas de dados que possuem hierarquias implícitas que são
fundamentais para a construção de um modelo multidimensional. Como exemplo,
considerando a dimensão localização (fig. 9),
que estabelece critérios para
agregação e sumarização dos valores do fato objeto de análise em espaços
geográficos como região, estado e cidade.
Figura 9 - Hierarquias
35
4
ON-LINE ANALYTICAL PROCESSING
OLAP (On-Line Analytical Processing) é definido como um conjunto de ferramentas
projetadas para dar suporte a análise e consultas ad hoc. Seus usuários, analistas e
executivos, conseguem de forma rápida e intuitiva realizar comparações, pesquisas
e análises históricas em grandes bases de dados.
Segundo Inmon, Consultas Ad-hoc são consultas com acesso casual único e
tratamento dos dados segundo parâmetros nunca antes utilizados, geralmente
executado de forma iterativa e heurística. Em outras palavras, a possibilidade do
próprio usuário gerar consultas de acordo com suas necessidades de cruzar as
informações de uma forma não vista e com métodos que o levem a descoberta
daquilo que procura. (INMON, apud Geocities, 2009).
Em Wikipedia(2009), OLAP é definida como:
“ [...] a capacidade para manipular e analisar um largo volume de dados sob
múltiplas perspectivas . As aplicações OLAP são utilizadas pelos gestores
em qualquer nível da organização para lhes permitir análises comparativas
que facilitem a sua tomada de decisões diária.”
A característica principal dos sistemas OLAP é definida como:
“A característica principal dos sistemas OLAP é permitir uma visão
conceitual multidimensional dos dados de uma empresa. É natural, fácil
e intuitiva, permitindo a visão em diferentes perspectivas dos negócios da
empresa e desta maneira tornando o analista um explorador da informação
(MINERAÇÃO DE DADOS-UEM,2009). “
Outras importantes características dos sistemas OLAP são:
•
•
•
•
Análise de tendências. A tecnologia OLAP é mais do que uma forma
de visualizar a história dos dados. Deve, também, ajudar os
usuários a tomar decisões sobre o futuro, permitindo a construção
de cenários ( "e se ...") a partir de suposições e fórmulas aplicadas,
pelos analistas, aos dados históricos disponíveis ;
Busca automática (reach-through) de dados mais detalhados que
não estão disponíveis no servidor OLAP. Detalhes não são
normalmente importantes na tarefa de análise mas quando
necessários, o servidor OLAP deve ser capaz de buscá-los;
Dimensionalidade genérica;
Operação trans-dimensional. Possibilidade de fazer cálculos e
manipulação de dados através diferentes dimensões;
36
•
•
Possibilidade de ver os dados de diferentes pontos de vista (slice
and dice), mediante a rotação (pivoting) do cubo e a navegação
(drill-up/drill-down) entre os níveis de agregação;
Conjunto de funções de análise e cálculos não triviais com os
dados. (MINERAÇÃO DE DADOS-UEM,2009)
4.1 ARQUITETURAS
Sao categorizadas de acordo com a forma de armazenamento dos dados a serem
consultados. As arquiteturas existentes são: Multidimensional On-Line Analytical
Processing (MOLAP), Relational On-Line Analytical Processing (ROLAP), Desktop
On-Line Analytical Processing (DOLAP) e Hybrid On-Line Analytical Processing
(HOLAP).
No modo MOLAP (Multidimensional OLAP) os dados no servidor OLAP são
armazenados em estruturas otimizadas para acesso multidimensional. Geralmente
essas estruturas são formadas por arrays multidimensionais.
No modo ROLAP (Relational OLAP) os dados no servidor OLAP são armazenados
em bancos de dados relacionais.
No modo HOLAP (Hybrid OLAP) – os dados no servidor MOLAP são armazenados
em formato multidimensional, mas se existirem mais do que algumas dimensões,
esses dados ficaram esparsos, e o servidor não terá um bom desempenho. Um
Servidor HOLAP resolve este problema deixando os dados mais granulares
armazenados em um banco de dados relacional e os dados agregados no formato
multidimensional.
4.2 OPERAÇÕES BÁSICAS OLAP
As operações básicas com as ferramentas OLAP são:
37
4.2.1
Slice-and-Dice
Segundo Machado (2008, pag 90), “Significa definir um pedaço da base, uma
“mordida”, como universo para uma consulta. Slice and dice é o mesmo que filtrar.”
Esta técnica permite-nos analisar as informações sobre os mais diferentes prismas,
onde consegue-se ver a informação sobre ângulos antes
inimagináveis sem a
construção de um DW e a utilização de uma ferramenta OLAP.
4.2.2
Drill Down e Roll Up
Consiste em fazer uma exploração em diferentes níveis de detalhe ou hierarquias
das informações de uma dimensão. Com o Drill Down pode-se aumentar o nível de
detalhe da informação. Com o Roll Up o processo é inverso, sendo o nível de
detalhamento diminuído e a granularidade aumentada.
4.2.3
Drill Across
Consiste em passar um nível hierárquico intermediário de uma mesma dimensão.
Como exemplo, considerando uma dimensão tempo composta de ano, semestre,
trimestre, mês e dia, o usuário executa um drill across quando passa direto para
semestre.
4.2.4
Drill Through
Consiste em passar de uma informação contida em uma dimensão para uma outra
dimensão.
É importante observar que essas operações podem ser utilizadas de forma
38
combinadas, onde busca-se descobrir comportamentos sob diferentes perspectivas
de análise dos dados.
4.3 TECNOLOGIAS
As principais softwares abordadas neste trabalho compõem um conjunto de
ferramentas open source disponíveis para ambiente de business intelligence (BI) no
mercado mundial. Entre elas temos as ferramentas do Pentaho com o projeto Kettle,
que abrange a área de extração, transformação e carga de dados para data
warehouse; o projeto Mondrian como servidor OLAP, incluindo o Mondrian Schema
Workbench para definição e mapeamento do modelo lógico multidimensional. Para
formulação e visualização das consultas optou-se pelo Jrubik , também open source,
com desenvolvimento baseado no Jpivot1, pela facilidade e rapidez de configuração
4.3.1
Kettle
Kettle é um conjunto de ferramentas Open Source, para extração, transformação e
carga de dados em um data warehouse. O nome Kettle é uma acrônimo para “Kettle
Extraction, Transformation,.T.ransportation and Loading Enviroment” . O acesso às
funcionalidades desse ambiente é através de uma interface gráfica chamada Spoon.
Nesta interface gráfica as transformações são construídas e
programadas para
ação sobre os dados que podem ser de várias origens e para vários destinos bem
como de diversos formatos.
4.3.2
Mondrian
Mondrian é um servidor OLAP Open Source, escrito em Java, que executa
1
JPIVOT. A JSP based OLAP. Disponível em: < http://jpivot.sourceforge.net>.
39
consultas escritas na linguagem MDX, fazendo a leitura dos dados a partir
um
banco de dados relacional e apresentando o resultado em formato multidimensional
utilizando API Java, sendo classificado como uma ferrametna ROLAP.
A arquitetura Mondrian é estruturada em quatro camadas: a camada de
apresentação, camada dimensional, camada estrela e camada de armazenamento,
conforme descrito em Mondrian (2008).
4.3.2.1
Camada de apresentação
A camada de apresentação determina o que o usuário vê em seu monitor e como
pode interagir para obter novas informações. Existem várias maneiras dos dados
multidimensionais serem apresentados para os usuários, incluindo tabelas
interativas, gráficos de linhas, barras ou fatias. No entanto, todas essas formas de
apresentação têm em comum os conceitos multidimensionais de dimensões,
medidas e células, sobre os quais esta camada recebe as requisições dos usuários
e devolve seus resultados;
4.3.2.2
Camada Dimensional
Executa particionamento, validação e execução das consultas MDX submetidas pela
camada de apresentação. As consultas são tratadas em diferentes fases. Os eixos
das dimensões são computados primeiramente, e então os valores das células de
cada eixo;
4.3.2.3
Camada Estrela
Esta camada é responsável por manter uma estrutura de cache com um conjunto de
medidas associadas às respectivas dimensões. Quando os dados solicitados não
40
estão em cache ou não podem ser dela derivados, a requisição é repassada à
camada de armazenamento;
4.3.2.4
Camada de armazenamento
Consiste no sistema de gerenciamento de banco de dados relacional e é
responsável por prover os dados agregados e seus membros das respectivas
dimensões.
Todos estes componentes podem estar presentes na mesma máquina, ou serem
distribuídos por outras máquinas.
As camadas 2 e 3 (Dimensional e Estrela)
compõem o servidor do Mondrian e devem estar presentes na mesma máquina. A
camada de armazenamento pode estar situada em outra máquina e ser acessada
remotamente através de uma conexão jdbc (Java Data Base Conector).
Utilizando o Mondrian são três os tipos de dados a serem armazenados: das tabelas
de fatos, dimensões e agregações.
Agregações são resumos de dados pré-calculados que melhoram o tempo de
resposta pelo simples motivo de ter as respostas prontas antes de receber as
perguntas (MICROSOFT, 2007).
A estratégia de agregação do Mondrian é manter os dados da tabela de fatos
armazenados no SGBDR e ter os dados agregados no cache através da submissão
de consultas group by2. (FELBER, 2005). O cache mantém os dados pré-calculados
em memória disponibilizando-os para as próximas consultas, agizilizando o tempo
de resposta.
2
Cláusula de grupo da linguagem de consulta SQL.
41
4.3.3
Mondrian Schema Workbench
Mondrian Schema workbench é a ferramenta onde o modelo lógico multidimensional,
contendo os cubos, dimensões, membros e hierarquias é construído e representado
em linguagem XML. Neste schema é feito o mapeamento entre a definição lógica e o
modelo físico, o banco de dados relacional.
O exemplo de arquivo XML da figura 10 demonstra parte de um schema contendo
um cubo denominado “emergencia1”, e as dimensões “motivo de atendimento”,
“idade”, “sexo”, “descrição_capitulo_cid10“ .
Figura 10 - Exemplo de arquivo XML definindo um schema mondrian
4.3.4
Mdx (Multidimensional Expressions)
MDX é um padrão para expressões multidimensionais para consultas a banco de
dados, semelhante a linguagem SQL.
A linguagem MDX foi originalmente criada pela Microsoft para utilização com o
produto SQL Server OLAP Services como parte da especificação OLE DB/OLAP
API 3.
3
O Microsoft OLE DB para OLAP é um conjunto de objetos e interfaces que estendem a habilidade
do OLE DB para prover acesso a armazenagem de dados multidimensional.
42
Pinho (2008,p.14) apresenta a seguinte definição para MDX:
“A linguagem MDX provê uma sintaxe rica, poderosa e ao mesmo tempo
simples para consultar e manipular dados armazenados nos servidores
OLAP de forma bastante flexível. Ela possui uma vasta quantidade de
operadores analíticos e utiliza expressões compostas de identificadores,
valores e funções que são avaliados pelo servidor OLAP para obter os
objetos (por exemplo, membros) ou escalares (por exemplo, um número).
MDX representa para os servidores OLAP o que a linguagem SQL
representa para os SGBD Relacionais. No entanto ela não representa uma
extensão da linguagem SQL e pode-se diferenciar as duas em vários
pontos. Como exemplo, nos SGBD relacionais tabelas são utilizadas como
fontes de dados, enquanto MDX utiliza-se do conceito de cubos.”
A figura 11 apresenta uma consulta MDX que retorna a quantidade atendimentos de
emergência por ano e sexo.
Figura 11 - Consulta MDX
O resultado pode ser visualizado na figura 12, onde a cláusula select .seleciona as
ocorrências de atendimentos de emergência utilizando as dimensões ano e sexo nas
linhas e dispondo as medidas nas colunas. A cláusula from indica que a fonte dos
dados é o cubo “Emergência1”.
43
Figura 12 - Resultado da consulta MDX da figura 10.
4.3.5
Jrubik
Jrubik é um cliente OLAP Open Source desenvolvido em Java/Swing4 para conectar
a servidores OLAP. Alguns de seus componentes são o olap navigator, MDX query
editor, table viewer, chart viewer, map viewer, menus e bookmarks e statistical data .
O table é seu principal componente, pois permite ao usuário visualizar e trabalhar os
dados em forma tabular. Permite também a navegação por dimensões, hierarquias,
membros, realizando operações típicas de ferramentas olap, permitindo a impressão
e exportação dos dados para os formatos PDF, XML, HTML e MSExcel.
O Chart é o visualizador de gráficos e pode ser configurado para diferentes formatos
como pizza, barra, 3D, linha.
O Navigator tree possibilita ao usuário editar os componentes a serem exibidos,
estabelecendo filtros aos membros das dimensões, alterando a o escopo da
consulta, através de interface gráfica que reflete automaticamente as alterações
selecionadas na MDX correspondente a consulta. As consultas podem ser gravadas
no componente Bookmark para uso futuro.
4
Swing é um Framework (conjunto de classes que constitui um design abstrato para soluções de
uma família de problemas) para a criação de aplicações gráficas em Java
44
4.3.6
MySql
O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a
linguagem SQL(Structured Query Language - Linguagem de Consulta Estruturada)
como interface. É atualmente um dos bancos de dados mais populares, com mais de
10 milhões de instalações pelo mundo (WIKIPEDIA, 2009).
45
5
ESTUDO DE CASO
O Hospital do Trabalhador é um hospital público, com atendimento exclusivo aos
pacientes do Sistema Único de Saúde – SUS e referência no atendimento ao trauma
na região metropolitana de Curitiba.
Visando demonstrar como construir uma solução OLAP para uso como ferramenta
de apoio à tomada de decisão, o estudo de caso está estruturado em tópicos
retratando os processos e softwares utilizados, ficando o escopo de aplicação
restrito a área de Emergência hospitalar.
No primeiro tópico é apresentado a necessidade geradora do objeto de estudo, no
segundo tópico é apresentado o processo de extração, transformação e carga dos
dados no ambiente
escolhido neste trabalho para DW. No terceiro tópico é
apresentado o processo de modelagem e consulta para DW e no quarto tópico a
conclusão dos benefícios da implementação.
5.1 NECESSIDADE
A demanda de informações produzidas na Emergência de um hospital de grande
porte abrange desde resolução de situações operacionais até atendimento a órgãos
internos e externos como imprensa, universidades, governos, etc., que vêem nesta
fonte de dados a oportunidade de embasar estudos científicos e obter informações
claras e precisas para planejamentos estratégicos e operacionais.
No Hospital do Trabalhador, na área de Emergência hospitalar são feitos
atendimentos de casos clínicos e cirúrgicos prioritariamente em traumatologia e
ortopedia.
Como objeto de estudo de caso será abordado a necessidade
apresentada pela direção do hospital em extrair informações relacionadas aos dados
coletados durante o atendimento de emergência e armazenados pelos sistemas
transacionais.
46
Como exemplos de consultas temos dados quantitativos da evolução dos
atendimentos
na
emergência
considerando
aspectos
combinados
como
:
atendimentos de ano, mês, sexo e faixa etária; atendimentos por sexo e motivo de
atendimento. Ao resultado dessas consultas também pode ser desejável a aplicação
de filtros para isolar um aspecto em particular para detalhar uma investigação, como
por exemplo, a evolução dos quantitativos de um motivo de atendimento específico
em um período específico.
Como característica principal das consultas desejadas, observa-se que são
tipicamente consultas ad-hoc e, para que seja possível ao profissional de tecnologia
da informação atender aos seus usuários, optou-se por desenhar as principais
dimensões relacionadas ao assunto em questão – atendimento de emergência – que
é o nosso fato.
5.2 IDENTIFICANDO A FONTE DOS DADOS:
Os dados foram extraídos do banco da dados Openbase, ambiente operacional
Linux, que atende ao sistema de produção utilizado pelo hospital desde 2005. As
tabelas identificadas como principais fatos e dimensões foram extraídas e
transferidas para o banco de dados MySql.
Conforme schema do banco do Hospub, a principal tabela extraída e trabalhada foi a
tabela de atendimentos da emergência, compondo o histórico dos atendimentos de
emergência, que no modelo multidimensional representa a tabela de fatos.
Na
sequência, temos as tabelas auxiliares de unidades da federação, cadastro de
motivos de atendimento na amergência, cadastro de setores da emergênia ,
nacionalidade, código internacional de doenças – cid10 e profissionais de saúde.
Para um momento futuro, outras fontes de dados podem ser adicionadas como o
dados do sistema de prescrição médica e faturamento do seguro dpvat5.
5
DPVAT – Seguro obrigatório de danos pessoais causados por veículos automotores de via
terrestre.
47
5.3 EXTRAÇÃO, TRANSFORMAÇÃO E CARGA - ETC
Para extração dos dados utilizou-se o Kettle/Spoon, ferramenta open source para
extração, transformação e carga. Para acesso à base de dados original optou-se
por uma configuração de conecção jdbc com o banco de dados Openbase, e
gravação no banco de dados MySql.
Duas transformações foram desenhadas para extrações de dados dos sistemas
originais: a extração da tabela de atendimentos (fig. 13) e a extração das tabelas
auxiliares (unidades da federação, cadastro de motivos de atendimento na
amergência, cadastro de setores da emergênia , nacionalidade, código internacional
de doenças – cid10 e profissionais de saúde).
Figura 13 - Extração de dados
Na sequência, os dados são trabalhados para implementar as transformações
necessárias resultando na construção das dimensões do modelo para atendimento
às consultas dos usuários (fig. 14).
As dimensões trabalhadas são tempo (ano, trimestre, mês, dia), idade (faixa etária),
tempo
de
atendimento,
sexo,
diagnóstico
cid10
(Classificação
Estatística
Internacional de Doenças e Problemas Relacionados à Saúde), motivo de
atendimento e tipo de alta.
Para delimitar a faixa de registros a serem trabalhados são necessários alguns filtros
para exclusão de registros em abertos e fora da faixa fixada para carga inicial dos
dados, que compreende de 2004 a outubro de 2008.
48
Figura 14 - Transformação de dados
Fonte: TOMIO (2008)
As transformações são programadas utilizando-se java script (fig. 15), e agrupadas
conforme sua natureza e campos relacionados.
Figura 15 - Script de transformação no Kettle
Fonte: TOMIO (2008)
A transformação para o cálculo da faixa etária cria duas categorias de faixas etárias,
a de sete e a de dez anos, criando os campos faixa_etaria_7_anos e faixa
49
etária_10_anos respectivamente.
A faixa etária de sete em sete anos é conforme quadro 1:
0 a 6 anos
07 a 13 anos
14 a 20 anos
21 a 27 anos
28 a 34 anos
35 a 41 anos
42 a 48 anos
49 a 55 anos
56 a 62 anos
63 a 69 anos
70 a 76 anos
77 a 83 anos
84 a 90 anos
91 a 97 anos
98 a 104 anos
acima de 105 anos
Quadro 1 - Faixa etária de sete anos.
E a faixa etária de dez em dez anos, conforme quadro 2:
00 a 9 anos
10 a 19 anos
20 a 29 anos
30 a 39 anos
40 a 49 anos
50 a 59 anos
60 a 69 anos
70 a 79 anos
80 a 89 anos
90 a 99 anos
acima de 10o anos
Quadro 2 -Faixa etária de dez anos.
A transformação para o cálculo do tempo de permanência do paciente na
emergência é baseado nas datas de entrada e saída do paciente, utilizando-se para
isso uma categorização do tempo de permanência do paciente, conforme quadro 3.
Menos que 1 hora
1 hora até 1:59
2 horas até 2:59
3 horas até 3:59
4 horas até 5:59
5 horas até 5:59
6 horas até 6:59
7 horas até 7:59
8 horas até 8:59
9 horas até 9:59
10 horas até 10:59
11 horas até 11:59
Acima de 11:59 horas
Quadro 3 - Tempo de permanência.
A transformação para os campos referentes ao Cid-10 permite a visualização dos
50
atendimentos por capítulos do CID-10 de forma descritiva facilitando o entendimento
pelo usuário, conforme quadro 4.
Quadro 4 - Descrição dos capítulos do CID-10.
A transformação para os campos motivo de saída e tipo de alta tem a função de
unificá-los tornando-os um único campo descritivo e de fácil entendimento para o
usuário. (fig. 16 ) e (quadro 5). O campo motivo de saída do paciente indica qual o
motivo da saída sendo: alta médica, óbito, remoção, internação ou encaminhamento
para ambulatório. O campo tipo de alta caracteriza a alta médica em :por decisão
médica, a pedido do paciente, a revelia, a desistência, extraviado ou cancelado.
51
Figura 16 - Tipo de alta
Quadro 5 - Motivo e tipo de alta
A transformação para tratar os campos que compõe a dimensão tempo, possibilita o
desmembramento ou consolidação das consultas por ano, trimestre, mês e dia em
sua visualização. (fig. 17 e fig. 18).
Figura 17 - Composição da dimensão tempo
52
Figura 18 – Transformação para gerar a dimensão tempo
5.4 IMPLEMENTANDO OS CUBOS OLAP.
Após a criação da tabela de fatos e suas dimensões no banco de dados relacional
parte-se para a criação dos cubos olap utilizando a ferramenta Mondrian Schema
Workbench (fig.19).
Nesta etapa, utiliza-se o Mondrian Schema Workbench para desenhar o modelo
lógico (cubos, hierarquias, níveis e membros) e fazer o seu mapeamento para o
modelo físico, (banco relacional – modelo estrela) . Este modelo lógico é um arquivo
xml e utilizado nas queries MDX .
Os principais componentes lógicos descritos do arquivo XML visualizados na figura
19 são:
o Nome do schema : “bdint”;
o Nome do cubo: “Emergencia1”;
o Nome da tabela fato ="emergencia-consolidado"
53
o Nome da medida: Measure="N54NUMBOLET"
o Nome das dimensões vinculadas aos seus respectivos campos: ="Motivo de
Atendimento";
"idade", "Sexo", "Descricao_Capitulo_CID", "Tempo de
Atendimento - Categorizado", "Codigo_Capitulo_CID", "Ano ", "Mes", "Nome
do dia", "Trimestre ", "Dia do mes ", "Tipo de Alta", "Setor", "Nome Profissional
(medico)", "Bairro",
Figura 19 - Cubo emergência1.no Schema Workbench
Fonte: TOMIO (2008).
5.5 CONSULTAS
Utiliza-se a ferramenta Jrubik para visualizar o modelo lógico desenvolvido (cubos,
hierarquias, níveis e membros) e disponível para compor as consultas. (fig. 20).
Realizando consultas considerar os seguintes exemplos:
Exemplo 1: Qual o número de atendimentos de emergência realizados no mês de
março de 2008, por sexo e idade até 6 anos?
54
Para realizar a consulta o usuário seleciona as dimensões ano, mês, sexo e
idade para compor as linhas e measures (atendimentos) para compor as colunas.
Esta operação é simples e realizada utilizando-se o recurso drag and drop (arrastar
e soltar) sobre as abas “ON rows” e “ON columns”. (fig. 20)
Figura 20 - Tela do Discoverer – Cubo, medida, dimensões e montagem da consulta
Para estabelecer o filtro (mês de março e ano 2008 e idade de 0 a 6 anos) ou um
slice ,
utiliza-se a janela Navigator para ativar/desativar os itens selecionados,
correspondentes a cada dimensão selecionada para as linhas. (fig. 21).
55
Figura 21 - Navigator - Seleção de filtros.
O resultado da consulta pode ser visualizado na tela table viewer conforme figura
22.
.
Figura 22 - Table viewer – Atendimento do mês de março/2008 por sexo e de 0 a 6 anos.
Ou pode ser exportado para um arquivo formato PDF, conforme figura 23.
Figura 23 - Resultado de consulta em formato PDF
A ferramenta também possibilita a visualização dos resultados de forma gráfica,
permitindo a configuração de cores, legendas e tipos de gráficos, como o exemplo
56
de gráfico de formato pizza,. ( figura 24).
Figura 24 - Gráfico da consulta visualizada na figura 22
Aos resultados de uma consulta pode-se ainda aplicar outras funcionalidades do
software para uma investigação mais detalhada das ocorrências encontradas.
Exemplo 2: Qual o número de atendimentos de emergência por ano, motivo de
atendimento e idade (faixa etária) ?
Para realizar a consulta o
usuário
seleciona as dimensões
ano,
motivo de
atendimento idade (faixa etária) para compor as linhas e measures (atendimentos)
para compor as colunas. Esta operação é simples e realizada utilizando o recurso
drag and drop (arrastar e soltar) sobre as abas “ON rows” e “ON columns”, conforme
mecanismo já demonstrado na figura 20.
Ao resultado pode-se realizar um drill down ou um roll up para navegar do nível mais
alto até o nível mais detalhado, membro a membro, conforme determinado pelas
hierarquias das dimensões. Na figura 25, observa-se um drill down no membro
57
motivo de atendimento para o ano de 2008. E sobre esse resultado aplica-se um drill
through para possibilitar chegar a visualização dos dados primários dos registros
selecionados. (Aqui não serão mostrados os dados primários por se tratarem de
dados pessoais de pacientes. Entretanto a operação é possível realizando um duplo
“clic” sobre o número de ocorrência que se deseja visualizar).
Figura 25 - Operação drill through
Exemplo 3 : Qual o numero de atendimentos de emergência por para o ano de 2008,
por trimestre e sexo.
Para uma consulta também pode-se aplicar a operação “slice and dice”, que além de
selecionar uma fatia dos dados, realiza uma mudança de perspectiva na
visualização dos mesmos (fig. 26 e fig. 27 e fig. 28).
O filtro é estabelecido pelo “navigator” e a inversão de posições de linhas e colunas
é feita utilizando-se para isso a funcionalidade “swap axis” ou realizando a operação
de drag end drop (arrastar e soltar) das linhas ou colunas nas posições desejadas,
na “table viewer”.
58
Figura 26 - Operação slice and dice –perspectiva.A
Figura 27 - Operação slice and dice – perspectiva.B
Figura 28 - Operação slice and dice – perspectiva.C
59
6
CONCLUSÃO
Este trabalho contribuiu para o conhecimento da tecnologia de data warehouse e
ferramentas olap e sua aplicação no processo de suporte a decisão.
Através da pesquisa realizada constata-se que a tecnologia de data warehouse
apresenta um melhor resultado quando aplicada a grandes volumes de dados
históricos para as empresas que precisam recuperá-los de forma ágil e segura,
auxiliando os profissionais no processo de tomada de decisões estratégicas.
O estudo de caso desenvolvido no Hospital do Trabalhador foi revelador porque
permitiu realizar a prática da teoria pesquisada, evidenciando os pontos importantes
de projeto que não podem ser esquecidos, ao mesmo tempo que abre uma
perspectiva futura para atender a necessidade local de padronização e integração
das informações resultantes dos processos de negócios do hospital, que se
encontram dispersos em vários sistemas de bancos de dados e fontes informais.
A
metodologia
utilizada
no
desenvolvimento
do
DW
foi
a
modelagem
Multidimensional proposta por Ralph Kimball e Bill Inmon, adaptadas aos recursos e
ferramentas disponíveis e os resultados obtidos até o momento superam as
espectativas iniciais, tendo despertado grande interesse das instituições envolvidas
no processo de informatização no Hospital do Trabalhador em prover incentivo ao
uso desta tecnologia para melhoria e extensão deste projeto a outros similares no
Sistema Único de Saúde.
Como conclusão deste trabalho coloca-se a grande viabilidade do uso de
ferramentas OLAP como apoio ao processo de tomada de decisão, visto que permite
ao usuário chegar a resultados significativos através de consultas complexas feitas
de modo relativamente simples utilizando ferramentas Open Source.
60
REFERÊNCIAS BIBLIOGRÁFICAS:
MACHADO, Nery Rodrigues. Tecnologia e Projeto de Data Warehouse. 4ª.ed.São
Paulo:Érica,2008.
MARTINS et al, Mário Pereira. Analysis: uma proposta de ferramenta OLAP-WEB
para a análise de informações ambientais do Vale do Rio dos Sinos. UFRGS.
(2007) Disponível em <<http://ccet.ucs.br/erbd2007/artigos/26041.pdf >> Acesso em
28 de dez de 2008.
INMON, W.H.. Como construir o Data Warehouse. 2. ed. Rio de Janeiro: Editora
Campus, 1997. 388 p.
______. Creating The Data Warehouse Data Model From The Corporate Data
Model. 2000.
Disponível em: <http://www.inmoncif.com/registration/whitepapers/
ttdwdmod-1.pdf>. Acesso em: 15 dez. 2008.
KIMBALL, Ralph. Data Warehouse Toolkit – Técnicas para construção de Data
Warehouses Dimensionais. São Paulo: Makron Books, 1998. 388 p.
KIMBALL, Ralph; MERZ, Richard. Data Webhouse – Construindo o data
warehouse para a Web. Rio de Janeiro: Editora Campus, 2000. 367 p.75
SOUZA, Eliane Martins de. Ferramentas de Back End. Disponível em:
<http://www.datawarehouse.inf.br/Artigos/backend.pdf>. Acesso em: 11 jan. 2009.
WIKIPÉDIA.
Wikipédia,
a
enciclopédia
livre.
Disponível
em:
<http://pt.wikipedia.org/wiki/Armaz%C3%A9m_de_dados>. Acesso em: 11 jan. 2009.
______.
Wikipédia,
a
enciclopédia
livre.
Disponível
em:
<http://pt.wikipedia.org/wiki/Metadados>. Acesso em: 20 jul. 2007.
KIMBALL, Ralph. Fact Tables and Dimension Tables.
Disponível em
<http://www.intelligententerprise.com/030101/602warehouse1_1.jhtml> Acesso em
11 jan 2009.
______. DBMS A DIMENSIONAL MODELING MANIFESTO. 1997. Disponível em
<<ttp://www.uniriotec.br/~tanaka/SAIN/DBMS%20-%20August%201997%20%20A%20Dimensional%20Modeling%20Manifesto.htm>>. Acesso em dez 2008.
KIMBALL, Ralph; ROSS, Margy. The Data Warehouse Toolkit – Guia completo
para modelagem dimensional. Rio de Janeiro: Editora Campus, 2002. 494 p.
PENTAHO, Open Source Business Intelligence. How to Design a Mondrian
Schema. Disponível em <http://mondrian.pentaho.org/documentation/schema.php> .
61
Acesso em 05 jan 2009.
MINERAÇAO DE DADOS-UEM, Grupo de Sistemas Inteligentes. OLAP. Disponível
em <http://www.din.uem.br/ia/a_multid/mineracao/OLAP.html>. Acesso em 17 jan
2009.
GEOCITIES.
OLAP
(On-Line
Analitic
Processing
).
Disponível
em
<http://br.geocities.com/danielstrider/olap.html>. Acesso em 17 jan 2009.
________. DW (Data Warehouse) . Disponível em
<<http://br.geocities.com/
danielstrider/dw.html>>. Acesso em 10 jan 2009.
MICROSOFT. Módulo I - O que é Business Intelligence. 2007. 15 p.
MICROSOFT. Módulo 2 - Definindo Soluções OLAP. 2007. 16 p.
MICROSOFT. Módulo 3 - Desenhando uma solução OLAP. 2007. 22 p.
MICROSOFT. Módulo 4 - Contruindo uma solução OLAP. 2007. 15 p.
MICROSOFT. Módulo 5 - Implementando Cubos OLAP. 2007. 22 p.
COLOMBARI, Jacidio; MARINHO, Sandro M. N.. Desenvolvimento de data
warehouse para o domínio de telecomunicações. 2007. UNOPAR. Disponível em
<http://pessoal.sercomtel.com.br/sandroeshirlei/DATA_ WAREHOUSE.pdf >>Acesso
em dez 2008.
MONDRIAN. Mondrian 2.2.2 Technical Guide. Developing OLAP solutions with
Mondrian. March 2007. Disponível em <http://mondrian.sourceforge.net/>. Acesso
em nov 2008.
PINHO, Fábio Rocha de. Estendendo o Servidor OLAP Mondrian com UDF
Envolvendo Operadores Espaciais. 2008. Universidade Federal de Pernambuco.
Disponível em << http://www.cin.ufpe.br/~tg/2008-1/frp.pdf >> . Acesso em dez 2008.
TOMIO, Rivaldo Luiz. Data warehouse e Hospub. In: I Encontro de Gestores do
Hospub. Curitiba. 2008.
FELBER, Edimilson J. W.. Proposta de uma ferramenta OLAP em um data mart
comercial: uma aplicação prática na indústria calçadista. 2005. Centro
Universitário FEEVALE. Disponível em << http://ead.feevale.br/tc/files/450.pdf >>
Acesso em fev. 2009)
Download