Escolar Documentos
Profissional Documentos
Cultura Documentos
Brasília/DF
Junho/2018
INSTITUTO INTERAMERICANO DE COOPERAÇÃO PARA A AGRICULTURA
FOLHA DE ROSTO PARA PRODUTOS DE COOPERAÇÃO TÉCNICA
Identificação
Consultor (a) / Autor (a): Gilmar Correa dos Santos
Número do Contrato: 118103
Nome do Projeto: PCT/ IICA/BRA/13/003 – Nova Ruralidade Brasileira: Compreensões e
Implicações na Política Pública
Oficial/Coordenador Técnico Responsável – IICA: Cristina Costa
Data Local: 10 de junho de 2018/Brasília - DF
Classificação
Temas Prioritários
Agroenergia e Biocombustíveis Sanidade Agropecuária
Biotecnologia e Biossegurança Tecnologia e Inovação X
Comércio e Agronegócio X Agroindústria Rural
Desenvolvimento Rural X Recursos Naturais
Políticas e Comércio X Comunicação e Gestão do Conhecimento
Agricultura Orgânica Outros:
Modernização Institucional X
Palavras-Chave:
Inteligencia de Negócio; DW; BI; BA; Business Intelligence; Business Analytics; Software Livre;
FOSS; Dados; Informação; Gestão
Resumo
Título do Produto: Produto 2
Subtítulo do Produto: Documento técnico contendo levantamento e mapeamento de dados dos
contextos DAP e do Garantia Safra, com respectivos modelos de banco de dados (modelo
dimensional) para armazenamento dos dados, modelo do processo ETL para extração dos dados
levantados e carga no modelo proposto.
Resumo do Produto:
Construção de modelo de dados dimensional em tecnologia EBD PostgreSQL que armazena
dados oriúndos de dados originários de fontes em SGBD SQL SERVER referente aos contextos
DAP e Garantia Safra e que se refiram aos indicadores chave de desempenho (KPI’s)
identificados durante a análise inicial agrupados e provenientes do DAP: 1) Número de DAP’s
Principais; 2) Número de DAP’s Jurídicas; 3) Número de DAP’s Jovens; 4) Número de DAP’s
Mulher e provenientes do Garantia Safra: 5) Quantidade de Agricultores aderidos ao Garantia
Safra; 6) Quantidade de Agricultores beneficiados pelo Garantia Safra; 7) Quantidade de Valor do
Garantia Safra; 8) Número de Municípios aderidos ao Garantia Safra. Esses indicadores
permitiram configurar as regras fundamentais para construção do modelo de Data Warehousing.
Qual Objetivo Primário do Produto?
Apresentar ao NEAD possíveis soluções de modelo dimensional que atenda aos indicadores
chaves de desempenho (KPI’s) que envolvam os dados referentes aos contextos DAP e Garantia
Safra. Bem como, solução de visualização de dados baseadas em soluções FOSS – Free and
Open Source Software – Software livre e de Código Aberto.
Que Problemas o Produto deve Resolver?
Identificar os indicadores chaves provenientes dos sistemas DAP e Garantia Safra e que são de
interesse do NEAD que permitam desenhar solução de Data Warehousing e organizar
ferramentas que promovam a visualização espacial dos dados que compõem esses indicadores.
Como se Logrou Resolver os Problemas e Atingir os Objetivos?
Promoveu-se a identificação dos indicadores a partir das análise das necessidades do negócio e
requisitos funcionais e não funcionais. Em seguida, aplicou-se arquitetura de dados para a
construção de modelos dimensionais que atendessem as necessidades e requisitos identificados.
A partir da construção do modelo, promoveu-se a carga de amostra de dados para testes
funcionais e de desempenho das soluções apresentadas.
Quais Resultados mais Relevantes?
A integração harmônica e consistente de ferramentas integradas que permitam a apresentação
espacial dos dados referentes aos indicadores chaves de desempenho (KPI’s) identificados no
processo de análise de necessidade e requisitos. Todas as ferramentas foram desenvolvidas
segundo a filosofia FOSS (Software Livre e de Código Aberto) e de forma que a operação da
solução envolvessem o menor número de operadores possível, em virtude, das restrições de
pessoal existente no NEAD.
O Que se Deve Fazer com o Produto para Potencializar o seu Uso?
O produto é apresentado em formato conceitual e implantado em servidor temporário. Caso o
NEAD faça a opção por adotar a solução em definitivo é necessário a disponibilização de, pelo
menos, dois servidores (hardware) disponibilizados com sistemas operacional linux ou windows
que possam abrigar as ferramentas que compõem a solução de forma definitiva. A configuração
miníma desses hardware são: Memória RAM 16 Gb; Espaço de Hard Disk: 1 Tb.
Table of Contents
APRESENTAÇÃO..................................................................................................................... 5
FERRAMENTAS........................................................................................................................6
PROCESSOS.............................................................................................................................. 7
DEFINIÇÃO DOS PADRÕES DE NOMENCLATURA DE OBJETOS...................................7
PADRÃO DE NOMENCLATURA DE OBJETOS DE DADOS...............................................7
PADRÃO DE NOMENCLATURA DE ROTINAS DE CARGA NO TALEND OPEN
STUDIO DATA INTEGRATOR (TOS-DI)..............................................................................10
IDENTIFICAÇÃO DE NECESSIDADES...............................................................................10
IDENTIFICAR OS INDICADORES CHAVE DE DESEMPENHO (KPI) RELACIONADOS
Aos contextos............................................................................................................................ 11
CONCEPÇÃO DE MODELO DIMENSIONAL PARA ABRIGAR OS DADOS DOS
INDICADORES CHAVE DE DESEMPENHO IDENTIFICADOS........................................15
DATAMART’S DEFINIDOS PARA O ARMAZÉM DE DADOS..........................................17
IMAGEM DO MODELO DE DADOS CONCEITUAL DO ARMAZÉM DE DADOS
PROPOSTO PARA ESTOCAGEM DOS DADOS REFERENTES AOS INDICADORES
CHAVES DO DAP E GARANTIA SAFRA.............................................................................18
DESCRIÇÃO DO MODELO DIMENSIONAL PROPOSTO PARA O ARMAZÉM DE
DADOS (DW)...........................................................................................................................19
CONSTRUÇÃO DA SOLUÇÃO.............................................................................................24
SCRIPT GERADO PELA FERRAMENTA SQL POWER ARCHTECT PARA CRIAÇÃO
DAS ENTIDADES DE DADOS DOS DDM’S QUE COMPÕEM O DW.............................24
CONSTRUÇÃO Das rotinas DE CARGA NA FERRAMENTA TALEND OPEN STUDIO
DATA INTEGRATOR (TOS-DI)..............................................................................................33
CONCEPÇÃO DA CAMADA DE VISUALIZAÇÃO COM A UTILIZAÇÃO DAS
FERRAMENTAS SPAGOBI E DJANGO............................................................................... 52
CONCLUSÃO.......................................................................................................................... 55
BIBLIOGRAFIA...................................................................................................................... 56
APRESENTAÇÃO
Exemplo: nead_bd
2. IDENTIFICAÇÃO DE NECESSIDADES
Num processo de desenvolvimento de solução de software
[SOMMERVILE, I. 2011], se faz necessário identificar com precisão os
fundamentos ou pilares básicos para a construção da solução. No caso de,
solução de Business Intelligence - Inteligência de Negócio (BI) é fundamental
que essas definições sejam estritamente negociais, como o próprio nome já
indica, Inteligência Negocial. Esses fundamentos são denominados
Necessidades e estão relacionados aos requisitos Funcionais e Não Funcionais
identificados pelos stakeholders (patrocinadores, usuários etc.) envolvidos no
negócio. Esses fundamentos são as regras fundamentais a serem seguidas
durante a construção da solução. As necessidades fundamentais, identificadas
para o projeto, foram as seguintes:
id Necessidade Observação
1 Identificar os Indicadores Chave (KPI’s) relacionados aos
Contextos.
2 Concepção do Modelo Dimensional para abrigar os
dados dos Indicadores provenientes do DAP e Garantia
Safra.
3 Construção das Rotinas de Carga para carregar DDM’s.
4 Efetivação do processo de carga.
Tabela 4: Lista de Necessidades.
Beneficiário e Benefício
Aportes
2.2.1. GRANULARIDADE
Inicialmente, antes de abordar o que seja DDM é necessário esclarecer
o que seja granularidade dos dados. Esse termo se refere ao menor grão que
se refere o dado armazenado na tabela fato. Por exemplo: digamos que exista
na tabela fato de um DDM, dados relativos a quantidade de DAP’s
armazenadas num determinado dia do ano. A granularidade desta informação,
ou seja, o menor grão possível para a construção desta informação é o dia. Se
for indagado ao sistema quantas DAP’s foram registradas num mês o sistema
aplicará a agregação a partir da soma das quantidades granulares, ou seja, a
quantidade de DAP’s por dia.
b) Fato – por outro lado, nas entidades definidas como fatos são
armazenados aos eventos, principalmente, quantitativos relacionados as
dimensões.
Existem basicamente, dois tipos de modelos dimensionais:
a) Dimensões:
b) Fatos:
Figura 2: DDM_SOCIOS_DAP_JURIDICA
2. DDM_TITULAR_DAP: com este data mart é possível inferir a
quantidade de DAP’s pela contabilização distintas do cd_dap da fato e
identificar o tipo de titularidade do titular. Bem como, classificar como
dap_mulher, dap_jovem ou dap_principal. Como todos os outros DDM’s, este
também é evolutivo e pode ser acrescidas novas relações.
Figura 3: DDM_TITULAR_DAP
3. DDM_INSCRICOES_GS: Este DDM armazena as ocorrências das
inscrições ao programa Garantia Safra, sendo possível acompanhar por
intermédio do atributo st_adesao se a inscrição se transformou em adesão e
qual o valor pago, bem como, a data do pagamento. Pelo atributo
st_beneficiario é possível identificar se o agricultor relacionado a inscrição foi
beneficiado.
Figura 4: DDM_INSCRICOES_GS
4. DDM_BENEFICIARIOS_GS: Neste DDM os dados acomodados na
fato, tendo como granularidade o agricultor beneficiário do Garantia Safra,
permite a identificação da localidade desse agricultor e informações, tais como,
gênero (sexo), naturalidade, município, uf e região do beneficiado.
Figura 5: DDM_BENEFICIARIOS_GS
dt_validade DATE,
id_dap_mulher CHAR(1),
);
COMMENT ON TABLE ft_titular_dap IS 'Entidade de Dados do Tipo Fato que armazena os titulares das DAP''s de
Pessoa Física.';
dt_filiacao DATE,
cd_dap VARCHAR(25),
sg_enquadramento VARCHAR(10),
id_dap_retirada INTEGER,
);
COMMENT ON TABLE ft_socios_dap_juridica IS 'Entidade de Dados do Tipo Fato que armazena DAP de Jovem.';
cd_ins_ger_gs INTEGER,
cd_cdda INTEGER,
nu_ano_programa INTEGER,
cd_mun_ibge INTEGER,
id_agr_familiar INTEGER,
id_potencial INTEGER,
st_beneficiario INTEGER,
cd_cpf_inscricao VARCHAR(2147483647),
tp_tit_dap VARCHAR(2147483647),
st_adesao INTEGER,
vl_pago NUMERIC(9,2),
dt_pagamento DATE,
);
COMMENT ON TABLE ft_inscricoes_gs IS 'Entidade de Dados do Tipo Fato que armazena as Inscrições ao Programa
Garantia Safra.';
cd_ins_ger_gs INTEGER,
cd_cdda INTEGER,
nu_ano_programa INTEGER,
cd_mun_ibge INTEGER,
id_agr_familiar INTEGER,
cd_cpf_inscricao VARCHAR(2147483647),
tp_tit_dap VARCHAR(2147483647),
);
COMMENT ON TABLE ft_beneficiarios_gs IS 'Entidade de Dados do Tipo Fato que armazena as Inscrições ao
Programa Garantia Safra.';
);
COMMENT ON TABLE dm_tipo_dap IS 'Entidade de Dados do Tipo Dimensão que armazena os tipos de DAP';
nm_fantasia VARCHAR(80),
dt_constituicao DATE,
cd_ins_estadual VARCHAR(20),
);
COMMENT ON TABLE dm_pessoa_juridica IS 'Entidade de Dados do tipo dimensão que armazena as pessoas
jurídicas.';
cd_cpf CHAR(11),
nm_pes_fisica VARCHAR(80),
nm_mae VARCHAR(80),
dt_nascimento DATE,
cd_rg VARCHAR(20),
uf_org_emissor CHAR(2),
tp_sexo VARCHAR(10),
tp_est_civil VARCHAR(20),
cd_mun_naturalidade INTEGER,
);
);
COMMENT ON TABLE dm_municipio IS 'Entidade de Dados do tipo dimensão que armazena dados sobre os
municípios brasileiros.';
sg_enquadramento VARCHAR(5),
sg_enq_geral VARCHAR(5),
);
data DATE,
nu_dia INTEGER,
nu_mes INTEGER,
nu_sem_ano INTEGER,
nu_sem_mes INTEGER,
nu_dia_semana INTEGER,
nu_ano INTEGER,
nm_mes VARCHAR(9),
nm_ano_mes_abrev CHAR(7),
nu_ano_mes INTEGER,
nm_mes_abrev CHAR(3),
nm_dia_semana VARCHAR(7),
nu_dia_ano INTEGER,
nu_bimestre INTEGER,
nu_trimestre INTEGER,
nu_semestre INTEGER,
id_dia_util INTEGER,
id_fim_semana INTEGER,
ds_dat_extenso VARCHAR(50),
);
);
COMMENT ON TABLE dm_dap_juridica IS 'Entidade de Dados do Tipo Dimensão que armazena as DAP''s Juridicas.';
data date,
nu_dia int,
nu_mes int,
nu_sem_ano int,
nu_sem_mes int,
nu_dia_semana int,
nu_ano int,
nm_mes varchar(9),
nm_ano_mes_abrev char(7),
nu_ano_mes int,
nm_mes_abrev char(3),
nm_dia_semana varchar(7),
nu_dia_ano int,
nu_bimestre int,
nu_trimestre int,
nu_semestre int,
id_dia_util int,
id_fim_semana int,
ds_dat_extenso varchar(50),
);
RETURNS VARCHAR AS
$$
DECLARE
_sk_data int;
_data date;
_nu_dia int;
_nu_dia_semana int;
_nm_dia_semana varchar(7);
_nu_ano int;
_nu_mes int;
_nu_ano_mes int;
_nu_dia_ano int;
_nm_mes varchar(9);
_nm_mes_abrev varchar(3);
_nm_ano_mes_abrev char(7);
_nu_bimestre int;
_nu_trimestre int;
_nu_semestre int;
_id_dia_util int;
_id_fim_semana int;
_nu_sem_mes int;
_nu_sem_ano int;
_ds_dat_extenso varchar(50);
BEGIN
dataini := dataini + 1;
END LOOP;
RETURN 'insert';
END;
$$ language plpgsql;
DO $$ BEGIN
END $$;
2. DM_MUNICIPIO: entidade de dados do tipo dimensão que armazena
as localidades, tendo como menor grão o município e permitindo a construção
de hierarquias, tais como: Unidade da Federação (UF) e Região. A carga nesta
dimensão foi coordednada a partir do arquivo, separado por virgulas,
Municipios_Brasileiros.csv gerado pelo IBGE, segundo a seguinte estrutura:
Descrição do Job:
Propriedades Valores
Nome job_carga_dm_municipios
Autor gilmar.correa@consultor.mda.gov.br
Versão 1.0
Propósito Carregar a dimensão municípios
Status Desenvolvimento
Rotina para promover a carga na dm_municipios tendo
Descrição
como origem arquivo (.csv) oriúndo do IBGE.
Criado em 04/07/2018 10:30:10
Modificado em 09/07/2018 16:44:00
Colunas de carga:
Figura 7: job_carga_dm_enquadramento
Descrição do Job:
Propriedades Valores
Nome job_carga_dm_enquadramento
Author gilmar.correa@consultor.mda.gov.br
Versão 1.0
Carregar a entidade de dados do tipo dimensão
Propósito
dm_enquadramento
Status Desenvolvimento
Promover a carga da entidade de dados do tipo dimensão
Descrição
dm_enquadrmaento.
Criado em 11/07/2018 10:13:27
Modificado em 16/07/2018 10:48:20
Figura 9: job_carga_dm_pessoa_fisica
Descrição do Job:
Propriedades Valores
Nome job_carga_dm_pessoa_fisica
Autor gilmar.correa@consultor.mda.gov.br
Versão 1.0
Carregar a dimensão dm_pessoa_fisica a partir dos dados
Propósito
da tabela TBPES_Fisica
Status desenvolvimento
Carregar a dimensão dm_pessoa_fisica a partir dos dados
da tabela TBPES_Fisica do esquena dbo de
Descrição
Pronaf_Espelho a dimens
ao dm_pessoa_fisica do DW NEAD.
Criado em 04/07/2018 15:19:24
Modificado em 09/07/2018 11:06:22
Figura 8: job_carga_dm_pessoa_juridica
Descrição do Job:
Propriedades Valores
Nome job_carga_dm_pessoa_juridica
Autor gilmar.correa@consultor.mda.gov.br
Versão 1.0
Propósito Carregar a Dimensão dm_pessoa_juridica
Status desenvolvimento
Carregar a Entidade de Dados do Tipo Dimensão
dm_pessoa_juridica com dados oriúndos da entidade de dados
Descrição TBPES_Juridica
depositada no esquema dbo do SGBD MS SQL SERVER e BD
Pronaf_Espelho
Criado em 04/07/2018 14:18:47
Modificado em 05/07/2018 11:09:29
Para a carga das entidade de dados do tipo fato foram utilizadas as rotinas abaixo
especificadas:
Propriedades Valores
Nome job_carga_ft_titular_dap_stg_1
Autor gilmar.correa@consultor.mda.gov.br
Versão 1.0
Propósito Carrega a entidade de dados do tipo fato ft_titular_dap
Status desenvolvimento
Promove a carga na entidade de dados do tipo fato
Descrição ft_titular_dap que armazenas os dados referentes aos
titulares de dap
Criado em 11/07/2018 12:16:31
Modificado em 13/07/2018 14:16:42
Propriedades Valores
Nome job_carga_ft_titular_dap_stg_2
Autor gilmar.correa@consultor.mda.gov.br
Versão 1.0
Propósito Carregar a entidade de dados do tipo fato ft_titular_dap
Status desenvolvimento
Promover a carga da entidade de dados do tipo fato
Descrição
ft_titular_dap em seu segundo estágio
Criado em 13/07/2018 13:01:47
Modificado em 13/07/2018 15:02:53
Propriedades Valores
Nome job_carga_ft_socios_dap_juridica
Autor Gilmar.correa@consultor.mda.gov.br
Versão 1.0
Carregar a entidade de dados do tipo FATO
Propósito
ft_socios_dap_juridica
Status DEV
Promover a carga de dados oriúndas do Pronaf-Espelho na
Descrição
entidade de dados do tipo fato ft_socios_dap_juridica
Criado em 09/07/2018 15:58:03
Modificado em 11/07/2018 10:12:21
Propriedades Valores
Nome job_carga_ft_inscricoes_gs_stg_1
Autor gilmar.correa@consultor.mda.gov.br
Versão 1.0
Carregar a entidade de dados do tipo fato referente ao
Propósito
contexto Garantia Estágio 1
Status Desenvolvimento
Descrição
Criado em 16/07/2018 13:51:17
Modificado em 16/07/2018 17:23:45
Propriedades Valores
Nome job_carga_ft_inscricoes_gs_stg_2
Autor gilmar.correa@consultor.mda.gov.br
Versão 0.1
Carregar a entidade de dados do tipo fato referente ao
Propósito
contexto Garantia
Status
Descrição
Criado em 16/07/2018 09:10:43
Modificado em 16/07/2018 17:23:42
Propriedades Valores
Nome job_carga_ft_beneficiarios_gs
Autor gilmar.correa@consultor.mda.gov.br
Versão 1.0
Carregar a entidade de dados do tipo fato
Purpose
ft_beneficiarios_gs referente ao contexto Garantia
Status desenvolvimento
Promover a carga na entidade de dados do tipo fato
Descrição
ft_beneficiarios_gs
Criado em 16/07/2018 12:34:06
Modificado em 16/07/2018 16:07:23
2.9. CONCEPÇÃO DA CAMADA DE VISUALIZAÇÃO COM A
UTILIZAÇÃO DAS FERRAMENTAS SPAGOBI E DJANGO.
Kimball, R. & Ross, M., 2013: Ralph Kimball, Margy Ross, The Data Warehouse Toolkit: The Difinitive
Guideto Dimensional Modeling, 2013
SÖDERBERG, J, 2008: Johan Söderberg, Hacking Capitalism - The Free and Open Source Software Movement,
2008
NEAD, 2017: NEAD, Termo de Referência CONS NEAD 014/2017, 2017, https://www.iica.org.br
PUC-Rio, 2018: PUC-Rio, Software Livre, 2018,
http://www2.dbd.puc-rio.br/pergamum/tesesabertas/0210500_04_cap_02.pdf
SOMMERVILE, I. 2011: Ian Sommerville, Engenharia de Software, 2011
PRONAF, 2018: MDA, Sobre o Programa, 2018, https://www.bndes.gov.br/wps/portal/site/home/financiamento/
produto/pronaf
SAF, 2018: MDA, Garantia-Safra, 2018, http://www.mda.gov.br/sitemda/secretaria/saf-garantia/sobre-o-
programa
Inmon, W. H., 1999: W. H. Inmon, Die Duden-Rechtschreibprüfung für OOo und LibreOffice, 1999
Kimball, R.; Caserta, J., 2011: Kimball, R.; Caserta, J., The Data Warehouse ETL Toolkit - Practical Techniques
for Extracting, Cleaning, Conforming, and Delivering Data, 2011
Dar, U et all, 2015: Usama Dar, Hannu Krosing, Jim Mlodgenski, Kirk Roybal, PostgreSQL Server
Programming, 2015
Architect, 2018: Best of BI, SQL Power Architect, 2018,