Execution Parameters¶
개요¶
Datatrans는 KEY=VALUE 문법을 사용합니다.
이 페이지는 CLI 공개 파라미터를 설명합니다. 웹 콘솔에서도 같은 데이터 작업을 폼·YAML·표로 준비하고 실행할 수 있습니다. UI/API 전용 설정은 CLI 옵션과 구분합니다.
- 파라미터 이름은 대소문자를 구분하지 않습니다.
--option형식은 사용하지 않습니다.- 목록은 쉼표로 구분하며
Y|N에는 두 값만 허용됩니다. - 같은 파라미터 중복 또는 정의되지 않은 파라미터는 오류입니다.
- 공백이 포함된 값과 SQL은 큰따옴표로 묶는 것을 권장합니다.
1. 실행 모드¶
| 모드 | 필수값 | 동작 |
|---|---|---|
TRANSFER | source, target, schemas|tables|mapping_rule 중 하나 | Source 데이터를 Target으로 전송합니다. 기본값입니다. |
TRIGGER | 위 값과 repository, working_target_query, completed_target_query | Repository가 준비 완료로 반환한 Source table만 전송합니다. mode=TRIGGER를 명시합니다. |
PREVIEW | source, target, schemas|tables|mapping_rule 중 하나 | Target DML 없이 일부 Source row를 검증합니다. |
mapping_rule은 작업 범위를 직접 정의하므로 schemas, tables, query와 함께 사용할 수 없습니다. 일반 작업에서는 schemas와 tables 중 하나만 사용합니다.
PREVIEW 원본 민감정보 탐색¶
mode=PREVIEW
privacy_check=Y
privacy_entities=RRN,FRN,PASSPORT,DRIVER_LICENSE,PHONE,EMAIL,ACCOUNT,CARD,PERSON,ADDRESS,BUSINESS_REG,IP
privacy_check=Y|N: 기본N. PREVIEW에서 선택한 Source 범위의 원본 민감정보 후보를 추가 탐색합니다.privacy_entities=TYPE[,TYPE...]: 생략하면 지원하는 위 12개 유형 전체를 검사합니다. 명시적인 빈 목록과 알 수 없는 유형은 거부합니다.- 매핑·스크램블링 전 값을 검사하며 Mapping에서 제외한 Source 컬럼도 포함합니다. 일반 전송·TRIGGER에 자동 탐색이나 마스킹을 추가하는 옵션은 아닙니다.
- CLI는 범위별 기본 100행을 사용합니다.
preview_rows는 CLI 공개 파라미터가 아니며 UI/API에서만 1~10,000행을 지정할 수 있습니다. - 원본 값은 저장하지 않고 유형·건수·점수·상태를 보고합니다. 부분 검사·미검사·오류를 미탐지와 구분합니다.
검출 라이브러리 준비, 표본 범위와 결과 해석은 Preview와 원본 민감정보 탐색을 참고하세요.
2. 접속과 기본 실행¶
source / target¶
Oracle 접속 문자열입니다.
jobname¶
상태 조회, 로그와 오류 파일에서 사용할 작업 이름입니다. 생략하면 TRANSFER_JOB_nn 형식으로 자동 생성됩니다. Schedule에는 반드시 지정해야 합니다.
degree¶
양의 정수의 병렬 작업 수이며 기본값은 1입니다.
table_action¶
| 값 | 동작 |
|---|---|
APPEND | 기존 데이터를 유지하고 새 데이터를 추가합니다. 기본값입니다. |
TRUNCATE | 기존 구조를 유지하고 데이터를 비운 뒤 적재합니다. |
REPLACE | Source 정의를 기준으로 Target table을 다시 생성한 뒤 적재합니다. |
STRUCTURE | Target 구조만 생성하고 데이터는 적재하지 않습니다. |
Mapping은 기존 compatible Target에 APPEND|TRUNCATE만 지원합니다. REPLACE|STRUCTURE는 Target DDL 전에 거부됩니다.
batcherrors¶
기본값은 Y입니다.
Y: Array DML에서 실패 row를 기록하고 성공 row는 반영합니다.N: Statement 오류가 발생한 batch 전체를 rollback하고 오류를 기록합니다.- 두 경우 모두 포착 가능한 오류는 다른 table의 처리를 중단하지 않습니다.
- 오류가 있으면 최종 상태는
COMPLETED_WITH_ERRORS입니다. - 일반 로그와 요약에는 실패 row의 원문 값을 기록하지 않습니다.
resumable¶
resumable=Y는 Target tablespace 부족 같은 resumable 오류에 Oracle RESUMABLE session을 사용합니다. 기본값은 N; 최대 대기 시간인 resumable_timeout 기본값은 3600초입니다.
도움말·버전·라이선스¶
각 값이 Y이면 해당 절차를 실행하고 종료합니다.
3. 전송 범위와 Target routing¶
schemas¶
지정한 Source schema의 table을 전송합니다.
tables¶
지정한 Source table만 전송합니다. Schema를 생략하면 Source 접속 사용자의 table로 조회하지만, 문서 예제는 routing 혼동을 막기 위해 owner를 명시합니다.
table_exclude¶
일반 schemas|tables 작업에서 제외할 Source table입니다.
query¶
Source table의 추출 조건이며 WHERE 키워드는 쓰지 않습니다. 조건식은 신뢰된 Oracle SQL로 그대로 실행되므로 관리자 검토가 필요합니다.
prefix / suffix¶
일반 schemas|tables 작업에서 Target table 이름 앞뒤에 문자열을 붙입니다.
remap_schema¶
일반 schemas|tables 작업의 Target schema를 바꿉니다.
remap_tablespace¶
REPLACE|STRUCTURE에서 생성되는 Target tablespace를 바꿉니다. *:TGT_TS는 기본 Target tablespace를 지정합니다.
Mapping routing
Mapping의 Source/Target table과 column은 YAML이 직접 결정합니다. remap_schema, prefix, suffix, table_exclude는 mapping 대상에 적용되지 않습니다.
4. Table 실행 순서¶
table_order¶
| 값 | 동작 |
|---|---|
LARGE_FIRST | 예상 크기가 큰 table부터 처리합니다. 기본값입니다. |
SMALL_FIRST | 예상 크기가 작은 table부터 처리합니다. |
INPUT_ORDER | 입력된 table 순서를 사용합니다. |
table_priority¶
Priority는 0~9999; 작을수록 먼저 처리합니다. 미지정 table의 기본값은 1000입니다.
정렬 우선순위는 다음과 같습니다.
table_priority오름차순- 같은 priority 안에서
table_order - 조건이 같으면 입력 순서
5. Flashback¶
flashback_scn¶
| 값 | 동작 |
|---|---|
CURRENT | 모든 table에 하나의 기준 SCN을 사용합니다. 기본값입니다. |
INDIVIDUAL | 각 table 처리 준비 시점의 SCN을 사용합니다. |
OFF | Flashback query를 사용하지 않습니다. 같은 table 내부에서도 조회 시점이 달라질 수 있습니다. |
| 숫자 SCN | 지정한 SCN을 사용합니다. |
flashback_timestamp¶
Timezone이 포함된 ISO 8601 timestamp를 Source DB에서 SCN으로 변환합니다. flashback_scn과 동시에 사용할 수 없습니다.
TRIGGER는 Repository에서 table이 준비된 시점의 기준 시점을 사용합니다. flashback_scn과 flashback_timestamp는 TRIGGER 처리 시점 지정에 사용되지 않습니다.
6. 문자셋 변환¶
charset_hex¶
Source 문자 데이터를 hexadecimal byte로 읽어 Python에서 변환합니다. ALL은 선택된 모든 Source table, 목록은 지정한 table에만 적용합니다.
- 지원 column:
CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB - 미지원 column:
LONG
charset_hex_encoding¶
Source DB의 선언 NLS_CHARACTERSET과 실제 저장 byte encoding이 다를 때 지정하는 override입니다. charset_hex가 필요하며 NLS_NCHAR_CHARACTERSET에는 적용하지 않습니다.
지원 값:
AL16UTF16, AL32UTF8, JA16EUC, JA16SJIS, KO16KSC5601,
KO16MSWIN949, TH8TISASCII, US7ASCII, WE8ISO8859P1,
WE8ISO8859P15, WE8MSWIN1252, ZHS16GBK, ZHT16BIG5
실제 저장에 사용된 문자셋을 정확히 지정해야 합니다. 설정·metadata 오류는 실행 전에 중단될 수 있습니다. Runtime에 잘못된 Source byte나 Target에서 표현할 수 없는 문자가 발견되면 해당 작업을 오류로 기록하고 처리 가능한 다른 table은 계속합니다.
7. Parfile¶
~ 경로 확장을 지원합니다. 같은 key가 CLI와 parfile에 모두 있으면 parfile 값이 적용됩니다.
# 한 줄 주석
source=SRC_USER/password@host:1521/SRCDB
target=TGT_USER/password@host:1521/TGTDB
schemas=SALES
degree=4
batcherrors=Y # 공백 뒤 인라인 주석
- 한 줄에 하나의
KEY=VALUE를 권장합니다. - 줄 시작
#또는 공백 뒤#부터 줄 끝까지 주석입니다. --SQL 주석은 parfile 주석으로 처리하지 않습니다.- parfile 안에 또 다른
parfile을 지정해 재귀적으로 읽지 않습니다. - 공백이나
=가 있는 Trigger SQL은 한 줄에서 큰따옴표로 묶습니다. - CLI 인자 안이나 parfile 안에서 같은 parameter를 반복하면 오류입니다. CLI와 parfile에 한 번씩 있는 같은 key에는 parfile 우선 규칙을 적용합니다. 정의되지 않은 parameter는 오류입니다.
8. Schedule¶
현재 작업을 1회 또는 반복 예약하며 jobname이 필수입니다.
schedule=ONCE|CRON 같은 symbolic 값은 사용하지 않습니다. 예약 실행에 필요한 접속, 범위와 모드별 필수값을 모두 지정합니다.
실행 시각과 기동은 systemd 사용자 timer/service가 관리합니다. 운영 계정의 사용자 서비스와 linger 설정이 필요합니다. Cron은 5필드 숫자·범위·목록·간격·요일 이름을 지원하고 L/# 등 특수 표현식은 거부합니다. CLI 반복 예약은 현재 Asia/Seoul을 기준으로 하며, 일회 시각에 시간대가 없으면 서버 현지 시간으로 해석합니다.
UI의 반복 시간대·만료날짜 설정은 CLI 공개 파라미터가 아닙니다. 날짜 예제는 실제 미래 시각으로 바꾸고, 등록 확인·기존 예약 이행은 작업 예약을 참고하세요.
9. 결과 상태¶
| 상태 | 의미 |
|---|---|
COMPLETED | 오류 없이 완료했습니다. |
COMPLETED_WITH_ERRORS | 처리 가능한 table은 완료했지만 metadata, 추출, 변환, LOB 또는 Target 적재 오류가 있습니다. Process exit code는 0입니다. |
FAILED | 설정, 엔진 또는 작업 저장소 무결성 오류로 계속할 수 없습니다. |
KILLED | 사용자가 종료를 요청했습니다. |
Exit code만 확인하지 말고 최종 작업 상태를 함께 확인하십시오.
Preview outcome¶
| outcome | 의미 |
|---|---|
PASSED | 조회 sample에서 위반을 발견하지 못했습니다. |
VIOLATIONS | 조회 sample에서 하나 이상의 column 위반을 발견했습니다. |
NOT_EVALUATED | 조회 row가 없어 판정하지 못했습니다. |
INCOMPLETE | Metadata, 조회 또는 변환 오류로 검증이 완전하지 않습니다. |
VIOLATIONS와 NOT_EVALUATED 자체는 실행 오류가 아니며 다른 실행 오류가 없으면 작업 상태는 COMPLETED입니다. 원본 민감정보 탐색은 별도 상태를 보고하고, 조회·분석 오류는 작업 오류에 반영됩니다. Preview 가이드에서 두 결과를 구분해 확인하세요.
10. 보안 경계¶
- 접속 정보가 있는 parfile, Mapping, Scrambling 파일 권한을 제한합니다.
query,conversion_rule,source.condition, Trigger Repository query는 신뢰된 SQL입니다.- Scrambling plugin은 Python 코드를 실행하므로 신뢰된 파일만 등록합니다.
- Dashboard Preview 보고서에는 접속 정보, 비밀번호와 Source row 원문이 기록되지 않습니다.
- 로그와 Preview 보고서에 개인정보 원문을 추가로 기록하지 않습니다.