기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS DMS가 소스로 지원하는 MongoDB 버전에 대한 자세한 내용은 의 소스 AWS DMS 섹션을 참조하세요.
MongoDB 버전 지원에 대한 다음 사항에 유의하세요.
AWS DMS 3.4.5 이상 버전은 MongoDB 버전 4.2와 4.4를 지원합니다.
AWS DMS 3.4.5 이상 버전과 MongoDB 4.2 이상 버전은 분산 트랜잭션을 지원합니다. MongoDB 분산 트랜잭션에 대한 자세한 내용은 MongoDB 설명서
의 Transactions 를 참조하세요. AWS DMS 3.5.0 이상 버전은 MongoDB 3.6 이전 버전을 지원하지 않습니다.
AWS DMS 3.5.1 이상 버전은 MongoDB 버전 5.0을 지원합니다.
AWS DMS 3.5.2 이상 버전은 MongoDB 버전 6.0을 지원합니다.
MongoDB가 생소하다면 다음과 같은 MongoDB 데이터베이스의 중요 개념을 잘 이해하시기 바랍니다.
-
MongoDB의 레코드는 필드와 값으로 구성된 데이터 구조인 문서입니다. 필드의 값에는 다른 문서, 배열 및 문서의 배열이 포함될 수 있습니다. 문서는 대체로 관계형 데이터베이스 테이블의 행에 상응합니다.
-
MongoDB의 모음은 문서 그룹이며 대략 관계형 데이터베이스 테이블에 상응합니다.
-
MongoDB의 데이터베이스는 모음 세트이며, 대략 관계형 데이터베이스의 스키마에 해당합니다.
-
내부적으로 MongoDB 문서는 이진 JSON(BSON) 파일에 문서의 각 필드별로 형식을 포함하는 압축 형식으로 저장됩니다. 각 문서에는 고유 ID가 있습니다.
AWS DMS는 MongoDB를 소스로 사용 시 두 가지 마이그레이션 모드, 즉 문서 모드 또는 테이블 모드를 지원합니다. MongoDB 엔드포인트를 생성할 때 또는 AWS DMS 콘솔에서 메타데이터 모드 파라미터를 설정하여 사용할 마이그레이션 모드를 지정합니다. 선택에 따라 엔드포인트 구성 패널에서 _id를 별도의 열로 확인 표시 버튼을 선택하여 프라이머리 키 역할을 하는 _id
라는 두 번째 열을 생성할 수 있습니다.
마이그레이션 모드 선택은 아래 설명된 대로 결과로 얻는 대상 데이터의 형식에 영향을 미칩니다.
- 문서 모드
-
문서 모드에서 MongoDB 문서는 있는 그대로 마이그레이션됩니다. 즉 해당 문서 데이터는 대상 테이블에서
_doc
라는 단일 열로 통합됩니다. 문서 모드는 MongoDB를 소스 엔드포인트로 사용할 때의 기본 설정입니다.예를 들어, myCollection이라는 MongoDB 모음의 문서를 가정해 보십시오.
> db.myCollection.find() { "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 } { "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }
데이터를 문서 모드를 사용하는 관계형 데이터베이스 테이블로 마이그레이션 하면, 데이터의 구조는 다음과 같습니다. MongoDB 문서의 데이터 필드는
_doc
열로 통합됩니다.oid_id _doc 5a94815f40bd44d1b02bdfe0 { "a" : 1, "b" : 2, "c" : 3 }
5a94815f40bd44d1b02bdfe1 { "a" : 4, "b" : 5, "c" : 6 }
선택적으로 추가 연결 속성
extractDocID
를 true로 설정하여 프라이머리 키 역할을 하는"_id"
라는 두 번째 열을 생성할 수 있습니다. CDC를 사용할 경우, 이 파라미터를 true로 설정합니다.문서 모드에서 AWS DMS는 다음과 같이 모음 생성 및 이름 바꾸기를 관리합니다.
-
소스 데이터베이스에 새 모음을 추가하면 AWS DMS가 모음의 새 대상 테이블을 생성하고 모든 문서를 복제합니다.
-
소스 데이터베이스에서 기존 모음의 이름을 바꾸면 AWS DMS는 대상 테이블의 이름을 바꾸지 않습니다.
대상 엔드포인트가 Amazon DocumentDB인 경우, 문서 모드에서 마이그레이션을 실행하세요.
-
- 테이블 모드
-
테이블 모드에서 AWS DMS는 MongoDB 문서의 각 상위 수준 필드를 대상 테이블의 열로 변환합니다. 필드가 중첩된 경우, AWS DMS는 중첩된 값을 단일 열로 평면화합니다. 그런 다음 AWS DMS는 대상 테이블의 열 집합에 키 필드와 데이터 형식을 추가합니다.
각 MongoDB 문서별로 AWS DMS는 각 키와 유형을 대상 테이블의 열 집합에 추가합니다. 예를 들어 AWS DMS는 테이블 모드를 사용해 앞의 예제를 다음 테이블로 마이그레이션합니다.
oid_id a b c 5a94815f40bd44d1b02bdfe0 1 2 3 5a94815f40bd44d1b02bdfe1 4 5 6 중첩된 값은 점으로 분리된 키 이름을 포함하는 열에 평면화됩니다. 열은 마침표로 각각 분리된 연속된 평면화된 필드 이름으로 이름이 지정됩니다. 예를 들어 AWS DMS는
a.b.c.
라는 이름이 지정된 열로{"a" : {"b" : {"c": 1}}}
같은 중첩된 값 필드를 가진 JSON 문서를 마이그레이션합니다.AWS DMS는 대상 열을 생성하기 위해 지정된 수의 MongoDB 문서를 스캔하고 모든 필드와 유형의 집합을 생성합니다. 그런 다음 AWS DMS는 이 집합을 사용해 대상 테이블의 열을 생성합니다. 콘솔을 사용해 MongoDB 소스 엔드포인트를 생성하거나 수정한다면, 스캔(검사)할 문서의 수를 지정할 수 있습니다. 기본 값은 1000 개 문서입니다. AWS CLI를 사용하는 경우, 추가 연결 속성
docsToInvestigate
를 사용할 수 있습니다.테이블 모드에서 AWS DMS는 문서와 모음을 다음과 같이 관리합니다.
-
기존 모음에 문서를 추가할 때 문서가 복제됩니다. 대상에 없는 필드가 있으면 이 필드는 복제되지 않습니다.
-
문서를 업데이트하면 업데이트된 문서가 복제됩니다. 대상에 없는 필드가 있으면 이 필드는 복제되지 않습니다.
-
문서 삭제는 완벽하게 지원됩니다.
-
새 모음을 CDC 작업 중에 추가해도 대상에 테이블이 새로 생성되지 않습니다.
-
AWS DMS는 변경 데이터 캡처(CDC) 단계에서 모음 이름 변경을 지원하지 않습니다.
-
주제
MongoDB를 AWS DMS 소스로 사용할 때 필요한 권한
MongoDB 소스를 이용한 AWS DMS 마이그레이션의 경우에는 루트 권한을 가진 사용자 계정을 생성하거나 마이그레이션할 데이터베이스에서만 권한이 있는 사용자를 생성할 수 있습니다.
다음 코드는 루트 계정이 되도록 사용자를 생성합니다.
use admin db.createUser( { user: "root", pwd: "
password
", roles: [ { role: "root", db: "admin" } ] } )
MongoDB 3.x 소스의 경우, 다음 코드는 마이그레이션할 데이터베이스에 대한 최소 권한이 있는 사용자를 생성합니다.
use
database_to_migrate
db.createUser( { user: "dms-user
", pwd: "password
", roles: [ { role: "read", db: "local" }, "read"] })
MongoDB 4.x 소스의 경우, 다음 코드는 최소 권한을 가진 사용자를 생성합니다.
{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
예를 들어 “admin” 데이터베이스에 다음 역할을 생성합니다.
use admin
db.createRole(
{
role: "changestreamrole",
privileges: [
{ resource: { db: "", collection: "" }, actions: [ "find","changeStream" ] }
],
roles: []
}
)
그리고 역할이 생성되면 마이그레이션할 데이터베이스에 사용자를 생성합니다.
> use test
> db.createUser(
{
user: "dms-user12345",
pwd: "password",
roles: [ { role: "changestreamrole", db: "admin" }, "read"]
})
CDC를 위한 MongoDB 복제본 세트 구성
MongoDB에서 지속적 복제 또는 CDC를 사용하려면 AWS DMS가 MongoDB 작업 로그(oplog)에 액세스할 수 있어야 합니다. oplog를 생성하려면 복제 세트를 배포하여 합니다(복제 세트가 없는 경우). 자세한 내용은 MongoDB 설명서
CDC는 소스 엔드포인트로 설정된 MongoDB 복제본 세트의 기본 또는 보조 노드와 함께 사용할 수 있습니다.
독립형 인스턴스를 복제본 집합으로 변환하려면
-
명령줄을 사용하여
mongo
에 연결합니다.mongo localhost
-
mongod
서비스를 중단합니다.service mongod stop
-
다음 명령을 사용하여
mongod
를 다시 시작합니다.mongod --replSet "rs0" --auth -port
port_number
-
다음 명령을 사용하여 복제본 집합에 대한 연결을 테스트합니다.
mongo -u root -p
password
--host rs0/localhost:port_number
--authenticationDatabase "admin"
문서 모드 마이그레이션을 계획하고 있다면 MongoDB 엔드포인트 생성 시 _id as a
separate column
옵션을 선택하십시오. 이 옵션을 선택하면 프라이머리 키로 작동하는 두 번째 열인 _id
가 생성됩니다. 이 두 번째 열은 AWS DMS가 데이터 조작 언어(DML) 작업을 지원하는 데 필요합니다.
참고
AWS DMS는 작업 로그(oplog)를 사용하여 지속적 복제 중의 변경 사항을 캡처합니다. AWS DMS가 레코드를 읽기 전에 MongoDB가 oplog에서 레코드를 삭제하면 작업이 실패합니다. 24시간 이상 변경 사항이 유지되도록 oplog의 크기를 조정하는 것이 좋습니다.
AWS DMS에서 MongoDB를 소스로 사용하기 위한 보안 요구 사항
AWS DMS는 MongoDB의 두 가지 인증 메서드를 지원합니다. 이 두 가지 인증 메서드는 암호를 암호화하는 데 사용되므로 authType
파라미터를 PASSWORD로 설정할 때만 사용됩니다.
MongoDB 인증 메서드는 다음과 같습니다.
-
MONGODB-CR - 이전 버전과의 호환성을 위해
-
SCRAM-SHA-1 - MongoDB 버전 3.x 및 4.0 사용 시 기본값
인증 메서드가 지정되어 있지 않으면 AWS DMS는 MongoDB 소스 버전의 기본 메서드를 사용합니다.
MongoDB 모음을 분할하고 병렬로 마이그레이션
마이그레이션 작업의 성능을 개선하기 위해 MongoDB 소스 엔드포인트는 테이블 매핑에서 병렬 전체 로드 옵션 두 가지를 지원합니다.
다시 말해 JSON 설정에서 병렬 전체 로드를 위해 테이블 매핑에 자동 분할 또는 범위 분할을 사용하여 모음을 병렬로 마이그레이션할 수 있습니다. 자동 분할을 사용하면 AWS DMS가 각 스레드에서 마이그레이션 소스를 자동으로 분할하는 기준을 지정할 수 있습니다. 범위 분할을 사용하면 DMS가 각 스레드에서 마이그레이션할 각 세그먼트의 특정 범위를 AWS DMS에 지시할 수 있습니다. 이러한 설정에 대한 자세한 내용은 테이블 및 컬렉션 설정 규칙과 작업 섹션을 참조하세요.
자동 분할 범위를 사용하여 MongoDB 데이터베이스를 병렬로 마이그레이션
AWS DMS가 각 스레드의 데이터를 자동으로 파티셔닝(분할)하는 기준을 지정하여 문서를 병렬로 마이그레이션할 수 있습니다. 특히 스레드당 마이그레이션할 문서 수를 지정합니다. AWS DMS는 이 방식을 사용하여 스레드당 성능을 극대화하는 세그먼트 경계 최적화를 시도합니다.
테이블 매핑에서 다음 테이블 설정 옵션을 사용하여 분할 기준을 지정할 수 있습니다.
테이블 설정 옵션 |
설명 |
---|---|
|
(필수) MongoDB를 소스로 사용하는 경우 |
|
(선택 사항) 마이그레이션에 사용되는 총 파티션(세그먼트) 수. 기본값은 16입니다. |
|
(선택 사항) 이 옵션을 |
|
(선택 사항) 각 파티션의 경계를 결정할 때 한 번에 건너뛰는 레코드 수입니다. AWS DMS는 페이지 매김 건너뛰기 방식을 사용하여 파티션의 최소 경계를 결정합니다. 기본값은 10,000입니다. 상대적으로 큰 값을 설정하면 커서 시간이 초과되고 작업이 실패할 수 있습니다. 상대적으로 작은 값을 설정하면 페이지당 작업 수가 늘어나고 전체 로드 속도가 느려집니다. |
|
(선택 사항) 배치 하나에서 반환되는 문서 수를 제한합니다. 배치마다 서버를 왕복해야 합니다. 배치 크기가 0인 경우, 커서는 서버에서 정의한 최대 배치 크기를 사용합니다. 기본값은 0입니다. |
다음 예제는 자동 분할을 위한 테이블 매핑을 보여 줍니다.
{
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "admin",
"table-name": "departments"
},
"rule-action": "include",
"filters": []
},
{
"rule-type": "table-settings",
"rule-id": "2",
"rule-name": "2",
"object-locator": {
"schema-name": "admin",
"table-name": "departments"
},
"parallel-load": {
"type": "partitions-auto",
"number-of-partitions": 5,
"collection-count-from-metadata": "true",
"max-records-skip-per-page": 1000000,
"batch-size": 50000
}
}
]
}
자동 분할에는 다음과 같은 제한이 있습니다. 각 세그먼트의 마이그레이션은 모음 개수와 모음의 최소 _id
를 개별적으로 가져옵니다. 그런 다음 페이지 매김 건너뛰기를 사용하여 해당 세그먼트의 최소 경계를 계산합니다.
따라서 모음의 모든 세그먼트 경계를 계산할 때까지 각 모음의 최소 _id
값이 일정하게 유지되어야 합니다. 세그먼트 경계를 계산하는 동안 모음의 최소 _id
값을 변경하면 데이터가 손실되거나 행 중복 오류가 발생할 수 있습니다.
범위 분할을 사용하여 MongoDB 데이터베이스를 병렬로 마이그레이션
스레드의 각 세그먼트마다 범위를 지정하여 문서를 병렬로 마이그레이션할 수 있습니다. 이 방식을 사용하면 스레드당 선택한 문서 범위에 따라 각 스레드에서 마이그레이션할 특정 문서를 AWS DMS에 알려 줄 수 있습니다.
다음 예제에 나온 MongoDB 모음에는 항목 7개와 프라이머리 키 _id
가 있습니다.

AWS DMS이 병렬로 마이그레이션할 3개의 특정 세그먼트로 모음을 분할하려면 마이그레이션 작업에 테이블 매핑 규칙을 추가하면 됩니다. 이 방법은 다음 JSON 예제에 나와 있습니다.
{ // Task table mappings:
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "testdatabase",
"table-name": "testtable"
},
"rule-action": "include"
}, // "selection" :"rule-type"
{
"rule-type": "table-settings",
"rule-id": "2",
"rule-name": "2",
"object-locator": {
"schema-name": "testdatabase",
"table-name": "testtable"
},
"parallel-load": {
"type": "ranges",
"columns": [
"_id",
"num"
],
"boundaries": [
// First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79
// and num less-than-or-equal-to 2.
[
"5f805c97873173399a278d79",
"2"
],
// Second segment selects documents with _id > 5f805c97873173399a278d79 and
// _id less-than-or-equal-to 5f805cc5873173399a278d7c and
// num > 2 and num less-than-or-equal-to 5.
[
"5f805cc5873173399a278d7c",
"5"
]
// Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c.
] // :"boundaries"
} // :"parallel-load"
} // "table-settings" :"rule-type"
] // :"rules"
} // :Task table mappings
이 테이블 매핑 정의는 소스 모음을 세 개의 세그먼트로 분할하고 병렬로 마이그레이션합니다. 분할 경계는 다음과 같습니다.
Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records)
Data with _id > "5f805c97873173399a278d79" and num > 2 and _id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 (3 records)
Data with _id > "5f805cc5873173399a278d7c" and num > 5 (2 records)
마이그레이션 작업이 완료되면 다음 예제와 같이 작업 로그에서 테이블이 병렬로 로드된 것을 확인할 수 있습니다. 소스 테이블에서 각 세그먼트를 언로드하는 데 사용된 MongoDB find
절도 확인할 수 있습니다.
[TASK_MANAGER ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752)
[SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157)
[SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328)
[SOURCE_UNLOAD ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.
[TASK_MANAGER ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752)
[SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157)
[SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328)
[SOURCE_UNLOAD ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.
[TARGET_LOAD ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480.
[TASK_MANAGER ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.
현재, AWS DMS는 다음과 같은 MongoDB 데이터 형식을 세그먼트 키 열로 지원합니다.
-
Double
-
String
-
ObjectId
-
32비트 정수
-
64비트 정수
MongoDB를 AWS DMS 소스로 사용 시 여러 데이터베이스 마이그레이션
AWS DMS 버전 3.4.5 이상은 지원되는 모든 MongoDB 버전에서 단일 작업으로 여러 데이터베이스 마이그레이션을 지원합니다. 여러 데이터베이스를 마이그레이션하려면 다음 단계에 따릅니다.
-
MongoDB 소스 엔드포인트를 생성할 때 다음 중 하나를 수행합니다.
-
DMS 콘솔의 엔드포인트 생성 페이지에서 엔드포인트 구성 아래 데이터베이스 이름을 비워 둡니다.
-
AWS CLI
CreateEndpoint
명령을 사용하여MongoDBSettings
의DatabaseName
파라미터에 빈 문자열 값을 할당합니다.
-
-
MongoDB 소스에서 마이그레이션하려는 각 데이터베이스의 데이터베이스 이름을 작업 테이블 매핑의 스키마 이름으로 지정합니다. 콘솔의 안내 입력을 사용하거나 JSON에서 직접 이 작업을 수행할 수 있습니다. 안내 입력에 대한 자세한 내용은 콘솔에서 테이블 선택 및 변환 규칙 지정 섹션을 참조하세요. JSON에 대한 자세한 내용은 선택 규칙 및 작업 섹션을 참조하세요.
예를 들면 다음과 같이 JSON을 지정하여 MongoDB 데이터베이스 3개를 마이그레이션할 수 있습니다.
예 스키마에서 모든 테이블 마이그레이션
다음 JSON은 소스 엔드포인트에 있는 Customers
, Orders
, Suppliers
데이터베이스의 모든 테이블을 대상 엔드포인트로 마이그레이션합니다.
{
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "Customers",
"table-name": "%"
},
"rule-action": "include",
"filters": []
},
{
"rule-type": "selection",
"rule-id": "2",
"rule-name": "2",
"object-locator": {
"schema-name": "Orders",
"table-name": "%"
},
"rule-action": "include",
"filters": []
},
{
"rule-type": "selection",
"rule-id": "3",
"rule-name": "3",
"object-locator": {
"schema-name": "Inventory",
"table-name": "%"
},
"rule-action": "include",
"filters": []
}
]
}
AWS DMS에서 MongoDB를 소스로 사용 시 적용되는 제한 사항
다음은 MongoDB를 AWS DMS에서 원본으로 사용 시 제한 사항입니다.
-
테이블 모드에서 모음에 있는 문서의 데이터 형식은 동일한 필드의 값에 사용하는 데이터 형식과 일치해야 합니다. 예를 들어 모음의 문서에
'{ a:{ b:value ... }'
가 포함된 경우, 해당a.b
필드의value
를 참조하는 모음의 모든 문서는 모음의 어디에 표시되든value
에 동일한 데이터 형식을 사용해야 합니다. -
_id
옵션이 별도의 열로 설정된 경우 ID 문자열이 200자를 초과할 수 없습니다. -
객체 ID와 배열 형식 키는 테이블 모드에서
oid
및array
접두사가 붙은 열로 변환됩니다.내부적으로 이러한 열은 접두사 이름으로 참조됩니다. AWS DMS에서 이러한 열을 참조하는 변환 규칙을 사용하는 경우, 접두사가 붙은 열을 지정해야 합니다. 예를 들면
${oid__id}
를 지정하고${_id}
를 지정하지 않거나${array__addresses}
를 지정하고${_addresses}
는 지정하지 않습니다. -
모음 이름과 키 이름에는 달러 기호($)를 포함할 수 없습니다.
-
AWS DMS는 RDBMS 대상이 있는 테이블 모드에서 대소문자가 다른 동일한 필드를 포함하는 모음은 지원하지 않습니다. 예를 들어 AWS DMS는
Field1
과field1
이라는 두 개의 모음을 사용할 수 없습니다. -
테이블 모드와 문서 모드에는 앞서 설명한 제한이 있습니다.
-
자동 분할을 사용한 병렬 마이그레이션에는 앞에서 설명한 제한 사항이 있습니다.
-
MongoDB에는 소스 필터가 지원되지 않습니다.
-
AWS DMS는 중첩 수준이 97보다 큰 문서는 지원하지 않습니다.
-
AWS DMS는 MongoDB 버전 5.0의 다음 기능을 지원하지 않습니다.
라이브 리샤딩
클라이언트 측 필드 수준 암호화(CSFLE)
시계열 모음 마이그레이션
참고
Amazon DocumentDB는 시계열 모음을 지원하지 않기 때문에 전체 로드 단계에서 마이그레이션된 시계열 모음은 Amazon DocumentDB에서 일반 모음으로 변환됩니다.
MongoDB를 AWS DMS 소스로 사용 시 엔드포인트 구성 설정
MongoDB 소스 엔드포인트를 설정할 때 AWS DMS 콘솔을 사용하여 여러 엔드포인트 구성 설정을 지정할 수 있습니다.
다음 표에서는 MongoDB 데이터베이스를 AWS DMS 소스로 사용할 때 제공되는 구성 설정을 설명합니다.
설정(속성) | 유효값 | 기본값과 설명 |
---|---|---|
인증 모드 |
|
값 |
인증 소스 |
유효한 MongoDB 데이터베이스 이름입니다. |
인증을 위한 보안 인증 정보를 검증하는 데 사용할 MongoDB 데이터베이스의 이름입니다. 기본값은 |
인증 메커니즘 |
|
인증 메커니즘입니다. |
메타데이터 모드 |
문서 및 테이블 |
문서 모드 또는 테이블 모드를 선택합니다. |
스캔할 문서 수( |
|
이 옵션은 테이블 모드에서 대상 테이블 정의를 정의할 때만 사용하세요. |
_id를 별도의 열로 |
상자의 확인 표시 |
프라이머리 키 역할을 하는 |
|
NUMBER 추가 연결 속성(ECA) 전용입니다. |
이 설정은 밀리초 단위이며 MongoDB 클라이언트의 연결 제한 시간을 구성합니다. 값이 0보다 작거나 같으면 MongoDB 클라이언트 기본값이 사용됩니다. |
|
불
|
true인 경우, CDC 업데이트 이벤트 중에 AWS DMS는 업데이트된 전체 문서를 대상으로 복사합니다. false로 설정하면 AWS DMS는 MongoDB update 명령을 사용하여 대상에서 문서의 수정된 필드만 업데이트합니다. |
|
불
|
true인 경우, AWS DMS는 데이터를 샤드 모음에 복제합니다. AWS DMS는 대상 엔드포인트가 DocumentDB Elastic 클러스터인 경우에만 이 설정을 사용합니다. 이 설정이 true인 경우 다음 사항에 유의하세요.
|
문서를 메타데이터 모드로 선택하면 다른 옵션을 사용할 수 있습니다.
대상 엔드포인트가 DocumentDB인 경우, 문서 모드에서 마이그레이션을 실행해야 합니다. 또한 소스 엔드포인트를 수정하고 _id를 별도의 열로 옵션을 선택합니다. 이는 소스 MongoDB 워크로드에 트랜잭션이 포함된 경우에 필수 사전 요구 사항입니다.
MongoDB용 소스 데이터 형식
AWS DMS용 원본으로 MongoDB를 사용하는 데이터 마이그레이션은 대다수 MongoDB 데이터 형식을 지원합니다. 다음 표에서 AWS DMS를 사용하는 경우 지원되는 MongoDB 원본 데이터 형식과 AWS DMS 데이터 형식으로부터의 기본 매핑을 확인할 수 있습니다. MongoDB 데이터 형식에 대한 자세한 내용은 MongoDB 설명서의 BSON Types(BSON 형식)
대상에서 매핑된 데이터 형식을 확인하는 방법에 대한 정보는 사용 중인 대상 엔드포인트에 대한 섹션을 참조하십시오.
AWS DMS 데이터 형식에 관한 추가 정보는 AWS Database Migration Service에서 사용되는 데이터 형식 단원을 참조하십시오.
MongoDB 데이터 형식 |
AWS DMS 데이터 유형 |
---|---|
불 |
부울 |
바이너리 |
BLOB |
날짜 |
날짜 |
Timestamp |
날짜 |
정수 |
INT4 |
Long |
INT8 |
Double |
REAL8 |
String(UTF-8) |
CLOB |
배열 |
CLOB |
OID |
String |
REGEX |
CLOB |
코드 |
CLOB |