다른 포럼의 매우 큰 JSON 내보내기 파일 일부 파싱/가져오기

방금 이전을 마친 포럼이 있습니다. 수천 개 중 약 500개(아쉽게도 전부 이전되지는 않았습니다)의 토론이 프로젝트의 수명 동안 보관/접근 가능해야 합니다. 이전 원본은 commonwealth.im이며, 상당히 유사한 플랫폼입니다.

해당 플랫폼의 API를 통해 전체 역사를 내보냈습니다. 3개의 상당히 큰(3~16MB 사이) JSON 파일로, 커뮤니티, 토픽, 스레드, 댓글, 반응이 포함되어 있습니다. (그중 2개는 필요하지 않은 작은 파일들입니다.)

원래 형식인 스레드 > 댓글 > 댓글 등의 구조로 가져오지 않아도 괜찮습니다. 각 스레드와 댓글을 하나의 전사(transcript) 스타일 메시지로 결합하는 것만으로도 충분합니다. 어차피 “아카이브” 토픽에 "새 스레드"로 추가한 후 즉시 잠금 처리할 예정입니다.

결국 어디서부터 시작해야 할지 정말 모르겠습니다. 'jq’를 어느 정도 사용할 수 있고, JSON 파일 중 하나를 웹 앱에 불러왔지만 PC가 거의 사용할 수 없을 정도로 느려졌습니다.

여기서 지원팀 중 한 명이 JSON을 SQL 데이터베이스로 덤프하는 스크립트 같은 것을 언급했는데, 이 분야에 대해 매우 익숙하지는 않지만 배울 수는 있을 것 같습니다. 다만 시작할 방향성만 좀 알려주시면 감사하겠습니다.

예제로 discourse/script/import_scripts/drupal_json.rb at main · discourse/discourse · GitHub 를 참고하고, 그곳에서 JSON을 처리하는 다른 스크립트들도 확인해 보세요.

여기서 직접 뭔가 만들어 보았지만, 이제 Discourse API가 처리할 수 있는 형태로 번역해야 합니다.

JSON 스크립트는 단순히 JSON 데이터를 가져와 SQL 데이터베이스에 저장하고, 다시 읽어내는 역할을 합니다.

음, 이거에 대해선 정말 아무것도 모르고, SQL에 관해서는 더더욱 모르겠어서 그래서 그쪽으로 가기로 했지 ㅋㅋ.. 그래도 꽤 재밌긴 했어.