SQL ウェアハウス セッションを使用すると、変数の定義、一時ビューの作成、複数のクエリ実行での状態変更の維持を行うことができます。 セッションを使用すると、すべてのステートメントを一度に実行しなくても、SQL ロジックを繰り返し構築できます。
SQL ウェアハウスにアタッチされている場合は、次のコンテキストでセッションを使用できます。
使用例
セッションを使用すると、共有状態を維持しながらステートメントを個別に実行できます。 たとえば、変数を宣言し、その変数を使用する一時ビューを作成してから、ビューに個別にクエリを実行できます。
このワークフローの例を次に示します。
-- Statement 1: Declare a variable
DECLARE VARIABLE row_limit = 10;
-- Statement 2: Create a temporary view using the variable
CREATE OR REPLACE TEMPORARY VIEW filtered_data AS
SELECT
*
FROM
main.default.sales_data
LIMIT row_limit;
-- Statement 3: Query the temporary view
SELECT
*
FROM
filtered_data;
セッションでは、各ステートメントを個別に実行できます。 変数と一時ビューは引き続き使用できるため、前のすべてのステートメントを再実行せずにクエリを反復処理できます。
セッションのしくみ
セッションは、ユーザーが SQL ウェアハウスでクエリを実行するときに作成されます。 セッションは、コマンドが少なくとも 8 時間に 1 回実行されている限りアクティブなままです。 セッションは、ウェアハウスが停止または再起動された場合でも保持されます。
セッションは、非アクティブ状態が 8 時間後に期限切れになります。
共有セッションの状態
同じセッション内で実行されるすべてのコマンドは、次を共有します。
- で宣言された変数
DECLARE VARIABLE - 一時ビューは
CREATE TEMPORARY VIEWで作成されました -
CREATE TEMPORARY TABLEで作成された一時テーブル。 一時テーブルを参照 - 現在のカタログやスキーマなどの環境設定
-
SET QUERY_TAGSまたはセッション構成パラメーターを使用して設定されたクエリ タグ。 クエリ タグを参照してください
セッションスコープとコラボレーション
セッションは、クエリ オブジェクト (クエリ、ノートブック、またはファイル) と、それがアタッチされている特定の SQL ウェアハウスの両方に関連付けられます。 そのオブジェクトとウェアハウス接続へのアクセスを共有するすべてのユーザーも同じセッションを共有します。
例えば次が挙げられます。
- ユーザー A は、Warehouse X に接続しているときにクエリ 1 で一時ビューを定義します。
- ユーザー B は、同じ一時ビューを参照する、ウェアハウス X のクエリ 1 で SQL コマンドを実行できます。
- クエリ 1 が別のウェアハウスに再アタッチされた場合、独自の分離状態で新しいセッションが作成されます。
この協調的な動作により、チームは共有クエリ開発で共同作業を行うことができますが、1 人のユーザーによって行われた変更が、同じセッションを共有する他のすべてのユーザーに影響を与えることもあります。