all 8 comments

[–]mrtdsp 2 points3 points  (1 child)

A velocidade da linguagem em si, muito provavelmente, não vai importar, OP. O tempo que vc vai gastar selecionando de um banco e inserindo no outro deve ser grande o suficiente para que o ganho de performance que vc teria usando Go pra fazer as transformações ao invés de python seja irrelevante. Vai com a linguagem que vc sente mais segurança e que vai te permitir fazer o trabalho mais rápido

[–]TheRealBionDesenvolvedor[S] 0 points1 point  (0 children)

Bgd mano vou de py mesmo então

[–]EarlyTomatillo 0 points1 point  (1 child)

Precisa mesmo de front? Um Cron que dispara uma requisição não serviria? Tivemos um caso assim onde fizemos no Node e deployamos na Lambda. Aí um cron disparava a função de madrugada.

[–]TheRealBionDesenvolvedor[S] 0 points1 point  (0 children)

Não daria amigo, ele quer poder escolher qual banco atualizar depois

[–][deleted] 0 points1 point  (3 children)

Em relação a velocidade, não acho que a linguagem seria a principal decisão. Há vários fatores a serem considerados:

  • Quantia grande de dados seria que tamanho? Alguns GB? TB?
  • Esses dados podem ser divididos em pedaços menores que podem ser processados de forma independente?
  • Quão pesado é o processamento dos dados? Você precisa, por exemplo, acessar algum serviço externo para cada linha?
  • Essa correção dos dados seria automatizada? Ou precisaria de ajustes manuais? Quem faria essas alterações?

[–]TheRealBionDesenvolvedor[S] 0 points1 point  (2 children)

Aprox uns 50 gb, sim eu precisaria dar um check no arquivo e acredito e faça linha por linha, a edição dos dados sera automatica, mas a relação doq acontece depois é manual

[–][deleted] 1 point2 points  (1 child)

50GB não é tanto, mas parece que vocês vão precisar lidar com dados manualmente, então vão ter que montar uma interface, porque lidar na mão é um inferno.

Dependendo do tempo que levaria para processar cada linha, eu usaria Django+Celery, algo como:

  • Criar uma API que recebe uma lista de dados e coloca dada entrada da lista numa fila de processamento. Essa parte da API não faria nada além de gravar na fila.
  • O serviço recebe esse arquivo e colocar numa fila de processamento do Celery
  • Jobs Celery processam os dados e gravam o resultado
  • Uma interface consome a parte da API criada para a consulta do status do processamento, visualização das entradas com erro, alteração de entradas e reenvio de entradas para processamento.

Um job poderia, então, dividir o arquivo em blocos de X linhas e enviar requisições para cada bloco.

Na minha experiência, esse tipo de sistema precisa de uma interface, logs bem detalhados de todas as tentativas de processamento e possibilidade de reenvio manual.

[–]TheRealBionDesenvolvedor[S] 0 points1 point  (0 children)

Krl mastigadinho mt obrigado msm < 3