Flavia de Paiva Barbosa

Propaganda
a
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Trabalho de Conclusão de
Curso
Projeto: Transformação de Dados para Data Warehouse
Alunos:
Flavia de Paiva Barbosa
Karla Maiana da Cunha Oliveira
2002010943
UC04007941
Professor: Cândido Salgado
2007
1
Flavia de Paiva Barbosa
Karla Maiana da Cunha Oliveira
TDDW
Transformação de Dados para Data Warehouse
Monografia
submetida
ao
XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX Universidade
Católica de Brasília para obtenção do Grau
XXXXXXXXXXXXXXXXXXXXXXX.
Brasília
2007
2
TERMO DE APROVAÇÃO
Monografia defendida e aprovada como requisito parcial para obtenção do grau de
Bacharel em Sistemas de Informação, defendida e aprovada, em XX de XXXX de 2007, pela
banca examinadora constituída por:
Prof. Cândido Salgado Filho
Orientador
Prof. Vilson Hartman
Examinador Interno
Brasília
UCB
3
AGRADECIMENTOS
“Agradecemos a Deus pela força
incessante nos momentos mais difíceis,
aos nossos Pais pelo apoio e compreensão
infindáveis, aos nossos Amigos por nos
proporcionar momentos inesquecíveis ao
longo dessa jornada, aos nossos Mestres
pelo privilégio do aprendizado e a Nossa
determinação e lealdade ao propósito deste
Projeto”.
4
Resumo
A informação constitui-se como o principal instrumento utilizado pelas Organizações
na busca pelo diferencial competitivo. Entretanto, a melhor informação caracteriza-se pelo
nível de disponibilidade, acuracidade e direcionamento para o negócio ao qual se aplica. BI
(Business Intelligence) é uma metodologia que se baseia na aplicação de tecnologias e
conceitos como mecanismo para o alcance de informações acertadas e fundamentais para o
processo decisório. Sua edificação comporta a utilização de ferramentas como Data
Warehouse, utilizada no armazenamento dos dados padronizados e oriundos de variadas bases
de dados, e a utilização do processo que compreende as técnicas de Extração, Transformação
e Carga dos dados (Extract, Transform and Load - ETL) focado na proposta de captura,
padronização e entrega dos dados. ETL não se restringe apenas a uma etapa no complexo
processo de definição estratégica, mas a uma etapa que envolve quase a totalidade do tempo,
esforço e despesa para se alcançar o objetivo final desse processo.
5
Abstract
Information is main instrument used by organizations in the search for competitive
differential. However, the best information is characterized by the level of availability,
accuracy and targeting for the business to which it applies. BI (Business Intelligence) is a
methodology that is based on the application of technologies and concepts such as mechanism
for the reach of information right and fundamental to decision making. His building includes
the use of tools such as Data Warehouse, used in the storage of standardized data deriving
from varied databases, and the use of the process that includes the techniques of Extraction,
Transformation and Load of Data (Extract, Transform and Load-ETL) focalized in the
capture, standardization and delivery of data. ETL is not limited to only one step in the
complex process of defining strategic, but a step that involves almost all the time, effort and
expense to achieve the final goal of this process.
6
SUMÁRIO
Resumo ....................................................................................................................................... 5
Abstract ...................................................................................................................................... 6
Lista de Figuras ......................................................................................................................... 9
Capítulo 1 -
Introdução ........................................................................................................ 10
1.1
Motivação ............................................................................................................................12
1.2
Problemas Diagnosticados .................................................................................................12
1.3
Surgimento da Necessidade da Pesquisa...........................................................................13
Capítulo 2 -
Objetivo da Pesquisa ........................................................................................ 14
2.1
Objetivo Geral .....................................................................................................................14
2.2
Objetivos Específicos ..........................................................................................................14
Capítulo 3 -
Proposta da Pesquisa ....................................................................................... 15
3.1
Resultados Esperados .........................................................................................................15
3.2
Restrições da Pesquisa Proposta .......................................................................................15
3.3
Recursos Necessários para Execução do Novo Software.................................................15
3.4
Relação Custo x Benefício ..................................................................................................16
3.5
Áreas Afetadas pela Pesquisa ............................................................................................16
Capítulo 4 -
Business Intelligence ....................................................................................... 18
Capítulo 5 -
Data Warehouse .............................................................................................. 22
Capítulo 6 -
Extração, Transformação e Carga ................................................................. 30
6.1
Staging Area .........................................................................................................................30
6.2
Modelo Dimensional ...........................................................................................................35
6.2.1
Tabela Fato ..........................................................................................................................36
6.2.2
Tabela Fato de Transação ..................................................................................................38
6.2.3
Tabela Fato de Imagem Periódica .....................................................................................38
6.2.4
Tabela Fato de Imagem Acumulada .................................................................................39
6.2.5
Tabela Dimensão .................................................................................................................39
6.3
Documento Lógico ..............................................................................................................41
6.4
Fontes Heterogêneas ...........................................................................................................42
6.5
Detecção de Mudanças .......................................................................................................44
6.6
Qualidade dos Dados ..........................................................................................................46
Capítulo 7 -
Ferramenta para Tratamento de Dados ......................................................... 48
7.1
Especificação de Requisitos................................................................................................48
7.1.1
Identificação dos Interessados no Sistema........................................................................49
7.1.2
Principais Necessidades dos Interessados .........................................................................49
7
7.1.3
Requisitos Funcionais .........................................................................................................50
7.1.3.1 Realizar Conexão ................................................................................................................50
7.1.3.2 Visualizar Tabelas...............................................................................................................50
7.1.3.3 Padronizar Dados ...............................................................................................................50
7.1.3.4 Monitorar as execuções efetuadas .....................................................................................50
7.1.3.5 Gerar dados estatísticos e logs de execução ......................................................................51
7.1.3.6 Visualizar todos os projetos departamentais....................................................................51
7.1.3.7 Gerar mapas de execução...................................................................................................51
7.1.4
Requisitos Não-Funcionais .................................................................................................51
7.1.4.1 Segurança ............................................................................................................................51
7.1.5
Restrições do Sistema .........................................................................................................51
7.1.6
Interface Entre os Agentes Externos e o Sistema .............................................................52
7.1.7
Contexto de Utilização do Sistema ....................................................................................52
7.1.8
Procedimento Contra Perdas de Informações .................................................................52
7.1.9
Tratamento de Erros ..........................................................................................................52
7.1.10 Possibilidades de Evolução Futura ......................................... Erro! Indicador não definido.
Referências Bibliográficas ...................................................................................................... 54
8
Lista de Figuras
Figura 1 - Componentes de um Business Intelligence .......................................................... 20
Figura 2 - A questão da não-volatilidade (Fonte: Inmon, 2002) .......................................... 23
Figura 3 - A questão da variação em relação ao tempo (Fonte: Inmon, 2002) .................... 23
Figura 4 - Estrutura do Data Warehouse (Fonte: Inmon, 2005).......................................... 24
Figura 5 - Granularidade (Fonte: Inmon, 2002) ................................................................... 25
Figura 6 - A questão da integração (Fonte: Inmon, 2002) ................................................... 28
Figura 7 - Áreas de preparação (Fonte: Kimball, 2004) ....................................................... 30
Figura 8 - Integração de fontes de dados heterogêneas (Fonte: Kimball, 2004).................. 34
Figura 9 - Tabela fato (Fonte: Kimball, 2002)....................................................................... 36
Figura 10 - Tabela dimensão (Fonte: Kimball, 2002) ........................................................... 40
9
Capítulo 1 - Introdução
A competitividade, característica do ambiente empresarial e que define as regras do
processo decisório nas organizações, é o principal combustível na reavaliação dos dados que
influenciam direta e indiretamente o ambiente de negócio das empresas. Sendo assim, é
preciso inovar e estar atento a todos os fatores que possam causar queda na produtividade e no
crescimento da organização. Surge então a necessidade de integrar os dados internos e
externos ao âmbito empresarial, no intuito de gerar informações consistentes e que sirvam
como base para a tomada de decisões estratégicas.
A Inteligência do Negócio (Business Intelligence – BI) surge em meados dos anos 80 e
compreende: a aplicação de tecnologias e conceitos em processos empresariais com o objetivo
de extrair informações acertadas e fundamentais para a tomada de decisão, favorecendo o
aumento da vantagem competitiva. Esta atividade realizada pelo BI se contempla com o
estreitamento da comunicação entre os setores departamentais, com as atividades e dados
coordenados, além de permitir à organização responder mais rapidamente às mudanças que
ocorrem no mercado. No entanto, para que este auxílio ocorra de forma eficaz o BI se
estrutura basicamente em três pilares: Processo Decisório, Armazém de dados (Data
Warehouse - DW) e Extração, Transformação e Carga (Extract, Transform and Load - ETL).
[Kimball, 2002]
A tecnologia de Data Warehouse é responsável por integrar bases de dados dando
suporte para a atuação da equipe estratégica. As organizações, em sua grande maioria,
possuem bancos de dados departamentais e independentes e isso facilita a duplicidade e
inconsistência das informações. Um exemplo dessa divergência pode ocorrer ao se levantar
dados que foquem um mesmo propósito, mas expostos por equipes distintas: os valores
10
identificados por cada uma certamente apresentarão conteúdos divergentes. A faixa de
diferenciação reportada nestes dados provocaria dúvidas na Diretoria ao tomar uma decisão
que afetaria o rumo do seu negócio. Sem uma unificação e integração dos dados o processo
decisório passaria a ser feito de forma intuitiva e empírica. [Inmon, 1997]
Segundo Gupta (1997), Data Warehouse é um ambiente estruturado, extensível,
projetado para a análise de dados não voláteis, lógica e fisicamente transformados,
provenientes de diversas aplicações, alinhados com a estrutura da empresa, atualizados e
sumarizados para análise rápida. A principal característica de um DW é formar um histórico
com as informações relevantes que passam pela organização com o intuito de se fazer
projeções no negócio baseados em fatos que ocorreram no ambiente interno e externo à
empresa ao longo de um determinado tempo. Para isso, antes de sua formação, estes dados
são capturados de diversas fontes e posteriormente transformados, de modo a eliminar
inconsistências e ambigüidades, evitando que nada seja desconsiderado por uma simples
questão de sincronização em seu formato. Esta descrição é conceitualmente conhecida como
ETL. Ao formar este armazém de dados, os usuários finais poderão ter acesso dinâmico a
estas informações a partir de ferramentas OLAP (On-Line Analytic Processing). Estas
aplicações extraem os dados do DW e constroem relatórios que respondem a suas perguntas
gerenciais.
ETL compreende o estabelecimento de conexões com fontes de dados operacionais.
Essas conexões possuem características particulares, de acordo com cada fabricante. Cada
fonte deve receber um tratamento especial de modo a possibilitar que a organização utilize
dados provenientes das suas diversas fontes. Após essa etapa, os dados lidos passam por uma
fase de limpeza, tratamento e conversão para que sejam adequados às regras de negócio e
possam ser armazenados na base DW. Para que se tenha um retorno sobre o que ocorreu na
fase de ETL, relatórios devem ser apresentados com percentuais de leitura, transformações
11
bem sucedidas e cargas na base de dados do DW. Essa visão levará ao Administrador de
dados respostas para o aperfeiçoamento dos padrões e conseqüente aumento do grau de
confiabilidade dos dados primários. [Kimball, 2004]
Diante desta necessidade de dados de qualidade a Administração de Dados revela
então uma dependência do processo de ETL. Com isso, cada vez mais as empresas vêm
buscando o domínio sobre todos os padrões e formas utilizadas nos dados dos sistemas, pois
isso minimiza problemas no processo de extração de dados.
1.1 Motivação
A crescente necessidade de aprimorar os meios de auxílio à tomada de decisão dentro
das empresas possibilitou o desenvolvimento de tecnologias que visam integrar as diferentes
fontes de informação, de modo a assegurar a acuracidade destes dados. O ETL tem papel
fundamental dentro desse processo, pois engloba a extração dos dados transacionais, a
transformação e carga em uma base corporativa e analítica.
É importante que durante a etapa ETL exista uma preocupação quanto à qualidade e
confiabilidade dos dados para que seja evitada a duplicidade de informações e inconsistências
no DW. A tomada de decisão possui papel fundamental para a permanência de uma
organização no mercado e precisa ser baseada em informações confiáveis, seguras e coerentes
com os seus objetivos.
1.2 Problemas Diagnosticados
•
Necessidade da apresentação de dados estatísticos referentes às cargas efetuadas –
tempo de execução, número de registros lidos com sucesso, não lidos,
transformados, gravados com sucesso e rejeitados;
12
•
Dificuldades com a má administração dos dados propiciam a ocorrência de
inconsistências e duplicidades, uma vez que um mesmo dado pode aparecer em
mais de uma base com nomes e formatos diferentes;
•
Dificuldades em se conseguir uma conversão de dados sincronizada com todos os
bancos e com um alto nível de qualidade e segurança;
•
Complexidade em estabelecer conexões com todos os bancos de dados
transacionais existentes, devido a diferenças em suas estruturas e gerenciamentos;
•
Dificuldades em se identificar as reais alterações ocorridas na base de dados
transacional, forçando a leitura de todos os registros.
1.3
Surgimento da Necessidade da Pesquisa
Tendo em vista as falhas encontradas e a importância da etapa de ETL, torna-se
evidente a necessidade de construção de uma ferramenta que evite ou minimize os impactos
negativos nas fases seguintes do BI.
13
Capítulo 2 -
Objetivo da Pesquisa
2.1 Objetivo Geral
Detalhar o processo de ETL e produzir uma ferramenta que contemple algumas das
funcionalidades executadas nessa etapa.
2.2
Objetivos Específicos
•
Possibilitar que a administração dos dados seja executada de maneira eficiente,
auxiliada pela criação de metadados e padronização dos tipos dos campos;
•
Possibilitar a conversão automática dos tipos de dados quando repositórios com
definições diferentes forem utilizados;
•
Possibilitar o estabelecimento de conexão com os diversos bancos de dados;
•
Possibilitar a identificação dos registros que realmente deverão ser carregados,
evitando as leituras de toda a base;
•
Possibilitar a geração de dados estatísticos e logs de execução.
14
Capítulo 3 - Proposta da Pesquisa
3.1 Resultados Esperados
Obter ao final da pesquisa, uma ferramenta ETL que possibilite uma eficiente
administração e permita que seja alcançado um alto nível de qualidade dos dados.
3.2 Restrições da Pesquisa Proposta
Apesar da citação inicial, não será detalhado o ponto que faz referência à possibilidade
de identificação dos registros que realmente deverão ser carregados, o que evitaria a leitura de
toda a base. Além disso, não será esmiuçado o ponto que faz referência a geração de dados
estatísticos e logs de execução.
3.3
Recursos Necessários para Execução do Novo Software
•
Descrição do Hardware Ideal
o Cliente: Processador AMD Turion 1.6 GHz ou Intel Core 2 Duo 1.6 GHz,
Memória RAM 2 GB, HD 120 GB.
o Servidor: Processador Opteron Dual Core 2.6 GHz, 4 GB RAM, 4 HDs
Ultra SCSI, 300 GB com possibilidade de expansão.
•
Descrição do Hardware Mínimo
o Cliente: Processador AMD Sempron 1.6 GHz ou Intel 1.3 GHz, Memória
RAM 512 MB, HD 80 GB.
o Servidor: Processador AMD Turion 1.6 GHz ou Intel Core 2 Duo 1.6 GHz,
Memória RAM 2 GB, HD 120 GB.
•
Descrição do Software
o Sistema operacional Unix ou Windows de 32 bits, Máquina Virtual Java 5.
15
•
Configuração da Rede
o LAN ou Ethernet, 100 mbps.
•
Configuração do Banco de Dados
o O banco de dados estará presente no Servidor. Banco: MySQL 5.
•
Pessoal Exigido
o Um Gerente de Projeto, dois Analistas/ Programadores.
3.4 Relação Custo x Benefício
Pesquisa economicamente viável, demandando gastos referentes aos recursos
materiais e humanos para o desenvolvimento e manutenção. O custo ao final do Projeto é
justificado pelo benefício fornecido pela utilização da ferramenta que proporcionará melhor
utilização e armazenamento de dados de importância fundamental para a tomada de decisão.
3.5
Áreas Afetadas pela Pesquisa
Dentre as diversas áreas que se encontram envolvidas no foco desta Pesquisa,
podemos ressaltar:
- Setor Estratégico: Responsável por analisar as informações que foram capturadas,
tratadas e entregues numa base unificada. Passará a analisar dados provindos de uma fonte
especialmente tratada e padronizada;
- Administração de Dados: Responsável pelo aperfeiçoamento dos padrões utilizados e
busca por uma maior confiabilidade dos dados. Passará a analisar os resultados obtidos do
processo de transformação e padronização e verificarão se esse processo deverá sofrer ou não
alteração;
16
- Administração de ETL: Responsável pelo manuseio da ferramenta que realizará o
processo de Extração, Transformação e Carga. Passará a analisar se as funcionalidades da
ferramenta condizem com o que definido;
- Administração de Banco de Dados: Responsável pelo gerenciamento dos bancos de
onde os dados serão provindos. Passará a disponibilizar os mecanismos de acesso a estes
bancos para possibilitar a extração destes pela ferramenta de ETL.
17
Capítulo 4 - Business Intelligence
O termo Business Intelligence (BI) foi cunhado pelo grupo Gartner, no final dos anos 80 e
definido como “um processo que engloba o acesso e exploração da informação, a análise
destas informações, bem como o desenvolvimento de conhecimento e compreensão, o que
leva a uma melhor tomada de decisão”.
Business Intelligence pode ser entendido também como um conceito que envolve a
Inteligência Competitiva (CI), a Gerência de Conhecimento (KMS) e a IBI (Internet Business
Intelligence), pesquisa e análise de mercado, relacionados à nova era da Economia da
Informação, dedicada a captura de dados, informações e conhecimentos que permitem as
organizações competirem com maior eficiência no contexto atual, é um conjunto de
ferramentas utilizado para manipular uma massa de dados operacional em busca de
informações essenciais para o negócio [Mello, 2006]. Mais detalhadamente, CI é um processo
sistemático que visa descobrir as forças que regem os negócios, reduzir o risco e conduzir o
tomador de decisão a agir antecipadamente, bem como proteger o conhecimento gerado. KMS
teve sua discussão emergida nos anos 90 e objetiva gerenciar o conhecimento acumulado dos
recursos humanos da empresa a fim de transformá-los em ativos da empresa. Ela cria
condições para que o conhecimento seja criado, socializado, externalizado dentro da empresa,
transformando-o de tácito em explícito. IBI consiste na incorporação da web no conceito de
BI, e na utilização deste meio como troca de informações dentro e fora das empresas.
Dentre as vantagens remetidas ao uso do BI podem-se ressaltar aquelas que estão
relacionadas com o acesso a informação de qualidade que permite que as empresas conheçam
melhor a sua realidade, quer seja interna, quer seja voltada para o exterior, permitindo-lhes
obter importantes indicadores que irão melhorar o desempenho da sua atuação e a inovação
tão necessária ao seu crescimento. Mais especificamente, o BI é um conceito que permite:
18
•
Alinhar projetos de tecnologia com as metas estabelecidas pelas empresas na busca
pelo máximo retorno do investimento;
•
Ampliar a compreensão das tendências dos negócios, ao propiciar mais consistência
no momento de decisão de estratégias e ações;
•
Permitir uma análise de impacto sobre rumos financeiros e organizacionais, com o
objetivo de criar mudanças nas iniciativas gerenciais;
•
Facilitar a identificação de riscos e gerar segurança para migração de estratégias,
criando maior efetividade nas implementações dos projetos;
•
Permitir um planejamento corporativo mais amplo, ao substituir soluções de menor
alcance por resultados integrados pela informação consistente;
•
Gerar, facilitar o acesso e distribuir informação de modo mais abrangente, para obter
envolvimento de todos os níveis da empresa e todos aqueles que possam, ao usá-la,
agregar mais valor;
•
Ligar e consolidar dados de diferentes sistemas de modo a oferecer uma visão comum
do desempenho da empresa;
•
Automatizar tarefas, eliminando os erros ao colocar as pessoas no fim dos processos;
•
Oferecer dados estratégicos para análise com um mínimo de atraso em relação a uma
transação ou evento dentro da empresa;
Torna-se imprescindível ressaltar que Business Intelligence é um conceito em constante
evolução que deve estar sempre alinhado aos interesses da empresa e caminhar em direção ao
alcance das metas estabelecidas. No entanto, para que a utilização do BI tenha como premissa
a corretitude e com isso, um alcance mais efetivo do que se deseja com o seu uso, dois pontos
importantes na infra-estrutura tecnológica do processo de BI devem ser assegurados
[Almeida, Ishikawa, Reinschmidt & Roeber, 1999]:
19
•
Sistemas de Front-End: SAD (Sistemas de Apoio a Decisão. Ex: ERP – Enterprise
Resource Planning; CRM – Customer Relationship Management), EIS (Executive
Information System), Enterprise Reporting (Relatórios Corporativos), Dashboards
(Painéis de Controle) e ferramentas de consulta analítica OLAP (On-line Analytical
Processing);
•
Sistemas de Back-End: Armazém de dados (Data Warehouse), Data Mart,
ferramentas de dados (Data Mining) e ferramentas de tratamento de dados ETL
(Extraction Transformation and Load).
Figura 1 - Componentes de um Business Intelligence
O processo de ETL, como alicerce para o BI, tem como importância garantir a edificação
de uma base de dados consistente para que possa ser evitada uma possível visão dissonante
sobre a mesma informação.
20
As ferramentas de ETL possibilitam cinco operações principais: A primeira delas refere-se
à extração dos dados que podem estar em fontes internas (sistemas transacionais, bancos de
dados etc.) ou externas (em sistemas fora da empresa). Em seguida, é preciso fazer a limpeza
dos dados. Nessa etapa, são corrigidas algumas imperfeições contidas na base de dados
transacional, com o objetivo de fornecer ao usuário dados concisos, não redundantes e com
qualidade, permitindo uma análise baseada nos valores mais próximos dos reais. A terceira
operação refere-se ao processo de transformação do dado. Normalmente, os dados vêm de
vários sistemas diferentes e por isso se faz necessário padronizar os diferentes formatos em
um só. A quarta etapa diz respeito ao processo de carga do DW, que em geral é feito a partir
de um banco de dados temporário, no qual os dados armazenados já passaram pela limpeza e
integração. E, finalmente, há a etapa de atualização dos dados (Refresh). Estes dados serão
posteriormente utilizados para o auxílio de tomada de decisão.
21
Capítulo 5 - Data Warehouse
Data Warehouse é o conjunto de dados baseado em assuntos, integrado, não-volátil, e
variável em relação ao tempo, de apoio às decisões gerenciais [Inmon, 1997].
A primeira característica do DW ressaltada neste conceito: ser baseado em assunto,
assim o é por ter a responsabilidade de retornar informações referentes ao negócio da
empresa. No entanto, antes que estas informações possam estar disponibilizadas é necessário
que haja uma integração entre os dados das diferentes aplicações existentes na organização. O
papel da integração é padronizar os dados existentes, obrigando que a inserção ocorra com
dados num formato uniforme. A característica de não-volatilidade do Data Warehouse referese ao fato de que, como se constitui em um histórico, não ocorrem atualizações nos dados em
seu ambiente, o seu propósito é armazenar as suas diferentes versões para se estabelecer
projeções ou simulações de cenários. Como dito anteriormente, o DW também é variável em
relação ao tempo, isso se manifesta da seguinte maneira [Inmon, 1997]: O horizonte de tempo
válido para o Data Warehouse é significativamente maior do que o dos sistemas operacionais.
Um horizonte de tempo de 60 a 90 dias é o normal para os sistemas operacionais; um
horizonte de tempo de 5 a 10 anos de dados é o normal para o Data Warehouse. Bancos de
Dados operacionais contêm dados de “valor corrente” – dados cuja exatidão é válida para o
momento de acesso. Assim sendo, dados de valor corrente podem ser atualizados. Dados
existentes no Data Warehouse não passam de uma série sofisticada de instantâneos,
capturados num determinado momento. A estrutura de chaves dos dados operacionais pode
conter, ou não, elementos de tempo, como ano, mês, dia. A estrutura de chave do Data
Warehouse sempre contém algum elemento de tempo.
22
Não-volatilidade
Data warehouse
Operacional
inserir
alterar
deletar
acesso
deletar
inserir
carga
acesso
alterar
Manipulação dos dados
registro por registro
Carga em massa/
acesso dos dados
Figura
Figura 22 -- A
A questão
questão da
da não-volatilidade
não-volatilidade (Fonte:
(Fonte: Inmon,
Inmon, 2002)
2002)
Variação em relação ao tempo
Data warehouse
Operacional
•
•
•
horizonte de tempo – atual até 60-90 dias
alteração de registros
estrutura de chaves pode/não pode conter
elemento de tempo
•
•
•
horizonte de tempo – 5-10 anos
imagens sofisticadas de dados
estrutura de chaves contém elemento
de tempo
Figura 3 - A questão da variação em relação ao tempo (Fonte: Inmon, 2002)
A estrutura do Data Warehouse é caracterizada pela diferenciação dos dados em:
[Inmon, 1997]
•
Dados em nível de detalhe mais antigo: Neste caso os dados armazenados possuem
um tempo de alocação mais significativo, como por exemplo, 10 (dez) anos.
•
Dados em nível de detalhe corrente: Neste caso os dados armazenados possuem
um tempo de alocação corrente e uma probabilidade maior de ter realizada a sua
consulta.
23
•
Dados em nível levemente resumido, referentes apenas a um departamento ou
pequena parte da organização: Neste caso os dados são armazenados em
DataMarts.
•
Dados em nível altamente resumido: Neste caso os dados armazenados permitem
uma maior possibilidade de consultas. [Inmon, 1997] Dados que apresentam alta
probabilidade de acesso e baixo volume de armazenamento reside em um meio
rápido e relativamente caro. Dados que apresentam baixa probabilidade de acesso
e grande volume de armazenamento residem em um meio menos dispendioso e de
acesso mais lento.
Vendas mensais por
linha de produtos
1981-1992
Altamente
resumido
M
M
e
e
tt
aa
dd
aa
d
od
o
Vendas semanais por
linha de subprodutos
1984-1992
Levemente
resumido
(datamart)
Detalhes
atuais
Transformação
operacional
Detalhes
antigos
Detalhes das vendas
1990-1991
Detalhes das vendas
1984-1989
Figura 4 - Estrutura do Data Warehouse (Fonte: Inmon, 2005)
Esta diferenciação dos dados quanto ao seu detalhamento se traduz como
Granularidade. Quanto mais alto o nível de granularidade, menos detalhe contido em seus
dados. Quanto menor o nível de granularidade, mais detalhe contido em seus dados. Essa
característica do Data Warehouse também definirá a sua proporção (tamanho).
No exemplo da figura 4, observa-se que no lado esquerdo ocorre o aparecimento de
um baixo de nível de granularidade: cada chamada telefônica é registrada em detalhe, ou seja,
24
ao final de um mês cada cliente possui em média 200 registros que acarretam, juntos, um
valor próximo a 40 mil bytes. No lado direito o nível de granularidade é alto: para cada mês,
há um registro para cada cliente, e este registro necessita de aproximadamente 200 bytes.
Percebe-se então, uma discrepância no detalhamento nos dois casos. [Inmon, 1997]
Granularidade
Alto nível de detalhe
EXEMPLO:
Os detalhes de cada
chamada telefônica por
cliente por mês
40.000 bytes por mês
200 registros por mês
01 atividaderec.
02 data
02 tempo
02 para quem
02 chamada completada
02 tempo completado
02 longa distância
02 celular
02 taxa especial
...................
...................
Baixo nível de detalhe
EXEMPLO:
O resumo das chamadas
telefônicas por cliente
por mês
200 bytes
1 registro por mês
M
01 atividaderec.
02 mês e
t
02 chamadasAcum
a
02 duraçãoMedia
d
02 longaDistanciaAcum
a
d
02 InterrupçãoAcum
. . . . . . . . .o. . . . . . . . . .
Figura 5 - Granularidade (Fonte: Inmon, 2002)
A enorme quantidade de dados de detalhe corrente que será atingido pelo Data
Warehouse será inevitável, e a dificuldade em gerenciar essa gama de dados será proporcional
ao seu tamanho. No entanto, para facilitar esta atividade a técnica de Particionamento de
Dados é utilizada.
Particionar significa distribuir os dados em unidades físicas menores com a finalidade
de aumentar a flexibilidade no gerenciamento dos dados e melhorar o desempenho das
consultas realizadas.
25
Quando os dados residem em unidades físicas de tamanho maior, entre outras coisas,
eles não podem ser [Inmon, 1997]:
•
Reestruturados facilmente;
•
Indexados livremente;
•
Pesquisados sequencialmente, se necessário;
•
Reorganizados facilmente;
•
Recuperados facilmente;
•
Monitorados facilmente.
Existem diversas formas de se organizarem a estruturação dos dados no Data
Warehouse. Dentre as mais utilizadas encontram-se [Inmon, 1997]:
•
Dados Cumulativos Simples: Neste caso os dados são transportados do ambiente
operacional para o DW e depois são compactados em forma de registros. Esta
compactação terá como regra a forma como o DW foi organizado. As transações
são resumidas por dia.
•
Dados de Resumo Rotativo: Neste caso os dados são transportados do ambiente
operacional para o DW e a forma como eles são organizados ocorre da seguinte
maneira: Nos primeiros sete dias da semana, a atividade é resumida em sete
posições diárias. Depois estas sete posições são acumuladas e colocadas na
primeira posição semanal. E assim, mensalmente e anualmente.
Existem algumas vantagens e desvantagens na utilização destas duas formas de
estruturação dos dados [Inmon, 1997]:
Dados de Resumo Rotativo:
•
Bem compactado;
•
Alguma perda de detalhe;
•
Quanto mais antigos os dados se tornam, menos detalhes são mantidos.
26
Dados Cumulativos Simples:
•
Grande demanda por armazenamento;
•
Nenhuma perda de detalhe;
•
Muito processamento para qualquer tratamento de dados.
O Data Warehouse é formado pelos dados oriundos dos sistemas operacionais
existentes na organização. No entanto, a captura destes dados constitui uma tarefa nada
simples, pois é necessário que algumas medidas sejam tomadas já que estes sistemas muitas
vezes não estão integrados.
A falta de integração é identificada, por exemplo, quando mesmos dados são rotulados
de maneiras diferentes ou então quando os mesmos dados existem em locais distintos.
Um exemplo simples da falta de integração é o fato de os dados não poderem ser
codificados de forma coerente, como exemplificado na codificação de gênero. Em uma
aplicação, o gênero é codificado como “m/f”. Em outra, ele é codificado como “0/1”. À
medida que os dados passam para o Data Warehouse, os diferentes valores precisam ser
corretamente decodificados e recodificados com o valor apropriado. [Inmon, 1997]
A transformação de campos é outra questão de integração. O mesmo campo existe em
quatro aplicações com quatro nomes diferentes. Para que os dados sejam passados
corretamente para o Data Warehouse é necessário que ocorra um rastreamento comparativo
entre os diferentes campos existentes e os campos do DW. [Inmon, 1997]
Para que a utilização do DW ocorra de forma eficiente e eficaz é necessário que haja
uma aplicação de esforço anterior a sua implementação, pois é preciso que os dados contidos
nele estejam integrados.
27
Figura 6 - A questão da integração (Fonte: Inmon, 2002)
Uma das partes mais complexas do processo de edificação do Data Warehouse é o
processo de preparação dos dados que serão inseridos. Nesta fase, algumas atividades são
essenciais para que ao final haja sucesso. Dentre ela temos [Inmon, 1996]:
•
A extração de dados do ambiente operacional para o ambiente de Data Warehouse
demanda uma mudança na tecnologia;
•
A seleção de dados do ambiente operacional pode ser muito complexa;
•
Os dados são reformatados;
•
Os dados passam por uma limpeza;
•
Acesso a diferentes fontes de dados;
28
•
A eficiência na escolha dos dados de entrada para a extração torna-se
freqüentemente uma questão importante;
•
A alteração de nomes de elementos de dados durante a passagem do ambiente
operacional para o ambiente de Data Warehouse deve ser registrada;
•
A conversão do formato dos dados precisa ser feita;
Data Warehousing é, então, o processo de captura dos dados dos sistemas legados e
transacionais e a transformação deles em informação organizada, em um formato amigável,
para incentivar a análise de dados e para suportar a tomada de decisão baseada em fatos do
negócio. O processo ETL envolve transformar dados de seu formato original para uma base
dimensional e compreende pelo menos 70 por cento do tempo, do esforço, e da despesa da
maioria dos projetos de Data Warehouse. [Kimball, 2004]
29
Capítulo 6 - Extração, Transformação e Carga
6.1 Staging Area
Por trás do DW existe uma área conhecida como área de preparação (staging area).
Staging neste contexto significa a escrita em disco. Esta prática torna-se recomendável, uma
vez que os dados passam por diversas transformações até serem disponibilizados ao usuário
final. Caso ocorra algum erro durante o processamento, o armazenamento mantido no
decorrer das fases principais do ETL poderá ser retomado do ponto onde parou, ao invés de
precisar refazer todo o processo.
Grande Porte
Extrair
Produção
Código
Limpar
Transformar
Entregar
Extração
Área de
Preparação
Limpeza
Área de
Preparação
Transformação
Área de
Preparação
Entrega
Área de
Preparação
(estruturas de
dados geral)
(estruturas de
dados geral)
(estruturas de
dados geral)
(tabela
dimensão)
Usuário Final
Aplicações
Operações: Agendamento, Tratamento de Exceção,
Recuperação, Reiniciar, Checar Qualidade, Versão, Suporte
Figura 7 - Áreas de preparação (Fonte: Kimball, 2004)
A decisão de armazenar dados em uma área física de preparação ao invés de executar
o processamento em memória é finalmente a escolha do arquiteto de ETL. A habilidade de
desenvolver processos eficientes de ETL é em parte dependente de poder balancear a entrada
e saída (I/O) física e processamento em memória. [Kimball, 2004]
Armazenar dados durante o processamento varia dependendo do ambiente e
exigências do negócio. Algumas razões devem ser consideradas ao se armazenarem dados
antes que eles sejam carregados no DW [Kimball, 2004]:
•
Capacidade de recuperação;
30
•
Reserva (Backup);
•
Auditoria.
O armazenamento de dados durante o processamento também é utilizado para suportar
funcionalidades que necessitem de históricos. De acordo com essa possibilidade, as tabelas de
preparação podem ser classificadas como: Persistentes, que armazenam histórico dos
processamentos, ou Transientes, que não armazenam histórico.
Independentemente da persistência dos dados na área de preparação, algumas regras
deverão ser seguidas para que um projeto de Data Warehouse obtenha sucesso [Kimball,
2004]:
•
A área de preparação deve ser conhecida apenas pela equipe de ETL. Não é uma
área projetada para apresentação. Não há nenhum índice ou agregação que suporte
solicitações de consulta.
•
Não são permitidos acessos de usuários à área de preparação. Dados na área de
preparação devem ser considerados como em um local de construção. O acesso por
usuários não autorizados pode causar danos à qualidade dos dados, reduzindo a
integridade do DW.
•
Os relatórios não podem alcançar dados da área de preparação. A área de
preparação dos dados é um local de trabalho. As tabelas são adicionadas,
excluídas, ou modificadas pela equipe de ETL sem notificar aos usuários.
•
Somente os processos de ETL podem escrever e ler da área de preparação. Cada
DW requer séries de dados que não têm uma fonte exterior convencional. Caso o
DW não encontre os dados de que necessita em bases transacionais é possível que
ele recupere esses dados na área de preparação. Uma aplicação pode ser criada de
modo a gerar esses dados e armazená-los utilizando um ETL na área de preparação
para servir de entrada aos demais processos.
31
A plataforma exata para armazenar as tabelas da área de preparação depende de muitas
variáveis, incluindo padrões e práticas corporativas. O uso de arquivos flat sobre tabelas da
base de dados para parcelas do processo de ETL é mais prático quando a finalidade
fundamental do processo é uma das seguintes [Kimball, 2004]:
•
Preparação dos dados da fonte para proteção e recuperação.
•
Seleção dos dados.
•
Filtragem.
•
Substituição de séries de caracteres.
•
Agregação
•
Referenciar fontes de dados.
Os dados de preparação podem opcionalmente ser armazenados em tabelas relacionais,
o que apresenta diversas vantagens [Kimball, 2004]:
•
Metadados aparentes. Um dos inconvenientes principais de usar arquivos flat é que
faltam metadados aparentes. Armazenando dados em uma tabela relacional, o
Sistema de Gerenciamento de Banco de Dados (DataBase Management System –
SGBD) mantém metadados técnicos automaticamente, e os metadados do negócio
podem facilmente ser unidos à tabela. Informação tal como nomes da coluna, tipos
de dados e comprimentos, e a cardinalidade são inerentes ao sistema da base de
dados. As descrições de negócio da tabela e da coluna são elementos adicionados
geralmente aos catálogos de dados do SGBD.
•
Habilidades relacionais. Recebendo dados de sistemas não-relacionais faz sentido
preparar os dados em um ambiente normalizado antes de transformar em um
modelo dimensional.
32
•
Abrir o repositório. Uma vez que os dados são colocados em um SGBD, os dados
podem facilmente ser alcançados por uma ferramenta SQL. O acesso aos dados é
crucial durante os testes e exames de garantia de qualidade.
•
Suporte a administração de dados. Em muitos ambientes corporativos, o grupo do
DBA está responsável somente por dados dentro do SGBD. Alocação de espaço,
backup e recuperação, arquivamento, e segurança são tarefas que a equipe de ETL
deverá coordenar quando a área de preparação não estiver em um SGBD.
•
Interfaces SQL. Muitas vezes será necessário manipular dados e obtê-los no
formato correto utilizando SQL
Tabelas Independentes recebem esse nome porque não dependem de nenhuma outra
tabela na base de dados. No ambiente transacional, estas tabelas são conhecidas como órfãs
por não possuírem relacionamentos com outras tabelas. São as principais candidatas a
armazenar os dados na área de preparação, fora de uma base de dados relacional. [Kimball,
2004]
Bases de dados transacionais são projetadas para armazenar dados, enquanto bases
dimensionais são projetadas para prover dados. A área de preparação deve ser planejada de
modo a atender essas duas necessidades. O principal motivo para a criação de uma tabela de
preparação é coletar dados de modo que eles possam ser manipulados utilizando SQL. Na
maioria dos casos, principalmente em pequenos projetos de Data Warehouse, as tabelas
independentes são exatamente o que a área de preparação precisa e não são necessariamente
normalizadas.
A área de preparação pode ser considerada um repositório central dos dados que
eventualmente são carregados no DW. Entretanto, defini-la como um repositório central de
todos os dados da empresa é um engano que pode fazer com que os arquitetos acreditem que a
área inteira deva ser normalizada. Raramente a área de preparação é modelada atendendo à
33
terceira forma normal. A normalização só faz sentido em casos onde dados são recuperados
de diversas fontes, de modo a evitar redundâncias e reforçar a integridade. A normalização da
área de preparação não deve ser assumida como regra.
Uma das razões para a existência de uma área destinada à preparação é integrar os
dados não-relacionais. Integrar fontes de dados heterogêneas é um desafio que os
colaboradores de ETL enfrentam constantemente, enquanto o DW expande seu escopo. Em
projetos empresariais de Data Warehouse a maioria das fontes de dados são não-relacionais.
Ou relacionais, mas que não possuem relacionamentos com as demais fontes. Dentre as nãorelacionais incluem arquivos COBOL, VSAM, arquivos texto, planilhas eletrônicas, entre
outros.
Sistemas de Fontes
Heterogêneas
Sistema HR
(Oracle)
Sistema Financeiro
(DB2)
Fichas de Arquivos
“Textos”
Sistema de
Inventário
(VSAM)
Conexões Especializadas Fornecidas
como Parte de Ferramentas Típicas ETL
Conexão
Nativa do
SQL*Net
Conexão
Nativa do
DB2
Conexão
Nativa do ASCII/
EBCDIC
Extração
Limpeza
Transformação
e Processos de
Carga
Banco de Dados
Conexão
Nativa do MainFrame
VSAM
Armazenamento Área de Preparação
Fichas de Arquivos
no Sistema de
Arquivo
Esquema de
Preparação
no DBMS
Figura 8 - Integração de fontes de dados heterogêneas (Fonte: Kimball, 2004)
34
A integração de fontes de dados não-relacionais necessita de uma maior atenção
quanto à garantia da integridade dos dados. Fontes de dados não-relacionais não reforçam a
integridade, são essencialmente uma coleção de tabelas independentes.
6.2 Modelo Dimensional
A modelagem dimensional é um nome novo para uma velha tecnologia de estruturar
bases de dados simples e compreensíveis. Desde os anos 70, organizações de TI, consultores,
usuários finais, e fornecedores têm se direcionado a uma simples estrutura dimensional que
seja compatível com a necessidade humana fundamental de simplicidade. Um modelo de
dados que começa simples tem chances de permanecer simples ao final do projeto. Enquanto
que um modelo que começa complicado certamente será excessivamente complicado ao final
do projeto, tendo o processamento lento e sendo rejeitado pelos usuários de negócio.
A modelagem dimensional é completamente diferente da modelagem na terceira forma
normal, que é uma técnica de projeto que procura remover a redundância dos dados (os dados
são divididos em várias entidades distintas, e cada uma se torna uma tabela no modelo
relacional). Tanto na terceira forma normal, quanto na modelagem dimensional, os modelos
podem ser representados por Diagramas de Entidade Relacional, pois ambos consistem em
tabelas relacionais combinadas. A diferença chave ente eles é o seu grau de normalização.
[Kimbal, 2002]
A modelagem normalizada auxilia no desempenho do processamento operacional, pois
uma inserção, ou alteração, acessa o banco de dados em apenas um ponto. No entanto, se
tornam muito complicados para atender as solicitações no Data Warehouse. A utilização de
modelagem normalizada na área de apresentação do Data Warehouse destrói todo o propósito
de um Data Warehouse intuitivo e com alta performance no retorno de dados.
35
A modelagem dimensional dirige-se ao problema de esquemas demasiadamente
complexos na área de apresentação. Um modelo dimensional contém a mesma informação
que um modelo normalizado, mas empacota os dados em um formato onde o objetivo do
projeto é o entendimento do usuário, desempenho das pesquisas, e elasticidade quanto a
mudanças. [Kimball, 2002]
6.2.1 Tabela Fato
A tabela fato é a tabela principal do modelo dimensional, onde as medidas numéricas
de execução do negócio são armazenadas. O termo fato é usado para representar uma medida
do negócio. Podemos imaginar um supermercado, onde produtos são vendidos e são anotadas
as quantidades vendidas e a soma das vendas por dia, produto e loja. A medida é obtida pela
interseção entre todas as dimensões (dia, produto e loja). Essa lista de dimensões define a
granularidade da tabela fato e apresenta o escopo da medida. [Kimball, 2002]
Tabela Diária da Fato Vendas
Data Chave (FK)
Produto Chave (FK)
Estoque Chave (FK)
Quantidade Vendida
Total de Vendas - Dollar
Figura 9 - Tabela fato (Fonte: Kimball, 2002)
As tabelas fato mais úteis são numéricas e aditivas. A aditividade é crucial, pois as
aplicações de Data Warehouse quase nunca recuperam apenas uma linha de uma tabela fato.
Essencialmente elas recuperam centenas, milhares, até milhões de linhas de uma vez, e a
melhor coisa a se fazer com tantas linhas é agrupá-las. Fatos semi-aditivas podem ser
adicionadas apenas para algumas dimensões, e fatos não-aditivas simplesmente não podem
36
ser adicionadas. Com fatos não-aditivas é necessária a utilização de contagens ou cálculos de
média para resumir as linhas.
É teoricamente possível para uma fato medida ser textual; No entanto, a condição
aparece raramente. Na maioria dos casos, uma medida textual é uma descrição de alguma
coisa e é desenhada para uma lista de valores distintos. O desenhista deve se esforçar para
colocar as medidas textuais nas dimensões, pois assim podem ser correlacionadas mais
efetivamente com os outros atributos de dimensão e consumirão muito menos espaço.
Informação textual redundante não deve ser armazenada em tabelas fato. A menos que o texto
seja único para cada linha da tabela, ele faz parte da tabela de dimensão. Uma verdadeira fato
texto é rara em um Data Warehouse por causa do conteúdo imprevisível, o que torna a análise
quase impossível. [Kimball, 2002]
Tabelas fato usualmente constituem 90% ou mais do espaço total consumido por uma
base de dados dimensional. Tendem a ser profundas em termos de número de linhas, mas
estreitas quanto ao número de colunas [Kimball, 2002].
Todas as tabelas fato possuem duas ou mais chaves estrangeiras, que se associam às
chaves primárias das tabelas de dimensão. Por exemplo, a chave de produto na tabela fato
sempre será compatível com a chave de um produto específico na tabela dimensão Produto.
As tabelas satisfazem a sua integridade relacional quando todas as chaves na tabela fato são
compatíveis com suas respectivas chaves primárias nas tabelas dimensão correspondentes. O
acesso à tabela fato se dá através das dimensões ligadas a ela.
A tabela fato geralmente possui sua própria chave primária, constituída de um
subconjunto de chaves estrangeiras. Essa chave é frequentemente chamada de chave
composta ou concatenada. Toda tabela fato em um modelo dimensional possui uma chave
composta, e reciprocamente, toda tabela que possui uma chave composta é uma tabela fato.
37
Ou seja, em um modelo dimensional toda tabela que expresse relacionamento de muitos para
muitos deve ser uma tabela fato. Todas as outras são tabelas de dimensão. [Kimball, 2002]
Existem três tipos fundamentais de tabelas fato: Transação, Imagem Periódica e
Imagem Acumulada. Frequentemente é necessária a utilização de duas tabelas fato
complementares para se obter um retrato completo do negócio.
6.2.2 Tabela Fato de Transação
A principal visão das operações de negócio está no nível individual da transação.
Essas tabelas fato representam um evento que ocorreu em um momento específico no tempo.
Uma linha existe na tabela fato para um determinado consumidor ou produto apenas se um
evento de transação ocorreu. Ao contrário, um determinado consumidor ou produto está
associado a múltiplas linhas na tabela fato, pois estão envolvidos em mais de uma transação.
O dado da transação muitas vezes é construído facilmente em uma estrutura
dimensional. O dado de baixo nível é o mais evidente dado dimensional, que apóia análises
que não podem ser feitas em dados resumidos. Dados transacionais permitem uma análise
extremamente detalhada. [Kimball, 2002]
6.2.3 Tabela Fato de Imagem Periódica
Imagens periódicas são necessárias para acompanhar o desempenho cumulativo do
negócio em determinado ponto. Ao contrário da tabela fato transacional, onde é armazenada
uma linha para cada ocorrência de evento, com a imagem periódica é possível obter um
retrato da atividade ao final do dia, semana, mês, e um novo retrato ao final do próximo
período. As imagens periódicas são armazenadas consecutivamente na tabela fato. A tabela
fato de imagem periódica frequentemente é o único lugar onde se pode obter facilmente uma
visão pontual e previsível das medidas de desempenho chaves do negócio.
38
Imagens periódicas tipicamente são mais complexas que transações individuais. Em
algumas situações é possível mudá-las de transações individuais para imagens diárias
simplesmente através da soma das transações. Neste caso, a imagem periódica representa uma
agregação da atividade transacional que ocorreu durante um período de tempo. [Kimball,
2002]
6.2.4 Tabela Fato de Imagem Acumulada
O terceiro tipo de tabela fato é o de imagem acumulada. Apesar de não serem muito
comuns como as anteriores, imagens acumuladas podem ser bastante intuitivas. Representam
uma indeterminada amplitude do tempo, abrangendo a vida completa de uma transação. Ao
contrário dos demais tipos, as linhas de uma tabela fato de imagem acumulada podem sofrer
atualizações.
Imagens acumuladas quase sempre possuem múltiplos marcos de tempo,
representando os eventos mais importantes que podem ser previstos ou fases que ocorreram
durante toda a vida da transação. Uma coluna adicional de data pode existir, indicando
quando a linha da imagem foi alterada pela última vez. Caso estas datas não sejam conhecidas
no momento da primeira carga da linha é preciso utilizar datas chaves substitutas que
possibilitem uma identificação. [Kimball, 2002]
6.2.5 Tabela Dimensão
Tabelas de dimensão são companheiras essenciais de uma tabela fato. São elas que
contêm os descritores textuais do negócio. Em um modelo dimensional bem desenhado as
tabelas de dimensão possuem muitas colunas ou atributos, que descrevem as linhas na tabela.
Tendem a ser relativamente superficiais em termos de número de linhas (menos que 1
milhão), mas possuem muitas colunas. Cada dimensão é definida por sua única chave
39
primária, que serve como base para a integridade referencial com qualquer tabela fato com a
qual esteja combinada. [Kimball, 2002]
Atributos da dimensão servem como a principal origem de restrições em solicitações,
agrupamentos e rótulos de relatórios. Representam uma função vital em um Data Warehouse:
são a chave para a construção de um Data Warehouse utilizável e compreensível. O poder do
Data Warehouse é diretamente proporcional à qualidade dos atributos da dimensão.
Os melhores atributos são textuais e distintos, podem consistir preferencialmente de
palavras reais, ou abreviações. Atributos típicos para uma dimensão Produto podem incluir
uma pequena descrição (10 a 15 caracteres), uma descrição longa (30 a 50 caracteres), um
nome de marca, um nome de categoria, tipo de empacotamento, tamanho, e outras numerosas
características do Produto. Embora o tamanho seja provavelmente numérico, ele continua
sendo um atributo de dimensão, pois se comporta mais como uma descrição textual do que
como uma medida numérica. Tamanho é um descritor distinto e constante de um produto
específico. [Kimball, 2002]
Tabela Dimensão Produto
Produto Chave (PK)
Descrição do Produto
Número SKU (Chave natural)
Descrição Tipo
Descrição Categoria
Descrição Departamento
Descrição Tipo Pacote
Tamanho Pacote
Descrição Conteúdo da fato
Total de Vendas – Dollar
Descrição Conteúdo Fato
Descrição Tipo Regime
Peso
Unidade de Peso e Medidas
Tipo Armazenamento
Tipo da Vida Útil
Largura da Prateleira
Altura da Prateleira
Prateleira do Departamento
... e muito mais
Figura 10 - Tabela dimensão (Fonte: Kimball, 2002)
40
As tabelas de dimensão muitas vezes representam relacionamentos dentro do negócio.
São tipicamente não-normalizadas e usualmente pequenas (menos que 10% de todo o
requisito de armazenamento de dados). Visto que as tabelas de dimensão são
geometricamente menores que as tabelas fato, melhorar a eficiência de armazenamento,
através da normalização, na prática não exerce impacto no tamanho total da base de dados.
[Kimball, 2002]
6.3 Documento Lógico
Antes de construir os sistemas de extração é necessário documentar os
relacionamentos entre os campos da fonte original e os campos de destino, nas tabelas de
apresentação do DW. O modelo lógico de dados é que descreve tais relacionamentos.
O processo ETL deve ser definido logicamente e documentado. A documentação é
elaborada pelo Arquiteto de DW e utilizada pela equipe de ETL para produzir as tarefas
físicas. O modelo lógico é a base de metadados eventualmente concedida aos testadores da
garantia de qualidade e também aos usuários finais, com o intuito de descrever exatamente o
que é feito entre os sistemas fontes e o DW.
O documento lógico contém a definição das fontes de dados por toda a empresa, o
modelo de dados do DW e as manipulações exigidas para transformar os dados de seu
formato original ao de destino. Revela muitos requisitos ocultos que em outro momento
podem ter sido omitidos. Seu objetivo principal é fornecer ao desenvolvedor ETL uma
imagem exata do que é esperado do processo ETL. Algumas ferramentas de ETL e
modelagem de dados capturam diretamente a informação do projeto de dados lógico, que só
pode existir caso os sistemas da fonte estejam identificados e analisados.
A equipe de ETL deve entender inteiramente o modelo físico do Data Warehouse e a
equipe de desenvolvimento deve possuir um perfeito entendimento de como as dimensões,
41
fatos e outras tabelas, no modelo dimensional, trabalham juntas. É interessante ter certeza de
que os cálculos levantados estão corretos antes da codificação dos algoritmos no processo
ETL.
6.4 Fontes Heterogêneas
Cada fonte de dados possui um conjunto distinto de características que precisam ser
gerenciadas de modo a extrair efetivamente os dados para o processo ETL. Conforme a
empresa se desenvolve passa a adquirir, ou herdar, diversos sistemas computacionais com a
função de auxiliar na administração dos negócios e o processo ETL precisa integrar
efetivamente esses diferentes sistemas.
As prováveis fontes de dados, que suportarão a tomada de decisões, devem ser
identificadas. Os dados nos sistemas fontes devem ser examinados quanto à qualidade,
integridade e adaptação ao propósito. Qualquer anomalia detectada deve ser documentada e
esforços devem ser feitos, com o intuito de aplicar regras de negócio apropriadas para corrigir
os dados antes que sejam carregados no DW. Uma vez que as fontes tenham sido preparadas e
o modelo das tabelas finais tenha sido compreendido, é possível dar inicio ao processo de
extração, transformação e carga para o DW.
Uma vez determinada a fonte originária dos dados a etapa seguinte é analisar os
sistemas da fonte para começar uma compreensão melhor de seu índice. Esta compreensão é
realizada normalmente adquirindo os diagramas de entidade relacional (ER) para os sistemas
selecionados, se forem baseados na tecnologia relacional. Os identificadores únicos
descrevem as colunas que representam unicamente uma linha em uma tabela. De um ponto de
vista da integridade referencial, um identificador único é a chave primária para uma tabela.
Na maioria das vezes, a chave primária é artificial, e embora seja única de um ponto de vista
de ETL, não é bastante informação para determinar se a fileira é única. Em cada tabela
transacional corretamente projetada, além da chave primária, há pelo menos uma chave
42
natural. A chave natural é o que os usuários do negócio usam para descrever unicamente a
linha. Compreender como as tabelas são relacionadas é vital para assegurar a exatidão em
associações de tabelas ao recuperar dados.
Compreendidos todos os atributos, de todas as entidades, de todos os sistemas sujeitos
a considerações, o próximo objetivo é desenhar o algoritmo adequado para permitir que as
entidades dos diferentes sistemas sejam associadas. Às vezes o algoritmo adequado é tão
simples quanto identificar a chave primária das várias tabelas. Mas em muitos casos,
diferentes sistemas não compartilham chaves primárias. Com a aprovação da lógica adequada,
é possível estabelecer o registro sobrevivente quando colisões de dados ocorrerem no
processo de ETL.
Atribuir regras de negócio para atributos que não são chaves é especialmente
importante quando os atributos existem em diversos sistemas, mas não no fonte. Nesses casos,
a documentação e a publicação dos metadados são cruciais para impedir dúvidas quanto a
integridade do DW. A tarefa final do processo de integração é carregar fisicamente a
dimensão adequada.
Cada fonte de dados pode estar em um SGBD diferente e também em uma plataforma
diferente. As bases de dados e os sistemas operacionais, especialmente legados e
proprietários, podem requerer linguagens de procedimento diferentes para a comunicação com
seus dados. Mesmo se não houver nenhuma limitação técnica, os departamentos ou os
subsistemas geralmente possuem uma língua padrão que permite interagir com seus dados.
Quando a linguagem específica está além do domínio do conjunto de ferramentas de ETL ou
experiência se torna obrigatória, o ideal é solicitar ao proprietário da fonte que os dados sejam
extraidos para um arquivo.
A Conectividade Aberta de Banco de Dados (Oppen Database Connectivity - ODBC)
foi criada para permitir a usuários acessar bases de dados das aplicações Windows. A intenção
43
original para ODBC era fazer aplicações portáteis, significando que se a base de dados
subjacente de uma aplicação mudasse não seria necessária recodificação e compilação para
acomodar a mudança. Bastaria simplesmente mudar o driver ODBC, que é transparente à
aplicação.
Para que o processo de ETL utilize dados através de ODBC, duas camadas são
adicionadas entre o sistema de ETL e a base de dados subjacente. O gerente ODBC é um
programa que aceita o SQL da aplicação de ETL e o distribui ao driver ODBC apropriado.
Mantém também a conexão entre a aplicação e o driver ODBC. O driver ODBC traduz o SQL
ODBC para o SQL nativo da base de dados subjacente.
6.5 Detecção de Mudanças
Durante a carga inicial, capturar mudanças ao conteúdo dos dados da fonte é sem
importância caso a extração compreenda toda a fonte de dados ou uma porção em um ponto
predeterminado do tempo. Uma vez que a carga inicial está completa, a habilidade de capturar
mudanças nos dados no sistema fonte transforma-se imediatamente em prioridade número
um. Capturar as mudanças nos dados está longe de ser uma tarefa trivial. Deve se planejar a
estratégia para capturar mudanças incrementais na fonte de dados no início do projeto. A
manutenção do conteúdo dos dados é dependente do processo incremental da carga.
Há diversas maneiras de capturar mudanças aos dados da fonte, e todas são eficazes
em seus ambientes apropriados. Na maioria dos casos, o sistema fonte contém colunas de
auditoria. As colunas de auditoria são adicionadas à extremidade de cada tabela para
armazenar a data e hora em que um registro foi adicionado ou modificado. As colunas de
auditoria são povoadas geralmente através dos disparadores da base de dados,
automaticamente como os registros são introduzidos ou atualizados. É necessário analisar e
44
testar cada uma das colunas para assegurar de que são fontes de confiança para indicar dados
alterados.
Existem vários métodos para implementar a utilização de colunas de auditoria para
capturar mudanças nos dados. Todos os métodos têm o mesmo objetivo lógico: comparar a
data e hora da última modificação de cada registro com a máxima data e hora que existiu
durante a carga precedente e pegar todos os que são maiores. Uma solução eficaz é utilizar as
colunas de auditoria no sistema fonte. Essencialmente, o processo seleciona a data e a hora
máximas das colunas da data de criação e da última modificação. Algumas colunas de última
modificação são atualizadas no momento da inserção e de cada mudança no registro. Outras
são preenchidas com nulos no momento da inserção e atualizados somente com mudanças,
após o registro ter sido introduzido.
Nos casos onde as linhas na tabela fato são inseridas mas nunca atualizadas, pode-se
simplesmente selecionar registros do sistema fonte onde a data e hora de criação são maiores
do que a data e hora máximas da carga precedente e ignorar a coluna da data de última
modificação. Desde que as tabelas fato e as tabelas de dimensão podem originar de várias
tabelas e sistemas diferentes, e desde que as tabelas fato consistem somente de chaves
extrangeiras e métricas, as datas de auditoria não são armazenadas diretamente na tabela fato.
Selecionar todas as linhas onde a data de criação ou de modificação seja igual a
SYSDATE-1, significando obter todos os registros do dia anterior, é um engano. Carregar
registros baseando-se puramente no tempo é um erro e um processo não confiável. As cargas
baseadas em tempo duplicam linhas ao serem reiniciadas de falhas no meio do processo. Isto
significa que intervenções manuais e limpezas são requeridas caso o processo falhe por
qualquer razão.
O método da eliminação preserva exatamente uma cópia de cada extração precedente
na área de preparação para um uso futuro. Durante a execução seguinte, o processo faz uma
45
cópia da tabelas fonte inteira na área de preparação e faz uma comparação com os dados
retidos do último processo. Somente as diferenças são enviadas ao armazém de dados.
Embora não seja a técnica mais eficiente, o processo de eliminação é mais confiável de todas
as técnicas incrementais para capturar dados atualizados. Por fazer uma comparação linha a
linha, procurando mudanças, é virtualmente impossível perder algum dado. Esta técnica tem
também a vantagem de detectar linhas excluídas da fonte.
6.6 Qualidade dos Dados
As definições dos dados do ETL atravessam um processo de evolução. Conforme as
anomalias são descobertas devem ser documentadas e discutidas com a área de negócios, que
pode ditar como devem ser tratadas. Todas as transformações que vierem destas reuniões têm
que ser documentadas, corretamente aprovadas, e assinadas. A forma mais direta de
integração dos dados é a implementação de dimensões adequadas. No DW, dimensões
conformadas são o projeto coeso que unifica os muito diferentes sistemas de dados espalhados
por toda a empresa. As dimensões e as fatos conformadas são cruciais ao sucesso do projeto.
Algumas anomalias mais comuns deverão ser tratadas. Uma delas é a ocorrência de
valores nulos, que podem destruir todo o processo de ETL e representam grande risco quando
em colunas de chaves estrangeiras. A associação de duas ou mais tabelas, baseada em uma
coluna que contenha valores nulos poderá acarretar a perda de dados. Caso existam valores
nulos em colunas requeridas pelo negócio, regras de tratamento específicas deverão ser
definidas. Sempre que possível, valores padrões deverão ser criados para substituir valores
nulos ao carregar o DW.
As datas são elementos muito peculiares porque são os únicos elementos lógicos que
podem ser representados em vários formatos, literalmente contendo valores diferentes, mas
com o mesmo significado. Felizmente, a maioria dos sistemas de base de dados suporta aos
46
vários formatos utilizados para a representação, mas armazenam as datas em um único
formato padrão. Existem ainda situações onde datas são armazenadas em campos de texto,
especialmente em aplicações de legado, e nesses casos as variações possíveis de formatos de
data são ilimitadas. Problemas podem ocorrer se o sistema não fizer o controle da entrada de
tais dados no banco.
Limpeza e conformidade são as etapas principais onde o sistema de ETL agrega valor.
As outras etapas de extração e disponibilização são obviamente necessárias, mas somente
movem e formatam os dados. Limpar e dar conformidade realmente provoca mudanças nos
dados e fornecem a orientação se os dados podem ser usados para as finalidades pretendidas.
São etapas que geram poderosos metadados, um diagnóstico de o que está errado nos sistemas
fonte. Finalmente, os dados sujos podem ser reparados apenas com uma mudança na maneira
com que os sistemas fonte coletam seus dados.
Dados precisos precisam ser corretos, não ambíguos, consistentes, e completos. O
processo de limpeza dos dados deve ser completo quanto à detecção, correção, e
documentação da qualidade da informação que publica à comunidade de negócio. Usuários
finais querem enxergar o DW como uma fonte informações confiáveis. Corrigir problemas de
qualidade o mais perto da fonte possível é, naturalmente, a única maneira estratégica de
melhorar os recursos da informação da organização.
O armazém dos dados deve expor defeitos e empregar atenção aos sistemas e às
práticas de negócio que ferem a qualidade dos dados da organização. Essas revelações
dirigem finalmente o processo de reengenharia do negócio, onde os sistemas fonte e os
procedimentos da entrada de dados são melhorados.
47
Capítulo 7 - Ferramenta para Tratamento de Dados
O resultado do projeto de pesquisa será uma Ferramenta com o objetivo de auxiliar no
desenvolvimento de fluxos de execução de ETL. A ferramenta compreenderá todo o processo,
desde a extração dos dados, passando pela sua transformação até a carga no DW, procurando
atender aos Requisitos Funcionais e Não-Funcionais propostos nesta documentação.
Os requisitos funcionais representarão as diversas funções que os clientes e usuários
necessitam que a ferramenta execute. Sendo assim, serão destacados os processos de
realização de conexão com diferentes bancos de dados, padronização dos tipos de dados
contidos nas tabelas de origem, monitoramento das execuções, com a geração de dados
estatísticos e logs, visualização dos projetos departamentais e geração de mapas de execução.
Os requisitos não-funcionais compreendem os atributos e as qualidades globais da
ferramenta. Uma das preocupações, neste caso, será garantir a segurança do acesso aos dados
resultantes do processo ETL.
Os dados das conexões com as bases de dados serão armazenadas em uma tabela
própria da ferramenta, com usuários e senhas. Essas entidades chamadas conexões serão
utilizadas todas as vezes que for necessário estabelecer uma conexão com um banco de dados.
As tabelas fontes e as tabelas de destino serão recuperadas utilizando-se destas entidades.
Durante os processos de extração e transformação serão utilizados arquivos
temporários, de modo que as transformações possam ser efetuadas sem afetar as tabelas de
origem dos dados.
7.1
Tecnologias utilizadas
A ferramenta será desenvolvida em plataforma distribuída (cliente-servidor)
utilizando-se a linguagem Java 5.0, RMI (Remote Method Invocation) e aplicando-se o padrão
48
de desenvolvimento DAO (Data Access Object) para gerenciamento de acesso às bases de
dados.
Para o desenvolvimento utilizando o RMI fez-se necessária a aplicação de um plugin
destinado a produção de softwares comerciais e pesquisa. Este se encontra disponível no
endereço < http://www.genady.net/rmi/v20/index.html>. As licenças são disponibilizadas de
acordo com o propósito do projeto. No caso de pesquisa para fins acadêmicos, a licença é
gratuita por um prazo de 4 (quatro) meses.
7.2 Especificação de Requisitos
7.2.1 Identificação dos Interessados no Sistema
A equipe responsável pelo processo de Extração, Tratamento e Carga dos dados
(Administradores) terá acesso irrestrito às funcionalidades do sistema.
7.2.2 Principais Necessidades dos Interessados
Os Administradores possuem as seguintes necessidades:
– Realizar conexão com as diferentes bases de dados;
– Visualizar graficamente as tabelas trabalhadas;
– Converter os dados das bases para tipos padrões;
– Visualizar todos os projetos departamentais;
– Gerar mapas de execução;
– Monitorar as execuções efetuadas;
– Gerar dados estatísticos e logs de execução.
49
7.2.3 Requisitos Funcionais
Todas as funcionalidades deverão permitir acesso multiusuário às mesmas, ou seja,
várias pessoas poderão executar simultaneamente operações do mesmo tipo, mas a partir de
máquinas cliente distintas.
7.2.3.1 Realizar Conexão
O sistema deverá permitir que os administradores possam realizar conexão com
diferentes bases de dados, dependendo da escolha feita por aqueles.
7.2.3.2 Visualizar Tabelas
O sistema deverá permitir que os administradores visualizem as tabelas utilizadas no
processo. Estas tabelas deverão estar relacionadas a projetos específicos.
7.2.3.3 Padronizar Dados
O sistema deverá ser capaz de padronizar todos os dados vindos das bases,
convertendo aqueles de mesma categoria para tipos únicos. Esta padronização é pré-definida
pelos administradores.
7.2.3.4 Monitorar as execuções efetuadas
O sistema deverá disponibilizar uma tela onde o administrador poderá verificar se as
execuções foram bem sucedidas ou não, nessa tela poderá ter acesso aos dados estatísticos e
logs de execução de cada um dos mapas.
50
7.2.3.5 Gerar dados estatísticos e logs de execução
O sistema deverá disponibilizar uma tela onde o administrador poderá visualizar o
ocorrido no processamento por meio de dados estatísticos e logs de execução, facilitando o
controle e verificação do desempenho do sistema na execução do ETL.
7.2.3.6 Visualizar todos os projetos departamentais
O sistema deverá disponibilizar ao administrador uma tela onde será possível a
visualização de todos os projetos departamentais criados na forma de estrutura de árvore,
assim a visualização ajudará na criação e geração dos mapas de execução.
7.2.3.7 Gerar mapas de execução
O sistema deverá disponibilizar uma tela onde o administrador poderá montar seus
respectivos mapas de execução na seqüência de funcionamento, utilizando a visualização dos
projetos departamentais, poderão existir um ou mais mapas executando em paralelo ou em
seqüência.
7.2.4 Requisitos Não-Funcionais
7.2.4.1 Segurança
Somente os administradores que possuírem login e senha poderão ter acesso ao
sistema.
7.2.5 Restrições do Sistema
Não há.
51
7.2.6 Interface Entre os Agentes Externos e o Sistema
A interface gráfica entre os agentes e o sistema será baseada em telas gráficas,
orientadas por ícones, caixas de seleção e menus do tipo “Pull-Down”. Deverá ter a
capacidade de ser visualizada em estações Risc/Unix ou em PCs/Windows, com acessos ao
equipamento central através da Intranet ou Extranet.
7.2.7 Contexto de Utilização do Sistema
O Sistema será utilizado somente pelos administradores. Eles trabalharão em
máquinas pessoais e cada atualização no sistema deverá ser feita mediante a escolha prévia
dos Projetos. Estas atualizações deverão estar disponíveis logo após sua realização, portanto
seu processamento deverá ser on-line.
7.2.8 Procedimento Contra Perdas de Informações
Deverá ser realizado um backup dos dados do Sistema diariamente a fim prevenir a
perda dos dados registrados durante cada dia de trabalho.
7.2.9 Tratamento de Erros
Todos os erros ocorridos serão encaminhados por e-mail ao responsável da área de TI
pelo acompanhamento e monitoramento do sistema.
52
Conclusão
Diante das atividades propostas conseguiu-se atingir pontos positivos e negativos,
conseqüências das dificuldades características de cada funcionalidade do sistema e de cada
referência da pesquisa.
No que diz respeito à possibilidade de padronização de tipos de campos, característica
da etapa de Transformação do ETL foi utilizado o reconhecimento destes campos nas tabelas
do banco específico e atrelou a eles a padronização determinada previamente. A realização de
conexão com diferentes bancos foi obtida com êxito. A Extração dos dados, outra etapa do
ETL, exige que para a formação futura da base de Data Warehouse faz-se necessário que haja
a captura dos dados existentes nas bases e que foram determinadas como cruciais para o
auxílio à tomada de decisão. No entanto, com relação ao último e penúltimo item, propostos
nos objetivos específicos, sendo eles, respectivamente, a possibilidade de identificação de
registros que realmente deveriam ser carregados e a possibilidade de geração de logs e dados
estatísticos, não se obteve sucesso devido a fatores de tempo e complexidade.
O sistema será desenvolvido seguindo as premissas de um correto funcionamento. No
entanto, todas as fases implementadas poderão sofrer aperfeiçoamento para uma melhor
adequação aos tipos de projetos e necessidades de inúmeras empresas que vierem a utilizar tal
ferramenta.
53
Referências Bibliográficas
BARBIERI, Carlos. BI – Business Intelligence. Axcel Books, 2001. 424 p.
GUPTA,
Vivek
R.
An
Introduction
to
Data
Warehousing.
Disponível
em:
<http://www.system-services.com/DataWarehousing.asp> . Acesso em: 11/03/2007.
INMON, William H. Building the data warehouse. 4. ed. Estados Unidos da América:
Wiley, 2005. 543 p.
INMON, William H. Como construir o data warehouse. Rio de Janeiro: Campus, 1997. 388
p.
KIMBALL, Ralph; CASERTA, Joe. The Data Warehouse ETL Toolkit: Practical
Techniques for Extracting, Cleaning, Conforming, and Delivering Data. Estados Unidos da
América: Wiley, 2004. 491 p.
KIMBALL, Ralph; ROSS, Margy. The Data Warehouse Toolkit: The Complete Guide for
Dimensional Modeling. 2. ed. Estados Unidos da América: Wiley, 2002. 421 p.
54
Download