動的テーブルでサポートされるクエリ

動的テーブルは、標準的な SQL 式と、数学演算、文字列関数、日付関数など、Snowflake がサポートする関数をサポートします。このトピックでは、動的テーブルが増分更新モードと完全更新モードでサポートする式、構文、関数、演算子、句について説明します。

インクリメンタル リフレッシュに対応していない式、キーワード、演算子、または句をクエリが使用している場合、自動リフレッシュプロセスでは代わりにフルリフレッシュが使用されますが、 追加コストが発生する可能性があります

サポートされているデータ型

動的テーブルは、すべての Snowflake SQL データ型 をインクリメンタルリフレッシュとフルリフレッシュの両方でサポートしていますが、次を例外とします:

  • 構造化データ型。

  • 地理空間データ型(フルリフレッシュのみ)。

インクリメンタルおよびフルリフレッシュモードでのクエリに対応

キーワード

インクリメンタル リフレッシュ モード

フル リフレッシュ モード

DISTINCT

サポート対象

サポート対象

外部関数

サポート対象外

サポート対象外

FROM

ソーステーブル、ビュー、Snowflake 管理の Apache Iceberg™ テーブル、その他の動的テーブル。

FROM 句外のサブクエリ(例: WHERE EXISTS)はサポートされていません。

サポート対象

GROUP BY

サポート対象

サポート対象

CROSS JOIN

サポートされています。結合するテーブルはいくつでも指定でき、結合内にあるすべてのテーブルの更新はクエリの結果に反映されます。

サポート対象

INNER JOIN

サポートされています。結合するテーブルはいくつでも指定でき、結合内にあるすべてのテーブルの更新はクエリの結果に反映されます。

サポート対象

LATERAL JOIN

サポート対象外です。ただし、 LATERAL は FLATTEN() と一緒に使うことができます。例:

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" } ] } ] }');
Copy
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;
Copy

インクリメンタル リフレッシュでラテラル フラット化を使用する場合、以下の動作に注意してください。

  • 横方向のフラット化結合からフラット化 SEQ 列を選択することはサポートされていません。

  • AUTO パラメーターを使用する場合、Snowflakeは通常、他の制限によって阻止されない限り、横方向のフラット化結合を持つクエリのインクリメンタルリフレッシュを選択します。

サポートされています。

OUTER-EQUI JOIN.

サポートされています。結合するテーブルはいくつでも指定でき、結合内にあるすべてのテーブルの更新はクエリの結果に反映されます。

サポート対象

[{LEFT | RIGHT | FULL }] OUTER JOIN

次はサポートされていません。

  • 両側が同じテーブルである外部結合。

  • 両側が GROUP BY 句を持つサブクエリである外部結合。

  • 等値でない述語を使用した外部結合。

それ以外の場合、外側結合にはいくつでもテーブルを指定することができ、結合内の全てのテーブルの更新がクエリの結果に反映されます。

サポート対象

ML または LLM 関数

サポート対象外

サポート対象

PIVOT および UNPIVOT

サポート対象外

サポート対象外

SAMPLE / TABLESAMPLE

サポート対象外

サポート対象外

スカラー集計

サポート対象

サポート対象

SELECT

決定論的組み込み関数や 不変 ユーザー定義関数 を使用した式を含む式。

サポート対象

演算子のセット (UNION, MINUS, EXCEPT, INTERSECT)

サポート対象外

サポート対象

シーケンス

サポート対象外

サポート対象外

すべての サブクエリ演算子

サポート対象外

サポート対象

UNION ALL

サポート対象

サポート対象

ユーザー定義関数 (UDFs)

以下の制限を除きサポート:

  • UDFs Python、Java、Scala、Javascriptで書かれたもので、 VOLATILE パラメーターを指定するものはサポートされていません。

  • SQL で書かれた UDFs で、サブクエリを含むステートメントはサポートされていません (例えば、 SELECT ステートメント)。

  • インクリメンタルなリフレッシュを使用する動的テーブルで使用中に IMMUTABLE UDF を置き換えると、リフレッシュに失敗します。

  • 外部ステージからの UDFs のインポートには対応していません。

サポート対象

ユーザー定義テーブル関数 (UDTFs)

以下の制限を除きサポート:

  • SQL に書かれた UDTFs はサポートされていません。

  • UDTFs から読み込む SELECT ブロックは列を明示的に指定する必要があり、 * を使用することはできません。

サポート対象

WHERE / HAVING / QUALIFY

SELECT で有効な式と同じ式のフィルターがサポートされています。

CURRENT_TIMESTAMP, CURRENT_TIME, CURRENT_DATE 関数とそのエイリアスを使ったフィルターがサポートされています。

サポートされています。

CURRENT_TIMESTAMP, CURRENT_TIME, CURRENT_DATE 関数とそのエイリアスを使ったフィルターがサポートされています。

ウィンドウ関数

以下の制限を除きサポート:

  • PARTITION BY 句が非同一であるか、別々のクエリ・ブロックに現れる、同じ動的テーブル定義内の複数のウィンドウ関数はサポートされていません。

  • ウィンドウ関数 PERCENT_RANK, DENSE_RANK, RANK をスライディングウィンドウフレームで使用することはサポートされていません。

  • ANY_VALUE の使用は非決定性関数であるためサポートされていません。

サポート対象

WITH

サブクエリで増分リフレッシュをサポートする機能を使用する 共通テーブル式(CTEs)

サポート対象

インクリメンタルモードとフルリフレッシュモードで非決定性関数をサポート

非決定性関数

インクリメンタル リフレッシュ モード

フル リフレッシュ モード

ANY_VALUE

サポート対象外

サポート対象外

CLASSIFY_TEXT (SNOWFLAKE.CORTEX)

サポート対象外

サポート対象

COMPLETE (SNOWFLAKE.CORTEX)

サポート対象外

サポート対象

CURRENT_ACCOUNT

サポート対象外

サポート対象

CURRENT_DATE (およびエイリアス)

サポート対象

サポート対象

CURRENT_REGION

サポート対象外

サポート対象

CURRENT_ROLE

サポート対象外

サポート対象

CURRENT_TIME (およびエイリアス)

サポート対象

サポート対象

CURRENT_TIMESTAMP (およびエイリアス)

サポート対象

サポート対象

CURRENT_USER に依存する関数。

サポート対象外です。動的テーブルのリフレッシュは、特別な SYSTEM ユーザーの所有者ロールとして機能します。

サポート対象外です。動的テーブルのリフレッシュは、特別な SYSTEM ユーザーの所有者ロールとして機能します。

CURRENT_WAREHOUSE

サポート対象外

サポート対象

DENSE_RANK

サポート対象外

サポート対象

EMBED_TEXT_768 (SNOWFLAKE.CORTEX)

サポート対象外

サポート対象

EMBED_TEXT_1024 (SNOWFLAKE.CORTEX)

サポート対象外

サポート対象

EXTRACT_ANSWER (SNOWFLAKE.CORTEX)

サポート対象外

サポート対象

FINETUNE (SNOWFLAKE.CORTEX)

サポート対象外

サポート対象

FIRST_VALUE

サポート対象

サポート対象

LAST_VALUE

サポート対象

サポート対象

NTH_VALUE

サポート対象

サポート対象

RANK

サポート対象外

サポート対象

ROW_NUMBER

サポート対象外

サポート対象

SENTIMENT (SNOWFLAKE.CORTEX)

サポート対象外

サポート対象

シーケンス関数 (例: SEQ1SEQ2

サポート対象外

サポート対象

TRANSLATE (SNOWFLAKE.CORTEX)

サポート対象外

サポート対象

VOLATILE ユーザー定義関数

サポート対象外

サポート対象