FetchTableSnapshot 2025.10.9.21 — 테이블 스냅샷 가져오기 프로세서
FetchTableSnapshot 2025.10.9.21 — 테이블 스냅샷 가져오기 프로세서
FetchTableSnapshot 프로세서는 데이터베이스에서 테이블의 스냅샷을 가져와요. 스냅샷은 테이블의 기본 키 컬럼을 사용해 행을 일괄 처리로 가져오는 방식으로 증분(incrementally) 가져와요. 기본 키가 없는 테이블의 복제는 지원되지 않아요. 스냅샷은 지정된 Record Writer 형식으로 FlowFile에 기록돼요.
출처: Snowflake 문서
본문
기능 — 일반 공개 (Generally Available)
Openflow Snowflake 배포는 AWS, Azure, GCP의 상용 리전에서 모든 계정에 제공돼요.
Openflow BYOC 배포는 AWS의 상용 리전에서 모든 계정에 제공돼요.
Bundle
com.snowflake.openflow.runtime | runtime-database-cdc-processors-nar
Description
데이터베이스에서 테이블의 스냅샷을 가져와요. 스냅샷은 테이블의 기본 키 컬럼을 사용해 행을 일괄 처리로 가져오는 방식으로 증분 가져와요. 기본 키가 없는 테이블의 복제는 지원되지 않아요. 스냅샷은 지정된 Record Writer 형식으로 FlowFile에 기록돼요. 입력 FlowFile은 다음 형식의 테이블 스키마 JSON 표현으로 구성될 것으로 예상돼요:
{ "columns": [{ "name": "<column name>", "type": "<column type>" }, { "name": "<column name>", "type": "<column type>" }, ... ], "primaryKeys": ["<name of first primary key column>", "<name of second primary key column>", ...] }
스키마에 지정된 컬럼만 테이블에서 가져와요.
Tags
database, fetch, rdbms, snapshot, snowflake, table
Input Requirement
REQUIRED
Supports Sensitive Dynamic Properties
false
Properties
| Property | Description |
|---|---|
| Connection Pool | 데이터베이스 스냅샷을 가져오는 데 사용할 연결 풀 |
| Fetch Size | 한 번에 메모리에 로드되는 최대 행 수 |
| JDBC Driver Location | 드라이버 JAR과 그 의존성(있다면)을 포함하는 파일/폴더 및/또는 URL의 쉼표로 구분된 목록. 예: /var/tmp/postgresql-java-client-42.7.5.jar |
| Max Batch Size | 단일 일괄 처리에서 가져올 최대 행 수 |
| Record Writer | 가져온 스냅샷을 기록하는 데 사용할 record writer |
| Schema Name | 스냅샷을 가져올 스키마의 이름 |
| Table Name | 스냅샷을 가져올 테이블의 이름 |
Relationships
| Name | Description |
|---|---|
| complete | 스냅샷이 완료되면 원래 FlowFile이 이 관계로 라우팅돼요 |
| failure | FlowFile이 나타내는 테이블에서 데이터를 가져올 수 없으면 FlowFile이 이 관계로 라우팅돼요 |
| retryable failure | FlowFile이 나타내는 테이블에서 데이터를 가져올 수 없지만 미래에는 가능할 것으로 기대되면 FlowFile이 이 관계로 라우팅돼요 |
| rows | FlowFile이 나타내는 테이블에서 스냅샷을 성공적으로 가져오면 행이 이 관계로 라우팅돼요 |
Writes attributes
| Name | Description |
|---|---|
| snapshot.complete | 스냅샷이 완료되었는지 여부를 나타내요 |
| rows.total.fetched | 테이블에 대해 가져온 총 행 수 |
| rows.delta.fetched | 마지막 반복에서 테이블에 대해 가져온 행 수 |
| start.row.index | 주어진 반복에 대해 스냅샷 내 첫 번째 행의 인덱스 (0부터 시작) |
| last.row.index | 주어진 반복에 대해 스냅샷 내 마지막 행의 인덱스 (0부터 시작) |
| fetch.delta.time.in.millis | 마지막 반복에서 행을 가져오는 데 걸린 시간(밀리초) |
| fetch.total.time.in.millis | 지금까지 행을 가져오는 데 걸린 시간(밀리초) |