Closed wandersonsousa closed 1 year ago
Alguns detalhes para a gente entender melhor:
df -h /
deve ajudar)Não costumo utilzar o Docker para os dados completos. Apenas mantenho para facilitar os testes e desenvolvimento. Se puder testar sem o Docker, pode ser uma boa ; )
Tenho cerca de 800GB disponível. Estou processando os últimos dados da receita. Sobre a questão de configurar os limites de armazenamento do docker, creio que seja o problema, vou testar e retorno com o resultado, em caso de o resultado ser negativo, vou testar sem o docker
Relatei um problema que pode ser relacionado (ou não).
https://github.com/cuducos/minha-receita/issues/189#issue-1814712983
Estou testando a importação de uma base mais antiga... De qualquer forma, @wandersonsousa, coloque aí os logs do postgres e da própria aplicação pra gente tentar entender melhor o que passa.
Tentei a importação com os dados de 15/01/2023.
Log do postgres:
2023-07-20 17:49:29.058 -03 [14880] ERROR: invalid byte sequence for encoding "UTF8": 0x00
2023-07-20 17:49:29.058 -03 [14880] CONTEXT: COPY cnpj, line 6545, column json
2023-07-20 17:49:29.058 -03 [14880] STATEMENT: copy "cnpj" ( "id", "json" ) from stdin binary;
2023-07-20 17:49:29.801 -03 [8868] ERROR: invalid byte sequence for encoding "UTF8": 0x00
2023-07-20 17:49:29.801 -03 [8868] CONTEXT: COPY cnpj, line 7620, column json
2023-07-20 17:49:29.801 -03 [8868] STATEMENT: copy "cnpj" ( "id", "json" ) from stdin binary;
2023-07-20 17:49:30.098 -03 [9312] LOG: could not receive data from client: An existing connection was forcibly closed by the remote host.
Log no console
Processing base CNPJ, partners and taxes 100% |█████████████████████████████████████████████████████████████| (108762489/108762489, 68926 it/s)
2023/07/20 17:42:27 Loading Estabelecimentos files…
Creating the JSON data for each CNPJ 9% |█████ | (5308416/55155262, 22246 it/s) [6m26s:37m20s]panic: send on closed channel
goroutine 73620684 [running]:
goroutine 73620684 [running]:
github.com/cuducos/minha-receita/transform.(*venuesTask).produceRows.func1(0xc00ffb33b0, 0xc0003b8120?)
C:/Users/W11/OneDrive/Documents/ItsBrain/Dev/Projetos/minha-receita/transform/venues.go:74 +0x72
created by github.com/cuducos/minha-receita/transform.(*venuesTask).produceRows
C:/Users/W11/OneDrive/Documents/ItsBrain/Dev/Projetos/minha-receita/transform/venues.go:56 +0x3b
panic: send on closed channel
goroutine 73620770 [running]:
github.com/cuducos/minha-receita/transform.(*venuesTask).produceRows.func1(0xc00ffb33b0, 0xc000164120?)
C:/Users/W11/OneDrive/Documents/ItsBrain/Dev/Projetos/minha-receita/transform/venues.go:74 +0x72
created by github.com/cuducos/minha-receita/transform.(*venuesTask).produceRows
C:/Users/W11/OneDrive/Documents/ItsBrain/Dev/Projetos/minha-receita/transform/venues.go:56 +0x3b
panic: send on closed channel
goroutine 73620685 [running]:
github.com/cuducos/minha-receita/transform.(*venuesTask).produceRows.func1(0xc00ffb33b0, 0xc0003b8120?)
C:/Users/W11/OneDrive/Documents/ItsBrain/Dev/Projetos/minha-receita/transform/venues.go:74 +0x72
created by github.com/cuducos/minha-receita/transform.(*venuesTask).produceRows
C:/Users/W11/OneDrive/Documents/ItsBrain/Dev/Projetos/minha-receita/transform/venues.go:56 +0x3b
panic: send on closed channel
goroutine 73620689 [running]:
github.com/cuducos/minha-receita/transform.(*venuesTask).produceRows.func1(0xc00ffb33b0, 0xc0661dc000?)
C:/Users/W11/OneDrive/Documents/ItsBrain/Dev/Projetos/minha-receita/transform/venues.go:74 +0x72
created by github.com/cuducos/minha-receita/transform.(*venuesTask).produceRows
C:/Users/W11/OneDrive/Documents/ItsBrain/Dev/Projetos/minha-receita/transform/venues.go:56 +0x3b
panic: send on closed channel
Estou testando a importação de uma base mais antiga
Qual exatamente?
Você pode também verificar os pontos que mencionei anteriormente? Isso ajuda muito a eu te ajudar…
Estou testando a importação de uma base mais antiga
Qual exatamente?
Você pode também verificar os pontos que mencionei anteriormente? Isso ajuda muito a eu te ajudar…
Foi mal. Base de 15/01/2023. Estou tentando agora com a de 17/12/2022.
To com 35gb livre e nao estou usando docker, fiz o build do app
O erro que você está tendo (existing connection was forcibly closed by the remote host) também pode indicar sobrecarga nos recursos computacionais como CPU e memória, segundo esse artigo.
Testando no Mac M1 aqui travou em 58%, provavelmente foi por espaço em disco disponível para o container, pois a transformação usa bastante espaço no /tmp também... ao rodar nativamente deu certo
pois a transformação usa bastante espaço no
/tmp
também
Sim. Só para corroborar essa afirmação: os 113 milhões de registros de base do CNPJ, sócios e dados fiscais são carregados em um banco de dados de chave/valor (é a parte Processing base CNPJ, partners and taxes). E é no diretório temporário que esse banco de dados fica.
Estou processando os dados de julho agora, está em 27% e esse diretório já tem 3Gb:
$ du -hd1 /tmp | grep minha
3.0G /tmp/minha-receita-badger-1661591632
Com certeza ele passa dos 10Gb (pois muito dado ainda está em memória, já que o Badger faz essas artimanhas para poder ser rápido na escrita).
ATUALIZAÇÃO
Errei! Ficou com menos que 10Gb:
$ du -hd1 /tmp | grep minha
8.2G /tmp/minha-receita-badger-1661591632
Eu provisionei uma maquina com 16gb de RAM e 250GB de espaço livre. Deu certo.
Provavelmente o problema tenha sido o espaço em disco, mas não pensei nisso porque, no momento que dava erro, eu ainda tinha bastante espaço livre (bastante, entenda-se cerca de 10gb).
Obrigado pela força!
Instalei o postgres localmente e resolveu
Estou usando o banco de dados do dockercompose minha-receita, porém ele nunca consegue finalizar a primeira etapa que é: Processing base CNPJ, partners and taxes.
Já tentei diversos comandos, a últimas tentativa foi da seguinte forma:
docker-compose run --rm minha-receita transform -d /mnt/data/ --no-privacy --max-parallel-db-queries=1 --batch-size=1024
Minha máquina: MacBook Pro (16 polegadas, 2021) processador: Apple M1 Max ram: 32 GB 1TB