선택 규칙 및 작업
테이블 매핑을 사용하여 사용할 테이블, 뷰 및 스키마를 지정하기 위해 선택 규칙과 작업을 이용할 수 있습니다. 선택 규칙 유형을 사용하는 테이블 매핑 규칙의 경우, 다음 값을 적용할 수 있습니다.
주의
이러한 규칙 내에 민감한 데이터를 포함하지 마세요.
| 파라미터 | 가능한 값 | 설명 |
|---|---|---|
rule-type |
selection |
선택 규칙입니다. 테이블 매핑을 지정할 때에는 1개 이상의 선택 규칙을 정의합니다. |
rule-id |
숫자 값. | 규칙을 식별하기 위한 고유한 숫자 값입니다. 콘솔을 사용하여 규칙을 생성하면 콘솔에서 대신 이 값을 생성합니다. |
rule-name |
영숫자 값입니다. | 규칙을 식별하기 위한 고유한 이름입니다. 콘솔을 사용하여 규칙을 생성하면 콘솔에서 대신 이 값을 생성합니다. |
rule-action |
include, exclude,
explicit |
규칙에서 선택한 특정 객체(단일 또는 다수)를 포함하거나 제외하는 값입니다. explicit이 지정되면 명시적으로 지정된 테이블 및 스키마에 해당하는 객체 하나만을 선택 및 포함할 수 있습니다. |
object-locator |
객체는 다음 파라미터를 사용합니다.
주의DMS 선택 규칙은 대/소문자를 구분합니다. 그러나 선택 결과는 소스 엔드포인트 데이터베이스 구성에 따라 달라집니다. 소스 엔드포인트가 대/소문자를 구분하지 않는 것으로 구성된 경우 객체 로케이터 값의 대/소문자는 중요하지 않습니다. 대/소문자를 구분하지 않는 엔드포인트의 DMS 선택 규칙에 올바른 객체 식별자가 사용되는지 확인합니다. |
규칙이 적용되는 각 스키마와 테이블 또는 뷰의 이름입니다. 또한 규칙에 테이블만 포함되는지, 뷰만 포함되는지, 또는 테이블과 뷰가 모두 포함되는지 여부를 지정할 수도 있습니다.
뷰에 지원되는 소스에는 다음이 포함됩니다.
참고AWS DMS는 소스 뷰를 대상 뷰에 로드하지 않습니다. 소스 뷰는 소스의 뷰와 이름이 동일한 대상의 동등한 테이블에 로드됩니다. 컬렉션이 포함된 데이터베이스에 대해 지원되는 소스는 다음과 같습니다.
|
load-order |
양의 정수입니다. 최대값은 2,147,483,647입니다. | 테이블 및 뷰를 로드하기 위한 우선순위입니다. 우선순위 값이 높은 테이블 및 뷰가 먼저 로드됩니다. |
filters |
객체의 배열입니다. | 소스를 필터링하기 위한 하나 이상의 객체입니다. 소스의 단일 열에서 필터링할 객체 파라미터를 지정합니다. 여러 열에서 필터링할 여러 객체를 지정합니다. 자세한 내용은 소스 필터 사용 섹션을 참조하세요. |
예 스키마에서 모든 테이블 마이그레이션
다음은 소스에서 이름이 Test인 스키마의 모든 테이블을 대상 엔드포인트로 마이그레이션하는 예입니다.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" } ] }
예 스키마에서 일부 테이블 마이그레이션
다음은 소스에서 이름이 DMS인 스키마에서 Test로 시작하는 테이블을 제외한 모든 테이블을 대상 엔드포인트로 마이그레이션하는 예입니다.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "DMS%" }, "rule-action": "exclude" } ] }
예 단일 스키마에서 지정된 단일 테이블 마이그레이션
다음은 소스의 Customer 스키마에서 NewCust 테이블을 대상 엔드포인트로 마이그레이션하는 예입니다.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "NewCust", "table-name": "Customer" }, "rule-action": "explicit" } ] }
참고
여러 선택 규칙을 지정하여 여러 테이블 및 스키마에서 명시적으로 선택할 수 있습니다.
예 설정된 순서대로 테이블 마이그레이션
테이블과 뷰는 로드 순서 값에 따라 마이그레이션되며, 값이 높을수록 마이그레이션 시퀀스에서 우선 순위를 받습니다. 다음 예제에서는 우선 순위 값이 2인 loadfirst, 우선 순위 값이 1인 loadsecond, 두 테이블을 마이그레이션합니다. 마이그레이션 작업은 loadsecond 테이블로 진행하기 전에 먼저 loadfirst 테이블을 처리합니다. 이 우선 순위 지정 메커니즘을 사용하면 마이그레이션 프로세스 중에 데이터베이스 객체 간의 종속성을 준수할 수 있습니다.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "loadsecond" }, "rule-action": "include", "load-order": "1" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "loadfirst" }, "rule-action": "include", "load-order": "2" } ] }
참고
load-order는 테이블 초기화에 적용됩니다. MaxFullLoadSubTasks가 1보다 큰 경우 연속 테이블 로드는 이전 테이블 로드가 완료될 때까지 기다리지 않습니다.
예 스키마에서 일부 뷰 마이그레이션
다음은 소스에서 이름이 Test인 스키마의 일부 뷰를 대상의 동등한 테이블로 마이그레이션하는 예입니다.
{ "rules": [ { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "view_DMS%", "table-type": "view" }, "rule-action": "include" } ] }
예 스키마에서 모든 테이블 및 뷰 마이그레이션
다음은 소스에서 이름이 report인 스키마의 모든 테이블 및 뷰를 대상의 동등한 테이블로 마이그레이션하는 예입니다.
{ "rules": [ { "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "report", "table-name": "%", "table-type": "all" }, "rule-action": "include" } ] }