[MongoDB] MongoDB를 MySQL으로 마이그레이션 하기

2023. 8. 7. 12:16·Development/MySql

개요

MySQL에서 MongoDB로 마이그레이션 하는 경우는 많지만, MongoDB에서 MySQL로 마이그레이션 하는 경우는 상대적으로 적은 것 같다.

MongoDB는 NoSQL로 대용량 데이터를 처리하기에 적합하다는 장점이 있지만 관계형 데이터베이스 지원이 되지않기 때문에 현재하려는 프로젝트에서는 마이그레이션이 필요하다.

 

하지만 이 작업에는 여러 에러요소들이 있는데..

에러요소

1. 대용량 데이터

export했을 때 전체 용량이 12GB로 꽤 큰편이다. 텍스트가 많아서 어쩔 수 없다.

2. 데이터에 ,(콤마) 가 있음

csv는 구분자가 콤마인데 레이블에 콤마가 포함되어있을 경우 import시 에러가 발생한다. (원하는 양식대로 인식하지 못함)

3. json 추출 시 MySQL에서 불러오지 못함

현재 사용 중인 툴들에서는 json import가 안되고 워크벤치에서 json import가 된다고 하지만 안되고 있음

4. php 사용 시 메모리 에러

php로 json 데이터를 가공해서 db에 올리려고 했지만 대용량이라 읽는 부분에서 메모리 에러가 발생한다(아마도 out of memory에러인듯)

5. 특정 컬럼 크기가 12GB

용량이 큰 편이라 처리가 번거롭다.

 

해결방안을 찾아보았는데, 챗지피티에게 물어보니 mongoDB에서 csv export시 csvSeparator 옵션이 있다고 하길래 찾아봤는데 없는 듯 하다. 스택오버플로우를 찾아봐도 뚜렷한 해결책은 보이지 않았다.

생각중인 해결책

1. json 데이터를 csv로 변환

엑셀로 바꾸어 mysql프로그램에서 import하기

2. 대용량 json 데이터를 분할하여 PHP로 처리하기

jq 커맨드 도구 사용하여 json 데이터를 분할하여 작업하기

3. PHP 대신 Python 사용하기

python에는 여러 모듈들이 많으므로 적합한 모듈이 있을 것 같다.

'Development > MySql' 카테고리의 다른 글

[MySQL] MySQL server has gone away  (0) 2023.08.11
[MySQL] sql_mode=only_full_group_by 에러 해결 방법  (0) 2023.08.11
[MySQL] 테이블 깨졌을 때 복구하기  (0) 2023.08.04
[MySQL] checking permissions  (0) 2023.05.04
[MySQL] 데이터 치환하기  (0) 2023.03.29
'Development/MySql' 카테고리의 다른 글
  • [MySQL] MySQL server has gone away
  • [MySQL] sql_mode=only_full_group_by 에러 해결 방법
  • [MySQL] 테이블 깨졌을 때 복구하기
  • [MySQL] checking permissions
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (184)
      • Development (57)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (1)
        • React (8)
        • MySql (19)
        • MongoDB (1)
      • Daily (4)
      • Study (6)
        • TIL (1)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Python
    HTML
    MySQL
    php
    인코딩
    Linux
    Shell
    springboot
    date
    리액트
    nodejs
    리눅스
    정규표현식
    error
    IP
    ssh
    스프링부트
    Selenium
    윈도우
    JavaScript
    chromedriver
    docker
    CentOS
    Java
    크롤링
    SQL
    UTF8
    react
    db
    CentOS7
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
[MongoDB] MongoDB를 MySQL으로 마이그레이션 하기
상단으로

티스토리툴바