O Monitor Cidadão é um sistema desenvolvido através da parceria entre a CampinaTec e o laboratório Analytics, da Universidade Federal de Campina Grande-PB, com finalidade de possibilitar aos cidadãos o acompanhamento dos contratos realizados pelos municípios do estado da Paraíba.
A Camada de dados consiste em uma arquitetura que fornece meios para a extração e tratamento de dados provindos de diversas fontes. Essa estrutura é formada por quatro subcategorias distintas com suas próprias responsabilidades:
- Fetch : responsável por buscar os dados em suas fontes;
- Tradutor: responsável por traduzir os dados para um formato tabular - especialmente útil para dados que são disponibilizados em formato .csv;
- Transformador: realiza manipulações nos dados como, por exemplo, joins;
- Preditor: encapsula diversas funções para a realização das predições em torno dos contratos públicos.
Abaixo é apresentado o fluxo de dados geral das camadas citadas acima.
Desenvolvido em:
Os serviços deste módulo utilizam docker para configuração do ambiente e execução do script. Instale o docker, docker-compose e tenha certeza que você também tem o Make instalado.
Adicione os seguintes arquivos com variáveis de ambiente e credenciais:
- Adicione o arquivo .env na pasta raiz do projeto;
- Adicione os arquivos config, id_rsa, id_rsa.pub e known_hosts na pasta fetcher/credenciais.
Nesta camada o make é utilizado como facilitador para execução. Abaixo estão descritos os passos necessários para importar os dados para o banco de dados Analytics (também chamado de AL_DB) e Monitor Cidadão (também chamado de MC_DB):
Passos comuns a ambos os bancos:
- Faça o build das imagens necessárias com
sudo make build
; - Crie e inicie os containers do docker com
sudo make up
; - Obtenha os dados através do
sudo make fetch-data
. Nesta etapa você também pode testar a integridade dos dados obtidos utilizando os testes unitários de cada tabela comsudo docker exec -it fetcher sh -c "Rscript tests/<nome-da-tabela>.R"
; - Traduza e transforme os dados colhidos
sudo make transform-data
;
Para o AL_DB:
- Crie as tabelas no banco AL_DB com
sudo make feed-al-create
; - Agora importe os dados para as tabelas do banco com
sudo make feed-al-import
; - Você pode verificar se a(s) tabela(s) estão no banco com
sudo make feed-al-shell
e\dt
.
Geração das previsões:
- Gere as features da previsão com
sudo make gera-feature vigencia=<encerrados, vigentes e todos> data_range_inicio=<2012-01-01> data_range_fim=<2018-01-01>
; - Gere o feature set da previsão com
sudo make gera-feature-set tipo_construcao_features=<recentes>
; - Gere o experimento com as informações do risco com
sudo make gera-experimento tipo_contrucao_feature_set=<recentes>
.
Para o MC_DB:
- Crie as tabelas no banco MC_DB com
sudo make feed-mc-create
; - Importe os dados das features para as tabelas do banco com
sudo make feed-mc-import-feature
; - Importe os dados do features set para as tabelas do banco com
sudo make feed-mc-import-feature-set
; - Agora importe os dados do experimento para as tabelas do banco com
sudo make feed-mc-import-experimento
; - Você pode verificar se a(s) tabela(s) estão no banco com
sudo make feed-mc-shell
e\dt
.
Caso você queira executar os comandos docker diretamente, confira o código correspondente a seu comando no arquivo Makefile
. Abaixo estão todos os comandos disponíveis para serem executados com sudo make <Comando>
:
Comando | Descrição |
---|---|
help | Mostra esta mensagem de ajuda |
build | Realiza o build das imagens com as dependências necessárias para a obtenção dos dados. |
up | Cria e inicia os containers. |
stop | Para todos os serviços. |
clean-volumes | Para e remove todos os volumes. |
enter-fetcher-container | Abre cli do container fetcher |
fetch-data | Obtem dados |
enter-transformer-container | Abre cli do container transformador |
transform-data | Traduz e transforma os dados colhidos |
enter-feed-al-container | Abre cli do container feed-al |
feed-al-create | Cria as tabelas do Banco de Dados Analytics |
feed-al-import | Importa dados para as tabelas do Banco de Dados Analytics |
feed-al-clean | Dropa as tabelas do Banco de Dados Analytics |
feed-al-shell | Acessa terminal do Banco de Dados Analytics |
gera-feature | Gera features |
gera-feature-set | Gera conjunto de features |
gera-experimento | Gera previsão de risco |
enter-feed-mc-container | Abre cli do container feed-mc |
feed-mc-create | Cria as tabelas do Banco de Dados Monitor Cidadão |
feed-mc-import-feature | Importa features para o Banco de dados Monitor Cidadão |
feed-mc-import-feature-set | Importa features set para o Banco de dados Monitor Cidadão |
feed-mc-import-experimento | Importa experimento para o Banco de dados Monitor Cidadão |
feed-mc-clean | Dropa as tabelas do Banco de Dados Monitor Cidadão |
feed-mc-shell | Acessa terminal do Banco de Dados Monitor Cidadão |
GNU Affero General Public License v3.0 © Monitor Cidadão