테이블 가져오기의 증분 초기 상태
initialIncrementalState는 추가 방식의 수집에서 사용할 열과 초기 기준값을 정합니다. 타임스탬프나 ID처럼 단조 증가하는 열이 필요하며, 이전에 가져온 최댓값보다 큰 범위의 행을 선택합니다. currentValue는 이 초기 상태에 넣는 값입니다.
SQL에서는 ?로 상태값을 참조합니다. 예를 들어 WHERE order_id > ?로 이전 범위와 겹치지 않는 행을 선택할 수 있습니다. 기준값과 같거나 작은 값의 행은 이 조건에 포함되지 않으므로 원천 데이터의 증가 순서와 늦게 도착하는 행의 조건을 확인합니다.
유형별 필드
각 분기는 type, columnName, currentValue가 모두 필수입니다. 날짜는 날짜 문자열, 타임스탬프는 UTC의 날짜 및 시각 값을 사용합니다. decimal 형식의 HTTP 필드는 소수 문자열이며 Python SDK 모델에서는 decimal.Decimal로 다룹니다.
분기 stringColumnInitialIncrementalState
문자열 열을 사용하는 증분 가져오기의 초기 상태입니다.
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 분기를 구분하는 type 값입니다. 허용값: stringColumnInitialIncrementalState. | stringColumnInitialIncrementalState |
columnName | string | 필수 | myStringColumn | |
currentValue | string | 필수 | 쿼리에서 참조할 문자열 열의 초기 기준값입니다. |
분기 dateColumnInitialIncrementalState
날짜 열을 사용하는 증분 가져오기의 초기 상태입니다.
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 분기를 구분하는 type 값입니다. 허용값: dateColumnInitialIncrementalState. | dateColumnInitialIncrementalState |
columnName | string | 필수 | myDateColumn | |
currentValue | string (date) | 필수 | 쿼리에서 참조할 날짜 열의 초기 기준값입니다. | 2024-12-31 |
분기 integerColumnInitialIncrementalState
정수 열을 사용하는 증분 가져오기의 초기 상태입니다.
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 분기를 구분하는 type 값입니다. 허용값: integerColumnInitialIncrementalState. | integerColumnInitialIncrementalState |
columnName | string | 필수 | myIdColumn | |
currentValue | integer | 필수 | 쿼리에서 참조할 정수 열의 초기 기준값입니다. | 1 |
분기 timestampColumnInitialIncrementalState
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 분기를 구분하는 type 값입니다. 허용값: timestampColumnInitialIncrementalState. | timestampColumnInitialIncrementalState |
columnName | string | 필수 | myTimeColumn | |
currentValue | string (date-time) | 필수 | 쿼리에서 참조할 타임스탬프 열의 초기 기준값이며 UTC를 사용합니다. | 2020-09-30T14:30:00Z |
분기 longColumnInitialIncrementalState
long 정수 열을 사용하는 증분 가져오기의 초기 상태입니다.
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 분기를 구분하는 type 값입니다. 허용값: longColumnInitialIncrementalState. | longColumnInitialIncrementalState |
columnName | string | 필수 | myIdColumn | |
currentValue | long | 필수 | 쿼리에서 참조할 long 열의 초기 기준값입니다. | 1000 |
분기 decimalColumnInitialIncrementalState
decimal 열을 사용하는 증분 가져오기의 초기 상태입니다.
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 분기를 구분하는 type 값입니다. 허용값: decimalColumnInitialIncrementalState. | decimalColumnInitialIncrementalState |
columnName | string | 필수 | sequence_decimal | |
currentValue | string (decimal) | 필수 | 쿼리에서 참조할 decimal 열의 초기 기준값입니다. | 3.25 |
정수 기준값과 SQL의 결합
다음은 order_id가 1,000보다 큰 주문을 수집하려는 가상 config 값입니다. 실제 테이블과 열을 확인하고 생성 요청의 importMode를 APPEND로 설정하여 추가 수집에 사용합니다.
{
"type": "jdbcImportConfig",
"query": "SELECT order_id, order_date FROM example_orders WHERE order_id > ?",
"initialIncrementalState": {
"type": "integerColumnInitialIncrementalState",
"columnName": "order_id",
"currentValue": 1000
}
}
?는 SQL 문자열 안의 매개변수 표기입니다. 문자열 값 자체로 비교하도록 따옴표로 감싸지 않습니다. 상태의 열 이름과 조회 결과의 열, 그리고 비교 조건을 같은 의도로 구성합니다.
문자열이나 날짜, 소수 자료형을 선택했다는 이유만으로 해당 열이 단조 증가하는 것은 아닙니다. 원천에서 그 조건을 충족하는 열을 선택하고 그 열의 자료형에 맞는 초기 상태 분기를 사용합니다.