데이터 덤프, 복원, 가져오기 및 내보내기 - Amazon DocumentDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

데이터 덤프, 복원, 가져오기 및 내보내기

mongodump, mongorestore, mongoexportmongoimport 유틸리티를 사용하여 Amazon DocumentDB 클러스터 내부 및 외부로 데이터를 이동할 수 있습니다. 이 섹션에서는 이러한 각 도구의 목적과 성능을 높일 수 있는 구성에 대해 설명합니다.

mongodump

mongodump 유틸리티는 MongoDB 데이터베이스의 이진(BSON) 백업을 생성합니다. mongodump 도구는 데이터를 이진 형식으로 저장하여 실현되는 크기 효율성 때문에 Amazon DocumentDB 클러스터로 복원하려는 경우 소스 MongoDB 배포에서 데이터를 덤프하는 권장 방법입니다.

명령을 수행하는 데 사용하는 인스턴스 또는 머신에서 사용할 수 있는 리소스에 따라 --numParallelCollections 옵션을 사용하여 덤프되는 병렬 연결 수를 기본 1개에서 더 늘려 mongodump 속도를 높일 수 있습니다. 일반적으로 Amazon DocumentDB 클러스터의 기본 인스턴스에서 vCPU당 하나의 작업자로 시작하는 것이 좋습니다.

참고

Amazon DocumentDB의 경우 버전 100.6.1까지의 MongoDB 데이터베이스 도구를 사용하는 것이 좋습니다. 여기에서 MongoDB 데이터베이스 도구 다운로드에 액세스할 수 있습니다.

사용 예시

다음은 Amazon DocumentDB cluster 클러스터 sample-cluster에서 mongodump 유틸리티를 사용하는 예입니다.

mongodump --ssl \ --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \ --collection=sample-collection \ --db=sample-database \ --out=sample-output-file \ --numParallelCollections 4 \ --username=sample-user \ --password=abc0123 \ --sslCAFile global-bundle.pem

mongorestore

mongorestore 유틸리티를 사용하면 mongodump 유틸리티로 생성한 데이터베이스의 이진(BSON) 백업을 복원할 수 있습니다. 복원 시 --numInsertionWorkersPerCollection 옵션을 사용해 각 컬렉션의 작업자 수(기본값 1)를 늘려 복원 성능을 개선할 수 있습니다. 일반적으로 Amazon DocumentDB 클러스터의 기본 인스턴스에서 vCPU당 하나의 작업자로 시작하는 것이 좋습니다.

사용 예시

다음은 Amazon DocumentDB cluster 클러스터 sample-cluster에서 mongorestore 유틸리티를 사용하는 예입니다.

mongorestore --ssl \ --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \ --username=sample-user \ --password=abc0123 \ --sslCAFile global-bundle.pem <fileToBeRestored>

mongoexport

mongoexport 도구는 Amazon DocumentDB의 데이터를 JSON, CSV 또는 TSV 파일 형식으로 내보냅니다. mongoexport 도구는 사람 또는 기계가 읽어야 하는 데이터를 내보내는 권장 방법입니다.

참고

mongoexport는 병렬 내보내기를 직접 지원하지 않습니다. 그러나 다양한 컬렉션에 대해 여러 mongoexport 작업을 동시에 실행하여 성능을 높일 수 있습니다.

사용 예시

다음은 Amazon DocumentDB cluster 클러스터 sample-cluster에서 mongoexport 도구를 사용하는 예입니다.

mongoexport --ssl \ --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \ --collection=sample-collection \ --db=sample-database \ --out=sample-output-file \ --username=sample-user \ --password=abc0123 \ --sslCAFile global-bundle.pem

mongoimport

mongoimport 도구는 JSON, CSV 또는 TSV 파일의 내용을 Amazon DocumentDB 클러스터로 가져옵니다. -–numInsertionWorkers 파라미터를 사용하여 가져오기 작업을 병렬화하고 속도를 높일 수 있습니다(기본값은 1).

사용 예시

다음은 Amazon DocumentDB cluster 클러스터 sample-cluster에서 mongoimport 도구를 사용하는 예입니다.

mongoimport --ssl \ --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \ --collection=sample-collection \ --db=sample-database \ --file=<yourFile> \ --numInsertionWorkers 4 \ --username=sample-user \ --password=abc0123 \ --sslCAFile global-bundle.pem

튜토리얼

다음 자습서에서는 mongodump, mongorestore, mongoexportmongoimport 유틸리티를 사용하여 Amazon DocumentDB 클러스터 내/외부로 데이터를 이동하는 방법에 대해 설명합니다.

  1. 사전 조건 — 시작하기 전에 Amazon DocumentDB 클러스터가 프로비저닝되고 클러스터와 동일한 VPC의 Amazon EC2 인스턴스에 액세스할 수 있는지 확인하세요. 자세한 내용은 Amazon EC2를 사용하여 연결 단원을 참조하십시오.

    mongo 유틸리티 도구를 사용하려면 다음과 같이 mongodb-org-tools 패키지가 EC2 인스턴스에 설치되어 있어야 합니다.

    sudo yum install mongodb-org-tools-4.0.18

    Amazon DocumentDB는 기본적으로 전송 계층 보안(TLS) 암호화를 사용하므로 mongo 쉘을 사용하여 연결하려면 다음과 같이 Amazon RDS 인증 기관(CA) 파일도 다운로드해야 합니다.

    wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
  2. 샘플 데이터 다운로드 — 이 자습서에서는 식당에 대한 정보가 포함된 샘플 데이터를 다운로드합니다.

    wget https://raw.githubusercontent.com/ozlerhakan/mongodb-json-files/master/datasets/restaurant.json
  3. 샘플 데이터를 Amazon DocumentDB로 가져오기 — 데이터가 논리적 JSON 형식이므로 mongoimport유틸리티를 사용하여 데이터를 Amazon DocumentDB 클러스터로 가져옵니다.

    mongoimport --ssl \ --host="tutorialCluster.amazonaws.com:27017" \ --collection=restaurants \ --db=business \ --file=restaurant.json \ --numInsertionWorkers 4 \ --username=<yourUsername> \ --password=<yourPassword> \ --sslCAFile global-bundle.pem
  4. mongodump로 데이터 덤프 — 이제 Amazon DocumentDB 클러스터에 데이터가 있으므로 mongodump 유틸리티를 사용하여 해당 데이터의 이진 덤프를 가져올 수 있습니다.

    mongodump --ssl \ --host="tutorialCluster.us-east-1.docdb.amazonaws.com:27017"\ --collection=restaurants \ --db=business \ --out=restaurantDump.bson \ --numParallelCollections 4 \ --username=<yourUsername> \ --password=<yourPassword> \ --sslCAFile global-bundle.pem
  5. restaurants 컬렉션 삭제business 데이터베이스에서 restaurants 컬렉션을 복원하기 전에 먼저 다음과 같이 해당 데이터베이스에 이미 있는 컬렉션을 삭제해야 합니다.

    use business
    db.restaurants.drop()
  6. mongorestore로 데이터 복원 — 3단계에서 데이터의 이진 덤프가 생성되었으므로 이제 mongorestore 유틸리티를 사용하여 데이터를 Amazon DocumentDB 클러스터로 복원할 수 있습니다.

    mongorestore --ssl \ --host="tutorialCluster.us-east-1.docdb.amazonaws.com:27017" \ --numParallelCollections 4 \ --username=<yourUsername> \ --password=<yourPassword> \ --sslCAFile global-bundle.pem restaurantDump.bson
  7. mongoexport를 사용하여 데이터 내보내기 — 1단계에서 가져온 파일과 같은 JSON 파일 형식으로 클러스터에서 데이터를 내보내어 자습서를 완료합니다.

    mongoexport --ssl \ --host="tutorialCluster.node.us-east-1.docdb.amazonaws.com:27017" \ --collection=restaurants \ --db=business \ --out=restaurant2.json \ --username=<yourUsername> \ --password=<yourPassword> \ --sslCAFile global-bundle.pem
  8. 검증 — 다음 명령을 사용하여 5단계의 출력이 1단계와 동일한 결과를 내는지 검증할 수 있습니다.

    wc -l restaurant.json

    이 명령의 출력:

    2548 restaurant.json
    wc -l restaurant2.json

    이 명령의 출력:

    2548 restaurant2.json