Vanilla para Discourse Importação de Grandes Volumes de Dados (diminuindo velocidade)

Temos um despejo de dados de 26 GB do Discourse:
1,3 milhão de usuários
3 milhões de tópicos
21 milhões de posts

Nosso problema é que estamos importando a 500 mil por minuto, mas após alguns minutos a taxa cai para até 2 mil por minuto.

1 curtida

Você precisará de muita RAM. Pode dar uma olhada nos importadores em lote, mas não acredito que exista um para o vanilla.

2 curtidas

Oi, Jay. Estamos usando uma instância c5.4xlarge na AWS e, inicialmente, ela atinge 500 mil/min, mas desacelera após alguns minutos.

O script de importação pode ser reiniciado, mas, infelizmente, isso é comum nos scripts de importação.

2 curtidas

Sim, quando eu reinicio, ele simplesmente pula os dados já importados, mas o mesmo processo diminui com o tempo :frowning:

1 curtida

Obrigado por confirmar isso. :frowning: Se continuar diminuindo, um total de 31 milhões de dados levará cerca de um mês. Alguma sugestão para melhorar isso? Ou é apenas assim que funciona?

Você precisa de uma CPU com alta velocidade de núcleo único, o que é bastante difícil de encontrar na nuvem.

Ou experimente o script de importação em massa. Importers for large forums

Existe um para o Vanilla: discourse/script/bulk_import/vanilla.rb at main · discourse/discourse · GitHub

3 curtidas

usamos o c5.4xlarge da AWS
vCPU - 16 Memória (GiB) - 32
isso é suficiente ou devemos fazer upgrade?

claro, vou tentar esse script de importação em massa. Obrigado!

Você precisará de uma CPU do topo da lista em PassMark CPU Benchmarks - Single Thread Performance se quiser executar o script de importação regular o mais rápido possível. Não faço ideia do que se obtém na AWS ou em qualquer outro provedor de nuvem com vCPUs. :man_shrugging:

3 curtidas

Você deseja usar o importador em lote.

2 curtidas

Toda vez que tento a importação em massa, ela para ali. Como o traceback para nos IDs de categoria, tentei alterar o -1 para 0:

@last_imported_category_id = imported_category_ids.max || -1
para
@last_imported_category_id = imported_category_ids.max || 0

Até tentei excluir a categoria com ID -1 e tentar novamente. Sem sorte.

Se você puder contratar ajuda extra, entre em contato com @pfaffman em https://www.literatecomputing.com/ .

3 curtidas