UpdateSnowflakeDatabase 프로세서
UpdateSnowflakeDatabase 프로세서
Openflow의 UpdateSnowflakeDatabase 프로세서는 들어오는 FlowFile의 스키마를 기준으로 Snowflake 테이블 정의를 업데이트하는 데 사용합니다. 이 문서에서 프로세서의 번들, 설명, 속성, 관계 등을 확인할 수 있습니다.
출처: Snowflake 문서
본문
번들 (Bundle)
com.snowflake.openflow.runtime | runtime-snowflake-processors-nar
설명 (Description)
들어오는 FlowFile에 제공된 스키마를 기준으로 Snowflake 테이블의 정의를 업데이트합니다. 스키마는 FlowFile 내용으로 제공되든 속성으로 지정되든 관계없이 다음 형식의 JSON이어야 합니다: { "columns": [ { "name": "<column name>", "type": "<column type>", "nullable": <true/false>, "precision": <precision, only for numeric type>, "scale": <scale, only for numeric type> }, … ], "primaryKeys": ["<name of first primary key column>", "<name of second primary key column>", …] }
태그 (Tags)
입력 요구사항 (Input Requirement)
REQUIRED
민감한 동적 속성 지원 (Supports Sensitive Dynamic Properties)
false
속성 (Properties)
| 속성 (Property) | 설명 (Description) |
|---|---|
| Add Column Strategy | 들어오는 스키마에 기존 테이블에는 없는 열이 있을 때 사용할 전략입니다. |
| Add Not Null Strategy | 들어오는 스키마에 기존 테이블에는 없는 not-null 제약이 있을 때 사용할 전략입니다. |
| Alter Column Type Strategy | 기존 테이블의 열 유형이 들어오는 스키마와 다를 때 사용할 전략입니다. |
| Column Name Transformation | 스키마에 정의된 열 이름에 적용할 수 있는 선택적 변환입니다. 이 변환은 열 이름을 테이블의 기존 열과 비교하기 전에 적용됩니다. 이 속성은 속성 외에도 Expression Language를 통해 column.name, column.type, column.nullable, column.precision, column.scale, column.primaryKey 변수를 참조할 수 있습니다. |
| Column Removal Strategy | 기존 테이블에 들어오는 스키마에는 없는 열이 있을 때 사용할 전략입니다. |
| Connection Pool | Snowflake에 연결하는 데 사용할 연결 풀입니다. |
| Create Stream | 테이블에 대한 Snowflake Stream을 생성할지 여부입니다. |
| Creation Parameters | CREATE TABLE 문에 포함할 추가 매개변수입니다. 예: CLUSTER BY (column_name) |
| Desired Schema | 원하는 스키마/테이블 정의입니다. |
| Drop Column Strategy | 기존 테이블에 들어오는 스키마에는 없는 열이 있을 때 사용할 전략입니다. |
| Drop Not Null Strategy | 기존 테이블에 들어오는 스키마에는 없는 not-null 제약이 있을 때 사용할 전략입니다. |
| Include Default Values | CREATE TABLE 또는 ALTER TABLE ADD COLUMN 문에 DEFAULT 값을 포함할지 여부입니다. |
| Include Not Null Constraints | CREATE TABLE 또는 ALTER TABLE ADD COLUMN 문에 NOT NULL 제약을 포함할지 여부입니다. |
| Include Primary Key Constraints | 생성 문에 기본 키 제약을 포함할지 여부입니다. |
| Max Batch Size | 주어진 테이블에 대해 단일 실행에서 처리할 수 있는 최대 FlowFile 수입니다. |
| Modify Primary Key Strategy | 들어오는 스키마의 기본 키가 기존 기본 키와 다를 때 사용할 전략입니다. 기본 키를 수정하려면 기존 기본 키(있는 경우)를 삭제하고 새 기본 키를 추가해야 합니다. |
| Record Reader | 원하는 스키마를 얻는 데 사용할 Record Reader입니다. |
| Removed Column Name Suffix | 제거된 열에 추가할 접미사입니다. 예를 들어 열 foo를 foo__deleted로 이름 바꾸려면 이 속성을 __deleted로 설정할 수 있습니다. |
| Schema Name | 업데이트할 스키마의 이름입니다. |
| Stream Creation Parameters | CREATE STREAM 문에 포함할 추가 매개변수입니다. 예: APPEND_ONLY=TRUE |
| Stream Name | 스트림의 이름입니다. |
| Table Metadata Cache Expiration Time | 캐시 항목이 제거된 후의 시간(초)입니다. |
| Table Name | 업데이트할 테이블의 이름 또는 스트림을 생성할 테이블 이름입니다. |
| Table Schema Strategy | 원하는 스키마/테이블 정의를 얻는 방법을 지정합니다. |
| Table Stream Creation Parameters | CREATE STREAM 문에 포함할 매개변수입니다. 예: APPEND_ONLY=TRUE. 스트림이 원본으로 삼는 테이블과 함께 생성됩니다. |
| Table Stream Name | 테이블과 함께 생성되는 스트림의 이름입니다. 스트림 소스는 생성된 테이블입니다. |
| Update Type | 수행할 업데이트 유형입니다. |
| Use Table Metadata Cache | Snowflake에서 직접 읽는 대신 테이블의 메타데이터를 캐시할지 여부입니다. [Create Table If Not Exists, Alter Table]에 적용됩니다. |
관계 (Relationships)
| 이름 (Name) | 설명 (Description) |
|---|---|
| failure | 테이블을 업데이트할 수 없으면 들어오는 FlowFile이 이 관계로 라우팅됩니다. |
| success | 테이블이 성공적으로 업데이트된 후 들어오는 FlowFile이 이 관계로 라우팅됩니다. |
기록하는 속성 (Writes attributes)
| 이름 (Name) | 설명 (Description) |
|---|---|
| schema.hash | 모든 업데이트 완료 후 최종 테이블 스키마의 SHA-256 해시입니다. 변경 감지와 캐싱 목적으로 사용할 수 있습니다. |