Data Flow ETL 작업의 노드 소스(source), 변환(transform), 타깃(target) 타입에 대한 정보입니다.
ETLJobNode
: ETL 작업 노드 정의JobNodeCategory
: 노드 카테고리 정의JobNodeType
: 노드 카테고리 타입 정의Field
: 데이터 필드 정의
구문
구문은 다음과 같습니다.
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 JobNodeCategory {
SOURCE, TRANSFORM, TARGET
}
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_DUPLICATION(JobNodeCategory.TRANSFORM),
TRANSFORM_FILL_MISSING_VALUES(JobNodeCategory.TRANSFORM),
TRANSFORM_SQL(JobNodeCategory.TRANSFORM),
TARGET_CDB_MYSQL(JobNodeCategory.TARGET),
TARGET_CDB_POSTGRESQL(JobNodeCategory.TARGET),
TARGET_OBS(JobNodeCategory.TARGET),
TARGET_CATALOG(JobNodeCategory.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 |
Long | Required | 아이디 |
name |
String | Required | 작업 이름
|
type |
JobNodeType | Required | 노드 타입
|
parentNodeIds |
List |
Required | 상위 노드 아이디 |