You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Atualmente, boa parte das extrações de dados do FTP público do DataSUS (ftp.datasus.gov.br) falha com uma mensagem semelhante a esta:
2022-08-15 06:04:19.769 | ERROR | impulso***.utilitarios.datasus_ftp:_checar_arquivo_corrompido:40 - Tamanho no servidor é maior do que o do arquivo baixado.
2022-08-15 at 06:04:19 | ERROR | datasus_ftp.py:40: Tamanho no servidor é maior do que o do arquivo baixado.
2022-08-15 06:04:19.771 | ERROR | impulso***.scripts.geral:***:95 - An error has been caught in function '***', process 'MainProcess' (1), thread 'MainThread' (139749888595776):
Traceback (most recent call last):
File "src/impulso***/__main__.py", line 14, in <module>
***()
└ <function *** at 0x7f1a0e483c10>
File "/home/appuser/.local/lib/python3.8/site-packages/impulso***/***.py", line 17, in ***
capturas_uso_geral(sessao=sessao, teste=teste)
│ │ └ False
│ └ <sqlalchemy.orm.session.Session object at 0x7f1a0e5089a0>
└ <function *** at 0x7f19eb4840d0>
> File "/home/appuser/.local/lib/python3.8/site-packages/impulso***/scripts/geral.py", line 95, in ***
vinculos_disseminacao(sessao=sessao, teste=teste)
│ │ └ False
│ └ <sqlalchemy.orm.session.Session object at 0x7f1a0e5089a0>
└ <function vinculos_disseminacao at 0x7f19eb533a60>
File "/home/appuser/.local/lib/python3.8/site-packages/impulso***/scripts/geral.py", line 37, in vinculos_disseminacao
obter_vinculos(
└ <function obter_vinculos at 0x7f19eb533700>
File "/home/appuser/.local/lib/python3.8/site-packages/impulso***/cnes/vinculos.py", line 382, in obter_vinculos
for vinculos_lote in vinculos_lotes:
└ <generator object extrair_dbc_lotes at 0x7f19ead95a50>
File "/home/appuser/.local/lib/python3.8/site-packages/impulso***/utilitarios/datasus_ftp.py", line [114](https://github.com/ImpulsoGov/etl/runs/7832903075?check_suite_focus=true#step:5:115), in extrair_dbc_lotes
raise RuntimeError(
RuntimeError: A extração da fonte `ftp.datasus.gov.br/dissemin/publicos/CNES/200508_/Dados/PF` falhou porque o arquivo baixado está corrompido.
Este comportamento é o esperado, e é motivado pelo fato de a função impulsoetl.utilitarios.datasus_ftp._checar_arquivo_corrompido() detectar que o arquivo baixado tem alguns bytes a menos do que o tamanho informado pelo servidor FTP. Para evitar enviar dados corrompidos para o banco de dados, um erro RuntimeError é levantado e a captura é interrompido.
bcbernardo
changed the title
Extrair arquivos do FTP do DataSUS em modo binário/em blocos
Extrair arquivos do FTP do DataSUS sem corromper
Aug 16, 2022
…taSUS
Substitui a função `FTP.retrbinary()` do módulo `ftplib` pela função `requests.urlopen()` do módulo `urllib` como ferramenta para baixar dados do FTP público do DataSUS.
Fixes#27 .
…taSUS (#28)
Substitui a função `FTP.retrbinary()` do módulo `ftplib` pela função `requests.urlopen()` do módulo `urllib` como ferramenta para baixar dados do FTP público do DataSUS.
Fixes#27 .
Atualmente, boa parte das extrações de dados do FTP público do DataSUS (
ftp.datasus.gov.br
) falha com uma mensagem semelhante a esta:Este comportamento é o esperado, e é motivado pelo fato de a função
impulsoetl.utilitarios.datasus_ftp._checar_arquivo_corrompido()
detectar que o arquivo baixado tem alguns bytes a menos do que o tamanho informado pelo servidor FTP. Para evitar enviar dados corrompidos para o banco de dados, um erroRuntimeError
é levantado e a captura é interrompido.Esta issue consiste em tentar alterar a função
impulsoetl.utilitarios.datasus_ftp.extrair_dbc_lotes()
de forma que este erro seja menos recorrente.The text was updated successfully, but these errors were encountered: