CaptureChangePostgreSQL 2025.5.31.15¶
번들¶
com.snowflake.openflow.runtime | runtime-database-cdc-processors-nar
설명¶
PostgreSQL 데이터베이스에서 CDC 이벤트를 읽습니다.프로세서는 스트림에 도착하는 이벤트를 지속적으로 읽고 TableStateService 에서 제공하는 테이블과 관련된 이벤트를 필터링하고 나머지는 삭제합니다. 현재 이벤트 배치가 처리된 후 프로세서는 복제 슬롯 위치를 PostgreSQL 로 다시 확인하여 WAL 을 트리밍할 수 있도록 합니다. 프로세서는 테이블의 초기 스키마를 포함하고 그 이후 스키마가 변경될 때마다 생성되는 DDLs 및 테이블의 데이터 변경을 나타내는 레코드가 포함된 DMLs 등 두 가지 유형의 플로우 파일을 출력합니다. 하나의 플로우 파일은 항상 단일 테이블과 관련된 데이터를 나타냅니다. 스키마가 포함된 DDL 은 FlowFile 내용에 { “columns”: [ { “name”: “<columnName>”, “type”: “<snowflakeType>”, “nullable”: <true|false>, “scale”: <scale>, “precision”: <precision> }, … ], “primaryKeys”: [“<primaryKey1>”, “<primaryKey2>”, …]} 와 같은 형식의 JSON 오브젝트로 기록됩니다. DML 레코드의 구조는 { “primaryKeys”: { “<column>”: <value>, … }, “payload”: { “<column>”: <value>, … }, “metadata”: { “<column>”: <value>, … }} 입니다.
입력 요구 사항¶
FORBIDDEN
민감한 동적 속성 지원¶
false
속성¶
| 속성 | 설명 | 
|---|---|
| 열 필터 저장소ㄴ | 테이블별 열 필터링 설정을 저장하는 서비스입니다. | 
| JDBC Driver Location | 쉼표로 구분된 파일/폴더 목록 및/또는 URLs 드라이버 JAR 및 종속성(있는 경우)이 포함된 목록입니다. 예: ‘/var/tmp/postgresql-java-client-42.7.5.jar’ | 
| JDBC URL | 데이터베이스 연결의 JDBC URL, 예: jdbc:postgresql://localhost:5432/postgres | 
| Max Batch Size | 단일 반복에서 처리할 최대 레코드 수 | 
| Max Batch Wait Time | CDC 에서 스트림에 데이터가 표시될 때까지 대기할 수 있는 최대 시간입니다. | 
| 비밀번호 | PostgreSQL 데이터베이스에 액세스하기 위한 비밀번호 | 
| Publication Name | 읽을 CDC 게시의 이름입니다. | 
| Record Writer | Record Writer는 DML 이벤트를 직렬화하는 데 사용됩니다 | 
| SSL 컨텍스트 서비스 | 암호화된 소켓 통신을 지원하는 SSL 컨텍스트 서비스 | 
| SSL Mode | PostgreSQL 에 연결할 때 SSL 사용 및 강제 적용 여부 | 
| Table State Store | 복제된 테이블의 상태를 보관하는 공유 저장소입니다. | 
| 사용자 이름 | PostgreSQL 데이터베이스에 액세스하기 위한 사용자 이름 | 
상태 관리¶
| 범위 | 설명 | 
|---|---|
| CLUSTER | 데이터베이스의 현재 CDC 이벤트에 대한 ‘포인터’와 같은 정보는 이 프로세서에 저장되어 다시 시작하면 동일한 위치에서 계속할 수 있으며 PostgreSQL 에 생성된 복제 슬롯의 이름도 저장됩니다. | 
관계¶
| 이름 | 설명 | 
|---|---|
| 성공 | CDC 스트림 이벤트에서 FlowFile 을 성공적으로 생성했습니다 | 
Writes 특성¶
| 이름 | 설명 | 
|---|---|
| source.schema.name | 이벤트가 발생한 테이블의 스키마 이름 | 
| source.table.name | 이벤트가 발생한 테이블의 이름 | 
| cdc.event.type | 플로우 파일이 전달하는 이벤트 유형: ddl 또는 dml | 
| cdc.most.significant.position | ddl 스트림에서 가장 중요한 ddl의 위치 | 
| cdc.least.significant.position | 디렉터리 스트림에서 ddl의 가장 중요하지 않은 위치 | 
| cdc.event.seen.at | 프로세서가 ddl 이벤트를 읽은 시간으로부터의 타임스탬프 |