

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

# 변환 규칙 및 작업
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations"></a>

변환 작업을 사용하여 선택한 스키마, 테이블 또는 뷰에 적용할 변환을 지정합니다. 변환 규칙은 선택적입니다.

## 제한 사항
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Limitations"></a>
+ 동일한 객체(스키마, 테이블, 열, 테이블-테이블스페이스 또는 인덱스-테이블스페이스)에 대해 둘 이상의 변환 규칙 작업을 적용할 수 없습니다. 각 변형 작업이 서로 다른 객체에 적용되는 한, 모든 레벨에 여러 변환 규칙 작업을 적용할 수 있습니다. 그러나 동일한 열에 대해 `ADD-COLUMN` 또는 `CHANGE-DATA-TYPE`와 같은 다른 변환을 수행할 수 있는 데이터 마스킹 변환 규칙을 사용할 때는 이 제한이 적용되지 않습니다.
+ 변환 규칙의 테이블 이름과 열 이름은 대소문자를 구분합니다. 예를 들어, Oracle 또는 Db2 데이터베이스의 테이블 이름과 열 이름을 대문자로 제공해야 합니다.
+ 오른쪽에서 왼쪽으로 쓰는 언어를 사용하는 열 이름에는 변환이 지원되지 않습니다.
+ 이름에 특수 문자(예: \#, \\, /, -)가 포함된 열에서는 변환을 수행할 수 없습니다.
+ BLOB/CLOB 데이터 형식에 매핑된 열에 대해 지원되는 유일한 변환은 대상에서 열을 삭제하는 것입니다.
+ AWS DMS 는 두 소스 테이블을 단일 대상 테이블로 복제하는 것을 지원하지 않습니다.는 AWS DMS 복제 작업의 변환 규칙에 따라 테이블에서 테이블로, 열에서 열로 레코드를 복제합니다. 객체 이름은 중복되지 않도록 고유한 이름이어야 합니다.

  예를 들어, 소스 테이블에는 이름이 `ID`인 열이 있고 그에 상응하는 대상 테이블에는 `id`라는 기존 열이 있습니다. 하나의 규칙에서 `ADD-COLUMN` 문을 사용하여 `id`라는 새 열을 추가하고 SQLite 문을 사용하여 열을 사용자 지정 값으로 채우는 경우, 이름이 `id`인 모호한 중복 객체가 생성되며 이 객체는 지원되지 않습니다.
+ 변환 규칙을 생성할 때는 예를 들어 `column-name`를 `%`로 설정할 때 선택 규칙이 여러 열을 지정하는 경우에만 `data-type` 파라미터를 사용하는 것이 좋습니다. `data-type`을 사용하여 단일 열을 선택하는 것은 권장하지 않습니다.
+ AWS DMS 는 소스 객체와 대상 객체(테이블)가 동일한 데이터베이스/스키마에 있는 변환 규칙을 지원하지 않습니다. 변환 규칙에서 소스 및 대상과 동일한 테이블을 사용하면 테이블 데이터의 의도하지 않은 변경, 테이블 구조 수정 또는 테이블 삭제를 포함하되 이에 국한되지 않는 예기치 않고 잠재적으로 유해한 결과가 발생할 수 있습니다.

## 값
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Values"></a>

변환 규칙 유형을 사용하는 테이블 매핑 규칙의 경우, 다음 값을 적용할 수 있습니다.


| 파라미터 | 가능한 값 | 설명 | 
| --- | --- | --- | 
| rule-type | transformation | 선택 규칙에서 지정한 각 객체에 규칙을 적용하는 값입니다. 달리 지정되지 않는 한, transformation을 사용합니다. | 
| rule-id | 숫자 값. | 규칙을 식별하기 위한 고유한 숫자 값입니다. 동일한 객체(스키마, 테이블, 열, 테이블 간 공간 또는 인덱스 테이블 공간)에 대해 여러 변환 규칙을 지정하는 경우는 더 낮은 rule-id로 변환 규칙을 AWS DMS 적용합니다. | 
| rule-name | 영숫자 값입니다. | 규칙을 식별하기 위한 고유한 이름입니다. | 
| object-locator | 객체는 다음 파라미터를 사용합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | 규칙이 적용되는 각 스키마, 테이블 또는 뷰, 테이블 테이블스페이스, 인덱스 테이블스페이스 및 열의 이름입니다. 각 `object-locator` 파라미터(`data-type` 제외) 값의 전부 또는 일부에 '%'(퍼센트 기호)를 와일드카드로 사용할 수 있습니다. 따라서 다음 항목들을 일치시킬 수 있습니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html)<br />또한 `table-tablespace-name` 또는 `index-tablespace-name` 파라미터는 Oracle 소스 엔드포인트와 일치시키는 데만 사용할 수 있습니다. 단일 규칙에서 `table-tablespace-name` 또는 `index-tablespace-name`를 지정할 수 있지만 둘 다 지정할 수는 없습니다. 따라서 다음 항목 중 *하나*와 일치시킬 수 있습니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | 
| rule-action | `add-column`, `include-column`, `remove-column`<br />`rename`<br />`convert-lowercase`, `convert-uppercase`<br />`add-prefix`, `remove-prefix`, `replace-prefix`<br />`add-suffix`, `remove-suffix`, `replace-suffix`<br />`define-primary-key`<br />`change-data-type`<br />`add-before-image-columns`<br />`data-masking-digits-mask`<br />`data-masking-digits-randomize`<br />`data-masking-hash-mask` | 객체에 적용할 변환. 모든 변환 규칙 작업은 대소문자를 구분합니다.<br />`rule-action` 파라미터의 `add-column` 값은 테이블에 열을 추가합니다. 하지만 같은 테이블의 기존 열과 이름이 같은 새 열을 추가할 수는 없습니다.<br />`expression` 및 `data-type` 파라미터와 함께 사용할 경우 `add-column`은 새 열 데이터의 값을 지정합니다.<br />`rule-action`에 대한 `change-data-type` 값은 `column` 규칙 대상에만 사용할 수 있습니다.<br />`rule-action` 파라미터의 `include-column` 값은 *기본적으로 모든 열을 삭제*하고 *지정된 열을 포함*하도록 테이블 모드를 변경합니다. `include-column` 규칙을 여러 번 호출하면 여러 열이 대상에 포함됩니다.<br />`define-primary-key` 규칙의 스키마 또는 테이블 이름에 와일드카드(`%`)가 있으면 이 규칙을 사용할 수 없습니다.<br />기존 작업의 경우 `remove-column`, `rename` 또는 `add-prefix` 같은 대상 테이블 스키마를 변경하는 변환 규칙 작업은 작업을 다시 시작할 때까지 적용되지 않습니다. 변환 규칙을 추가한 후 작업을 재개하면 변경된 열에 예기치 않은 동작이 발생할 수 있으며, 여기에는 열 데이터 누락이 포함될 수 있습니다. 변환 규칙이 제대로 작동하려면 작업을 다시 시작해야 합니다.<br />`data-masking-digits-mask`, `data-masking-digits-randomize`및 `data-masking-hash-mask`는 대상에 로드할 때 테이블의 하나 이상의 열에 포함된 민감한 정보를 마스킹하기 위한 것입니다. 이러한 변환은 열 규칙 대상에만 사용할 수 있습니다. 자세한 내용은 [데이터 마스킹을 사용하여 민감한 정보 숨기기](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.md) 섹션을 참조하세요. | 
| rule-target | schema, table, column, table-tablespace, index-tablespace | 변환할 객체의 유형입니다.`table-tablespace` 및 `index-tablespace` 값은 Oracle 대상 엔드포인트에만 사용할 수 있습니다.<br />`object-locator`: `table-tablespace-name` 또는 `index-tablespace-name` 이름의 일부로 지정하는 파라미터의 값을 지정해야 합니다. | 
| value | 대상 유형에서 명명 규칙을 따르는 영숫자 값입니다. | rename과 같이 입력이 필요한 작업의 새 값입니다. | 
| old-value | 대상 유형에서 명명 규칙을 따르는 영숫자 값입니다. | replace-prefix와 같이 대체가 필요한 작업의 이전 값입니다. | 
| data-type | `type` – `rule-action`이 `add-column`인 경우 사용할 데이터 형식 또는 `rule-action`이 `change-data-type`인 경우 대체 데이터 형식입니다.<br />또는 `rule-action`이 `change-data-type`이고, `column-name`의 값이 `"%"`이고, 기존 데이터 형식을 식별하기 위한 추가 `data-type` 파라미터가 `object-locator`에 포함된 경우 대체 데이터 형식의 이름입니다.<br />AWS DMS 는 다음 DMS 데이터 형식에 대한 열 데이터 형식 변환을 지원합니다. `"bytes", "date", "time", "datetime", "int1", "int2", "int4", "int8", "numeric", "real4", "real8", "string", "uint1", "uint2", "uint4", "uint8", "wstring", "blob", "nclob", "clob", "boolean", "set", "list" "map", "tuple"`  AWS DMS 는 지원되는 형식으로만 한 유형에서 다른 유형으로 변환을 적용할 수 있습니다. 예: DATE는 `YYYY:MM:DD/YYYY-MM-DD.`로 표시되어야 하며 `YYYY:MM:DD HH:MM:SS/YYYY-MM-DD HH:MM:SS` DATETIME은 로 표시되어야 합니다. TIME은 `HH:MM:SS`에 표시되어야 합니다. <br />`precision` – 추가된 열 또는 대체 데이터 형식에 정밀도가 있는 경우 정밀도를 지정하는 정수 값.<br />`scale` – 추가된 열 또는 대체 데이터 형식에 척도가 있는 경우 척도를 지정하는 정수 값 또는 날짜 시간 값.<br />`length` – 새 열 데이터의 길이(`add-column`과 함께 사용하는 경우). | 다음은 대체할 기존 데이터 형식을 지정하는 `data-type` 파라미터의 예입니다.<pre>{<br />	"rules": [{<br />			"rule-type": "selection",<br />			"rule-id": "1",<br />			"rule-name": "1",<br />			"object-locator": {<br />				"schema-name": "%",<br />				"table-name": "%"<br />			},<br />			"rule-action": "include"<br />		},<br />		{<br />			"rule-type": "transformation",<br />			"rule-id": "2",<br />			"rule-name": "2",<br />			"rule-target": "column",<br />			"object-locator": {<br />				"schema-name": "test",<br />				"table-name": "table_t",<br />				"column-name": "col10"<br />			},<br />			"rule-action": "change-data-type",<br />			"data-type": {<br />				"type": "string",<br />				"length": "4092",<br />				"scale": ""<br />			}<br />		}<br />	]<br />}</pre><br />여기서는 `table_t` 테이블의 `col10` 열이 `string` 데이터 유형으로 변경됩니다. | 
| expression | SQLite 구문을 따르는 영숫자 값입니다. | `rename-schema`로 설정된 `rule-action`과 함께 사용되는 경우 `expression` 파라미터는 새 스키마를 지정합니다. `rename-table`로 설정된 `rule-action`과 함께 사용되는 경우 `expression`은 새 테이블을 지정합니다. `rename-column`으로 설정된 `rule-action`과 함께 사용되는 경우 `expression`은 새 열 이름을 지정합니다.<br />`add-column`으로 설정된 `rule-action`과 함께 사용되는 경우 `expression`은 새 열을 구성하는 데이터를 지정합니다.<br />이 파라미터에는 표현식만 지원된다는 점에 유의하세요. 연산자와 명령은 지원되지 않습니다.<br />변환 규칙에 표현식을 사용하는 방법에 관한 자세한 내용은 [변환 규칙 표현식을 사용하여 열 내용 정의](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions.md) 섹션을 참조하세요.<br />SQLite 표현식에 관한 자세한 내용은 [SQLite 함수를 사용하여 표현식 작성](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions.md#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Expressions-SQLite) 섹션을 참조하세요. | 
| primary-key-def | 객체는 다음 파라미터를 사용합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | 이 파라미터는 변환된 테이블 또는 뷰에서 고유 키의 이름, 유형 및 콘텐츠를 정의할 수 있습니다. 이는 rule-action이 define-primary-key로 설정되고 rule-target이 table로 설정된 경우에 해당됩니다. 기본적으로 고유 키는 프라이머리 키로 정의됩니다. | 
| before-image-def | 객체는 다음 파라미터를 사용합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | 이 파라미터는 이전 이미지 열을 식별하는 명명 규칙을 정의하고 대상에 이전 이미지 열을 만들 수 있는 소스 열을 식별하는 필터를 지정합니다. `rule-action`이 `add-before-image-columns`로 설정되고 `rule-target`이 `column`으로 설정된 경우 이 파라미터를 지정할 수 있습니다.<br />`column-prefix`와 `column-suffix`를 모두 빈 문자열로 설정하지 마세요.<br />`column-filter`에서 다음을 선택합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) `before-image-def` 파라미터는 CLOB 및 BLOB와 같은 대용량 이진 객체(LOB) 데이터 유형을 지원하지 않습니다. 데이터 유형이 LOB로 설정된 경우 테이블에 빈 열이 생성됩니다. <br /> AWS DMS 대상 엔드포인트에서 이전 이미지 지원에 관한 자세한 내용은 다음을 참조하세요.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.html) | 

## 예제
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.Examples"></a>

**Example 스키마 이름 바꾸기**  
다음은 소스의 스키마 이름 `Test`를 대상의 `Test1`로 변경하는 예입니다.  

```
{

    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Test",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-action": "rename",
            "rule-target": "schema",
            "object-locator": {
                "schema-name": "Test"
            },
            "value": "Test1"
        }
    ]
}
```

**Example 테이블 이름 바꾸기**  
다음은 소스의 테이블 이름 `Actor`를 대상의 `Actor1`로 변경하는 예입니다.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Test",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-action": "rename",
            "rule-target": "table",
            "object-locator": {
                "schema-name": "Test",
                "table-name": "Actor"
            },
            "value": "Actor1"
        }
    ]
}
```

**Example 열 이름 바꾸기**  
다음은 `Actor` 테이블에서 소스의 열 이름 `first_name`을 대상의 `fname`으로 변경하는 예입니다.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "test",
                "table-name": "%"
            },
            "rule-action": "include"
        },
         {
            "rule-type": "transformation",
            "rule-id": "4",
            "rule-name": "4",
            "rule-action": "rename",
            "rule-target": "column",
            "object-locator": {
                "schema-name": "test",
                "table-name": "Actor",
                "column-name" : "first_name"
            },
            "value": "fname"
        }
    ]
}
```

**Example Oracle 테이블 테이블스페이스의 이름 바꾸기**  
다음은 Oracle 소스에서 `Actor`라는 테이블에 대해 `SetSpace`라는 테이블 테이블스페이스의 이름을 Oracle 대상 엔드포인트의 `SceneTblSpace`로 바꾸는 예입니다.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Play",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-action": "rename",
            "rule-target": "table-tablespace",
            "object-locator": {
                "schema-name": "Play",
                "table-name": "Actor",
                "table-tablespace-name": "SetSpace"
            },
            "value": "SceneTblSpace"
        }
    ]
}
```

**Example Oracle 인덱스 테이블스페이스의 이름 바꾸기**  
다음은 Oracle 소스에서 `Actor`라는 테이블에 대해 `SetISpace`라는 인덱스 테이블스페이스의 이름을 Oracle 대상 엔드포인트의 `SceneIdxSpace`로 바꾸는 예입니다.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Play",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-action": "rename",
            "rule-target": "table-tablespace",
            "object-locator": {
                "schema-name": "Play",
                "table-name": "Actor",
                "table-tablespace-name": "SetISpace"
            },
            "value": "SceneIdxSpace"
        }
    ]
}
```

**Example 열 추가**  
다음 예에서는 스키마 `test`의 테이블 `Actor`에 `datetime` 열을 추가합니다.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "test",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-action": "add-column",
            "rule-target": "column",
            "object-locator": {
                "schema-name": "test",
                "table-name": "actor"
            },
            "value": "last_updated",
            "data-type": {
                "type": "datetime",
                "precision": 6
            }
        }
    ]
}
```

**Example 열 제거**  
다음은 소스의 `Actor`라는 테이블을 변환하여 `col` 문자로 시작하는 모든 열을 대상에서 제거하는 예입니다.  

```
{
 	"rules": [{
		"rule-type": "selection",
		"rule-id": "1",
		"rule-name": "1",
		"object-locator": {
			"schema-name": "test",
			"table-name": "%"
		},
		"rule-action": "include"
	}, {
		"rule-type": "transformation",
		"rule-id": "2",
		"rule-name": "2",
		"rule-action": "remove-column",
		"rule-target": "column",
		"object-locator": {
			"schema-name": "test",
			"table-name": "Actor",
			"column-name": "col%"
		}
	}]
 }
```

**Example 소문자로 변환**  
다음은 소스의 테이블 이름 `ACTOR`를 대상의 `actor`로 변환하는 예입니다.  

```
{
	"rules": [{
		"rule-type": "selection",
		"rule-id": "1",
		"rule-name": "1",
		"object-locator": {
			"schema-name": "test",
			"table-name": "%"
		},
		"rule-action": "include"
	}, {
		"rule-type": "transformation",
		"rule-id": "2",
		"rule-name": "2",
		"rule-action": "convert-lowercase",
		"rule-target": "table",
		"object-locator": {
			"schema-name": "test",
			"table-name": "ACTOR"
		}
	}]
}
```

**Example 대문자로 변환**  
다음은 모든 테이블의 전체 열과 모든 스키마를 소스의 소문자에서 대상의 대문자로 변환하는 예제입니다.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "test",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-action": "convert-uppercase",
            "rule-target": "column",
            "object-locator": {
                "schema-name": "%",
                "table-name": "%",
                "column-name": "%"
            }
        }
    ]
}
```

**Example 접두사 추가**  
다음은 소스의 모든 테이블을 변환하여 대상에서 테이블에 `DMS_` 접두사를 추가하는 예입니다.  

```
{
 	"rules": [{
		"rule-type": "selection",
		"rule-id": "1",
		"rule-name": "1",
		"object-locator": {
			"schema-name": "test",
			"table-name": "%"
		},
		"rule-action": "include"
	}, {
		"rule-type": "transformation",
		"rule-id": "2",
		"rule-name": "2",
		"rule-action": "add-prefix",
		"rule-target": "table",
		"object-locator": {
			"schema-name": "test",
			"table-name": "%"
		},
		"value": "DMS_"
	}]
 
}
```

**Example 접두사 바꾸기**  
다음은 소스에서 `Pre_` 접두사를 포함하는 모든 열을 변환하여 이 접두사를 대상의 `NewPre_` 접두사로 대체하는 예입니다.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "test",
                "table-name": "%"
            },
            "rule-action": "include"
        },
        {
            "rule-type": "transformation",
            "rule-id": "2",
            "rule-name": "2",
            "rule-action": "replace-prefix",
            "rule-target": "column",
            "object-locator": {
                "schema-name": "%",
                "table-name": "%",
                "column-name": "%"
            },
            "value": "NewPre_",
            "old-value": "Pre_"
        }
    ]
}
```

**Example 접미사 제거**  
다음은 소스의 모든 테이블을 변환하여 대상의 테이블에서 `_DMS` 접미사를 제거하는 예입니다.  

```
{
	"rules": [{
		"rule-type": "selection",
		"rule-id": "1",
		"rule-name": "1",
		"object-locator": {
			"schema-name": "test",
			"table-name": "%"
		},
		"rule-action": "include"
	}, {
		"rule-type": "transformation",
		"rule-id": "2",
		"rule-name": "2",
		"rule-action": "remove-suffix",
		"rule-target": "table",
		"object-locator": {
			"schema-name": "test",
			"table-name": "%"
		},
		"value": "_DMS"
	}]
}
```

**Example 프라이머리 키 정의**  
대상 엔드포인트로 마이그레이션된 `ITEM-primary-key` 테이블의 세 열에서 `ITEM`라는 프라이머리 키를 정의하는 예입니다.  

```
{
	"rules": [{
		"rule-type": "selection",
		"rule-id": "1",
		"rule-name": "1",
		"object-locator": {
			"schema-name": "inventory",
			"table-name": "%"
		},
		"rule-action": "include"
	}, {
		"rule-type": "transformation",
		"rule-id": "2",
		"rule-name": "2",
		"rule-action": "define-primary-key",
		"rule-target": "table",
		"object-locator": {
			"schema-name": "inventory",
			"table-name": "ITEM"
		},
		"primary-key-def": {
			"name": "ITEM-primary-key",
			"columns": [
				"ITEM-NAME",
				"BOM-MODEL-NUM",
				"BOM-PART-NUM"
			]
              }
	}]
}
```

**Example 고유 인덱스 정의**  
대상 엔드포인트로 마이그레이션된 `ITEM` 테이블의 세 열에서 `ITEM-unique-idx`라는 고유 인덱스를 정의하는 예입니다.  

```
{
	"rules": [{
		"rule-type": "selection",
		"rule-id": "1",
		"rule-name": "1",
		"object-locator": {
			"schema-name": "inventory",
			"table-name": "%"
		},
		"rule-action": "include"
	}, {
		"rule-type": "transformation",
		"rule-id": "2",
		"rule-name": "2",
		"rule-action": "define-primary-key",
		"rule-target": "table",
		"object-locator": {
			"schema-name": "inventory",
			"table-name": "ITEM"
		},
		"primary-key-def": {
			"name": "ITEM-unique-idx",
			"origin": "unique-index",
			"columns": [
				"ITEM-NAME",
				"BOM-MODEL-NUM",
				"BOM-PART-NUM"
			]
              }
	}]
}
```

**Example 대상 열의 데이터 형식 변경**  
다음 예제에서는 이름이 `SALE_AMOUNT`인 대상 열의 데이터 형식을 기존 데이터 형식에서 `int8`로 변경합니다.  

```
{
    "rule-type": "transformation",
    "rule-id": "1",
    "rule-name": "RuleName 1",
    "rule-action": "change-data-type",
    "rule-target": "column",
    "object-locator": {
        "schema-name": "dbo",
        "table-name": "dms",
        "column-name": "SALE_AMOUNT"
    },
    "data-type": {
        "type": "int8"
    }
}
```

**Example 이전 이미지 열 추가**  
`emp_no`라는 소스 열에 대해 다음 예의 변환 규칙은 대상에 `BI_emp_no`라는 새 열을 추가합니다.  

```
{
	"rules": [{
			"rule-type": "selection",
			"rule-id": "1",
			"rule-name": "1",
			"object-locator": {
				"schema-name": "%",
				"table-name": "%"
			},
			"rule-action": "include"
		},
		{
			"rule-type": "transformation",
			"rule-id": "2",
			"rule-name": "2",
			"rule-target": "column",
			"object-locator": {
				"schema-name": "%",
				"table-name": "employees"
			},
			"rule-action": "add-before-image-columns",
			"before-image-def": {
				"column-prefix": "BI_",
				"column-suffix": "",
				"column-filter": "pk-only"
			}
		}
	]
}
```
여기서 다음 문은 해당 행의 `BI_emp_no` 열을 1로 채웁니다.  

```
UPDATE employees SET emp_no = 3 WHERE BI_emp_no = 1;
```
지원되는 AWS DMS 대상에 CDC 업데이트를 작성할 때 `BI_emp_no` 열을 사용하면 `emp_no` 열에 업데이트된 값이 있는 행을 알 수 있습니다.