動的テーブルでサポートされるクエリ¶
動的テーブルは、標準的な SQL 式と、数学演算、文字列関数、日付関数など、Snowflake がサポートする関数をサポートします。このトピックでは、動的テーブルが増分更新モードと完全更新モードでサポートする式、構文、関数、演算子、句について説明します。
インクリメンタル リフレッシュに対応していない式、キーワード、演算子、または句をクエリが使用している場合、自動リフレッシュプロセスでは代わりにフルリフレッシュが使用されますが、 追加コストが発生する可能性があります。
サポートされているデータ型¶
動的テーブルは、すべての Snowflake SQL データ型 をインクリメンタルリフレッシュとフルリフレッシュの両方でサポートしていますが、次を例外とします:
構造化データ型。
地理空間データ型(フルリフレッシュのみ)。
インクリメンタルおよびフルリフレッシュモードでのクエリに対応¶
キーワード |
インクリメンタル リフレッシュ モード |
フル リフレッシュ モード |
---|---|---|
サポート対象 |
サポート対象 |
|
サポート対象外 |
サポート対象外 |
|
ソーステーブル、ビュー、Snowflake 管理の Apache Iceberg™ テーブル、その他の動的テーブル。 FROM 句外のサブクエリ(例: WHERE EXISTS)はサポートされていません。 |
サポート対象 |
|
サポート対象 |
サポート対象 |
|
サポートされています。結合するテーブルはいくつでも指定でき、結合内にあるすべてのテーブルの更新はクエリの結果に反映されます。 |
サポート対象 |
|
サポートされています。結合するテーブルはいくつでも指定でき、結合内にあるすべてのテーブルの更新はクエリの結果に反映されます。 |
サポート対象 |
|
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" } ] } ] }');
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 |
次はサポートされていません。
それ以外の場合、外側結合にはいくつでもテーブルを指定することができ、結合内の全てのテーブルの更新がクエリの結果に反映されます。 |
サポート対象 |
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象外 |
|
サポート対象外 |
サポート対象外 |
|
スカラー集計 |
サポート対象 |
サポート対象 |
サポート対象 |
||
演算子のセット (UNION, MINUS, EXCEPT, INTERSECT) |
サポート対象外 |
サポート対象 |
サポート対象外 |
サポート対象外 |
|
すべての サブクエリ演算子。 |
サポート対象外 |
サポート対象 |
サポート対象 |
サポート対象 |
|
ユーザー定義関数 (UDFs) |
以下の制限を除きサポート: |
サポート対象 |
ユーザー定義テーブル関数 (UDTFs) |
以下の制限を除きサポート:
|
サポート対象 |
SELECT で有効な式と同じ式のフィルターがサポートされています。 CURRENT_TIMESTAMP, CURRENT_TIME, CURRENT_DATE 関数とそのエイリアスを使ったフィルターがサポートされています。 |
サポートされています。 CURRENT_TIMESTAMP, CURRENT_TIME, CURRENT_DATE 関数とそのエイリアスを使ったフィルターがサポートされています。 |
|
以下の制限を除きサポート:
|
サポート対象 |
|
サブクエリで増分リフレッシュをサポートする機能を使用する 共通テーブル式(CTEs)。 |
サポート対象 |
インクリメンタルモードとフルリフレッシュモードで非決定性関数をサポート¶
非決定性関数 |
インクリメンタル リフレッシュ モード |
フル リフレッシュ モード |
---|---|---|
サポート対象外 |
サポート対象外 |
|
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
CURRENT_DATE (およびエイリアス) |
サポート対象 |
サポート対象 |
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
CURRENT_TIME (およびエイリアス) |
サポート対象 |
サポート対象 |
CURRENT_TIMESTAMP (およびエイリアス) |
サポート対象 |
サポート対象 |
CURRENT_USER に依存する関数。 |
サポート対象外です。動的テーブルのリフレッシュは、特別な SYSTEM ユーザーの所有者ロールとして機能します。 |
サポート対象外です。動的テーブルのリフレッシュは、特別な SYSTEM ユーザーの所有者ロールとして機能します。 |
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
サポート対象 |
サポート対象 |
|
サポート対象 |
サポート対象 |
|
サポート対象 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
サポート対象外 |
サポート対象 |
|
シーケンス関数 (例: |
サポート対象外 |
サポート対象 |
サポート対象外 |
サポート対象 |
|
VOLATILE ユーザー定義関数 |
サポート対象外 |
サポート対象 |