Data Mapping Guide¶
개요¶
데이터 매핑 규칙은 YAML 파일로 작성하며, Datatrans 전송 실행 시 mappings 파라미터로 지정하여 적용합니다.
매핑 규칙의 목적은 다음과 같습니다.
- 컬럼 이름 또는 구조가 다른 경우:
source_column으로 Source 컬럼을 Target 컬럼에 직접 매핑 - 값 변환이 필요한 경우:
conversion_rule로 Source 컬럼 기반의 계산식 또는 가공식을 적용
1. YAML 전체 구조¶
매핑 파일은 최상위에 mappings: 키를 두고, 그 아래에 규칙 ID를 키로 하여 규칙을 정의합니다.
mappings:
<RULE_ID>:
target:
owner: <TARGET_SCHEMA>
table_name: <TARGET_TABLE>
source:
owner: <SOURCE_SCHEMA>
table_name: <SOURCE_TABLE>
columns:
- target_column: <T_COL1>
source_column: <S_COL1>
- target_column: <T_COL2>
conversion_rule: "<EXPR>"
2. 규칙 ID (RULE_ID)¶
2.1 설명¶
RULE_ID는 mappings: 아래에서 각 규칙을 구분하는 고유 식별자입니다.
Datatrans는 이 ID를 기준으로 규칙을 관리하고 병합합니다.
2.2 권장 네이밍¶
규칙 ID는 Target 기준으로 작성하는 것을 권장합니다.
TARGET_OWNER.TARGET_TABLE- 필요 시 suffix를 붙여 충돌 방지
예시:
USR_TARGET_MINI.MAPPING_CONVUSR_TARGET_MINI.MAPPING_CONV__V1
3. target / source 블록¶
각 규칙은 단일 소스 테이블과 단일 타겟 테이블의 1:1 관계로만 정의합니다.
3.1 target¶
Target 테이블 정보를 지정합니다.
3.2 source¶
Source 테이블 정보를 지정합니다.
3.3 주의사항¶
제한사항
이 매핑은 단일 소스 테이블에서 단일 타겟 테이블로의 매핑만 지원합니다.
- JOIN은 지원하지 않습니다.
- 다중 테이블 FROM 구문은 지원하지 않습니다.
4. columns 블록¶
4.1 설명¶
columns:는 컬럼 단위 매핑 또는 변환 규칙의 목록입니다.
각 항목은 아래 요소를 포함해야 합니다.
target_column(필수)- 아래 둘 중 하나만 선택
source_columnconversion_rule
4.2 source_column 방식¶
source_column은 Source 컬럼 값을 그대로 Target 컬럼에 매핑할 때 사용합니다.
4.3 conversion_rule 방식¶
conversion_rule은 표현식 결과를 Target 컬럼에 매핑할 때 사용합니다.
변환식은 Source 테이블의 컬럼을 기준으로 작성합니다.
중요
conversion_rule값은 큰따옴표로 감싸는 것을 권장합니다.- 문자열 상수는 표현식 내부에서 작은따옴표를 사용합니다.
5. 예시 YAML¶
아래는 conversion_rule 표기를 큰따옴표 기준으로 통일한 권장 예시입니다.
mappings:
USR_TARGET_MINI.MAPPING_CONV:
target:
owner: USR_TARGET_MINI
table_name: MAPPING_CONV
source:
owner: USR_SOURCE_MINI
table_name: EMP_01
columns:
- target_column: DATATA1
source_column: OWNER
- target_column: DATATA2
source_column: TABLE_NAME
- target_column: DATATA3
source_column: COLUMN_NAME
- target_column: CONV1
conversion_rule: "ROUND(DATA_LENGTH + 3.5)"
- target_column: CONV2
conversion_rule: "'MIG'"
- target_column: CONV3
conversion_rule: "COLUMN_NAME || 'ABC'"
- target_column: MIG_DATE
conversion_rule: "SYSDATE"
USR_TARGET_MINI.MAPPING_CONV2:
target:
owner: USR_TARGET_MINI
table_name: MAPPING_CONV2
source:
owner: USR_SOURCE_MINI
table_name: EMP_02
columns:
- target_column: DATATA1
source_column: OWNER
- target_column: DATATA2
source_column: TABLE_NAME
- target_column: DATATA3
source_column: COLUMN_NAME
- target_column: CONV1
conversion_rule: "ROUND(DATA_LENGTH + 3.5)"
- target_column: CONV2
conversion_rule: "'MIG'"
- target_column: CONV3
conversion_rule: "COLUMN_NAME || 'ABC'"
- target_column: MIG_DATE
conversion_rule: "SYSDATE"
6. 매핑 파일 지정 방법 (mappings 파라미터)¶
매핑 규칙은 전송 실행 시 mappings 파라미터로 지정합니다.
mappings는 리스트 형식이므로, 여러 파일이나 패턴을 지정할 때는 ,로 구분하여 한 번에 입력해야 합니다.
주의
mappings=...를 여러 번 반복해서 쓰는 방식은 지원하지 않습니다.
6.1 단일 파일 지정¶
6.2 여러 파일을 콤마로 지정¶
mappings=/home/user/dt_parfiles/map_hr.yaml,/home/user/dt_parfiles/map_sales.yaml,/home/user/dt_parfiles/map_finance.yaml
6.3 디렉터리 내 모든 YAML 적용¶
6.4 하위 폴더까지 포함¶
6.5 여러 패턴과 단일 파일을 함께 사용¶
mappings=/opt/datatrans/mappings/common/*.yaml,/home/user/dt_parfiles/extra_map.yaml,/home/user/dt_parfiles/projectX/**/*.yaml
6.6 운영 팁¶
권장사항
- 규칙 파일이 많아지면
common/,project/,customer/같은 폴더로 구분해 관리하는 것을 권장합니다. mappings=에는 글롭 패턴을 조합해 사용할 수 있으므로, 공통 규칙과 프로젝트별 규칙을 분리하면 유지보수가 쉬워집니다.- 여러 파일을 함께 적용할 때는
RULE_ID중복 여부를 반드시 확인해야 합니다.
7. 주의사항¶
| # | 주의사항 |
|---|---|
| 1 | columns:에 정의된 target_column만 변환 또는 매핑 대상으로 처리됩니다. 규칙에 없는 Target 컬럼은 자동 변환되지 않습니다. |
| 2 | conversion_rule은 큰따옴표로 감싸는 것을 권장합니다. 표현식, 문자열 상수, 컬럼 참조의 구분을 명확히 하기 위함입니다. |
| 3 | 하나의 target_column에는 source_column 또는 conversion_rule 중 하나만 사용해야 합니다. 동시에 지정하면 규칙 해석이 모호해질 수 있습니다. |
| 4 | RULE_ID는 중복되지 않게 유지해야 합니다. 여러 파일을 함께 적용할 때 중복되면 충돌 또는 덮어쓰기 문제가 발생할 수 있습니다. |
| 5 | 매핑 규칙은 단일 테이블 기준으로만 작성해야 합니다. JOIN이나 다중 테이블 참조는 지원하지 않습니다. |
| 6 | 매핑 규칙 파일은 여러 개를 함께 지정할 수 있으며, 모두 mappings 파라미터로 전달합니다. |