transparencia-mg / age7

https://transparencia-mg.github.io/age7/
1 stars 2 forks source link

Atualizar conjuntos age7 com tabelas 2024 #197

Open gabrielbdornas opened 6 months ago

gabrielbdornas commented 6 months ago

Conforme orientações descritas no comentário do Issue #166:

Atualização dos arquivos age7.yaml, datapackage.yaml, bem como criação de schemas para os recursos schemas/dm_empenho_desp_2024.yaml, schemas/dm_empenho_resto_2024.yaml, schemas/ft_despesa_2024.yaml, schemas/ft_diarias_2024.yaml, schemas/ft_restos_pagar_2024.yaml.

Antes de acessar a máquina virtural age7 para executar os comandos listados abaixo, foi necessário também solicitar Márcia do NUC a criação da tabela ft_despesa_2024 no banco de dados.

Acesso à máquina virtual age7 e execução dos comandos git status para verificar se havia algo não commitado (havia alguns arquivos de log, para os quais rodei git restore .), git pull origin main para buscar as modificações realizadas na documentação, sudo make container-bash para acessar o docker container aonde o processo é executado e por fim ./all.sh[^1] para colocar o processo para rodar (que demora mais de 4 horas para ser finalizado).

Após finalização do processo rodado com o comando ./all.sh é necessário rodar os comandos dpckan resource <resource_name> create (um comando por tabela em cada conjunto) para que as novas tabelas apareçam nos respectivos conjuntos do Portal de Dados Abertos[^2].

Exemplos:

[^1]: Provavelmente não será necessário rodar o comando ./all.sh, pois as atualizações feitas no neste commit deverão ser incluídas na máquina virtual age7 na rotina que rodará dia 20/02/2024 (dados e metadados).

[^2]: Utilizei comandos como ls build_datasets/despesa/data | grep _2024 para descobrir com mais facilidade em quais conjuntos os comandos deveriam ser executados.

AntonioMarcel commented 6 months ago

Encontramos o seguinte erro durante o processo de atualização:

silviana.faria@cge-pda:~/age7$ git status
warning: unable to access '/home/desenvolvimento/.config/git/ignore': Permission denied
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   logs/cron.txt

no changes added to commit (use "git add" and/or "git commit -a")
silviana.faria@cge-pda:~/age7$ git restore .
fatal: Unable to create '/home/desenvolvimento/age7/.git/index.lock': Permission denied
silviana.faria@cge-pda:~/age7$
silviana.faria@cge-pda:~/age7$ git restore .
fatal: Unable to create '/home/desenvolvimento/age7/.git/index.lock': Permission denied

O que significa que o usuário silviana.faria não tem permissão de acesso ao arquivo /home/desenvolvimento/age7/.git/index.lock. Esta resposta Stackoverflow mostrou a necessidade de rodar o comando cd .. & sudo chown -R silviana.faria:acessossh age para liberar o acesso desta pasta para o referido usuário.

Depois o erro de permissão ocorreu para a pasta .config:

silviana.faria@cge-pda:~/age7$ git restore .
warning: unable to access '/home/desenvolvimento/.config/git/attributes': Permission denied

Rodamos sudo chown -R silviana.faria:acessossh .config/ para resolver o problema.

AntonioMarcel commented 6 months ago

Acesso à máquina virtual (usar dados de acesso da Silviana) ssh user@ip

Percebemos que o commit diário de atualização do AGE7 não rodou na madrugada passada. Ao checar a pasta de logs com o comando cat full_extract.txt dentro da pasta age7/logs foi identificado erro de identação no datapackage.yaml por volta da linha 2187.

image

Corrigimos o erro e vamos aguardar o processo rodar nesta madrugada para verificar se o problema foi solucionado.

gabrielbdornas commented 6 months ago

Percebemos que o commit diário de atualização do AGE7 não rodou na madrugada passada. Ao checar a pasta de logs com o comando cat full_extract.txt dentro da pasta age7/logs foi identificado erro de identação no datapackage.yaml por volta da linha 2187.

@AntonioMarcel e @silvianafaria, uma sugestão para evitar esse tipo de erro, ou facilitar encontrar o problema, é sempre incluir uma mudança por vez no datapackage. Assim, caso a rotina não rode, fica mais fácil ir nas poucas linhas modificadas para achar o problema.

silvianafaria commented 6 months ago

@gabrielbdornas @AntonioMarcel vou reverter o commit desse datapackage e fazer novamente, mas não estou achando nada errado image

Está igual as linhas de 2023

AntonioMarcel commented 6 months ago

Vou conferir o log para checar o erro novamente e aí te atualizo @silvianafaria .

AntonioMarcel commented 6 months ago

Dessa vez, o arquivo full_extract.txt não foi gerado nos logs. Ou seja, o datapackage nem chegou a ser lido. De acordo com o arquivo de log all.txt:

image

Print dos arquivos de log evento_etl_carga.txt e evento_etl_carga.csv: image

AntonioMarcel commented 6 months ago

Foi alinhado com a @silvianafaria de restaurarmos os commits realizados para observar o processo rodar nesta madrugada. Uma vez que dê tudo certo, vamos realizar as alterações de cada arquivo por dia a fim de descobrir o erro mais facilmente.

silvianafaria commented 6 months ago

@AntonioMarcel todos os commits resetados.

AntonioMarcel commented 6 months ago

Notamos que os commits de atualização do age7 não estavam rodando de madrugada. Estava faltando reverter os commits do datapackage.

Reverti o restante dos commits. Vamos aguardar esta madrugada para ver se o problema será solucionado.

AntonioMarcel commented 6 months ago

Os commits de atualização ainda não estão rodando.

Primeiramente, ao realizar o git pull origin main foi identificado a seguinte mensagem referente a erro de permissão ao tentar realizar o git pull. A branch foi atualizada ainda assim, mas para efeito de registros, segue o print abaixo. image

Em seguida, segue os erros de log identificados:

cron.txt image

all.txt image

evento_etl_carga.txt image

evento_etl_carga.csv image

AntonioMarcel commented 6 months ago

Na tentativa de solucionar os erros mostrados acima foram feitas seguintes etapas:

  1. Adicionar usuário da @silvianafaria no grupo do docker através do comando sudo usermod -a -G docker silviana.faria.
  2. Alterações no arquivo Makefile: onde estava escrito python foi modificado para python3.
  3. Instalação de diversas dependências através dos comandos abaixo:
    sudo apt install r-base-core
    sudo apt install python3-pip
    sudo apt-get install libpq-dev

Ao rodar o comando sudo pip3 install -r requirements.txt para instalar o restante das dependência do age7 foi mostrada a seguinte mensagem de erro:

image

Após as alterações realizadas no arquivo Makefile no repositório do AGE7 no github, foi realizado um git pull origin main para puxar as alterações para a máquina virtual.

Vamos aguardar esta madrugada novamente para ver se os commits de atualização serão rodados.

AntonioMarcel commented 4 months ago

Após as últimas tentativas, decidimos retomar os testes com a reversão de alguns commits, no entanto sem sucesso. Decidiu-se por pedir auxílio da equipe de TI.