동적 테이블에 대해 지원되는 쿼리¶
동적 테이블은 수학 연산, 문자열 함수, 날짜 함수 등을 포함한 표준 SQL 식과 Snowflake 지원 함수를 지원합니다. 이 항목에서는 증분 및 전체 새로 고침 모드에서 동적 테이블이 지원하는 식, 구조체, 함수, 연산자 및 절에 대해 설명합니다.
쿼리가 증분 새로 고침에 지원되지 않는 식, 키워드, 연산자 또는 절을 사용하는 경우 자동 새로 고침 프로세스는 대신 전체 새로 고침을 사용하므로 추가 비용이 발생 할 수 있습니다.
지원되는 데이터 타입¶
동적 테이블은 증분 및 전체 새로 고침 모두에 대해 모든 Snowflake SQL 데이터 타입 을 지원합니다.
정형 데이터 타입
지리공간 데이터 타입(전체 새로 고침만 해당).
증분 및 전체 새로 고침 모드에서 지원되는 쿼리¶
키워드 |
Incremental Refresh Mode |
Full Refresh Mode |
|---|---|---|
지원됨 |
지원됨 |
|
지원되지 않음 |
지원되지 않음 |
|
소스 테이블, 뷰, Snowflake 관리 Apache Iceberg™ 테이블 및 기타 동적 테이블. FROM 절 외부의 하위 쿼리(예: WHERE EXISTS)는 지원되지 않습니다. |
지원됨 |
|
지원됨 |
지원됨 |
|
지원됨. 조인에서 원하는 수의 테이블을 지정할 수 있으며 조인의 모든 테이블에 대한 업데이트는 쿼리 결과에 반영됩니다. |
지원됨 |
|
지원됨. 조인에서 원하는 수의 테이블을 지정할 수 있으며 조인의 모든 테이블에 대한 업데이트는 쿼리 결과에 반영됩니다. |
지원됨 |
|
LATERAL JOIN |
지원 안 됨. 그러나 FLATTEN() 과 함께 LATERAL 을 사용할 수 있습니다. 예: CREATE TABLE persons
AS
SELECT column1 AS id, parse_json(column2) AS entity
FROM values
(12712555,
'{ name: { first: "John", last: "Smith"},
contact: [
{ business:[
{ type: "phone", content:"555-1234" },
{ type: "email", content:"j.smith@example.com" } ] } ] }'),
(98127771,
'{ name: { first: "Jane", last: "Doe"},
contact: [
{ business:[
{ type: "phone", content:"555-1236" },
{ type: "email", content:"j.doe@example.com" } ] } ] }');
CREATE DYNAMIC TABLE my_dynamic_table
TARGET_LAG = DOWNSTREAM
WAREHOUSE = mywh
AS
SELECT p.id, f.value, f.path
FROM persons p,
LATERAL FLATTEN(input => p.entity) f;
증분 새로 고침과 함께 래터럴 데이터 스큐를 사용하는 경우 다음 동작에 유의하십시오.
|
지원됨. |
OUTER-EQUI JOIN. |
지원됨. 조인에서 원하는 수의 테이블을 지정할 수 있으며 조인의 모든 테이블에 대한 업데이트는 쿼리 결과에 반영됩니다. |
지원됨 |
[{LEFT | RIGHT | FULL }] OUTER JOIN |
다음은 지원되지 않습니다.
그렇지 않으면 외부 조인에서 원하는 수의 테이블을 지정할 수 있으며 조인의 모든 테이블에 대한 업데이트가 쿼리 결과에 반영됩니다. |
지원됨 |
SELECT 절에서 지원됩니다. |
지원됨 |
|
지원되지 않음 |
지원되지 않음 |
|
지원되지 않음 |
지원되지 않음 |
|
스칼라 집계 |
지원됨 |
지원됨 |
지원됨 |
||
세트 연산자 (UNION, MINUS, EXCEPT, INTERSECT) |
UNION을 제외하고 지원되지 않습니다. 증분 새로 고침에서는 UNION 세트 연산자는 UNION ALL 및 SELECT DISTINCT 연산자의 조합처럼 작동합니다. |
지원됨 |
시퀀스. |
지원되지 않음 |
지원되지 않음 |
모든 하위 쿼리 연산자. |
지원되지 않음 |
지원됨 |
지원됨 |
지원됨 |
|
사용자 정의 함수 (UDFs) |
다음 제한 사항을 제외하고 지원됩니다. |
지원됨 |
사용자 정의 테이블 함수 (UDTFs) |
다음 제한 사항을 제외하고 지원됩니다.
|
지원됨 |
SELECT 에서 유효한 식과 동일한 필터는 지원됩니다. CURRENT_TIMESTAMP, CURRENT_TIME, CURRENT_DATE 함수 및 해당 별칭을 가진 필터는 지원됩니다. |
지원됨. CURRENT_TIMESTAMP, CURRENT_TIME, CURRENT_DATE 함수 및 해당 별칭을 가진 필터는 지원됩니다. |
|
다음 제한 사항을 제외하고 지원됩니다.
|
지원됨 |
|
하위 쿼리에서 증분 새로 고침 지원 기능을 사용하는 공통 테이블 표현식(CTEs). WITH RECURSIVE는 지원되지 않습니다. |
지원됨 |
증분 및 전체 새로 고침 모드에서 지원되는 비결정적 함수 지원¶
비결정적 함수 |
Incremental Refresh Mode |
Full Refresh Mode |
|---|---|---|
지원되지 않음 |
지원되지 않음 |
|
SELECT 절에서 지원됩니다. |
지원됨 |
|
SELECT 절에서 지원됩니다. |
지원됨 |
|
지원되지 않음 |
지원됨 |
|
CURRENT_DATE (및 별칭) |
WHERE/HAVING/QUALIFY 절의 일부로만 지원됩니다. |
WHERE/HAVING/QUALIFY 절의 일부로만 지원됩니다. |
지원되지 않음 |
지원됨 |
|
지원되지 않음 |
지원됨 |
|
CURRENT_TIME (및 별칭) |
WHERE/HAVING/QUALIFY 절의 일부로만 지원됩니다. |
WHERE/HAVING/QUALIFY 절의 일부로만 지원됩니다. |
CURRENT_TIMESTAMP (및 별칭) |
WHERE/HAVING/QUALIFY 절의 일부로만 지원됩니다. |
WHERE/HAVING/QUALIFY 절의 일부로만 지원됩니다. |
CURRENT_USER 에 의존하는 함수. |
지원 안 됨. 동적 테이블 새로 고침은 특별한 SYSTEM 사용자가 있는 소유자 역할을 수행합니다. |
지원 안 됨. 동적 테이블 새로 고침은 특별한 SYSTEM 사용자가 있는 소유자 역할을 수행합니다. |
지원되지 않음 |
지원됨 |
|
지원됨 |
지원됨 |
|
SELECT 절에서 지원됩니다. |
지원됨 |
|
SELECT 절에서 지원됩니다. |
지원됨 |
|
SELECT 절에서 지원됩니다. |
지원됨 |
|
SELECT 절에서 지원됩니다. |
지원됨 |
|
지원됨 |
지원됨 |
|
지원됨 |
지원됨 |
|
지원됨 |
지원됨 |
|
지원됨 |
지원됨 |
|
지원됨 |
지원됨 |
|
SELECT 절에서 지원됩니다. |
지원됨 |
|
시퀀스 함수 (예: |
지원되지 않음 |
지원됨 |
SELECT 절에서 지원됩니다. |
지원됨 |
|
VOLATILE 사용자 정의 함수 |
지원되지 않음 |
지원됨 |
Supported Snowflake Cortex AI functions¶
증분 새로 고침 모드의 동적 테이블에 대한 SELECT 절에서 :doc:`/user-guide/snowflake-cortex/aisql`을 사용할 수 있습니다. :ref:`label-cortex_llm_ai_function`에 설명된 것과 동일한 가용성 제한이 적용됩니다.
Cortex AI Functions let you add AI-powered insights directly to your dynamic tables, automatically analyzing data as it updates. For example, it can classify customer reviews, support tickets, or survey responses as positive/negative or assign categories.
In the following example, review_sentiment uses AI_FILTER to evaluate each review with an LLM. Cortex AI Functions combine
the prompt The reviewer enjoyed the restaurant with the actual review text. The output column enjoyed is the classification
generated using Cortex AI Functions based on the prompt, indicating whether the reviewer enjoyed the restaurant.
CREATE OR REPLACE TABLE reviews AS
SELECT 'Wow... Loved this place.' AS review
UNION ALL
SELECT 'The pizza is not good.' AS review;
CREATE OR REPLACE DYNAMIC TABLE review_sentiment
TARGET_LAG = DOWNSTREAM
WAREHOUSE = mywh
REFRESH_MODE = INCREMENTAL
AS
SELECT review, AI_FILTER(CONCAT('The reviewer enjoyed the restaurant', review), {'model': 'llama3.1-70b'}) AS enjoyed FROM reviews;