solução de etl desenvolvida para o cliente cetic.br – centro de

57
Solução de ETL desenvolvida para o cliente CETIC.br Centro de Estudos sobre as Tecnologias da Informação e da Comunicação Rick Miranda Ferreira DRE: 108038503 Projeto de Graduação apresentado ao Curso de Engenharia Eletrônica e de Computação da Escola Politécnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Engenheiro. Orientador: Aloysio de Castro Pinto Pedroza Orientador: Diego da Silva Rodrigues Rio de Janeiro Julho de 2014

Upload: lamkiet

Post on 14-Feb-2017

214 views

Category:

Documents


1 download

TRANSCRIPT

Solução de ETL desenvolvida para o cliente CETIC.br –

Centro de Estudos sobre as Tecnologias da Informação e da

Comunicação

Rick Miranda Ferreira

DRE: 108038503

Projeto de Graduação apresentado ao Curso de

Engenharia Eletrônica e de Computação da Escola

Politécnica, Universidade Federal do Rio de

Janeiro, como parte dos requisitos necessários à

obtenção do título de Engenheiro.

Orientador: Aloysio de Castro Pinto Pedroza

Orientador: Diego da Silva Rodrigues

Rio de Janeiro

Julho de 2014

Solução de ETL desenvolvida para o cliente CETIC.br -

Centro de Estudos sobre as Tecnologias da Informação e da

Comunicação

Rick Miranda Ferreira

PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO CURSO

DE ENGENHARIA ELETRÔNICA E DE COMPUTAÇÃO DA ESCOLA

POLITÉCNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO

PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE

ENGENHEIRO ELETRÔNICO E DE COMPUTAÇÃO

Autor:

_________________________________________________

Rick Miranda Ferreira

Orientador:

_________________________________________________

Prof. Aloysio de Castro Pinto Pedroza, Dr.

Orientador:

_________________________________________________

Diego da Silva Rodrigues, M. Sc.

Examinador:

_________________________________________________

Prof. Flávio Luis de Mello, D.Sc.

Examinador:

_________________________________________________

Prof Antônio Cláudio Gómez de Sousa, Dr.

Rio de Janeiro – RJ, Brasil

Julho de 2014

iii

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

Escola Politécnica – Departamento de Eletrônica e de Computação

Centro de Tecnologia, bloco H, sala H-217, Cidade Universitária

Rio de Janeiro – RJ CEP 21949-900

Este exemplar é de propriedade da Universidade Federal do Rio de Janeiro, que

poderá incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar

qualquer forma de arquivamento.

É permitida a menção, reprodução parcial ou integral e a transmissão entre

bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja

ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem

finalidade comercial e que seja feita a referência bibliográfica completa.

Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es).

iv

AGRADECIMENTO

Dedico primeiramente este trabalho aos meus pais que contribuíram diretamente

em minha formação como cidadão e profissional. Dedico também a todos os

profissionais da empresa Calandra Soluções que me ensinaram e ajudaram sempre que

precisei.

v

RESUMO

No mercado econômico atual, onde as empresas precisam se destacar entre seus

concorrentes, algum método diferencial deve ser implantado. Hoje em dia, a informação

é a ferramenta mais poderosa e importante que uma organização pode ter, portanto,

deve-se saber explorá-la da forma mais inteligente possível para obter conhecimento

sobre a própria empresa e tomar decisões estratégicas, visando a melhoria da

organização. Nesse contexto, a qualidade dos dados é de suma importância para que

toda essa informação possa se tornar conhecimento, destacando então a grande

importância do processo de ETL num modelo de Data Warehouse. Tendo em vista essa

importância, o tema desse trabalho é a solução de ETL desenvolvida conforme as regras

de negócio do cliente CETIC.br. Neste sentido, pretende-se extrair os dados das

pesquisas do Brasil sobre o uso das tecnologias da informação e da comunicação, fazer

as transformações necessárias para que o portal, também desenvolvido pela empresa

Calandra, possa consumir os dados da maneira adequada e apresenta-los de maneira

mais dinâmica auxiliando no melhor entendimento dos resultados das pesquisas

coletadas. Os resultados obtidos foram satisfatórios, cumprindo com todos os requisitos

e funcionalidades contratadas pelo CETIC.br. Para obter um entendimento tácito das

regras de negócio, foi necessária uma imersão no negócio e foi preciso realizar diversos

testes durante o desenvolvimento para que o sistema cobrisse todo o escopo previsto.

Palavras-Chave: Extração, Tranformação, Carga, Dados, Armazém de dados, Talend,

CETIC.

vi

ABSTRACT

In the current market, where companies need to stand out amongst competitors, a

unique method must be thought of and put into practice. Nowadays, information is the

most powerful and influential tool that an organization can have, therefore, it is a tool

that needs to be explored cleverly to be able to gain knowledge about the company itself

and to make strategic decisions with the company’s goals in mind, which eventually

will gain the company prominence in the market. In this context, data quality is

extremely important so that all this information can be turned into knowledge;

highlighting the importance of an (ETL) process in a Data Warehouse model. Keeping

this in mind, the topic of this project entails the solution of ETL developed according to

the business conventions of the client CETIC.br. Accordingly, the goal is to review data

from research in Brazil about the use of information technology and communication,

making the necessary changes so that the portal, also developed by the company

Calandra, may use the data in the best manner and present the company in a more

dynamic way, assisting from the best understanding of the results from the collected

research. The results were satisfactory, complying with all the requirements and

functionalities contracted by CETIC.br. To acquire a better understanding of the

business conventions, an immersion in the business was necessary, which also included

the performance of several tests during the development of the system so that it would

cover the results anticipated.

Key-words: Extract, Tranform, Load, Data, Data Warehouse, Talend, CETIC.

vii

SIGLAS

BI – Business Intelligence

CETIC – Centro de Estudos sobre as Tecnologias da Informação e da Comunicação

CGI – Comitê Gestor da Internet

CSV – Comma-separated Values

DW – Data Warehouse

ETL – Extract Tranform Load

MD – Modelo Dimensional

NIC – Núcleo de Informação e Coordenação

OLAP – On-line Analytical Processing

OLTP – On-line Transaction Processing

TIC – Tecnologia da informação e da comunicação

UFRJ – Universidade Federal do Rio de Janeiro

XML – eXtensible Markup Language

viii

Sumário

Lista de figuras .................................................................................................................... X

Lista de tabelas ................................................................................................................. XI

1 Introdução ........................................................................................................................ 1

1.1 Tema ............................................................................................................................ 1

1.2 Delimitação .............................................................................................................. 1

1.3 Justificativa ............................................................................................................. 1

1.4 Objetivos ................................................................................................................... 2

1.5 Metodologia ............................................................................................................. 2

1.6 Descrição .................................................................................................................. 3

2 Apresentação do problema ..................................................................................... 4

2.1 Sobre o cliente ....................................................................................................... 4

2.2 Justificativa do projeto ..................................................................................... 5

2.3 Objetivo do projeto ............................................................................................. 5

2.4 Atual ferramenta web do cliente ................................................................ 5

3 Conceitos de BI .............................................................................................................. 7

3.1 OLTP ............................................................................................................................. 7

3.2 Data Marts ................................................................................................................ 7

3.3 Data Warehouse ................................................................................................... 8

3.4 Modelagem multidimensional ...................................................................... 8

3.5 Metadado ................................................................................................................ 10

3.6 ETL – Extração, transformação e carga de dados .......................... 10

3.7 OLAP .......................................................................................................................... 11

4 Modelagem de dados dos dicionários ............................................................. 13

4.1 Modelo de Entidade-Relacionamento .................................................... 13

4.2 Modelagem multidimensional – Template .......................................... 17

4.3 Dicionários ............................................................................................................. 19

4.4 Layout dos arquivos de dicionários ........................................................ 21

4.4.1 Layout do dicionário de perguntas .............................................. 21

4.4.2 Layout do dicionário de respostas ............................................... 22

4.4.3 Layout do dicionário de indicadores ........................................... 23

5 Solução de ETL desenvolvida ............................................................................... 28

5.1 Funcionalidades .................................................................................................. 28

5.2 Ferramentas utilizadas ................................................................................... 28

ix

5.3 Padrões .................................................................................................................... 28

5.4 Funcionamento .................................................................................................... 29

5.4.1 Carga dos dados ................................................................................. 30

5.4.2 Exclusão dos dados ........................................................................... 31

5.5 Processo de ETL .................................................................................................. 33

5.5.1 ETL – Job Start ................................................................................... 34

5.5.2 ETL – Job orquestrador ................................................................... 34

5.5.3 ETL – Job deleta ................................................................................. 35

5.5.4 ETL - Job carrega stage ................................................................... 36

5.5.5 ETL - Job carrega dw dicionários ................................................. 37

5.5.6 ETL – Job gera arquivo dicionário ............................................... 38

5.5.7 ETL – Job microdado ........................................................................ 39

5.5.8 ETL – Job send logs .......................................................................... 40

5.5.9 Execução do ETL ................................................................................ 41

5.6 Interface do portal ao usuário final ........................................................ 41

6 Conclusão ........................................................................................................................ 44

6.1 Resultados alcançados ................................................................................... 44

6.2 Trabalhos futuros e possíveis extensões ............................................ 45

Bibliografia ........................................................................................................................... 46

x

Lista de figuras

Figura 1 - Escopo macro do projeto ................................................................... 5

Figura 2 - Atual apresentação de indicadores de pesquisas Fonte: www.cetic.br ................................................................................................................ 6

Figura 3 - Modelo Estrela e Floco de Neve – Fonte: Kimball 2002. ....... 9

Figura 4 - Diagrama de ETL Fonte:

http://www.imc.com/services/enterprise-data-warehousing/etl-process-management na data 13/08/2014 ................................................... 10

Figura 5 - Modelo de dados dos dicionários .................................................. 13

Figura 6 - Modelo multidimensional ................................................................. 18

Figura 7 - Layout do dicionario de perguntas - parte 1 ........................... 21

Figura 8 - Layout do dicionário de pergunta - parte 2 ............................. 22

Figura 9 - Layout do dicionário de respostas ............................................... 23

Figura 10 - Layout do dicionário de indicadores - parte 1 ...................... 24

Figura 11 - Layout do dicionário de indicadores - parte 2 ...................... 25

Figura 12 - Layout do dicionário de indicadores - parte 3 ...................... 25

Figura 13 - Layout do dicionário de indicadores - parte 4 ...................... 26

Figura 14 - Layout do dicionário de indicadores - parte 5 ...................... 26

Figura 15 - Layout do dicionário de indicadores - parte 6 ...................... 27

Figura 16 - Arquivo de configuração "database.xml" ................................ 29

Figura 17 - Arquivo de configuração "email_log.xml" ............................... 30

Figura 18 - Arquivo de configuração de carga de dados "estrutura_generico.xml"...................................................................................... 30

Figura 19 - Exemplo de configuração de carga de dados ........................ 31

Figura 20 – Arquivo de configuração “estrutura_generico.xml” configurado para excluir dados .......................................................................... 32

Figura 21 – Exemplo de configuração do XML para exclusão de dados ........................................................................................................................................ 32

Figura 22 - Fluxograma de funcionamento do ETL .................................... 33

Figura 23 – Job Start .............................................................................................. 34

Figura 24 - Job orquestrador_generico ........................................................... 34

Figura 25 - Job Deleta ........................................................................................... 36

Figura 26 - Job carrega stage ............................................................................. 36

Figura 27 – Job carrega dw dicionários .......................................................... 37

Figura 28 - Job gera arquivo dicionário – parte 1 ...................................... 38

Figura 29 - Job gera arquivo dicionário - parte 2 ....................................... 39

Figura 30 - Job microdado – parte 1 ............................................................... 39

Figura 31 - Job microdado - parte 2 ................................................................ 40

Figura 32 - Job send logs ..................................................................................... 40

Figura 33 - Indicadores da pesquisa de Domicílios 2012 ........................ 41

Figura 34 - Série histórica Domicílios por computador (2008 - 2012)42

Figura 35 - Perfil de usuários com acesso as TIC's .................................... 42

Figura 36 – Proporção de Domicílios 2012 que possuem equipamentos TIC.................................................................................................... 43

xi

Lista de tabelas

Tabela 1 - Tabela dc_pesquisa ........................................................................... 14

Tabela 2 - Tabela dc_unidade_analise ............................................................ 15

Tabela 3 - Tabela dc_grupo_indicador ............................................................ 15

Tabela 4 - Tabela dc_indicador .......................................................................... 15

Tabela 5 - Tabela dc_pergunta .......................................................................... 16

Tabela 6 - Tabela dc_resposta ........................................................................... 17

Tabela 7 - Tabela dm_regiao .............................................................................. 19

Tabela 8 - Tabela dm_<var_agrupamento> ................................................ 19

Tabela 9 - Tabela ft_pesquisa_<ano>_<ua>_<idioma> ........................ 19

Tabela 10 - Padrão de códigos dos idiomas .................................................. 28

Tabela 11 - Padrão de códigos das pesquisas e unidades de análise . 29

1

1 Introdução

1.1 Tema

O tema desse trabalho é a solução de ETL desenvolvida conforme as regras de

negócio do cliente CETIC.br. Neste sentido, o ETL deve extrair os dados das pesquisas

do Brasil sobre o uso das tecnologias da informação e da comunicação, fazer as

transformações necessárias para que o portal, também desenvolvido pela empresa

Calandra, possa consumir os dados da maneira adequada.

1.2 Delimitação

A delimitação desse projeto é desenvolver apenas a solução de ETL para que o

portal desenvolvido possa consumir as informações. Não faz parte do escopo desse

trabalho apresentar o desenvolvimento do site. A solução foi específica para o cliente

tendo em vista a complexidade das regras do negócio.

1.3 Justificativa

Dado a importância do processo ETL na arquitetura de um Data Warehouse, esse

tema tornou-se muito interessante. É um tema que precisa de mais ênfase tendo em

conta sua importância. ETL é uma das soluções de BI que vem ganhando terreno nas

organizações no que toca o processamento dos dados.

Esse processo é muito utilizado na empresa Calandra Soluções para integração de

dados. Também ele é utilizado para auxiliar na realização dos relatórios e entre outros.

O processamento correto desses dados é crítico para que se possa transformar essa

informação em conhecimento e utilizar essas informações como um diferencial no

mercado.

Neste sentido, pretende-se analisar o uso dessa tecnologia na empresa Calandra,

aplicado ao projeto CETIC.br, como sendo uma oportunidade de conhecimento e de

novos desafios.

2

1.4 Objetivos

O objetivo geral é propor um modelo de dados de dicionários que traduzam para

o sistema as perguntas e respostas das pesquisas e estruture as informações de forma

adequada. Desta forma, tem-se como objetivos específicos:

Propor um modelo de dados para os dicionários de perguntas, respostas e

indicadores;

Implementar um ETL para extrair as informações;

Transformar os dados de acordo com as regras de negócio;

Criar um armazém de dados das pesquisas;

Carregar os dados nos repositórios para que o portal possa consumi-los.

1.5 Metodologia

Foram realizadas reuniões com o cliente para que se pudesse entender o

problema e então estudar e discutir uma possível solução. Em seguida, foram

desenvolvidos os dicionários com o intuito de traduzir as perguntas, respostas e os

indicadores para o sistema. A partir disso, foi desenvolvido o modelo lógico de dados

respeitando as regras de negócio. Após esta etapa, foi implementado o ETL para fazer a

carga dos dados no DW para então carregar a ferramenta OLAP Calandra BI e verificar

se o sistema respondia da maneira desejada reproduzindo o resultado das consultas do

antigo site do cliente. Foram realizadas inúmeras interações com o cliente durante todo

o processo de desenvolvimento para que todos os ajustes necessários para mapear as

inconsistências, até que o sistema desenvolvido fosse confiável e representasse as regras

de negócio fielmente. Por fim, carregou-se os repositórios definitivos para que os dados

fossem indexados e consultados pelo novo portal.

A modelagem utilizada para os dicionários na arquitetura de Data Warehouse foi

a Entidade-Relacionamento. Já a modelagem utilizada no solr, repositório final de

dados, foi a modelagem multidimensional. No desenvolvimento do sistema foi adotada

a abordagem estruturada.

3

1.6 Descrição

No capítulo 2 será apresentado o cliente assim como a especificação do

problema. O capítulo 3 apresenta os conceitos básicos para entendimento do tema

abordado no projeto. A modelagem de dados e os layouts dos dicionários desenvolvidos

serão apresentados no capítulo 4. No capítulo 5 será explicitada a solução de ETL

desenvolvida para o projeto CETIC, assim como os procedimentos para utilizar o

sistema. No capítulo 6 serão apresentados os resultados e possíveis extensões do

projeto.

4

2 Apresentação do problema

Neste capítulo, será apresentado o cliente como também a motivação por parte

deste para o projeto e seus objetivos específicos.

2.1 Sobre o cliente

O Comitê Gestor da Internet no Brasil – CGI.br, criado pela Portaria

Interministerial nº 147 em maio/1995 e alterada pelo Decreto Presidencial nº 4.829 em

setembro/2003, tem como missão coordenar e integrar todas as iniciativas de serviços

Internet no Brasil, promovendo a qualidade técnica, a inovação e a disseminação dos

serviços ofertados. Dentre as suas atribuições e responsabilidades, o CGI.br coleta,

organiza e dissemina informações, indicadores e estatísticas sobre o uso das tecnologias

de informação e comunicação no Brasil.

O Núcleo de Informação e Coordenação do Ponto BR – NIC.br é uma entidade

civil privada e sem fins lucrativos, criado para implementar as decisões e projetos do

CGI.br. O Centro de Estudos sobre as Tecnologias da Informação e da Comunicação

(CETIC.br) é um departamento do NIC.br e tem como objetivo conduzir pesquisas

especializadas, produzir e divulgar indicadores, estatísticas e informações estratégicas

sobre o desenvolvimento da Internet no Brasil. O CETIC.br vem concentrando esforços

para a ampliação e melhoria da qualidade dos indicadores e das estatísticas produzidas

anualmente em suas pesquisas, com o objetivo de garantir a confiabilidade dos dados, a

geração de melhores informações e, sobretudo, melhor nível de comparabilidade

internacional [3].

Atualmente o CETIC.br realiza as seguintes pesquisas sobre o acesso e uso das

TIC no Brasil: TIC Domicílios, TIC Empresas, TIC Microempresas, TIC Crianças, TIC

Kids Online, TIC Educação, TIC Saúde, TIC Centros de Acesso Público (Tele centros e

Lanhouses), TIC Governo Eletrônico, TIC Organizações Sem Fins Lucrativos e TIC

Provedores.

5

2.2 Justificativa do projeto

O antigo site do CETIC.br apresentava os dados das pesquisas em tabelas

estáticas e de difícil interpretação para o usuário. O cliente também tinha a necessidade

de poder comparar, ao longo dos anos, dados que eram relevantes para a sociedade,

academia e pesquisadores além de deixar a visualização destes mais atraentes.

2.3 Objetivo do projeto

O principal objetivo do projeto era construir uma ferramenta de visualização

web, responsável por disponibilizar relatórios, gráficos e mapas por meio de indicadores

do armazém de dados do CETIC.br até abril de 2014. Na Figura 1 foi apresentado o

escopo macro do projeto [4]. Com isso, espera-se:

Melhor padronização e estruturação dos dados gerados pelas pesquisas;

Melhor transferência de conhecimento para a sociedade, academia e

pesquisadores;

Facilidade na consulta e análise das pesquisas geradas através de técnicas de

visualizações modernas.

Figura 1 - Escopo macro do projeto

2.4 Atual ferramenta web do cliente

No atual site do cliente os indicadores são exibidos conforme a Figura 2 com os

conceitos necessários para melhor entendimento da estrutura das tabelas.

6

Figura 2 - Atual apresentação de indicadores de pesquisas

Fonte: www.cetic.br

7

3 Conceitos de BI

Nesse capítulo serão apresentados os conceitos de Business Intelligence que são

fundamentais para o bom entendimento do projeto.

3.1 OLTP

Sistemas OLTP, do inglês on-line transaction processing: são sistemas que têm a

tarefa de monitorar e processar as funções básicas e rotineiras de uma organização, tais

como processamento da folha de pagamento, faturamento, estoque, etc. Os fatores

críticos de sucesso para este tipo de sistema são: alto grau de precisão, integridade a

nível transacional e produção de documentos em tempo hábil.

Os dados transacionais OLTP são usados pelos usuários em geral no dia-a-dia

em seus processos e transações, gravação e leitura. Ex.: consulta de estoque, registro de

vendas.

O principal objetivo da modelagem relacional em um sistema OLTP é eliminar

ao máximo a redundância, de tal forma que uma transação que promova mudanças no

estado do banco de dados, atue o mais pontualmente possível. Com isso, nas

metodologias de projeto usuais, os dados são fragmentados por diversas tabelas

(normalizados), o que traz uma considerável complexidade à formulação de uma

consulta por um usuário final. Por isso, esta abordagem não parece ser a mais adequada

para o projeto de um Data Warehouse, onde estruturas mais simples, com menor grau de

normalização devem ser buscadas.

3.2 Data Marts

O Data Warehouse é normalmente acedido 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 da diretoria. Um Data Mart pode ser composto por um ou mais cubos

de dados.

8

3.3 Data Warehouse

Um Data Warehouse, ou ainda armazém de dados, é utilizado para armazenar

informações relativas às atividades de uma organização em bancos de dados, de forma

consolidada. A estrutura da base de dados favorece os relatórios, a análise de grandes

volumes de dados e a obtenção de informações estratégicas que podem facilitar

a tomada de decisão.

O Data Warehouse possibilita a análise de grandes volumes de dados, coletados

dos sistemas transacionais (OLTP). São as chamadas séries históricas que possibilitam

uma melhor análise de eventos passados, oferecendo suporte às tomadas de decisões

presentes e a previsão de eventos futuros. Por definição, os dados em um Data

Warehouse não são voláteis, ou seja, eles não mudam, salvo quando é necessário fazer

correções de dados previamente carregados. Os dados estão disponíveis somente para

leitura e não podem ser alterados.

Os Data Warehouse surgiram como conceito acadêmico na década de 80. Com o

amadurecimento dos sistemas de informação empresariais, as necessidades de análise

dos dados cresceram paralelamente. Os sistemas OLTP não conseguiam cumprir a

tarefa de análise com a simples geração de relatórios. Nesse contexto, a implementação

do Data Warehouse passou a se tornar realidade nas grandes corporações. O mercado de

ferramentas de Data Warehouse, que faz parte do mercado de Business Intelligence,

cresceu então, e ferramentas melhores e mais sofisticadas foram desenvolvidas para

apoiar a estrutura do Data Warehouse e sua utilização.

Atualmente, por sua capacidade de sumarizar e analisar grandes volumes de

dados, o Data Warehouse é o núcleo dos sistemas de informações gerenciais e apoio à

decisão das principais soluções de Business Intelligence do mercado.

3.4 Modelagem multidimensional

Os sistemas de base de dados tradicionais armazenam os dados em formato

normalizado para garantir consistência dos dados, minimização do espaço de

armazenamento necessário e diminuição de redundâncias, que devem ser verificadas

antes da conclusão do modelo de dados. Entretanto, algumas transações e consultas

costumam ser mais complexas devido ao número de tabelas envolvidas.

9

Os elementos que compõem um modelo dimensional são: Tabela Fato e Tabela

Dimensão. A tabela de fatos é a principal tabela de um modelo dimensional, onde as

medições numéricas de interesse da empresa estão armazenadas [2]. A palavra "fato"

representa uma medida dos processos modelados, como quantidades, valores e

indicadores. A tabela de fatos registra os fatos que serão analisados. É composta por

uma chave primária (formada por uma combinação única de valores de chaves de

dimensão) e pelas métricas de interesse para o negócio. A tabela de dimensão é

composta de atributos e contém a descrição do negócio. Seus atributos são fontes das

restrições de consultas, agrupamento dos resultados e cabeçalhos para relatórios. Ela

possui aspectos pelos quais se pretende observar as métricas relativas ao processo

modelado. A tabela de dimensão costuma ser bem menor do que a tabela fato.

Um Data Warehouse restringe-se a normalizar as dimensões e usar tabelas fatos

com granularidade única. Isto aumenta o desempenho das consultas e como benefício

adicional, o processo torna-se mais intuitivo para os utilizadores leigos. Essa maneira de

reordenar os dados chama-se Modelagem Dimensional, e o resultado da modelagem é o

Modelo Dimensional, ou MD.

Esse tipo de modelagem tem dois modelos: Modelo Estrela (Star Schema e

Modelo Floco de Neve (Snow Flake) [4]. O nome “estrela” se dá devido à disposição

em que se encontram as tabelas, sendo a fato centralizada relacionando-se com diversas

outras tabelas de dimensão. Já o modelo “floco de neve” consiste em uma extensão do

modelo estrela onde cada uma das "pontas da estrela" passa a ser o centro de outras

estrelas. Isto porque cada tabela de dimensão seria normalizada, "quebrando-se" a tabela

original ao longo de hierarquias existentes em seus atributos. Podemos visualizar os

dois modelos na Figura 3.

Figura 3 - Modelo Estrela e Floco de Neve – Fonte: Kimball 2002.

10

3.5 Metadado

O conceito metadado é considerado como sendo os "dados sobre dados", isto é,

os dados sobre os sistemas que operam com estes dados. Um repositório de metadados é

uma ferramenta essencial para o gerenciamento de um Data Warehouse no momento de

converter dados em informações para o negócio. Entre outras coisas, um repositório de

metadados bem construído deve conter informações sobre a origem dos dados, regras de

transformação, nomes e alias, formatos de dados, etc. Ou seja, esse "dicionário" deve

conter muito mais do que as descrições de colunas e tabelas: deve conter informações

que adicionem valor aos dados.

3.6 ETL – Extração, transformação e carga de dados

A etapa de ETL é uma das mais críticas de um projeto de DW, pois uma

informação carregada erroneamente trará consequências imprevisíveis nas fases

posteriores. O objetivo desta fase é fazer a integração de informações de fontes

múltiplas e complexas. Basicamente, divide-se esta etapa em três passos: extração,

transformação e carga dos dados. Embora tenhamos hoje em dia ferramentas que

auxiliam na execução do trabalho, ainda assim é um processo trabalhoso, complexo e

também muito detalhado. A Figura 4 apresenta as etapas do ETL que serão descritas a

seguir.

Figura 4 - Diagrama de ETL

Fonte: http://www.imc.com/services/enterprise-data-warehousing/etl-process-management na data 13/08/2014

11

Carga: Num processo de ETL, primeiramente, há a necessidade de definir as origens

das fontes de dados e fazer a extração deles. As origens deles podem ser várias e

também em diferentes formatos, onde poderemos encontrar desde os sistemas

transacionais das empresas (por exemplo: SAP, BSCS, etc.) até planilhas, arquivos

textos e também arquivos DBF (dBase) ou do Microsoft Access.

Limpeza: Definidas as fontes de dados, é necessário o processo de transformação e

limpeza dos dados. A limpeza é necessária porque os dados normalmente vêm de uma

fonte muitas vezes desconhecida, concebida há bastante tempo pelo cliente, contendo

inconsistências e dados sem significado para o negócio.

Transformação. Uma vez que a origem dos dados pode ser de sistemas diferentes, às

vezes é necessário padronizar os diferentes formatos. Quando levamos esses dados para

o DW, deve-se ter uma padronização deles, ou seja, deve ser colocado sob uma mesma

estrutura.

3.7 OLAP

OLAP, ou On-line Analytical Processing é a capacidade para manipular e

analisar um grande volume de dados sob múltiplas perspectivas. As aplicações OLAP

são usadas pelos gestores em qualquer nível da organização para lhes permitir análises

comparativas que facilitem a sua tomada de decisões diárias.

Em um modelo de dados OLAP, a informação é conceitualmente organizada em

cubos que armazenam valores quantitativos ou medidas. As medidas são identificadas

por duas ou mais categorias descritivas denominadas dimensões que formam a estrutura

de um cubo. Uma dimensão pode ser qualquer visão do negócio que faça sentido para

sua análise, como produto, departamento ou tempo. Este modelo de dados

multidimensional simplifica para os usuários o processo de formular pesquisas ou

"queries" complexas, criar relatórios, efetuar análises comparativas, e visualizar

subconjuntos (slice) de maior interesse. Por exemplo, um cubo contendo informações de

vendas poderá ser composto pelas dimensões tempo, região, produto, cliente, cenário

12

(orçado ou real) e medidas. Medidas típicas seriam valor de venda, unidades vendidas,

custos, margem, etc.

Dentro de cada dimensão de um modelo OLAP, os dados podem ser organizados

em uma hierarquia que define diferentes níveis de detalhe. Por exemplo, dentro da

dimensão tempo, você poderá ter uma hierarquia representando os níveis anos, meses, e

dias. Da mesma forma, a dimensão região poderá ter os níveis país, região, estado e

cidade. Assim, um usuário visualizando dados em um modelo OLAP irá navegar para

cima (drill up) ou para baixo (drill down) entre níveis para visualizar informação com

maior ou menor nível de detalhe.

13

4 Modelagem de dados dos dicionários

O objetivo desse capítulo é apresentar o modelo de dados e os dicionários

criados para o projeto CETIC. A primeira seção descreve o modelo Entidade-

Relacionamento dos dicionários, a segunda seção descreve genericamente o modelo

multidimensional, a terceira apresenta os dicionários desenvolvidos e a quarta seção

mostra o layout dos dicionários.

4.1 Modelo de Entidade-Relacionamento

O modelo de dados abaixo foi criado para solucionar a parte de armazenamento

dos dados dos dicionários e harmonização. A harmonização dos dados é de grande

importância, pois esta permite a comparação de indicadores ao longo do tempo que

muitas vezes os valores de referência são diferentes. Com isso, foi categorizado as

respostas nos campos harmonizados tornando-os assim equiparáveis.

Podemos visualizar o modelo na Figura 5 com suas as tabelas e seus respectivos

relacionamentos:

Figura 5 - Modelo de dados dos dicionários

14

Segue abaixo o padrão utilizado para nomear com prefixos as tabelas e campos

do modelo:

dc – abreviação de dicionário

id – abreviação de identificador

co – abreviação de código

no – abreviação de nome

ing_no – abreviação de inglês e nome

esp_no – abreviação de espanhol e nome

ds – abreviação de descrição

ing_ds – abreviação de inglês e descrição

esp_ds – abreviação de espanhol e descrição

tp – abreviação de tipo

tx – texto

O formato padrão adotado para todos os arquivos de dados foi CSV. Já os

arquivos de configuração do ETL, o padrão adotado foi XML.

Seguem abaixo as tabelas de atributos que compõem o modelo desenvolvido.

Tabela 1 - Tabela dc_pesquisa

Tabela Descrição

dc_pesquisa Tabela que armazena os dados de código e descrição de pesquisas existentes.

Ex: TIC_DOM, Pesquisa de Domicílios.

Campos Tipo Descrição

id_pesquisa Int Chave primária da tabela dc_pesquisa. Identificador da pesquisa no

modelo de dados. Ex: 1.

ano Int Ano em que ocorreu a pesquisa.

co_pesquisa Varchar Código da Pesquisa. Ex: Tic_Dom.

no_pesquisa Varchar Nome da Pesquisa em português (Descrição). Ex: Pesquisa de

Domicílios.

ing_no_pesquisa Varchar Nome da Pesquisa em inglês (Descrição). Ex: Household Survey.

esp_no_pesquisa Varchar Nome da Pesquisa em espanhol (Descrição). Ex: Encuesta de Hogares.

15

Tabela 2 - Tabela dc_unidade_analise

Tabela Descrição

dc_unidade_analise Tabela que armazena os dados de código e texto das unidades de análise de

uma pesquisa. Ex:Alunos.

Campos Tipo Descrição

id_unidade_analise Int Chave primária da tabela dc_unidade_analise. Identificador da

unidade de análise no modelo de dados. Ex: 1.

id_pesquisa Int Chave estrangeira da tabela dc_pesquisa. Identificador da pesquisa

no nosso modelo de dados. Ex: 1.

co_unidade_analise Varchar Código da unidade de análise.

no_unidade_analise Varchar Nome da unidade de análise. Ex: Alunos.

ing_no_unidade_analise Varchar Nome da unidade de análise em Inglês. Ex: Students.

esp_no_unidade_analise Varchar Nome da unidade de análise em Espanhol. Ex: Estudiantes.

Tabela 3 - Tabela dc_grupo_indicador

Tabela Descrição

dc_grupo_indicador Tabela que armazena os dados de código e texto dos grupos de indicadores de

uma pesquisa. Ex: B, Uso da Internet.

Campos Tipo Descrição

id_grupo_indicador Int Chave primária da tabela dc_grupo_indicador. Identificador do

grupo de indicadores no modelo de dados. Ex:1.

id_unidade_analise Int Chave estrangeira da tabela dc_unidade_analise. Identificador da

unidade de análise no modelo de dados. Ex: 1.

Campos Tipo Descrição

co_grupo_indicador Varchar Código do grupo de indicadores. Ex: B.

no_grupo_indicador Varchar Nome do grupo de indicadores. Ex: Uso da Internet.

ing_no_grupo_indicador Varchar Nome do grupo de indicadores em inglês. Ex: Uso da Internet.

esp_no_grupo_indicador Varchar Nome do grupo de indicadores em Espanhol. Ex: Uso da Internet.

Tabela 4 - Tabela dc_indicador

Tabela Descrição

dc_indicador Tabela que armazena os dados de código e descrições dos indicadores.

Ex: B6, PROPORÇÃO DE EMPRESAS QUE POSSUEM WEBSITE.

Campos Tipo Descrição

id_indicador Int Chave primária da tabela dc_indicador. Identificador do

indicador no modelo de dados. Ex: 1

id_grupo_indicador Int

Chave estrangeira da tabela dc_grupo_indicador.

Identificador do grupo de indicadores no modelo de dados.

Ex:1

co_indicador Varchar Código do indicador. Ex: B6

no_indicador Varchar Nome do indicador. Ex: PROPORÇÃO DE EMPRESAS

QUE POSSUEM WEBSITE.

no_indicador_harmonizado Varchar Nome do indicador harmonizado. Ex: PROPORÇÃO DE

EMPRESAS QUE USAM WEBSITE

tp_indicador Varchar Tipo do indicador. Pode ser D- dicotômico, DD- dicotômico

derivado, N- normal

ds_indicador Varchar Descrição do indicador. Ex: Percentual sobre o total de

empresas com acesso à Internet¹.

16

Ds_base_indicador Varchar Descrição da base de dados do indicador. Ex: ¹Base: 6 231

empresas que declararam ter acesso à Internet, com 10 ou

mais pessoas ocupadas e etc.

ds_nota_indicador Varchar Descrição das notas relativas ao indicador. Ex:

Considerando-se o computador de uso principal no

domicílio.

Ing_no_indicador Varchar Nome do indicador em inglês. Ex: PROPORTION OF

ENTERPRISES OWN WEBSITE.

Ing_ds_indicador Varchar Descrição do indicador em Inglês. Ex: Percentage of total

number of enterprises with Internet access ¹.

Ing_ds_base_indicador Varchar

Descrição da base de dados do indicador em inglês. Ex:

¹Base: 6231 companies that reported having Internet access,

with 10 or more employees e etc.

ing_ds_nota_indicador Varchar Descrição das notas relativas ao indicador em inglês. Ex:

Considering the main computer use at home.

Esp_no_indicador Varchar Nome do indicador em espanhol. Ex: PROPORCIÓN DE

EMPRESAS SITIO WEB PROPIA.

Esp_ds_indicador Varchar Descrição do indicador em espanhol. Ex: Porcentaje del

número total de empresas con acceso a Internet ¹.

Esp_ds_base_indicador Varchar

Descrição base de dados do indicador em espanhol. Ex:

¹Base: 6.231 empresas que reportaron tener acceso a

Internet, em 10 o más empleados e etc.

esp_ds_nota_indicador Varchar Descrição das notas relativas ao indicador em espanhol. Ex:

Teniendo en cuenta que el principal uso del ordenador en

casa.

ing_no_indicador_harmonizado Varchar Nome do indicador harmonizado em inglês. Ex:

PROPORTION OF ENTERPRISES OWN WEBSITE.

esp_no_indicador_harmonizado Varchar Nome do indicador harmonizado em espanhol. Ex:

PROPORCIÓN DE EMPRESAS SITIO WEB PROPIA.

co_peso Varchar Código do peso a ser utilizado no cálculo da proporção. Ex:

PesoBase.

tx_filtro Varchar Texto do filtro a ser utilizado no cálculo da proporção. Ex:

Se P26 = 1.

Tabela 5 - Tabela dc_pergunta

Tabela Descrição

dc_pergunta Tabela que armazena os dados de código e texto das perguntas de uma

pesquisa. Ex: est_civ, Estado civil do entrevistado.

Campos Tipo Descrição

id_pergunta Int Chave primária da tabela dc_pergunta. Identificador da

pergunta no modelo de dados. Ex: 1

id_unidade_analise Int

Chave estrangeira da tabela dc_unidade_analise.

Identificador da unidade de análise no modelo de dados. Ex:

1

co_pergunta Varchar Código da pergunta. Ex: sexo.

co_pergunta_harmonizada Varchar Código da pergunta harmonizada. Ex: Sexo.

no_pergunta Varchar Nome da pergunta em português (Descrição). Ex: Qual o

sexo do respondente?

uso_analise Varchar Indica se a pergunta é de agrupamento ou dimensão. Ex: A –

Agrupamento e D – dimensão.

no_categoria Varchar Nome da categoria em português. Ex: Tecnologia de rede.

uso_resposta Varchar Indica se o texto a ser exibido é o da pergunta ou da resposta.

Ex: S.

ing_no_pergunta Varchar Nome da pergunta em inglês (Descrição). Ex: What is the

16el16 f the respondent?

17

Tabela 6 - Tabela dc_resposta

4.2 Modelagem multidimensional – Template

O modelo de dados abaixo foi criado como um template genérico que representa o

modelo multidimensional do projeto. Esta modelagem é importante para que se possa

fazer análises em tempo real (em ferramenta OLAP) fazendo combinações de

agrupamentos diversos com dimensões. As várias tabelas fatos serão geradas para cada

pesquisa/ano/unidade de análise/idioma. Apesar de não estarem representados nesse

modelo, terão fatos multilíngues.

Cada pesquisa tem no banco, suas dimensões de variáveis de agrupamento

específicas (representadas por dm_regiao e dm_<var_agrupamento>). Tem também

suas várias dimensões de perguntas, para as usadas na contagem dos indicadores

(representadas por co e no <pergunta>).

esp_no_pergunta Varchar Nome da pergunta em espanhol (Descrição). Ex: ¿Qué e sexo

el encuestado?

ing_no_categoria Varchar Nome da categoria em inglês (Descrição). Ex: Network

technology.

esp_no_categoria Varchar Nome da categoria em espanhol (Descrição). Ex: Tecnología

de red.

no_categoria_harmonizada varchar Nome da categoria harmonizada em português. Ex:

Tecnologia de rede.

ing_no_categoria_harmonizada Varchar Nome da categoria harmonizada em inglês. Ex: Network

technology.

esp_no_categoria_harmonizada Varchar Nome da categoria harmonizada em espanhol. Ex:

Tecnología de red.

co_unidade_analise Varchar Código da unidade de análise. Ex: Aluno.

Tabela Descrição

dc_resposta Tabela que armazena os dados de código e texto das respostas de uma pesquisa.

Ex: 2, Centro.

Campos Tipo Descrição

id_resposta Int Chave primária da tabela dc_resposta. Identificador da resposta no

modelo de dados. Ex:1

id_pergunta Int Chave estrangeira da tabela dc_pergunta. Identificador da pergunta no

nosso modelo de dados. Ex: 1

co_resposta Int Código da resposta. Ex: 1.

no_resposta Varchar Nome da resposta em português (Descrição). Ex: Sim.

no_harmonizado Varchar Nome harmonizado designado para a resposta em português

(Descrição). Ex: 1 salário mínimo.

ing_no_resposta Varchar Nome da resposta em inglês (Descrição). Ex: Yes.

esp_no_resposta Varchar Nome da resposta em espanhol (Descrição). Ex: Sí.

ing_no_harmonizado Varchar Nome harmonizado designado para a resposta em inglês (Descrição).

Ex: 1 brazilian minimum wage.

esp_no_harmonizado Varchar Nome harmonizado designado para a resposta em espanhol

(Descrição). Ex: 1 salario mínimo brasileño.

18

O conteúdo do campo genérico co_<pergunta>, é o código da resposta dada para a

pergunta que aquele campo representa. Da mesma forma o conteúdo do campo genérico

no_<pergunta>, é o nome da resposta dada para pergunta que aquele campo representa.

Figura 6 - Modelo multidimensional

Segue abaixo o padrão utilizado para nomear com prefixos as tabelas e campos

do modelo:

dm – abreviação de dimensão

ft – abreviação de fato

id – abreviação de identificador

co – abreviação de código

no – abreviação de nome

<> – representa que os nomes são genéricos

ano – representa o ano da pesquisa

UA – representa a unidade de análise

var_agrupamento – representa variáveis de agrupamento

19

Seguem abaixo as tabelas da modelagem multidimensional.

Tabela 7 - Tabela dm_regiao

Tabela Descrição

dm_regiao Tabela da dimensão região. Escolhida para estar no template por constar em

todas as pesquisas.

Campos Tipo Descrição

co_regiao Int Chave primária da dimensão dm_regiao. Código da região. Ex: reg_tab

co_resposta Varchar Código da resposta. Ex: 1. (se referencia a “Norte” pelo dicionário de

respostas)

Tabela 8 - Tabela dm_<var_agrupamento>

Tabela Descrição

dm_<var_agrupamento> Tabela que representa as demais dimensões necessárias para as variáveis de

agrupamento de cada pesquisa. Ex: Porte.

Campos Tipo Descrição

co_<var_agrupamento> Int Na dimensão vai existir um código da variável de agrupamento

referente à pesquisa. Ex: zona_tab.

co_resposta Varchar

Na dimensão vai existir um código que se refere a resposta da

pergunta referente ao agrupamento. Ex: 2 (se referencia a “Rural”

pelo dicionário de respostas)

Tabela 9 - Tabela ft_pesquisa_<ano>_<ua>_<idioma>

Tabela Descrição

ft_pesquisa_<ano>_<ua> Tabela que representa a fato de cada pesquisa no ano e na unidade de analise

específica.

Campos Tipo Descrição

id_quest Int Chave primária da fato que contem o identificador do questionário.

Ex: 100

co_regiao Varchar Chave estrangeira da dimensão região. Código da região. Ex:

reg_tab

co_<var_agrupamento> Int Representa a chave estrangeira das demais dimensões de variáveis

de agrupamento. Ex: zona_tab.

co_<var_pergunta> Varchar Representa os códigos das perguntas daquela pesquisa. Ex: P1.

co_resposta Varchar O conteúdo dele será o código da resposta para aquela pergunta. Ex:

1.

peso Varchar Campo de peso da resposta. Ex: 0.285432.

4.3 Dicionários

Os dicionários consistem em arquivos gerados no formato adequado para a carga

dos dados no sistema. Foram estruturados baseados no modelo de dados dos dicionários

e harmonização do projeto CETIC. Devem ser preenchidos nos padrões observados

nesta seção para que a inserção dos dados seja bem sucedida. O objetivo dos arquivos

de dicionários é carregar as informações para o banco de dados do projeto com todas as

descrições e associações entre indicadores, perguntas e respostas.

20

Os nomes dos arquivos de dicionários devem obedecer o formato abaixo:

<Código da pesquisa>_<ano>_dicionario_perguntas.csv

<Código da pesquisa>_<ano>_dicionario_respostas.csv

<Código da pesquisa>_<ano>_<unidade_análise>_dicionario_indicadores.csv

<Código indicativo da Pesquisa>_<ano>_erro.csv

Dados_<Código indicativo da Pesquisa>_<ano>.csv

Onde:

Código da pesquisa é a abreviação TIC_ somada a abreviação (3 letras) designada a um

dos tipos de pesquisa existentes. Ex: TIC_DOM para Pesquisa de Domicílios.

Exemplo de nome de arquivo: TIC_DOM_2012_dicionario_perguntas.csv.

O projeto adotou como padrão que os arquivos fontes dos dados são de formato

CSV (comma-separated values). O sistema não será capaz de carregar arquivos em

outras extensões.

Exemplo de nome completo de arquivo: TIC_DOM_2012_dicionario_perguntas.csv

O padrão utilizado para nomear os campos dos arquivos de um dicionário segue

a mesma forma do modelo de dados, onde:

dc – abreviação de dicionário

id – abreviação de identificador

co – abreviação de código

no – abreviação de nome

ing_no – abreviação de inglês e nome

esp_no – abreviação de espanhol e nome

ds – abreviação de descrição

ing_ds – abreviação de inglês e descrição

esp_ds – abreviação de espanhol e descrição

tp – abreviação de tipo

tx – texto

21

4.4 Layout dos arquivos de dicionários

A estrutura de layout dos arquivos de dicionário é essencial para a parte de carga

dos dados do projeto CETIC. É necessário respeitar o nome, o conteúdo e a posição dos

campos para o processo de inserção dos dados seja bem sucedido.

4.4.1 Layout do dicionário de perguntas

O Layout do dicionário de perguntas é formado por dois campos essenciais

(co_pergunta e no_pergunta) a serem preenchidos para a carga dos dados e outros

opcionais.

tipo_var: Contém o tipo da pergunta (D – dimensão ou A – Agrupamento). Pode

ser observado na Figura 7 coluna A. Ex: D.

co_pergunta: Contém o código associado ao texto da pergunta de uma pesquisa.

Pode ser observado na Figura 7 coluna B. Ex: QUEST.

co_pergunta_harmonizada: Contém o código da pergunta harmonizada. Não foi

necessária a utilização da mesma no decorrer do projeto, logo ficará em branco.

Coluna C da Figura 7.

no_pergunta: Contém o valor do texto da pergunta de uma pesquisa. Pode ser

observado na coluna D da Figura 7. Ex: Número do Questionário.

no_categoria: Contém o valor do texto referente a uma categoria na dimensão, se

existir. Ex: Banda Larga. Pode ser observado na coluna E da Figura 7.

uso_resposta: Variável de controle para utilizar ou não a descrição da pergunta

no lugar da descrição da resposta. Se uso_resposta = S, o no_pergunta será

exibido no lugar da descrição da resposta dessa pergunta (Utilizado sempre

quando o indicador relacionado é do tipo Dicotômico Derivado – DD). Na

Figura 7 pode ser observado na coluna F.

ing_no_pergunta: Contém o valor do texto da pergunta de uma pesquisa em

inglês. É opcional. Na Figura 7 pode ser observado na coluna G.

Figura 7 - Layout do dicionario de perguntas - parte 1

22

esp_no_pergunta: Contém o valor do texto da pergunta de uma pesquisa em

espanhol. É opcional. Na Figura 8 pode ser observado na coluna H.

ing_categoria: Contém o valor do texto da categoria de uma pesquisa em inglês.

É opcional. Na Figura 8 pode ser observado na coluna I.

esp_categoria: Contém o valor do texto da categoria de uma pesquisa em

espanhol. É opcional. Na Figura 8 pode ser observado na coluna J.

no_categoria_harmonizada: Contém o valor do texto da categoria harmonizada.

Não foi necessária a utilização da mesma no decorrer do projeto, logo ficará em

branco. Coluna K da Figura 8.

ing_no_categoria_harmonizada: Contém o valor do texto da categoria

harmonizada em inglês. Não foi necessária a utilização da mesma no decorrer do

projeto, logo ficará em branco. Coluna L da Figura 8.

esp_no_categoria_harmonizada: Contém o valor do texto da categoria

harmonizada em espanhol. Não foi necessária a utilização da mesma no decorrer

do projeto, logo ficará em branco. Coluna M da Figura 8.

4.4.2 Layout do dicionário de respostas

O Layout do dicionário de respostas é formado por três campos essenciais a

serem preenchidos para a carga dos dados, outros quatro campos opcionais de idioma e

um opcional de harmonização. Segue abaixo a descrição de cada campo que compõe o

dicionário:

co_pergunta: Contém o valor da variável associada ao texto da pergunta nos

microdados de uma pesquisa. Na Figura 9 pode ser observado na coluna A. Ex:

SEXO.

Figura 8 - Layout do dicionário de pergunta - parte 2

23

co_resposta: Contém o valor da variável associada ao texto da resposta nos

microdados de uma pesquisa. Na Figura 9 abaixo pode ser observado na coluna

B. Ex: 1.

no_resposta: Contém o valor do texto da resposta de uma pesquisa. Na Figura 9

pode ser observado na coluna C. Ex: Masc.

ing_no_resposta: Contém o valor do texto da resposta de uma pesquisa em

inglês. É opcional. Na Figura 9 pode ser observado na coluna D.

esp_no_resposta: Contém o valor do texto da resposta de uma pesquisa em

espanhol. É opcional. Na Figura 9 pode ser observado na coluna E.

no_harmonizado: Contém o valor do texto da resposta harmonizada de uma

pesquisa. Será usado nas respostas de indicadores com evolução histórica. É

opcional. Na Figura 9 pode ser observado na coluna F.

ing_no_harmonizado: Contém o valor do texto da resposta harmonizada de uma

pesquisa em inglês. É opcional. Na Figura 9 pode ser observado na coluna G.

esp_no_harmonizado: Contém o valor do texto da resposta harmonizada de uma

pesquisa em espanhol. É opcional. Na Figura 9 pode ser observado a coluna H.

4.4.3 Layout do dicionário de indicadores

O Layout do dicionário de indicadores é formado por treze campos essenciais

(pesquisas com micro dados) a serem preenchidos para a carga dos dados e outros

campos opcionais de idiomas. Segue abaixo a descrição de cada campo que compõe o

dicionário:

no_pesquisa: Contém o nome da pesquisa padronizado por “TIC” + o nome da

pesquisa em letras maiúsculas. Ex: TIC DOMICÍLIOS. Na Figura 10 pode ser

observado na coluna A.

no_unidade_analise: Contém o nome da unidade de análise associada a pesquisa,

por convenção será também todas as letras em maiúsculo. Ex: USUÁRIOS. No

Figura 9 - Layout do dicionário de respostas

24

caso de pesquisas que não tenham unidade de análise deverá constar nesse

campo o nome da pesquisa. Observar o exemplo da Figura 10 abaixo na célula

B.

co_pergunta: Contém o valor da variável associada ao texto da pergunta nos

microdados de uma pesquisa. Na Figura 10 abaixo pode ser observado na coluna

C. Ex: b1.

co_indicador: Contém o valor do código do indicador associado a uma pergunta.

Ex: B1. Na Figura 10 abaixo pode ser observado na coluna D.

no_indicador: Contém o nome de um indicador. Ex: Proporção de indivíduos

que já utilizaram um computador. Na Figura 10 abaixo pode ser observado na

coluna E.

no_indicador_harmonizado: Contém o nome de um indicador harmonizado ao

longo dos anos. Quando este campo está preenchido, significa que este indicador

deverá ser exibido no gráfico da série histórica do portal. Ex. Proporção de

indivíduos que já utilizaram um computador. No exemplo da coluna F, ele está

em branco, logo não será harmonizado.

tp_indicador: Coluna que identifica o tipo do indicador. Código D – Dicotômico,

DD – Dicotômico Derivado e N – Não dicotômico. Ex: D exibido na coluna G.

co_grupo_indicador: Contém o valor do código do grupo de um indicador. Ex:

B. Na Figura 11 pode ser observado na coluna H.

no_grupo_indicador: Contém o nome do grupo de um indicador. Ex: Uso do

Computador. Na Figura 11 abaixo pode ser observado na coluna I.

Figura 10 - Layout do dicionário de indicadores - parte 1

25

ds_indicador: Contém a descrição do universo dos indivíduos entrevistados no

indicador. Ex: Percentual sobre o total da população. Na Figura 11 pode ser

observado na coluna J.

ds_base_indicador: Contém a descrição da base de dados do indicador. Ex:

Base: 6 271 empresas que declararam utilizar computador, com 10 ou mais

pessoas...”. Na Figura 12 pode ser observado na coluna K.

ds_nota_indicador: Contém a descrição do universo de entrevistados a ser

considerado no indicador. Na Figura 12 pode ser observado na coluna L.

ing_no_indicador: Contém o nome de um indicador em inglês. É opcional. Na

figura abaixo pode ser observado na coluna M.

ing_no_grupo_indicador: Contém o nome do grupo de um indicador em inglês.

É opcional. Na Figura 12 pode ser observado na coluna N.

ing_ds_indicador: Contém a descrição do indicador em inglês. É opcional. Na

Figura 12 pode ser observado na coluna O.

ing_ds_base_indicador: Contém a descrição da base de dados do indicador em

inglês. É opcional. Na Figura 13 pode ser observado na coluna P.

ing_ds_nota_indicador: Contém a descrição do universo de entrevistados a ser

considerado no indicado em inglês. É opcional. Na Figura 13 pode ser observado

na coluna Q.

esp_no_indicador: Contém o nome de um indicador em espanhol. É opcional.

Na Figura 13 pode ser observado na coluna R.

Figura 11 - Layout do dicionário de indicadores - parte 2

Figura 12 - Layout do dicionário de indicadores - parte 3

26

esp_no_grupo_indicador: Contém o nome do grupo de um indicador em

espanhol. É opcional. Na Figura 13 pode ser observado na coluna S.

esp_ds_indicador: Contém a descrição do indicador em espanhol. É opcional. Na

Figura 13 pode ser observado na coluna T.

esp_ds_base_indicador: Contém a descrição da base de dados do indicador em

espanhol. É opcional. Na Figura 13 pode ser observado na coluna U.

esp_ds_nota_indicador: Contém a descrição do universo de entrevistados a ser

considerado no indicado em espanhol. É opcional. Na Figura 13 pode ser

observado na coluna V.

ing_no_unidade_analise: Contém o nome da unidade de análise associada a

pesquisa em inglês. É opcional. Observar o exemplo da Figura 14 na célula W.

esp_no_unidade_analise: Contém o nome da unidade de análise associada a

pesquisa em espanhol. É opcional. Observar o exemplo da Figura 14 na célula

X.

ing_no_pesquisa: Contém o nome da pesquisa em inglês. É opcional. Observar o

exemplo da Figura 14 na célula Y.

esp_no_pesquisa: Contém o nome da pesquisa em espanhol. É opcional.

Observar o exemplo da Figura 14 na célula Z.

ing_no_indicador_harmonizado: Contém a descrição do indicador harmonizado

em inglês. É opcional. Observar o exemplo da Figura 14 na célula AA.

Figura 13 - Layout do dicionário de indicadores - parte 4

Figura 14 - Layout do dicionário de indicadores - parte 5

27

esp_no_indicador_harmonizado: Contém a descrição do indicador harmonizado

em espanhol. É opcional. Observar o exemplo da Figura 15 na célula AB.

co_peso: Contém o código do peso a ser calculado (somente quando há

microdados). Pode ser observado na coluna AC.

tx_filtro: Contém o texto da expressão do universo que será calculado (somente

quando há microdados). Pode ser observado na coluna AD.

Figura 15 - Layout do dicionário de indicadores - parte 6

28

5 Solução de ETL desenvolvida

O objetivo dessa seção é apresentar as funcionalidades do sistema, os parâmetros

de configurações, ferramentas utilizadas e o funcionamento de cada etapa.

5.1 Funcionalidades

As principais funcionalidades do sistema são:

Carregar os arquivos de microdados de determinadas pesquisas;

Carregar os arquivos de dicionários de perguntas, respostas e indicadores de

determinadas pesquisas;

Carregar apenas os pares de agrupamento x dimensão considerados válidos através da

tabela de erro;

Carregar as pesquisas pré-calculadas e estruturar os dados no mesmo modelo das

pesquisas calculadas;

Apagar o repositório de dados dos microdados de determinadas pesquisas;

Apagar o repositório de dados dos dicionários de determinadas pesquisas;

5.2 Ferramentas utilizadas

Para realizar a solução de ETL foi utilizada a ferramenta Talend Open Studio

versão 5.3.1. A Ferramenta de busca e indexação foi o Apache Solr versão 4.0. Foi

utilizada também a ferramenta OLAP Calandra BI versão 3.0.3.

5.3 Padrões

O padrão adotado de códigos de pesquisa, unidade de análise e idiomas do

projeto CETIC podem ser encontrados na Tabela 11 e na Tabela 10.

Tabela 10 - Padrão de códigos dos idiomas

Código do idioma Idioma

pt Português

en Inglês

es Espanhol

29

Tabela 11 - Padrão de códigos das pesquisas e unidades de análise

Código da pesquisa

Código da unidade de análise (sem

acento)

TIC_EMP Empresas

TIC_DOM Domicilios

TIC_DOM Usuarios

TIC_EDU Aluno

TIC_EDU Coordenador

TIC_EDU Diretor

TIC_EDU Escola

TIC_EDU Professor

5.4 Funcionamento

Foram desenvolvidas estruturas de arquivos XML que configuram o ETL. São

eles: “database.xml” e “email_log.xml”.

“database.xml”: Arquivo que possui as conexões com o banco de dados

MYSQL, endereço de e-mail e senha de autenticação para envio de log,

configurações de FTP e do solr. As configurações são preenchidas conforme o

exemplo da Figura 16:

Figura 16 - Arquivo de configuração "database.xml"

30

“email_log.xml”: Arquivo que possui as configurações de e-mail do destinatário

dos logs de execução do ETL. Será preenchido o “id”, nome do destinatário e

endereço de e-mail conforme Figura 17.

Após a configuração dos arquivos XML é necessária a criação das tabelas do

banco de dados que serão utilizadas. Para tal foi gerado o script de criação utilizando o

programa Workbench.

5.4.1 Carga dos dados

Para realizar a carga dos dados, devemos configurar o arquivo

“estrutura_generico.xml”. As duas primeiras linhas do código e a última são

obrigatórias para que o XML seja lido corretamente. Os blocos do meio vão se repetir

sempre no padrão ilustrado na Figura 18:

5.4.1.1 Exemplo de carga de dados

No primeiro bloco da Figura 19, o arquivo XML está configurado para carregar

a pesquisa de Domicílios, do ano de 2010, unidade de análise de Domicílios e idioma

português. Nas marcações de dicionários e diretórios foram preenchidos o diretório de

entrada, nomes dos arquivos a serem carregados, diretório de saída e arquivo de

proporção. A pesquisa de domicílios do ano de 2010 é considerada como pré-calculada

e por isso a marcação com o nome do arquivo de microdados deverá estar vazia.

Figura 17 - Arquivo de configuração "email_log.xml"

Figura 18 - Arquivo de configuração de carga de dados "estrutura_generico.xml"

31

No segundo bloco da Figura 19, o arquivo XML está configurado para carregar a

pesquisa de Domicílios, do ano de 2011, unidade de análise de Domicílios e idioma

português. Nas marcações de dicionários e diretórios foram preenchidos o diretório de

entrada, nomes dos arquivos a serem carregados, diretório de saída e arquivo de erro.

Na pesquisa de domicílios do ano de 2011 existe o arquivo de microdados e por isso a

marcação <arq_pesquisa> está preenchida com o nome do arquivo.

Nas pesquisas com microdados deverá conter um bloco preenchido para cada

pesquisa/ano/unidade_analise/idioma. Somente no caso das pesquisas pré-calculadas

deverá conter um bloco para cada pesquisa/ano/unidade_analise. Logo para fazer uma

carga com todas as pesquisas do ano de 2012, deve-se copiar o bloco com as marcações

de dicionários e diretórios para cada pesquisa/unidade_analise/idioma mantendo o ano

como 2012. Do mesmo modo, para realizar uma carga de uma determinada pesquisa ao

longo dos anos, deve-se ter um bloco por ano/unidade_analise/idioma mantendo o

mesmo código da pesquisa.

5.4.2 Exclusão dos dados

Para realizar a exclusão dos dados basta configurar o arquivo

“estrutura_generico.xml” da seguinte forma:

Figura 19 - Exemplo de configuração de carga de dados

32

Como mostrado na Figura 20, as marcações de diretórios e dicionários deverão

ficar vazias e preencher apenas o código da pesquisa, ano, unidade de análise e idioma a

ser apagado. No caso das pesquisas pré-calculadas, o idioma é desconsiderado tendo em

vista que não existe microdados. Desse modo, para apagar as pesquisas de um

determinado ano basta repetir o bloco com o código da pesquisa/unidade_analise/idioma

mantendo o ano igual para todos.

5.4.2.1 Exemplo de exclusão de dados

O comando de excluir dados pode ser realizado em conjunto com alguma carga,

pois o ETL é executado por bloco de estrutura sequencialmente. No exemplo da Figura

21, serão excluídos os dados da pesquisa de domicílios, ano de 2011, unidade de análise

domicílios e idioma português. No segundo bloco do XML, será realizada a carga dos

dados da mesma pesquisa.

Figura 21 – Exemplo de configuração do XML para exclusão de dados

Figura 20 – Arquivo de configuração “estrutura_generico.xml” configurado para excluir dados

33

5.5 Processo de ETL

A Figura 22 apresenta em alto nível o comportamento do sistema de ETL. Nas

subseções será mostrada cada etapa com maiores detalhes. Na ferramenta Talend Open

Studio essas etapas são chamadas de “job’s”.

Figura 22 - Fluxograma de funcionamento do ETL

34

5.5.1 ETL – Job Start

O job “Start” é responsável por ler o XML que contém as configurações do

banco de dados, configurações da autenticação de remetente de e-mail e carrega-las

como variáveis de contexto para que possam ser utilizadas no job filho

“job_orquestrador_generico”. Na Figura 23 podemos visualizar o “job Start”.

5.5.2 ETL – Job orquestrador

O “job_orquestrador_generico” foi dividido em sete partes e pode ser

visualizado na Figura 24:

Figura 23 – Job Start

Figura 24 - Job orquestrador_generico

35

A primeira parte é responsável por carregar as configurações do arquivo XML

(diretórios, nome dos arquivos, código da pesquisa, ano, unidade de análise)

identificar se será realizada a opção de apagar alguma base de dados (core de

microdados ou dicionários) e chamar o “job_deleta”;

A segunda parte apenas limpa as tabelas “stage”;

A terceira parte lê o arquivo XML, verifica se deve carregar alguma base de

dados e, se solicitado, chama o “job_carrega_stage”;

A quarta parte do ETL é a chamada DW, onde os dados carregados nas tabelas

stage são colocados em tabelas no banco MYSQL pelo

“job_carrega_dw_dicionarios”;

A quinta parte gera o arquivo de metadados através do

“job_gera_arquivo_dicionario” que será carregado no core chamado

“cetic_dicionario”.

Na sexta etapa, são identificadas as pesquias que contém microdados através do

arquivo XML de configuração e é chamado o “job_microdado”.

O “job_orquestrador_generico” contém mais dois blocos isolados que capturam

informações de erros de execução do ETL, estatísticas e os carrega nas tabelas

“tos_log” e “tos_stats”. Na última etapa, é chamado o “job_send_logs”.

5.5.3 ETL – Job deleta

O “job_deleta”, exibido na Figura 25, será chamado quantas vezes forem

necessárias para apagar os core’s que foram configurados no XML. No primeiro bloco,

é apagado o core dos microdados relacionado à pesquisa/ano/unidade_análise/idioma

solicitado. Em seguida, apagam-se os dados relacionados no core de dicionários e

também no dicionário_resposta.

36

Figura 25 - Job Deleta

5.5.4 ETL - Job carrega stage

O “job_carrega_stage”, Figura 26, será executado da mesma forma que o

job_deleta, porém ele carregará as tabelas stage de acordo com as planilhas de

indicadores, perguntas, respostas e erro/proporção. Nessa etapa os arquivos são lidos e

carregados diretamente em tabelas no banco de dados.

Figura 26 - Job carrega stage

37

5.5.5 ETL - Job carrega dw dicionários

O “job_carrega_dw_dicionarios”, Figura 27, será executado uma única vez

independentemente da quantidade de pesquisas que foram carregadas. Nessa rotina são

realizadas as consultas nas tabelas stage e montadas as tabelas com as chaves

identificadoras de acordo com o modelo de dados do negócio.

Figura 27 – Job carrega dw dicionários

38

5.5.6 ETL – Job gera arquivo dicionário

No “job_gera_arquivo_dicionario”, Figura 28, são feitos todos os cruzamentos

de agrupamentos com dimensões e estrutura dos metadados que serão consumidos pelo

web service.

Figura 28 - Job gera arquivo dicionário – parte 1

Já na segunda parte do job, Figura 29, é feita uma comparação com a tabela de

erro/proporção para validar os cruzamentos considerados válidos. Em seguida é

carregado o arquivo “cetic_dicionario” no core de metadados com o mesmo nome do

arquivo. Além deste, o core “cetic_dicionario_resposta” também é carregado para que

seja traduzido para o sistema o texto que define o filtro a ser calculado em cada

indicador.

39

Figura 29 - Job gera arquivo dicionário - parte 2

5.5.7 ETL – Job microdado

O “job_microdado”, Figura 30, é executado toda vez que uma

pesquisa/ano/unidade_análise/idioma é solicitada para fazer a carga e tenha o arquivo de

microdados. Nesse job são feitas as manipulações dos microdados para trazer a

descrição no lugar do código da resposta. Na segunda parte do job, Figura 31, o core

solicitado é carregado e é criado o esquema de variáveis para ser importado no Calandra

BI.

Figura 30 - Job microdado – parte 1

40

Figura 31 - Job microdado - parte 2

5.5.8 ETL – Job send logs

O job_send_logs, Figura 32, será executado uma vez para enviar o log por e-

mail para o analista indicado no XML “email_log”. Além disso, duas tabelas de log são

alimentadas com os erros e estatísticas: tos_log e tos_stats.

Figura 32 - Job send logs

41

5.5.9 Execução do ETL

Após os arquivos XML’s estarem configurados, as tabelas e procedures do

banco de dados MySQL criadas, o usuário deverá executar o arquivo “start_run.sh” e

automaticamente o “job_start” será iniciado chamando os jobs filhos. O tempo de carga

varia de acordo com a quantidade de pesquisas a serem carregadas. O tempo total para

carregar todas as pesquisas do repositório foi de 7 minutos em ambiente de produção.

5.6 Interface do portal ao usuário final

As Figura 33,Figura 34, Figura 35 e Figura 36 apresentam as possíveis interfaces

ao usuário mostrando os indicadores que se encontram no repositório de dados do

CETIC.br. Essa ferramenta web foi desenvolvida pelo setor de desenvolvimento da

empresa Calandra e consome os dados tratos pelo ETL e armazenados no Solr que é o

repositório final de dados.

Figura 33 - Indicadores da pesquisa de Domicílios 2012

42

Figura 34 - Série histórica Domicílios por computador (2008 - 2012)

Figura 35 - Perfil de usuários com acesso as TIC's

43

Figura 36 – Proporção de Domicílios 2012 que possuem equipamentos TIC

44

6 Conclusão

Este capítulo conclui este trabalho, resumindo o que foi feito ao longo do

mesmo, os resultados obtidos, as possíveis extensões e trabalhos futuros para o projeto.

Relembrando, o primeiro capítulo expôs o objetivo do trabalho visto as necessidades do

cliente. O segundo capítulo apresenta o cliente e o problema prático em si. O terceiro

capítulo descreveu os conceitos usados ao longo projeto assim como as técnicas

utilizadas. O quarto capítulo expõe a modelagem de dados e estruturas de dados

desenvolvidas. No quinto capítulo foi apresentado a solução de ETL e explicado o papel

de cada etapa do desenvolvimento.

6.1 Resultados alcançados

A proposta deste trabalho foi estruturar os dados, fazer a modelagem e

desenvolver o ETL para que os dados sejam devidamente disponibilizados para que o

portal consuma essas informações. Dentro desse escopo, foram alcançados por este

trabalho os seguintes resultados:

O modelo de dados foi modelado corretamente garantindo que as relações entre

as tabelas fossem consistentes;

Foi desenvolvido um ETL que dispõe as regras do negócio cobrindo todos os

tipos e exceções das pesquisas sobre as tecnologias coordenadas pelo CETIC.br;

Com a evolução do protótipo apresentado ao cliente, foi aumentado a

performance do ETL em cerca de 95% quando constatado um baixo

desempenho de dois componentes da ferramenta Talend Open Studio e

desenvolvidos dois componentes que efetuavam a mesma função;

Satisfação do cliente quanto a facilidade de configuração, documentação e

execução do sistema de ETL desenvolvido;

Realização do treinamento para capacitação do cliente para operar o sistema e

conhecer melhor o funcionamento da ferramenta.

45

6.2 Trabalhos futuros e possíveis extensões

O desenvolvimento do ETL atendeu perfeitamente as necessidades e requisitos

do projeto. As possíveis extensões do projeto, que inclusive já foram contratadas pelo

cliente, são:

Substituição das planilhas de dicionários por uma aplicação em que o

preenchimento seja mais ágil e confiável minimizando os erros de digitação que

são frequentes. Com isso o cliente cadastraria as perguntas, respostas e

indicadores nas telas da aplicação e os dados seriam estruturados direto na etapa

de DW;

Efetuar o cálculo do erro dos cruzamentos de agrupamento x dimensão sob

demanda. Atualmente o cálculo do erro é realizado fora do ETL e a partir da

tabela de erro gerada pelo cliente o sistema valida os cruzamentos que devem ser

apresentados. Com o cálculo do erro sendo em tempo real, as possibilidades de

cruzamentos aumentam bastante, dando mais flexibilidade e poder ao usuário

final.

Este trabalho apresentou a solução desenvolvida para modelagem dos dados,

extração, transformação e carga dos dados das pesquisas do Brasil de uso da tecnologia

e informação que são monitoradas pelo CETIC.br.

A divulgação desse projeto foi autorizada previamente pelo cliente.

46

Bibliografia

[1] MACHADO, Felipe Nery Rodrigues, “Tecnologia e Projeto de Data Warehouse:

Uma visão multidimensional”. São Paulo, Brasil, 2008

[2] KIMBALL, Ralf, The Data Warehouse Toolkit: The Complete Guide to

Dimensional Modeling”. USA, 2002.

[3] Portal CETIC.br, http://cetic.br/, Acessado em Julho de 2014.

[4] Documento interno de requisitos da empresa Calandra – Projeto CETIC

[5] ECKERSON, Wayne, WHITE, Colin, “Evaluating ETL and Data Integration

Platforms”. USA, 2003.

[6] FERREIRA, João, MIRANDA, Miguel, ABELHA, Antonio, MACHADO, José,

“O processo ETL em Sistemas Data Warehouse”,

http://inforum.org.pt/INForum2010/papers/sistemas-inteligentes/Paper080.pdf

Acessado em Junho de 2014

[7] RIBEIRO, Lívia, “Um estudo sobre proveniência e complementação de dados no

contexto do processo de ETL”,

http://www.comp.ime.eb.br/techreports/repositorio/2010_01.pdf, Acessado em

Junho de 2014

[8] SANTOS, Valdinei, “Data Warehouse: Análise de ferramentas de ETL”,

http://www.uniedu.sed.sc.gov.br/wp-content/uploads/2013/10/Valdinei-Valmir-dos-

Santos.pdf Acessado em Julho de 2014