Overview
같은 원본 값이 여러 테이블에 나눠져 있을 때 서로 다른 변환 값을 쓰면 업무 조회와 테스트가 깨질 수 있습니다. Datatrans assignment에서는 같은 domain과 기준 input에 `sets: CONSISTENT`를 적용하는 방식을 구성할 수 있습니다.
CONSISTENT는 같은 input에 대한 변환 일관성을 위한 설정입니다. PK/FK 무결성을 자동 보장한다고 간주하지 말고, 관계 컬럼에 같은 rule·input 설계를 적용한 뒤 Target constraint와 업무 query로 검증해야 합니다.
What You'll Accomplish
Instructions
Assignment YAML 작성
columns는 결과를 저장할 Target 컬럼, rules는 rule_define.yaml의 domain rule입니다. sets=CONSISTENT로 흩어진 동일 데이터를 일관된 가상값으로 변환합니다. UNIQUE와 CONSISTENT는 동시에 사용할 수 없습니다.
# /secure/rules/customer.yaml
TGT_USER.CUSTOMER:
- columns: EMAIL
rules: SC_EMAIL
args: EMAIL
sets: CONSISTENT
TGT_USER.ORDERS:
- columns: CONTACT_EMAIL
rules: SC_EMAIL
args: CONTACT_EMAIL
sets: CONSISTENT 스크램블링 이관 실행
scrambles로 assignment 파일을 지정합니다. 여러 파일은 입력 순서대로 병합됩니다. assignment가 없는 테이블은 변경 없이 이관되며, 파일 하나라도 읽기·UTF-8·YAML parsing에 실패하면 일부 정상 규칙만 적용하지 않고 중단합니다.
datatrans source=SRC_USER/password@host:1521/SRCDB \
target=TGT_USER/password@host:1521/TGTDB \
tables=SRC_USER.CUSTOMER,SRC_USER.ORDERS \
remap_schema=SRC_USER:TGT_USER \
scrambles=/secure/rules/customer.yaml \
table_action=APPEND \
jobname=CUSTOMER_MASKED Preflight 결과 확인
SCRAMBLING PREFLIGHT에서 Covered tables, 경고·오류를 확인합니다. PASSED WITH WARNINGS면 경고를 검토한 후 계속 진행됩니다. UNSCRAMBLED_TABLE 정보로 변경 없이 이관되는 테이블을 확인합니다.
datatrans
# DATATRANS> STATUS=CUSTOMER_MASKED 참조 무결성 검증
이관 후 PK/FK 관계와 업무 규칙이 유지되는지 애플리케이션 테스트로 검증합니다.
-- 타겟에서 고객-주문 참조 무결성 확인
SELECT COUNT(*) AS orphan_orders
FROM TGT_USER.ORDERS o
WHERE NOT EXISTS (
SELECT 1 FROM TGT_USER.CUSTOMER c
WHERE c.EMAIL = o.CONTACT_EMAIL
); How It Works
관계 컬럼 분석
테이블 간 같은 값을 쓰는 컬럼과 input 식별
규칙 설계
도메인 규칙과 sets 설정 정의
스크램블링
같은 domain·input의 CONSISTENT 변환 수행
검증
Target constraint와 업무 query로 관계 확인