論理ビュー#
論理ビューは、名前付きでパラメーターを持たない typesql クエリです。Supernova は型検証、ポリシーによる受付、スナップショット選択、実行の前に、呼び出し元のクエリへ展開します。
select customer_id, revenue
from finance.customer_revenue
where revenue > 1000論理ビューとは#
論理ビューは再利用可能なクエリテキストです。Iceberg ビューではなく、データを実体化しません。各参照は、曖昧さのない別名を持つ、かっこで囲んだ派生クエリに展開されます。
定義名には、2 部構成の [schema, view] または 3 部構成の [catalog, schema, view] を使います。各部分の照合では ASCII の大文字と小文字を区別しません。ただし、呼び出し側が許可済みの確定した定義集合を 1 つ渡す必要があります。
展開の保証#
渡す各定義には、クエリをちょうど 1 つ含め、位置指定、名前付き、疑問符のパラメーターを含めないでください。展開はリレーションと修飾のスコープを理解し、テキスト置換を使いません。相関サブクエリが生成された別名を誤って取り込むこともありません。
展開の成果物には、作成したクエリ、展開後の SQL、使用したすべてのビュー、各定義の正確な内容の SHA-256 ダイジェストを記録します。この由来の情報も、下流での識別に使います。
診断と上限#
TS0800 は無効な環境または定義、TS0801 は循環、TS0802 は上限超過、TS0803 は無効な論理ビュードキュメントを報告します。
環境は最大 4,096 個のビューと 64 段階の展開を受け付けます。展開前に、ルート SQL の生データとデコードしたビュー SQL のサイズを制限します。無効な環境は、部分的な結果を公開せずに失敗します。
永続的なテーブルが必要ならモデルを使います。再利用と型検証が重要で、実体化が不要なら論理ビューを使います。