Ho alcuni problemi nell'importazione di un file JSON in un'istanza MongoDB locale. Il JSON è stato generato usando mongoexport
e assomiglia a questo. No array, senza nidificazione Hardcore:MongoDB: mongoimport perde la connessione durante l'importazione di file di grandi dimensioni
{"_created":{"$date":"2015-10-20T12:46:25.000Z"},"_etag":"7fab35685eea8d8097656092961d3a9cfe46ffbc","_id":{"$oid":"562637a14e0c9836e0821a5e"},"_updated":{"$date":"2015-10-20T12:46:25.000Z"},"body":"base64 encoded string","sender":"[email protected]","type":"answer"}
{"_created":{"$date":"2015-10-20T12:46:25.000Z"},"_etag":"7fab35685eea8d8097656092961d3a9cfe46ffbc","_id":{"$oid":"562637a14e0c9836e0821a5e"},"_updated":{"$date":"2015-10-20T12:46:25.000Z"},"body":"base64 encoded string","sender":"[email protected]","type":"answer"}
Se importare un file 9MB con ~ 300 righe, non c'è nessun problema:
[stekhn latest]$ mongoimport -d mietscraping -c mails mails-small.json
2015-11-02T10:03:11.353+0100 connected to: localhost
2015-11-02T10:03:11.372+0100 imported 240 documents
Ma se provate a importare un file da 32 MB con ~ 1300 righe, l'importazione non riesce:
[stekhn latest]$ mongoimport -d mietscraping -c mails mails.json
2015-11-02T10:05:25.228+0100 connected to: localhost
2015-11-02T10:05:25.735+0100 error inserting documents: lost connection to server
2015-11-02T10:05:25.735+0100 Failed: lost connection to server
2015-11-02T10:05:25.735+0100 imported 0 documents
Ecco il log:
2015-11-02T11:53:04.146+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:45237 #21 (6 connections now open)
2015-11-02T11:53:04.532+0100 I - [conn21] Assertion: 10334:BSONObj size: 23592351 (0x167FD9F) is invalid. Size must be between 0 and 16793600(16MB) First element: insert: "mails"
2015-11-02T11:53:04.536+0100 I NETWORK [conn21] AssertionException handling request, closing client connection: 10334 BSONObj size: 23592351 (0x167FD9F) is invalid. Size must be between 0 and 16793600(16MB) First element: insert: "mails"
Ho già sentito parlare di 16MB limit for BSON documents, ma poiché nessuna riga nel mio file JSON è più grande di 16 MB, questo non dovrebbe essere un problema, giusto? Quando faccio lo stesso identico (32MB) importare un mio computer locale, tutto funziona correttamente.
Qualche idea su cosa potrebbe causare questo comportamento strano?
Probabilmente vale la pena di postare i registri dall'istanza dal timestamp in cui è stata persa la connessione (potrebbe davvero essere qualsiasi cosa in base all'output precedente). –
prova questo se fa la differenza: 'mongoimport -d mietscraping -c mails
jpaljasma
usi' mongoexport' per esportare i tuoi mails.json? – jpaljasma