이 자습서에서는 MongoDB 네이티브 도구를 사용하여 MongoDB의 온-프레미스 또는 클라우드 인스턴스에서 Azure DocumentDB로 데이터베이스의 오프라인(일회성) 마이그레이션을 수행합니다. MongoDB 네이티브 도구는 기존 MongoDB 인스턴스에서 데이터 조작을 용이하게 하는 이진 파일 집합입니다. 이 문서의 초점은 mongoexport/mongoimport 또는 mongodump/mongorestore를 사용하여 MongoDB 인스턴스에서 데이터를 마이그레이션하는 것입니다. 네이티브 도구는 연결 문자열을 사용하여 MongoDB에 연결되므로 어디서나 도구를 실행할 수 있습니다. 네이티브 도구는 총 마이그레이션 시간이 중요하지 않은 작은 데이터 세트에 대한 가장 간단한 솔루션이 될 수 있습니다.
필수 조건
Azure 구독
- Azure 구독이 없는 경우 체험 계정 만들기
기존 Azure DocumentDB 클러스터
- 클러스터가 없는 경우 새 클러스터를 만듭니다.
- 컴퓨터에 설치된 MongoDB 네이티브 도구입니다.
Prepare
마이그레이션을 시작하기 전에 마이그레이션을 위해 Azure DocumentDB 계정 및 기존 MongoDB 인스턴스를 준비했는지 확인합니다.
- MongoDB 인스턴스(원본)
- 미리 배포 평가를 완료하여 원본 인스턴스와 대상 계정 간에 비호환성 및 경고 목록이 있는지 확인합니다.
- MongoDB 네이티브 도구가 기존(원본) MongoDB 인스턴스와 동일한 버전과 일치하는지 확인합니다.
- MongoDB 인스턴스의 버전이 Azure DocumentDB와 다른 경우 MongoDB 네이티브 도구 버전을 모두 설치하고 각각 MongoDB 및 Azure DocumentDB에 적절한 도구 버전을 사용합니다.
- 아직 없는 경우
readWrite권한이 있는 사용자를 추가합니다. 결국 mongoexport 및 mongodump 도구에서 이 자격 증명을 사용합니다.
- Azure DocumentDB (대상)
- Azure DocumentDB 계정의 자격 증명을 수집합니다.
- Azure DocumentDB에서 방화벽 설정을 구성합니다.
팁 (조언)
추가 방화벽 문제를 방지하려면 MongoDB 인스턴스와 동일한 네트워크 내에서 이러한 도구를 실행하는 것이 좋습니다.
적절한 MongoDB 네이티브 도구 선택
오프라인 마이그레이션에 적합한 MongoDB 네이티브 도구를 선택할 때 몇 가지 높은 수준의 고려 사항이 있습니다.
마이그레이션 수행
기본 설정 네이티브 도구를 사용하여 원본 MongoDB 인스턴스에서 대상 Azure DocumentDB 계정으로 컬렉션을 마이그레이션합니다. 도구 선택에 대한 자세한 내용은 마이그레이션 옵션을 참조하세요.
팁 (조언)
Azure DocumentDB로 가져오려는 작은 JSON 파일이 있는 경우 mongoimport 도구는 데이터를 수집하기 위한 빠른 솔루션입니다.
원본 MongoDB 인스턴스에서 데이터를 내보내려면 터미널을 열고 여기에 나열된 세 가지 방법 중 일부를 사용합니다.
--host,--username,--password인수를 지정하여 JSON 레코드에 연결하고 내보냅니다.mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --out <filename>.json인수를 추가하여 MongoDB 데이터의 하위 집합을 내보냅니다
--query. 이 인수는 도구가 필터와 일치하는 문서만 내보내도록 합니다.mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.jsonAzure DocumentDB에서 데이터를 내보냅니다.
mongoexport \ --uri <target-connection-string> --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json
이전에 내보낸 파일을 대상 Azure DocumentDB 계정으로 가져옵니다.
mongoimport \ --file <filename>.json \ --type json \ --db <database-name> \ --collection <collection-name> \ --ssl \ --uri <target-connection-string>mongoimport에서 터미널 출력을 모니터링합니다. 출력은 가져오기 작업의 상태에 대한 업데이트가 포함된 텍스트 줄을 터미널에 출력합니다.