Академический Документы
Профессиональный Документы
Культура Документы
MARINGÁ
2009
ÉDSON MUNDIN FERREIRA
MARINGÁ
2009
Dedico este trabalho à todos aqueles que
diversas pessoas sua realização não seria possível, assim quero compartilhar a
alegria de ter terminado este trabalho agradecendo a todos que de forma direta ou
indireta me ajudaram.
caso.
Ao meu bom anjo que me inspirou desde o inicio até a conclusão desde
Não permitas, assim, que a tua dificuldade se faça tristeza entorpecente nos outros.
Ainda mesmo que tudo pareça conspirar contra a felicidade que esperas, ergue os
olhos para a face risonha da vida que te rodeia e alimenta a alegria por onde
passes.
Meimei
FERREIRA, Édson Mundin. Implementação de Data Warehouse para pequenas
empresas: estudo de caso para o setor de distribuição de medicamentos. 2009.
Monografia (Especialização em Banco de Dados Oracle e DB2) – Centro
Universitário de Maringá.
RESUMO
O Data Warehouse surgiu nos anos 90 como uma maneira prática e eficiente para o
tratamento de grandes volumes de informações, proporcionando consultas que
auxiliam no processo decisório dentro da organização, e a cada dia vem sendo mais
utilizado em grandes corporações. O objetivo deste trabalho é iniciar um processo de
implantação do ambiente de Data Warehouse dentro de uma pequena empresa,
demonstrando não só a sua viabilidade como também o excelente retorno que pode
ser alcançado pela organização. Neste trabalho foi feito um estudo em um grupo de
pequenas empresas do setor de distribuição de medicamentos, que foi usado como
modelo para o projeto e implementação do Data Warehouse apresentado. O grande
problema está em como implantar um Data Warehouse com custo reduzido, visto
que a sua implementação não é simples e demanda de grandes recursos
financeiros. Para tanto foi utilizado o máximo possível de ferramentas livres visando
a redução dos custos.
ABSTRACT
The Data Warehouse has emerged in the 90s as a practical and efficient way to treat
large volumes of information, providing consults to assist in decision process within
the organization, and each day is being frequently used in large corporations. The
objective of this work is to initiate a process for implementing the Data Warehouse
environment, within a small business, demonstrating not only its feasibility but also
the excellent feedback that can be obtained by the organization. In this work a study
was done in a group of small companies in the sector of distribution of medications,
which was used as a model for the design and implementation of Data Warehouse
presented. The major problem is how to implement a Data Warehouse with reduced
cost, since its implementation is not simple and demands a large financial resources.
For this, we used the most possible free tools to reduce costs.
DM – Data Mart
DW – Data Warehouse
EIS – Executive information systems (Sistemas de informações executivas)
ERP – Enterprise Resource Planning (Sistemas integrados de gestão empresarial)
ETL – Extraction, Transformation and Load (Extração, Transformação e Carga)
MQT – Materialized Query Tables (Tabelas materializadas para consultas)
OLAP - On-Line Analytical Processing (Processamento analítico On-Line)
OLTP – On-Line Transaction Processing (Processamento de transações on-line)
SAD – Sistema de Apoio a Decisão
SDLC – System Development Life Cycle (Ciclo de vida do desenvolvimento de
sistemas)
SGBD – Sistema de gerenciamento de banco de dados
TI – Tecnologia da Informação
SUMÁRIO
1 INTRODUÇÃO ......................................................................................................... 1
2 O AMBIENTE DE DATA WAREHOUSE ................................................................. 4
2.1 Considerações iniciais ...................................................................................... 4
2.2 Definição de Data Warehouse .......................................................................... 4
2.3 Características do Data Warehouse ................................................................. 6
2.3.1 Orientado a assuntos........................................................................................ 6
2.3.2 Integrado .......................................................................................................... 8
2.3.3 Variável no tempo ............................................................................................. 8
2.3.4 Não volátil ......................................................................................................... 9
2.4 Processamento Operacional x Processamento Informacional ....................... 10
2.5 A estrutura do Data Warehouse ..................................................................... 10
2.6 O projeto do Data Warehouse ........................................................................ 13
2.7 Data Mart e Data Warehouse ......................................................................... 16
2.8 Metodologia de desenvolvimento ................................................................... 18
2.9 Modelagem dos dados ................................................................................... 20
2.9.1 Granularidade ................................................................................................. 22
2.9.2 Particionamento .............................................................................................. 22
3 PROJETO E IMPLEMENTAÇÃO DE UM DATA WAREHOUSE: Estudo de
caso no setor de Distribuição de Medicamentos ....................................................... 24
3.1 Considerações iniciais .................................................................................... 24
3.2 O setor de Distribuição de Medicamentos ...................................................... 24
3.3 Classificando como Pequena Empresa .......................................................... 26
3.4 A empresa foco do estudo .............................................................................. 26
3.5 A Proposta de Implementação ....................................................................... 27
3.6 Estratégia ....................................................................................................... 28
3.7 Metodologia .................................................................................................... 28
3.8 Granularidade e Particionamento ................................................................... 28
3.9 Modelagem do ambiente operacional atual .................................................... 29
3.10 Modelagem proposta para o ambiente do data warehouse ............................ 30
3.11 Extração, transformação e carga (ETL) .......................................................... 31
3.12 SGBDs envolvidos .......................................................................................... 32
3.13 Exemplos práticos de dados consultados....................................................... 33
4 CONCLUSÕES ...................................................................................................... 37
4.1 Resultados alcançados................................................................................... 37
4.2 Trabalhos futuros ............................................................................................ 38
REFERÊNCIAS ......................................................................................................... 39
APÊNDICES.............................................................................................................. 42
APÊNDICE - A – Script para Criação das Tabelas e Índices .................................... 43
APÊNDICE - B – Script para Carga de uma Unidade ............................................... 45
APÊNDICE - C – Script para Criação da Dimesão Tempo ....................................... 48
APÊNDICE - D – Script para Carga das Tabelas Resumo e Execução de Estatísticas
50
1
1 INTRODUÇÃO
edificações, medicina, artes, entre muitas outras, são milenares. Ainda hoje é
restringido aos controles operacionais, uma vez que poucas têm utilizado a
Data Warehouse em um ambiente destes é como falar de física quântica para alunos
pouquíssimo explorado.
aumentaram;
em pequenas empresas.
bibliográfico sobre o tema, com a intenção de compor uma base teórica. Foi usado o
ferramenta para extração, transformação e carga dos dados a qual será descrita
Deve-se ressaltar que não foi encontrada literatura específica que trate de
Data Warehouse para pequenas empresas. Por fim, foram criadas algumas planilhas
Organização do trabalho
“somos uma empresa de tecnologia que faz um bilhão de dólares por ano e estou
diferentes que de alguma forma estão corretos. Eu quero apenas um número”, Data
Warehouse com o propósito de fornecer um ambiente que pode ser usado como
consultas.
tornarmos acessíveis a todos os usuários dos níveis decisórios. Outro fator que
1
IBGE: Instituto Brasileiro de Geografia e Pesquisa
6
principais assuntos e negócios da organização, não incluindo dados que não serão
dados são organizados em torno de aplicações que podem ser automóvel, saúde,
cada um desses sistemas oferece suporte para consultas a respeito das informações
informações das vendas em geral (atacado, varejo e por catálogo) entra o Data
2.3.2 Integrado
Por exemplo, o atributo sexo pode ser codificado como m/f, 1/0 ou
elemento de tempo, deve manter registros históricos dos fatos por um período muito
(INMON, 1997).
9
Não volátil significa que após o Data Warehouse ser carregado não
muito trabalho para que a integridade e a consistência dos dados sejam mantidas.
Já no ambiente do Data Warehouse esse trabalho é reduzido visto que os dados são
de ambos:
2
ETL – Extraction, Transformation and Load (Extração, Transformação e Carga)
3
OLTP – On-Line Transaction Processing (Processamento de Transações On-Line)
4
OLAP – On-Line Analytical Processing (Processamento Analítico On-Line)
11
características:
Componente Característica
Dados detalhados atuais Refletem acontecimentos recentes, sempre de grande
interesse;
Volumosos, de baixa granularidade;
Geralmente armazenados em disco, meio de acesso
rápido mas de gerenciamento difícil e caro.
Dados detalhados antigos Armazenados em meios de armazenamento de
massa, normalmente não é em disco;
Nível de detalhe consistente com os dados detalhados
atuais;
Acessados com pouca freqüência.
Dados levemente resumidos Resumidos dos detalhes dos dados atuais;
Geralmente armazenados em disco;
Na sua arquitetura gera problemas do tipo:
o Qual o espaço de tempo que o resumo será
feito?
o Qual o conteúdo e atributos dos dados
ligeiramente resumidos?
Dados altamente resumidos Compactos;
De fácil acesso;
Às vezes armazenados dentro do ambiente do Data
Warehouse e as vezes fora, mesmo assim são parte
do Data Warehouse independente da localização
física.
Metadados São dados sobre os dados do Data Warehouse;
Não contém dados retirados diretamente do ambiente
operacional;
Constituem papel importante e especial na estrutura
do Data Warehouse, muito mais do que nos
ambientes operacionais clássicos;
Situam-se em uma dimensão diferente dos outros
dados do Data Warehouse;
Podem conter as seguintes informações:
o A estrutura dos dados;
o Os algoritmos usados para sintetização;
o A fonte de dados que alimenta o Data
Warehouse;
o O modelo de dados;
o O relacionamento entre o modelo de dados e o
Data Warehouse;
o O histórico de extrações;
o Estatística de uso de dados;
12
o Medições de desempenho;
o Diferentes elementos por atributo;
Formas de uso dos metadados:
o No auxílio de analistas de SAD para localizar
dados no Data Warehouse;
o Como guia para mapear os dados em sua
transformação do ambiente operacional até o
Data Warehouse;
o Como um guia para os algorítimos utilizados
para sintetização entre dados detalhados
atuais e dados levemente resumidos, e entre
estes e os dados altamente resumidos.
Tabela 2 - Componetes do Data Warehouse e suas características (INMON, 1997), (BOMFIM, 2001)
Warehouse, observe que os dados que vão para o Data Warehouse passam por um
13
processo de ETL5, a extração dos dados é feita a partir de fontes internas e/ou
Data Warehouse, por fim ferramentas OLAP6 permitem a análise dos dados. Ainda
Marts podem ser criados a partir dos dados organizados no Data Warehouse,
pois envolve diversos conceitos e diversas tecnologias que deverão ser integradas
5
ETL: Extraction, Transformation and Load (Extração, Transformação e Carga)
6
OLAP: On-Line Analytical Processing (Processamento analítico On-Line)
14
vez disso, eles são projetados e povoados passo a passo, sendo, portanto,
exata do que acontece durante a construção do data warehouse, visto que ele é
povoado com alguns dados, depois esses dados são usados e minuciosamente
modificados ou adicionados com base no feedback dos usuários finais. Esse ciclo
segue por toda a vida do Data Warehouse. Os requisitos para a criação do data
warehouse não serão conhecidos até que ele esteja parcialmente povoado e sendo
usado pelo analista de SAD. Portanto, o Data Warehouse não pode ser projetado do
agilidade e rapidez?
Modelar os dados;
Criar os metadados;
do ambiente operacional;
implementação física;
manutenção do ambiente;
dados.
“... o Data Warehouse não é nada mais que a união de todos os Data
forneça uniformidade, controle e maior segurança, não é uma tarefa fácil a sua
negócios da empresa. Esta abordagem pode ser longa e dispendiosa e por isto sua
integração.
Estratégia Top-down
implementação longa.
Estratégia Bottom-up
INMON (1997) esta abordagem não é a ideal, mas é a utilizada quando data marts
ideal para o projeto data warehouse de uma empresa. Esta solução provê uma
simples fonte de dados integrados e consistentes assim como data marts elaborados
Algumas organizações são atraídas aos Data Marts não apenas por
causa do custo mais baixo e tempo menor de implementação, mas também por
causa dos correntes avanços tecnológicos. São eles que fornecem um SAD
customizado para grupos pequenos de tal modo que um sistema centralizado pode
não estar apto a fornecer. Data marts podem servir como veículo de teste para
2003b).
18
é a metodologia. Uma metodologia pode ser vista como um “livro de receitas” para
desenvolver data warehouses. Ela deve esboçar as etapas que você precisa
propósitos:
dados;
dimensional;
análise;
terminologia apropriada;
temporais;
20
de se ver os dados de uma forma dimensional não diz que os mesmos precisam ser
relevante para a tomada de decisão que uma visão tradicional fornecida pelos
acesso aos dados bem como na possibilidade de se analisar o negócio por diversas
“muitos para um”, contém também medidas, por exemplo, preços, quantidades de
abaixo.
Filial (Dimensão)
Venda (Fato)
2.9.1 Granularidade
precisa para que seu ambiente de EIS/SAD funcione?” e responde dizendo “Há uma
linha de pensamento que afirma que você precisa de tanto detalhe quanto possível”
2.9.2 Particionamento
dos dados de detalhe corrente em unidades físicas separadas que podem ser
pouco sobre o setor, neste capítulo será apresentado conhecimentos sobre o setor
do estudo de caso.
as suas vendas no país, o mercado brasileiro era dominado por grandes atacadistas
pequenas vendas, lojas e mercearias, foram sendo aos poucos substituídos por
supermercados. Estes, por sua vez, deram origem a redes que negociavam
atacadistas.
muito baixos. De certa forma, uma distribuidora é uma organização logística, mais do
prepararam para o fim da inflação (o setor tinha cerca de 600 empresas. Metade
rodoviária brasileira.
PORTE
Microempresa Pequena Empresa Média Empresa Grande Empresa
Receita operacional Receita operacional bruta Receita operacional Receita
bruta anual ou anual ou anualizada bruta anual ou operacional bruta
anualizada de até R$ superior a R$ 1,2 milhão e anualizada superior anual ou
1,2 milhão. inferior ou igual a R$ 10,5 a R$ 10,5 milhões e anualizada
milhões. inferior ou igual a R$ superior a R$ 60
60 milhões. milhões.
Tabela 3 - Classificação das empresas segundo o porte (BNDES, 2002)
7
ERP – Enterprise Resource Planning – Sistema Integrado de Gestão Empresarial
27
a sexta-feira das 08 h às 21 h.
precisa ser rápido no atendimento, precisa ter controle preciso do seu estoque,
acompanhamento dos vencimentos dos produtos, pois lida com produtos perecíveis
também não ficar sem produtos para vender, as empresas deste setor precisam
classificando os maiores;
3.6 Estratégia
Warehouse, visto ser a área que mais rapidamente pode trazer informações
nível de confiança.
voltados para outras áreas e que futuramente poderão vir a formar um Data
Warehouse corporativo.
3.7 Metodologia
particionamento.
FaNfC [Nota]
PK fControle [fControle] CHAR(10)
EsprodA [Alternativo]
Produto [Produto]
PK idProduto [idProduto] CHAR(20)
Tempo [Tempo]
Warehouse é gasto com ETL8. Daí observa-se a importância desse processo. Foi
8
ETL – Extraction, Transformation and Load (Extração, Transformação e Carga)
32
B.
ETL script_unidade1.ini
período considerando como data inicial a última data que foi executada a aplicação
script para carga das tabelas resumo e execução das estatísticas das tabelas no
apêndice D.
A empresa usa um ERP que trabalha com SGBD Postgresql 8.1.11, para
EXPRESS C 9.5 da IBM, por ser uma solução de uso gratuito, com poucas
problemas. Poderia ser usada a SGBD Oracle Database 10g Express Edition, porém
a base de dados é limitada a 4GB o que não é atrativo para ambiente de Data
9
SGBD – Sistema de gerenciamento de banco de dados
33
O DB2 EXPRESS C 9.5 não tem disponível o recurso para criar tabelas
materializadas para consulta (MQT10), para resolver esta situação, utilizamos uma
alternativa que consiste no uso de views e tabelas. Os comandos usados para criar
Para que se possa ter uma idéia das possibilidades de consultas que
Microsoft Office Excel 2007. Na sequência são apresentados alguns exemplos das
planilhas criadas.
10
MQT – Materialized Query Tables
34
4 CONCLUSÕES
Inmon (1997), um Data Warehouse não se constrói de uma só vez, são projetados
revolucionários.
caso foi todo elaborado utilizando ferramentas livres, não pagas, o custo do projeto
resumiu-se à mão de obra aplicada para o seu projeto e criação, que no caso não
excedeu 200 (duzentas) horas de 1 (um) profissional. Isto demonstra ser um custo
este trabalho, visto que para se manter um custo baixo é necessário que o mesmo
38
enorme, o que merece muita pesquisa e estudo a respeito. Este trabalho certamente
vem contribuir e de certo modo abrir caminho dentro das pequenas empresas
Fica claro que o assunto não foi esgotado, e que este é apenas o ponto
um estudo acerca das ferramentas OLAP existentes, tanto livres como proprietárias,
REFERÊNCIAS
http://computerworld.uol.com.br/tecnologia/2002/07/29/idgnoticia.2006-05-
BISPO, Carlos Alberto Ferreira. Uma análise da nova geração de sistemas de apoio
Escola de Engenharia de São Carlos, Universidade de São Paulo. São Carlos, São
Paulo.
14 jan. 2009.
COREY, Michael; ABBEY, Michael; ABRAMSON, Ian; TAUB, Ben. Oracle 8i Data
COREY, Michael; et al. Oracle 8i data warehouse. Rio de Janeiro: Editora Campus,
2001. 817 p.
14 jan. 2009.
GIL, Antonio Carlos. Como elaborar projetos de pesquisa. 4. ed. São Paulo: Atlas,
2006. 175 p.
GUROVITZ, Helio. O que cerveja tem a ver com fraldas? Revista Info. São Paulo:
INMON, William H. Data Mart Does Not Equal Data Warehouse – DM Review,
INMON, Willian H.; et al. Gerenciando Data Warehouse. 1. ed. São Paulo: Makron
Carlos.
<http://www.datawarehouse.inf.br/Academicos/CONSTRUCAO_DW.pdf>. Acesso
Disponível em:
11 jan. 2009.
SOUZA, Carla Oran Fonseca de. Desenvolvimento de aplicações ETL como uma
APÊNDICES
43
-- Dimensão produto
DROP TABLE dw.produto;
CREATE TABLE dw.produto
(
idProduto CHAR(20),
descricao VARCHAR(40),
marca CHAR(10),
fabricante CHAR(40),
grupo CHAR(15),
grupoDescricao VARCHAR(40)
);
-- Dimensão vendedor
DROP TABLE dw.vendedor;
CREATE TABLE dw.vendedor
(
idVendedor CHAR(20),
Nome VARCHAR(40),
Cidade VARCHAR(40),
UF VARCHAR(2)
);
-- Dimensão cliente
DROP TABLE dw.cliente;
CREATE TABLE dw.cliente
(
idCliente CHAR(20),
Nome VARCHAR(40),
Cidade VARCHAR(40),
UF VARCHAR(2),
Atividade VARCHAR(40),
Grupo VARCHAR(40)
);
-- Dimensão tempo
DROP TABLE dw.tempo;
CREATE TABLE dw.tempo
(
idTempo DATE,
Data DATE,
DiaSemana VARCHAR(7),
DiaMes SmallInt,
SemanaAno Integer,
Mes Char(9),
MesNumero SmallInt,
Ano SmallInt,
UltimoDiaMes SmallInt,
DiaAno SmallInt,
Bimestre SmallInt,
Trimestre SmallInt,
Quadrimestre SmallInt,
Semestre SmallInt,
Feriado Char(3),
DiaUtil Char(3),
FimSemana Char(3)
);
-- Fato venda
DROP TABLE dw.venda;
CREATE TABLE dw.venda
(
Unidade CHAR(10),
idCliente VARCHAR(20),
idProduto VARCHAR(20),
idVendedor VARCHAR(20),
idTempo DATE,
Quantidade NUMERIC(20,6),
Valor NUMERIC(14,2)
44
);
-- Criação de VIEWS
CREATE VIEW DW.VRESUMOVENDEDOR AS
SELECT v.unidade,
r.nome AS vendedor,
c.cidade,
c.uf,
c.grupo AS grupocliente,
t.mes,
t.ano,
SUM(v.valor) AS valorvenda
FROM dw.venda AS V
JOIN dw.tempo AS T ON t.idtempo = v.idtempo
JOIN dw.vendedor AS R ON r.idvendedor = v.idvendedor
JOIN dw.cliente AS C ON c.idcliente = v.idcliente
GROUP BY v.unidade,r.nome,c.cidade,c.uf,c.grupo,t.mes,t.ano;
[PARAMETROS]
Unidade = UNIDADE1
DSN Origem = pgs=localhost;uid=supervisor;dtb=unidade1;pwd=1234
DSN Destino = DRIVER={IBM DB2 ODBC DRIVER};DATABASE=dw;SERVER=localhost;PORT=50000;
UID=db2admin; PWD=1234
Debug = NAO
[TABELAS]
produto
vendedor
cliente
venda
[PRODUTO_EXTRACAO]
SET SEARCH_PATH=XEMP_0002;
[PRODUTO_CARGA]
DELETE FROM dw.produto
WHERE idProduto IN (
SELECT fId FROM tmpArq
);
COMMIT;
[VENDEDOR_EXTRACAO]
SET SEARCH_PATH=XEMP_0002;
SELECT DISTINCT
('2' || FaVend.fCo)::VARCHAR(20) AS fId,
TO_ASCII(FaVend.fNo)::VARCHAR(40) AS fNome,
fCi AS fCidade,
fUf AS fUf
FROM FaVend
WHERE FaVend.Exporta BETWEEN {mDataI} AND {mDataF}
ORDER BY 2
[VENDEDOR_CARGA]
DELETE FROM dw.vendedor
WHERE idVendedor IN (
46
[CLIENTE_EXTRACAO]
SET SEARCH_PATH=XEMP_0002, XGERAL;
order by 1
[CLIENTE_CARGA]
DELETE FROM dw.Cliente
WHERE idCliente IN (
SELECT fId FROM tmpArq
);
COMMIT;
[VENDA_EXTRACAO]
SET SEARCH_PATH=XEMP_0002;
[VENDA_CARGA]
DELETE FROM dw.Venda
47
COMMIT;
[PARAMETROS]
Unidade = foco
DSN Origem = pgs=localhost;uid=supervisor;dtb=unidade1;pwd=1234
DSN Destino = DRIVER={IBM DB2 ODBC DRIVER}; DATABASE=dw; SERVER=localhost; PORT=50000;
UID=db2admin; PWD=1234
Debug = NAO
[TABELAS]
tempo
[TEMPO_EXTRACAO]
SELECT fId,
fId AS fData,
CASE EXTRACT(DOW FROM FID)
WHEN 0 THEN 'DOMINGO'
WHEN 1 THEN 'SEGUNDA'
WHEN 2 THEN 'TERCA'
WHEN 3 THEN 'QUARTA'
WHEN 4 THEN 'QUINTA'
WHEN 5 THEN 'SEXTA'
WHEN 6 THEN 'SABADO'
END AS fDiaSemana,
Extract(day from fID) AS fDiaMes,
EXTRACT(WEEK FROM FID+1) AS fSemanaAno,
CASE EXTRACT(MONTH FROM FID)
WHEN 1 THEN 'JANEIRO'
WHEN 2 THEN 'FEVEREIRO'
WHEN 3 THEN 'MARÇO'
WHEN 4 THEN 'ABRIL'
WHEN 5 THEN 'MAIO'
WHEN 6 THEN 'JUNHO'
WHEN 7 THEN 'JULHO'
WHEN 8 THEN 'AGOSTO'
WHEN 9 THEN 'SETEMBRO'
WHEN 10 THEN 'OUTUBRO'
WHEN 11 THEN 'NOVEMBRO'
WHEN 12 THEN 'DEZEMBRO'
END AS fMes,
EXTRACT(MONTH FROM fID) AS fMesNumero,
EXTRACT(YEAR FROM fID) AS fAno,
EXTRACT(DAY FROM (DATE_TRUNC('MONTH', fId + interval '1 month')::DATE -
1)) AS fUltDiaMes,
EXTRACT(DOY FROM fID) AS fDiaAno,
CASE WHEN Extract(month from fID) BETWEEN 1 AND 2 THEN 1
WHEN Extract(month from fID) BETWEEN 3 AND 4 THEN 2
WHEN Extract(month from fID) BETWEEN 5 AND 6 THEN 3
WHEN Extract(month from fID) BETWEEN 7 AND 8 THEN 4
WHEN Extract(month from fID) BETWEEN 9 AND 10 THEN 5 ELSE 6 END AS fBimestre,
CASE WHEN Extract(month from fID) BETWEEN 1 AND 3 THEN 1
WHEN Extract(month from fID) BETWEEN 4 AND 6 THEN 2
WHEN Extract(month from fID) BETWEEN 7 AND 9 THEN 3 ELSE 4 END AS fTrimestre,
CASE WHEN Extract(month from fID) BETWEEN 1 AND 4 THEN 1
WHEN Extract(month from fID) BETWEEN 5 AND 8 THEN 2 ELSE 3 END
AS fQuadrim,
CASE WHEN Extract(month from fID) BETWEEN 1 AND 6 THEN 1 ELSE 2 END
AS fSemestre,
CASE WHEN TO_CHAR(fId,'DD/MM') IN
('01/01','21/04','01/05','07/09','12/10','02/11','15/11','25/12')
THEN 'SIM'
ELSE 'NAO'
END AS fFeriado,
CASE WHEN TO_CHAR(fId, 'D') IN (1,7) OR TO_CHAR(fId,'DD/MM') IN
('01/01','21/04','01/05','07/09','12/10','02/11','15/11','25/12') THEN 'NAO' ELSE 'SIM' END AS
fDiaUtil,
CASE WHEN TO_CHAR(fId, 'D') IN (1,7) THEN 'SIM' ELSE 'NAO' END AS fFimSemana
FROM (
SELECT {mDataI}::DATE + GENERATE_SERIES AS fId
FROM GENERATE_SERIES(0, {mDataF - mDataI})
) AS tmp
49
[TEMPO_CARGA]
DELETE FROM dw.tempo
WHERE idTempo IN (
SELECT fId FROM tmpArq
);
COMMIT;
[FIM]
50
Estatísticas
-- Executar estatísticas
RUNSTATS ON TABLE dw.vendedor AND INDEXES ALL;
RUNSTATS ON TABLE dw.cliente AND INDEXES ALL;
RUNSTATS ON TABLE dw.tempo AND INDEXES ALL;
RUNSTATS ON TABLE dw.produto AND INDEXES ALL;
RUNSTATS ON TABLE dw.venda AND INDEXES ALL;
RUNSTATS ON TABLE dw.resumovendedor AND INDEXES ALL;
RUNSTATS ON TABLE dw.resumocliente AND INDEXES ALL;
RUNSTATS ON TABLE dw.resumounidade AND INDEXES ALL;