-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementa semáforos de escrita #68
Conversation
…e tem funcionamento indicado como 'Sempre Aberto'
…nada competência durant ea extração
…de funções e de etapas de verificação de dados que não garantem integridade dos dados a serem inseridos
…liotecas a serem importados
Aumenta timeout_seconds para capturas de BPA-i, AIH e Procedimentos Ambulatoriais para evitar [Errno 110] Connection timed out\n')
Comenta fora o trecho da função `extrair_dbc_lotes()` que checa se o tamanho do arquivo baixado é o mesmo que o do arquivo no servidor FTP, já que não tem havido mais downloads corrompidos desde o uso do ftplib, e a checagem de tamanho no servidor às vezes gera falha em alguns arquivos do FTP do DataSUS.
Atualiza dependências para que a versão mais recente (>= 6.0.0) do pacote pyyaml seja instalada, evitando erro pela falta de suporte à PEP 517
Adiciona semáforos em ETLs de SM
Adiciona semáforos em ETLs gerais relevantes para SM e corrige bug de typo no script saude_mental
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fernandesbruna identifiquei um só problema (bem sutil e fácil de corrigir) na sua parte, e um outro na parte que você acabou herdando dos PRs da Maíra que foram para a main
. Consegue corrigir para liberarmos o PR?
src/impulsoetl/scripts/geral.py
Outdated
@@ -232,6 +305,23 @@ def ceps(teste: bool = False) -> None: | |||
ceps_pendentes_query = ceps_pendentes_query.limit(10) | |||
ceps_pendentes = ceps_pendentes_query.all() | |||
|
|||
try: | |||
checar_escrita_liberada( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aqui tem uma indentação a mais, vai dar erro
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrigido no commit 88e9b89
src/impulsoetl/sisab/excecoes.py
Outdated
@@ -30,10 +30,15 @@ class SisabErroCompetenciaInexistente: | |||
def __init__(self,exception): | |||
self.exception = exception | |||
|
|||
def insere_erro_database(self,sessao,traceback_str,operacao_id,periodo_id): | |||
def insere_erro_database(self,sessao,traceback_str,operacao_id,periodo_id,unidade_geografica_id): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isso é da @maaottoni , mas como está vai dar erro em uma das alterações que ela fez. O argumento unidade_geografica_id
deveria estar expresso como unidade_geografica_id="28de805e-5bdc-49c3-863c-2cf87f95e371"
, em vez de como argumento posicional (sem default).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrigido no commit f3d7765
src/impulsoetl/sisab/excecoes.py
Outdated
if unidade_geografica_id is None: | ||
unidade_geografica_id = '28de805e-5bdc-49c3-863c-2cf87f95e371' | ||
else: | ||
unidade_geografica_id = unidade_geografica_id |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Desnecessário se o comentário acima for resolvido.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrigido no commit f3d7765
Define default para argumento de unidade geográfica na função 'insere_erro_database'
Utiliza a tabela recém-criada
configuracoes.capturas_semaforos
para indicar combinações de unidades geográficas, períodos de referência e tabelas de dados públicos no banco de dados que estão sendo escritas no banco em cada momento, evitando que ocorram dois ETLs simultâneos com o mesmo conteúdo.Essa alteração evita a entrada de dados duplicados em tabelas onde não há chaves únicas.