CREATE ONLINE FEATURE TABLE
CREATE ONLINE FEATURE TABLE
현재/지정한 스키마에 새 온라인 피처 테이블(online feature table)을 만들거나 기존 테이블을 교체하는 명령이에요. 온라인 피처 테이블은 실시간 추론에 사용하기 위해 소스(뷰 또는 동적 테이블)의 피처를 지연 시간이 낮은 조회를 지원하도록 관리해요.
출처: 문서
본문
현재/지정한 스키마에 새 온라인 피처 테이블을 만들거나 기존 테이블을 교체해요.
함께 보기: ALTER ONLINE FEATURE TABLE, DESCRIBE ONLINE FEATURE TABLE, DROP ONLINE FEATURE TABLE, SHOW ONLINE FEATURE TABLES
구문 (Syntax)
CREATE [ OR REPLACE ] ONLINE FEATURE TABLE <name>
PRIMARY KEY ( <col_name> [ , <col_name> , ... ] )
TARGET_LAG = '<num> { seconds | minutes | hours | days }'
WAREHOUSE = <warehouse_name>
[ REFRESH_MODE = { AUTO | FULL | INCREMENTAL } ]
[ TIMESTAMP_COLUMN = <col_name> ]
[ [ WITH ] COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
FROM <source>
필수 매개변수 (Required parameters)
name
온라인 피처 테이블의 식별자(즉 이름)를 지정하는 문자열로, 테이블이 만들어지는 스키마 안에서 고유해야 해요.
PRIMARY KEY ( col_name [ , col_name , ... ] )
테이블의 필수 기본 키 제약 조건을 지정해요. 기본 키는 테이블의 각 행의 고유 식별자 역할을 하며 빠른 SELECT 쿼리의 조회 키(lookup key) 역할을 해요.
TARGET_LAG = 'num { seconds | minutes | hours | days }'
온라인 피처 테이블의 내용이 소스에 대한 업데이트보다 뒤처질 수 있는 최대 시간을 지정해요.
- 10초에서 8일 사이(포함)여야 해요.
WAREHOUSE = warehouse_name
온라인 피처 테이블을 새로 고치는 컴퓨팅 리소스를 제공하는 웨어하우스의 이름을 지정해요.
온라인 피처 테이블을 만들려면 이 웨어하우스에 대한 USAGE 권한이 있는 역할을 사용해야 해요.
FROM source
온라인 피처 테이블의 데이터 소스를 지정해요. 뷰 또는 동적 테이블이어야 해요.
선택 매개변수 (Optional parameters)
REFRESH_MODE = { AUTO | FULL | INCREMENTAL }
온라인 피처 테이블의 새로 고침 모드를 지정해요.
참고: 이 속성은 온라인 피처 테이블을 만든 뒤에는 변경할 수 없어요. 속성을 수정하려면 온라인 피처 테이블을 다시 만들어요.
AUTO: 새로 고침 모드가 AUTO이면 시스템은 기본적으로 증분 새로 고침을 적용하려고 해요. 다만 증분 새로 고침이 지원되지 않거나 성능이 좋지 않을 것으로 예상되면 전체 새로 고침을 자동으로 선택해요.- 사용 사례에 가장 적합한 모드를 결정하려면 새로 고침 모드와 자동 추천을 실험해 봐요. Snowflake 릴리스 전체에서 일관된 동작을 위해 모든 온라인 피처 테이블에 새로 고침 모드를 명시적으로 설정해요.
- 온라인 피처 테이블의 새로 고침 모드를 확인하려면 SHOW ONLINE FEATURE TABLES 명령으로 보면 돼요.
FULL: 온라인 피처 테이블을 증분으로 새로 고칠 수 있더라도 전체 새로 고침을 강제해요.INCREMENTAL: 온라인 피처 테이블의 증분 새로 고침을 강제해요. 온라인 피처 테이블의 기반이 되는 쿼리가 증분 새로 고침을 수행할 수 없다면 온라인 피처 테이블 생성이 실패하고 오류 메시지를 표시해요.- 기본값: AUTO
TIMESTAMP_COLUMN = col_name
소스에서 타임스탬프 컬럼으로 취급되는 컬럼을 지정해요.
- 기본값: 값 없음
COMMENT = 'string_literal'
온라인 피처 테이블에 대한 설명(comment)을 지정해요.
- 기본값: 값 없음
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
태그 이름과 태그 문자열 값을 지정해요. 태그 값의 최대 문자 수는 256이에요.
- 기본값: 값 없음
접근 제어 요구 사항 (Access control requirements)
| 권한 (Privilege) | 객체 (Object) | 비고 |
|---|---|---|
| CREATE ONLINE FEATURE TABLE | Schema | 스키마에 CREATE ONLINE FEATURE TABLE 권한이 있는 역할 |
| USAGE | Warehouse | WAREHOUSE 매개변수에 지정된 웨어하우스에 필요 |
스키마 안의 객체를 작업하려면 상위 데이터베이스에 대한 권한이 최소 하나, 상위 스키마에 대한 권한이 최소 하나 필요해요.
지정된 권한 집합으로 사용자 지정 역할을 만드는 방법은 사용자 지정 역할 만들기(Creating custom roles)를 참고해요. 보호 가능한 객체에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여의 일반적인 내용은 접근 제어 개요(Overview of Access Control)를 참고해요.
사용 메모 (Usage notes)
OR REPLACE와 IF NOT EXISTS 절은 서로 배타적이에요. 같은 문에서 둘 다 사용할 수 없어요.
CREATE OR REPLACE <object> 문은 원자적(atomic)으로 동작해요. 즉, 객체를 교체할 때 기존 객체는 삭제되고 새 객체는 단일 트랜잭션 안에서 생성돼요.
⚠️ 주의: 고객은 Snowflake 서비스를 사용할 때 (User 객체를 제외하고) 개인 데이터·민감 데이터·수출 통제 데이터·기타 규제 데이터를 메타데이터로 입력하지 않도록 해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고해요.
예시 (Examples)
다음 예시는 ID 컬럼에 기본 키가 있는 my_online_feature_table이라는 온라인 피처 테이블을 만들어요.
CREATE ONLINE FEATURE TABLE my_online_feature_table
PRIMARY KEY (ID)
TIMESTAMP_COLUMN = 'TS'
TARGET_LAG = '30 seconds'
WAREHOUSE = MY_WAREHOUSE
FROM MY_SOURCE_DYNAMIC_TABLE;
이 예시에서 ID와 TS는 기존 동적 테이블 MY_SOURCE_DYNAMIC_TABLE의 해당 컬럼을 가리켜요.
더 알아보기 (Learn more)
- ALTER ONLINE FEATURE TABLE — 온라인 피처 테이블 수정
- DROP ONLINE FEATURE TABLE — 온라인 피처 테이블 삭제
- SHOW ONLINE FEATURE TABLES — 온라인 피처 테이블 조회