설명
사용 가능한 ETL 작업 노드
소스, 변환, 타깃 타입이 있습니다.
공통
구문
class ETLJobNode {
private id: Long;
private name: String;
private JobNodeType type;
private List<Long> parentNodeIds;
enum Operator { EQ, NE, GT, LT, GTE, LTE }
enum ConditionOperator { HEAD, AND, OR }
}
enum JobNodeType(JobNodeCategory category) {
SOURCE_CATALOG(JobNodeCategory.SOURCE),
SOURCE_CDB_MYSQL(JobNodeCategory.SOURCE),
SOURCE_CDB_POSTGRESQL(JobNodeCategory.SOURCE),
SOURCE_OBS(JobNodeCategory.SOURCE),
TRANSFORM_DEFINE(JobNodeCategory.TRANSFORM),
TRANSFORM_SELECT(JobNodeCategory.TRANSFORM),
TRANSFORM_JOIN(JobNodeCategory.TRANSFORM),
TRANSFORM_FILTER(JobNodeCategory.TRANSFORM),
TRANSFORM_UNION(JobNodeCategory.TRANSFORM),
TRANSFORM_AGGREGATE(JobNodeCategory.TRANSFORM),
TRANSFORM_RENAME(JobNodeCategory.TRANSFORM),
TRANSFORM_DROP_NULL(JobNodeCategory.TRANSFORM),
TRANSFORM_DROP_DUPLICATION(JobNodeCategory.TRANSFORM),
TRANSFORM_FILL_MISSING_VALUES(JobNodeCategory.TRANSFORM),
TRANSFORM_SPLIT_FIELD(JobNodeCategory.TRANSFORM),
TRANSFORM_SQL(JobNodeCategory.TRANSFORM),
TARGET_CDB_MYSQL(JobNodeCategory.TARGET),
TARGET_CDB_POSTGRESQL(JobNodeCategory.TARGET),
TARGET_OBS(JobNodeCategory.TARGET),
TARGET_CATALOG(JobNodeCategory.TARGET)
}
enum JobNodeCategory {
SOURCE, TRANSFORM, TARGET
}
class Field {
private String name;
private Type type;
private List<Field> properties;
enum Type {
Void, Boolean, Tinyint, Smallint, Int, Bigint, Float, Double, String, Char, Varchar, Date, Datetime, Timestamp, Decimal,
Binary, TimestampWithTimeZone, Array, Map, Struct, Uniontype;
}
}
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
id | Yes | Long | | ID |
name | Yes | String | - 영문자, 언더바( _ )로 시작 - 영문자, 숫자, 언더바( _ ), 하이픈( - ) 사용 가능 - 최소 3자 최대 20자로 입력 | 작업 이름 |
type | Yes | JobNodeType | 구문 참조 | 노드 타입 |
parentNodeIds | Yes | List | | 상위 노드 ID |
Source / DataCatalog
구문
private String database;
private String table;
private String schemaVersion;
private List<Field> fieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
database | Yes | String | | 데이터베이스 이름 |
table | Yes | String | | 테이블 이름 |
schemaVersion | Yes | String | | 스키마 버전 |
fieldList | Yes | List | | 필드 리스트 |
Source / ObjectStorage
구문
private String regionNo;
private String bucketName;
private String prefix;
private String dataType;
private List<Field> fieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
regionNo | Yes | String | | 리전번호 |
bucketName | Yes | String | | 버킷이름 |
prefix | Yes | String | | 접두어 |
dataType | Yes | String | JSON, CSV, PARQUET, NDJSON | 데이터타입 |
fieldList | Yes | List | | 필드 리스트 |
Source / Cloud DB for MySQL
구문
private String connectionId;
private String table;
private List<Field> fieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
connectionId | Yes | String | | 커넥션 ID |
table | Yes | String | | 테이블 이름 |
fieldList | Yes | List | | 필드 리스트 |
Source / Cloud DB for POSTGRESQL
구문
private String connectionId;
private String table;
private List<Field> fieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
connectionId | Yes | String | | 커넥션 ID |
table | Yes | String | | 테이블 이름 |
fieldList | Yes | List | | 필드 리스트 |
구문
private List<DefineField> defineFieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
defineFieldList[].name | Yes | String | | 기존 필드명 |
defineFieldList[].newType | Yes | String | | 변경할 타입 |
defineFieldList[].newName | Yes | String | | 변경할 필드명 |
구문
private List<Field> fieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
fieldList | Yes | List | | 필드 리스트 |
구문
private String joinType;
private long leftNodeId;
private long rightNodeId;
private List<JoinCondition> joinConditionList;
private String prefix;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
joinType | Yes | String | INNER, LEFT_OUTER, RIGHT_OUTER, FULL_OUTER | 조인 타입 |
leftNodeId | Yes | long | | 좌측 노드 ID |
rightNodeId | Yes | long | | 우측 노드 ID |
joinConditionList[].leftField | Yes | String | | 좌측 필드 |
joinConditionList[].leftField | Yes | String | | 우측 필드 |
joinConditionList[].joinOperator | Yes | Operator | | 연산자 |
joinConditionList[].conditionOperator | Yes | ConditionOperator | | 조건 |
prefix | No | String | | 조인 시 변경될 필드 접두어 |
구문
private String filterType;
private List<FilterCondition> filterConditionList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
filterType | Yes | String | AND, OR | 필터 타입 |
filterCondtionList[].name | Yes | String | | 필터 조건 이름 |
filterCondtionList[].operator | Yes | String | | 필터 조건 연산자 |
filterCondtionList[].value | Yes | String | | 필터 조건 값 |
구문
private String unionType;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
unionType | Yes | String | ALL, DISTINCT | Union 타입 |
구문
private List<String> groupByList;
private List<AggregateField> aggregateFieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
groupByList | Yes | List | | 필드 명 |
aggregateFieldList[].name | Yes | String | | 집계조건 이름 |
aggregateFieldList[].ResultName | Yes | String | | 집계된 필드 이름 |
aggregateFieldList[].function | Yes | String | SUM, AVG, MAX, MIN | 집계함수 |
구문
private List<RenameField> renameFieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
renameFieldList[].name | Yes | String | | 기존 필드명 |
renameFieldList[].newName | Yes | String | | 변경할 필드명 |
구문
private List<String> dropFieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
dropFieldList | Yes | List | | 중복 체크할 필드명 |
구문
private List<MissingValueField> missingValueFieldList;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
missingValueFieldList[].name | Yes | String | | 빈값 채울 필드명 |
missingValueFieldList[].defaultValue | Yes | String | | 빈값 채울 필드 값 |
Target / Data Catalog
구문
private String database;
private String table;
private String schemaVersion;
private List<Field> fieldList;
private UpdateMode updateType;
private Integer coalesce;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
database | Yes | String | | 데이터베이스 이름 |
table | Yes | String | | 테이블 이름 |
schemaVersion | Yes | String | | 스키마 버전 |
fieldList | Yes | List | | 필드 리스트 |
updateType | No | String | OVERWRITE, APPEND, IGNORE | 업데이트 옵션 |
coalesce | No | Int | | 출력 파일 개수 |
Target / Object Storage
구문
private String regionNo;
private String bucketName;
private String prefix;
private String dataType;
private List<Field> fieldList;
private UpdateMode updateType;
private Integer coalesce;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
regionNo | Yes | String | | 리전번호 |
bucketName | Yes | String | | 버킷이름 |
prefix | Yes | String | | 타깃경로 |
dataType | Yes | String | JSON, CSV, PARQUET | 데이터 타입 |
fieldList | Yes | List | | 필드 리스트 |
updateType | No | String | OVERWRITE, APPEND, IGNORE | 업데이트 옵션 |
coalesce | No | Int | | 출력 파일 개수 |
Target / Cloud DB for MySQL
구문
private String connectionId;
private String table;
private List<Field> fieldList;
private UpdateMode updateType;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
connectionId | Yes | String | | 커넥션 ID |
table | Yes | String | | 테이블 이름 |
fieldList | Yes | List | | 필드 리스트 |
updateType | No | String | OVERWRITE, APPEND, IGNORE | 업데이트 옵션 |
Target / Cloud DB for POSTGRESQL
구문
private String connectionId;
private String table;
private List<Field> fieldList;
private UpdateMode updateType;
필드
필드명 | 필수 여부 | 타입 | 제약 사항 | 설명 |
---|
connectionId | Yes | String | | 커넥션 ID |
table | Yes | String | | 테이블 이름 |
fieldList | Yes | List | | 필드 리스트 |
updateType | No | String | OVERWRITE, APPEND, IGNORE | 업데이트 옵션 |
의견을 보내 주셔서 감사합니다! 우리 팀이 당신에게 돌아갈 것입니다.