Domanda

Ho una collezione di circa 625.000 oggetti.

Nightly via cron, ho recuperare un file aggiornato (TSV) di questi dati da un fornitore di dati e necessità di reimportare li nel mio MongoDB.

Qual è il modo migliore per farlo senza interrompere il sito / servizio e ai suoi utenti, che stanno consumando i dati? È mongoimport --upsert direttamente sulla raccolta il modo migliore? E 'solo così lento.

dovrei pensare ad altri metodi che coinvolgono le copie della mia collezione?

È stato utile?

Soluzione

È mongoimport --upsert direttamente sulla raccolta il modo migliore? E 'solo così lento.

Questo lavoro, ma nella mia esperienza mongoimport è stata lenta e poco maneggevole. Ha anche alcune altre gravi limitazioni:. Alcuna possibilità di tenere traccia dei progressi, nessun punto per la verifica / validazione, nessuna registrazione di quanto ci fa

dovrei pensare ad altri metodi che coinvolgono le copie della mia collezione?

Il metodo alternativo è quello di scrivere uno script che fa questo. Nella maggior parte delle lingue questo è abbastanza banale.

Questo vi darà la possibilità di monitorare i progressi e gestire i dati errati. Se si trova l'importazione particolarmente lento, si può anche essere in grado di sborsare il processo e dividere il lavoro.

A proposito di velocità

mi ricordo che si sta aggiornando 625K oggetti. Se è possibile ottenere 1k aggiornamenti / secondo che è ancora 10 minuti per aggiornare. Se si esegue mongostat o controllare il vostro monitoraggio durante il processo di importazione, si dovrebbe ottenere qualche idea di quanto lavoro è stato fatto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top