복붙노트

[MONGODB] MongoDB를가 : 큰 파일을 가져올 때 mongoimport는 연결이 끊어

MONGODB

MongoDB를가 : 큰 파일을 가져올 때 mongoimport는 연결이 끊어

나는 몇 가지 문제 로컬 MongoDB의 인스턴스에 JSON 파일을 가져올 수 있습니다. 같은 JSON 데이터가 mongoexport과 외모를 사용하여 생성되었습니다. 어떤 배열도없고, 하드 코어 중첩 :

{"_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":"mail@mail.com","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":"mail@mail.com","type":"answer"}

내가 ~ 300 행이 9메가바이트 파일을 가져 오는 경우 아무 문제가 없다 :

[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

시도는 ~와 함께 1300 개 행을 32MB의 파일을 가져올 경우에, 가져 오기가 실패합니다 :

[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

여기에 로그는 다음과 같습니다

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"

내가 전에 BSON 문서에 대한 16 메가 바이트 제한에 대해 들었지만, 내 JSON 파일에는 행 16메가바이트보다 더 큰 없기 때문에, 이것은 바로 문제가되지 않습니다? 나는 동일한 (32메가바이트) 수입 한 내 로컬 컴퓨터를 할 때, 모든 것이 잘 작동합니다.

모든 아이디어를 어떻게이 이상한 동작이 발생할 수 있을까?

해결법

  1. ==============================

    1.나는 문제가 성능에 대해 사용 해결했다 수있는 방법 것 같다 :

    나는 문제가 성능에 대해 사용 해결했다 수있는 방법 것 같다 :

    당신은 mongoimport 옵션 -j을 사용할 수 있습니다. 4. 즉, 4,8,16 작동하지 않을 경우 증분을 시도, 당신은 당신의 CPU에있는 코어의 수에 따라 달라집니다.

    mongoimport --help

    실행에 삽입 작업의 -j, --numInsertionWorkers = 수                                      동시에 (기본값은 1)

    mongoimport -d -c mietscraping 우편물 J 4

    또는 당신은 파일을 분할하고 모든 파일을 가져올 수 있습니다.

    나는이 도움을 바랍니다.

    조금 더 찾고, 어떤 버전의 버그입니다 https://jira.mongodb.org/browse/TOOLS-939 또 다른 솔루션은 기본이 10000를 들어, BATCHSIZE을 변경 가치와 테스트를 줄일 수 있습니다 : 여기

    mongoimport -d mietscraping -c 메일

  2. from https://stackoverflow.com/questions/33475505/mongodb-mongoimport-loses-connection-when-importing-big-files by cc-by-sa and MIT license