Studio3T trouble shooting

Studio3T trouble shooting

Studio3T에서 bson file을 import하려고 했다. 근데 왜 안될까??

Studio3T에 bson 파일 import하기

Pyspark를 쓰던 중, MongoDB에서 데이터를 끌어다 써야 하는 일이 있어서 bson 파일을 Studio3T에 import 하기로 했다.
그냥 끌어다가 놓으면 될 줄 알았는데, 그런 건 되지 않았다.

먼저 콜렉션을 선택하고 import 버튼이 보여서 눌러봤다.
import누르면 나오는 화면

내가 import 하려는 파일은 bson이고 파일 하나만 있으니까 mongodump archive를 눌렀다.
그럼 여러 옵션들이 나오는데 무시하고 경로만 설정해서 Execute시켜줬다.

하지만 진행이 되지 않았고

Import mongodump folder groobee_for_feature_engineering: error creating collection
groobee
for_feature_engineering: error running create command: The field ‘background’ is not valid for an _id
index specification. Specification: { v: 2, name: “_id
“, ns: “groobee_****_for_feature_engineering”, background: true,
key: { _id: 1 } }

위와 같은 에러가 등장하게 되었다. 대충 내용을 보아하니 ‘background’라는 필드가 유효하지 않다는 내용이었고 json형식처럼 보이는 게 확인 되었다. 열심히 구글링을 해보았지만, 관련된 내용은 거의 없었고 좌절하고 있던 찰나에 bson파일을 받을 때 같이 등장하는 metadata.json 파일이 생각났다.

metadata.json

바로 확인해 보니

1
2
3
4
5
{"options":{},"indexes":[{"v":1,"key":{"_id":1},
"name":"_id_","ns":"groobee_****.userDataInfo.****"},
{"v":1,"key":{"cookieId":1,"sessionSeq":1},
"name":"cookieId_1_sessionSeq_1","ns":"groobee_****.userDataInfo.****",
"background":true},{"v":1,"key": .....

아까 에러에서 본 내용들이 여기에 있었다. 에러가 왜 났는지 보아하니, DB안에 중복된 파일명이 있을까봐 bson파일명을 바꿨는데, metadata 안에는 이전의 파일명과 DB, collection명이 적혀있어서 Studio3T가 제대로 인식을 못한 것이었다.

metadata에서 DB와 Collection을 일일이 수정해준 후, 다시 한번 시도 해봤다.

mongodump folder

mongodump folder로 시도
이번에는 아까와는 다르게 mongodump folder로 해봤다. 왜냐면 옆에 계시는 매니져님이 folder로 할때 더 잘되더라는 얘기를 들었기 때문이다.

이 방식은 아까와는 조금 다른데, 아무이름의 폴더를 하나 만들어 주고, 그 안에 DB에 있는, 내가 import하려는 대상collection명으로 폴더를 만들어야 한다. 폴더를 만들고 경로를 지정해 주자.

경로 지정하고 옵션은 건들지 않았다

Execute

지정을 해주고 Execute를 시켜주면! 진행이 되기 시작한다.
그렇게 시간이 지나서 100%가 될 때까지 기다리다 보면, Restoring은 100%로 끝났는데 완료가 되지 않는 걸 볼 수 있다.
‘아 뭐야 다시해야 되나’ 하고 중지를 누른다면 소중한 시간을 날리게 된다. 이 bson데이터의 경우 780만 row로 꽤 큰 데이터였는데, 30분 정도 넣고 이상해서 중지하고 다시 시작하고… 이런 작업을 3번정도 반복했다.

소중한 시간을 낭비하지 말고 기다리자. Restoring이 끝났다면, Restoring index작업이 남아있다. index를 restore하는 작업은 생각보다 오래걸린다. 인내심을 갖고 화장실을 다녀오든, 커피를 한잔하든 여유롭게 기다리다 보면.

초록색 동그라미와 함께 done이라는 메세지를 볼 수 있을 것이다.

Author

SangHyub Lee, Jose

Posted on

2020-05-10

Updated on

2023-12-08

Licensed under

Comments