Snowflake Notebooks のセッションコンテキスト

ノートブックのセッションコンテキストは、ノートブックが実行されるロール、ウェアハウス、データベース、スキーマによって定義されます。ノートブックを作成する際には、ノートブックで使用するロール、ウェアハウス、データベース、スキーマを定義します。ノートブックを実行すると、ノートブックで定義されたウェアハウスを使用し、ノートブックを含むデータベースとスキーマのコンテキストで、そのロールとして実行されます。

このトピックでは、ノートブックのセッションコンテキストにアクセスまたは変更する方法について説明します。

ノートブックのセッションコンテキストへのアクセス

PythonとSQLの両方を使用してセッションコンテキストにアクセスできます。

Snowpark Pythonライブラリまたは Snowflake Python APIs を使用している場合は、 get_active_session() メソッドを使用してアクティブなセッションコンテキストを取得します。

from snowflake.snowpark.context import get_active_session
session = get_active_session()
Copy

SQL では、 コンテキスト関数 SQL 関数を使用できます。

SELECT CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA();
Copy

ノートブックのセッションコンテキストの変更

ノートブックのセッション・コンテキストを変更して、異なるロール、データベース、スキーマ、ウェアハウスを使用することができます。

  • USE ROLE SQLコマンドに使用する別のロールを指定します。

    • CURRENT_ROLE 関数を呼び出すことで、ノートブックで使用されているロールを確認できます。

    • ノートブックウェアハウス、データベース、またはスキーマを使用する権限を持たないロールに変更すると、ウェアハウスまたはノートブックデータベースやスキーマへのアクセスを必要とするクエリが実行できなくなります。ただし、ノートブックウェアハウス、データベース、スキーマを使用しないクエリを実行することはできます。

    • USE ROLE SQL コマンドで指定したロールは、異なるノートブックセッションでは維持されません。

    • 現在アクティブなロールにアクセス権限がないデータベースやスキーマを指定すると、そのデータベースやスキーマを使用したクエリの実行に失敗します。

  • SQL コマンド USE SECONDARY ROLES を実行してセカンダリロールを ALL にセットすると、そのユーザーに関連付けられているセカンダリロールがノートブックセルの結果生成に使用されます。

  • SQL コマンド USE WAREHOUSE を使って別のウェアハウスを指定します。

    • CURRENT_WAREHOUSE 関数を呼び出すことで、ノートブックで使用中のウェアハウスを確認できます。

  • USE DATABASE または USE SCHEMA SQL コマンドを使用して、別のデータベースまたはスキーマを指定します。

    • CURRENT_DATABASE 関数を呼び出すことで、ノートブックで使用されているデータベースを確認できます。

    • ノートブックデータベースまたは以前のノートブックセルで指定されたデータベース内のオブジェクトを参照する場合は、オブジェクトへの完全修飾パスの代わりに、参照したいスキーマとオブジェクトだけを含めるようにSQLステートメントを簡素化できます。

次のステップ

  • ノートブックを使った結果の 保存と共有 について学びます。