Snowsightのワークシートで作業する

ワークシートは、Snowflakeプラットフォーム内で SQL クエリやPythonコードを実行したり、その他のSnowflakeデータのロード、定義、操作タスクを実行したりするための強力で汎用性の高い方法を提供します。

Snowsight でワークシートを開いた後、次のいずれかを実行できます。

ワークシートを閲覧して開く

ワークシートを開くと、 Worksheets explorer で他のワークシートを表示および管理できます。 Worksheets explorer では、特定のワークシートを検索することもできます。

ワークシートコンテンツのプレビュー

ワークシートのコンテンツをプレビューするには、 Worksheets explorer でワークシートの名前にカーソルを合わせます。プレビューには、ワークシートの実行に使用されたロールも表示されます。

プレビューから、ワークシートのコンテンツをコピーすることもできます。ワークシートコンテンツのプレビューにカーソルを合わせ、表示される Copy ボタンを選択します。

キーボードショートカットでタスクを実行する

Snowsight には、ワークシート内のクエリをすばやくナビゲートおよび編集するのに役立つキーボードショートカットが用意されています。たとえば、ホットキーを使用して、ワークシート内でカーソルを移動したり、検索と置換を実行したり、行をコピーしたり、クエリをフォーマットしたりできます。

利用可能なすべてのキーボードショートカットを表示するには、ワークシートを開き、Macのキーボードで CMD + SHIFT + / を押し、Windowsのキーボードでは CTRL + SHIFT + / を押します。

ワークシートのコンテキストを変更する

ワークシートを作成する際に、ワークシートのコンテンツを実行するためのロールとウェアハウスを指定します。この情報は ワークシートコンテキスト と呼ばれ、将来のセッションのために保存され、同じワークシートのすべてのユーザーと共有されます。

注釈

ロールセレクターでプライマリロールを選択できます。SQL ワークシートで二次的なロールを有効にするには、 USE SECONDARY ROLES を実行します。現在のセッションでセカンダリロールが有効かどうかを判断するには、 CURRENT_SECONDARY_ROLES 関数 CURRENT_SECONDARY_ROLES を呼び出します。

ワークシートのロールコンテキストは、そのロールに付与されているアクセス制御権限に基づいて、Snowflakeオブジェクトで実行できる操作を決定します。

ワークシートのコンテキストを設定するには、次を実行します。

  1. Snowsight にサインインします。

  2. Projects » Worksheets を選択して、ワークシートのリストを開きます。

  3. ワークシートを開きます。

  4. コンテキストセレクターを開きます。

  5. ワークシートを実行するロールを選択します。

  6. そのロールが使用する権限を持つウェアハウスを選択します。

  7. ドロップダウン以外の場所を選択して、コンテキストセレクターを閉じます。

注釈

各ワークシートは一意のセッションを持ち、ユーザーメニューで選択したロール( アクティブなロール )とは異なるロールを使用できます。アクティブなロールを変更しても、コンテキストセレクターでワークシートに割り当てられたロールは変更されません。

ウェアハウスの再開またはサイズ変更

ワークシートを実行する前後に、ウェアハウスの再開またはサイズ変更が必要になる場合があります。

注釈

ウェアハウスの詳細を変更するには、ウェアハウスに対する MODIFY または OWNERSHIP 権限が必要です。

コンテキストセレクターを使用してウェアハウスの詳細を表示または調整するには、次を実行します。

  1. Snowsight にサインインします。

  2. Projects » Worksheets を選択して、ワークシートのリストを開きます。

  3. ワークシートを開きます。

  4. コンテキストセレクターを開きます。

  5. Show warehouse details アイコンを選択します。

  6. Status オプションでは、ステータスを選択し、ウェアハウスが中断されている場合は Resume を選択します。

  7. Size オプションでは、サイズを選択し、別のサイズを選択します。

  8. ドロップダウン以外の場所を選択して、コンテキストセレクターを閉じます。

ワークシートの管理

Snowsight のワークシートは、ワークシートタブまたは Worksheets explorer から管理できます。ワークシートタブメニューにアクセスするには、ワークシートを開き、タブの上にカーソルを置き、 ワークシートのその他のアクション を選択します。 Worksheets explorer にアクセスするには、ワークシート名にカーソルを合わせ、 その他のオプション を選択します。

各メニューで利用可能なアクションは、現在のロールに基づいています。権限に応じて、以下のことができます。

  • ワークシートの名前を変更、削除、移動します(編集または所有権の権限が必要です)。

  • ワークシートをフォルダーやダッシュボードに移動して整理します。

  • SQL を外部ファイルからインポートします。

  • クエリをフォーマットします。

  • 他のワークシートを検索します。

  • ワークシートを複製します(任意のロール)。

Tip

ワークシートにカーソルを合わせると、その内容をプレビューできます。

どのワークシートがタブで開かれているかは、ワークシートのアイコンを参照することで識別できます。実線のアイコンは、ワークシートが現在開かれていることを示します。メニューオプションにアクセスするには、ワークシート名にカーソルを合わせ、表示されている省略記号を選択します。

ワークシートとフォルダーの共有

ワークシートやワークシートフォルダーを共有することで、同僚とコラボレーションできます。共有ワークシートの受信者は、その内容の編集や表示、クエリの実行、結果の表示、共有ワークシートの複製ができます。

ワークシートやワークシートのフォルダーは、アカウント内の他のSnowflakeユーザーと共有することができます。ワークシートを直接共有できるのは、 Snowsight にサインインしているユーザーのみです。まだ Snowsight にサインインしていない人と共有するには、代わりにリンクを共有します(リンク共有が有効になっていることを確認してください)。

共有ワークシートの権限

ワークシートを誰かと共有する場合は、他のユーザーに付与する権限を選択して、ワークシートとそのコンテンツへのアクセスを管理できます。これらの権限は、 共有ダッシュボード にも使用されます。ワークシート所有者は、ワークシート編集者と同じ権限を持ちます。

Snowsight にあるワークシートは、ワークシートのコンテキストで割り当てられた特定のロールとウェアハウスを持つ、一意のセッションを使用します。 ワークシートロール は、ワークシートを実行するために最後に使用された プライマリロール であり、ワークシートを実行するために必要です。

注釈

実行権限を持つユーザーは、 USE ROLE を使用してワークシートのロールを変更することもできます。

以前のワークシートバージョンの結果を表示するには、その結果を生成した SQL ステートメントを実行するために使用されたプライマリロールが必要です。 ワークシートの過去の実行結果の表示 をご参照ください。

付与された権限

付与先が実行できる内容

編集

  • ワークシートのコンテンツを編集する。

  • 別のロールを使用することも含めて、ワークシートを実行する。

  • ワークシートの過去のバージョンの表示と管理。

  • 結果を生成するために使用されたロールを持っている場合に限り、過去のワークシートバージョンの結果を表示および管理する。

  • ワークシートを他の人と共有する。

  • ワークシートを別のフォルダに追加する。

表示および実行

  • 結果の表示からすべての権限を継承する(下記参照)。

  • ワークシートロールを持っていれば、ワークシートを実行する。

  • 最新のワークシートバージョンの結果を表示する。

  • 自分のロールを使用してワークシートを複製し、実行する。

結果を表示

  • 結果の表示のあるリンクからすべての権限を継承する(下記参照)。

  • ワークシートロールがある場合に、最新のワークシートバージョンの結果を表示する。

  • 自分のロールを使用してワークシートを複製し、実行する。

表示および実行のあるリンク

  • 結果の表示のあるリンクからすべての権限を継承する(下記参照)。

  • ワークシートロールを持っていれば、ワークシートを実行する。

  • 最新のワークシートバージョンの結果を表示する。

  • ワークシートのコンテンツを表示する(ただし、ワークシートの複製や実行はできない)。

結果の表示のあるリンク

  • ワークシートロールがある場合に、最新のワークシートバージョンの結果を表示する。

  • ワークシートのコンテンツを表示する(ただし、ワークシートの複製や実行はできない)。

ワークシート所有者は、ワークシートを作成したユーザーであり、ワークシート編集者と同じ権限を持っています。ワークシートが他のユーザーの所有するフォルダーに追加されると、ワークシートの所有者が変更されます。

重要

ワークシートの所有者がSnowflakeからドロップされた場合、ドロップされたユーザーはワークシートの所有者のままです。ただし、共有権限を持つユーザーは引き続きワークシートにアクセスして使用できます。リンク共有が有効になっている場合、ワークシートのリンクを持つユーザーは誰でもそのワークシートにアクセスすることができます。ワークシートアクセスを維持するために、Snowflakeは、他のユーザーが引き続きワークシートを変更または削除できるように、 ユーザーを削除する前に、(表示または表示 + 実行ではなく)編集権限でユーザーにワークシートを共有させることを推奨します。ドロップされたユーザーが所有するワークシートを、共有されていないものも含めて復元するには、 ドロップされたユーザーが所有するワークシートを回復する を参照してください。

ワークシートの過去の実行結果の表示

ワークシートで1つまたはすべてのクエリを実行すると、クエリ結果がテーブルとして表示されます。 矢印キー を使って、スプレッドシートと同じようにクエリ結果をナビゲートできます。結果テーブルで列、セル、行、または結果テーブル内の範囲を選択します。選択範囲をコピー&ペーストできます。

ワークシートの過去の実行結果を表示するには、以下を満たす必要があります。

Snowsight では、最大100万行の結果について、生成された統計情報を確認することができます。これらの統計は、全体的な統計だけでなく、どのような選択に対しても文脈に沿った情報を提供します。詳細については、 自動コンテキスト統計 をご参照ください。

また、以下も可能です。

  • Chart を選択して、結果をチャートとして表示します。チャートの詳細については、 ワークシートデータの視覚化 をご参照ください。

  • ワークシートの Query History を表示することで、過去のワークシート実行結果を確認できます。 クエリ履歴を表示 をご参照ください。

注意

ワークシートを実行すると、結果がキャッシュされます。ワークシートにアクセスできる人は誰でも、結果を生成するために使用されたのと同じプライマリロールを持っていれば、これらの結果を表示することができます。しかし、ワークシートクエリがマスキングや行アクセスポリシーによってデータ保護されている場合、またはクエリ実行時にセカンダリロールがアクティブになっている場合、キャッシュされた結果には、ワークシートにアクセスできる他のユーザーが自分で生成できないデータが含まれる可能性があります。

ワークシートを共有する

ワークシートを共有するには、次を実行します。

  1. Snowsight にサインインします。

  2. Projects » Worksheets を選択して、ワークシートのリストを開きます。

  3. ワークシートを開きます。

  4. ワークシートの右上隅で、 Share を選択します。

  5. ワークシートの使用を招待するSnowflakeユーザーの名前またはユーザー名を入力します。リストには、以前に Snowsight にサインインしたことがあるユーザーのみが表示されます。まだ Snowsight にサインインしていない人と共有するには、 Get Link を選択して、代わりに共有用のリンクを生成します。

  6. ワークシートを共有する ユーザーに付与する権限 を選択します。

  7. オプションで、ワークシートへのリンクを持つ人がアクセスするために必要な権限を設定します。

  8. Done を選択します。

注釈

ワークシートの最近実行されたバージョンが、共有されるワークシートのバージョンです。ワークシートをまだ実行していない場合は、空のワークシートが共有されます。

ワークシートを実行していない受信者は、10,000行までの結果しか表示することができません。10,000行以上の結果を表示するには、ワークシートを自分で実行しなければなりません。

ワークシートの編集者であろうと所有者であろうと、ワークシートのバージョンに加えた編集は、ワークシートのコードの一部または全部を実行を実行しない限り、共同作業者には表示されません。

あなたが(直接またはリンクを通して)共同作業者と共有したワークシートは、その共同作業者の検索結果またはワークシートリストに表示されます。直接共有されたワークシートはすぐに表示され、リンクを通じて共有されたワークシートはアクセスされると表示されます。これらのワークシートは、編集権限を持つユーザーによって削除されない限り、または共同作業者のワークシートへのアクセス許可が削除されない限り、共同作業者の検索結果またはリストに表示され続けます。

ワークシートのフォルダーを共有する

フォルダー内のすべてのワークシートを含むフォルダーを共有するには、次を実行します。

  1. Snowsight にサインインします。

  2. Projects » Worksheets を選択して、ワークシートのリストを開きます。

  3. フォルダーを開きます。

  4. Share を選択します。

  5. フォルダーに招待するSnowflakeユーザーの名前またはユーザー名を入力します。リストには、以前に Snowsight にサインインしたことがあるユーザーのみが表示されます。まだ Snowsight にサインインしたことのない人と共有する場合は、代わりにリンクを共有します。

  6. フォルダーを共有する ユーザーに付与する権限 を選択します。

  7. オプションで、フォルダーへのリンクを持つ人がアクセスするために必要な権限を設定します。

  8. 必要に応じて、 Get Link を選択して、他のユーザーと共有できるフォルダーへのリンクを取得します。

  9. Done を選択します。

ワークシートを共有フォルダーに追加すると、ワークシートはそのフォルダーの共有設定を継承します。フォルダーの所有者がワークシートの所有者以外である場合、フォルダーの所有者がワークシートの所有者となり、元のワークシートの所有者はフォルダーから共有権限を継承します。

たとえば、ワークシートの所有者が編集権限を持っているフォルダーにワークシートを追加すると、ワークシートはフォルダーの所有者によって所有されるように更新され、元のワークシートの所有者はワークシートの編集権限を持つようになります。

共同作業者と(直接またはリンクを通じて)共有されたフォルダーは、その共同作業者の検索結果やフォルダーリストに表示されます。直接共有されたフォルダーはすぐに表示され、リンクを通じて共有されたフォルダーはアクセスされると表示されます。これらのフォルダーは、編集権限を持つユーザーによって削除されない限り、または共同作業者のワークシートへのアクセス許可が削除されない限り、共同作業者の検索結果またはリストに表示され続けます。

アカウント間でのワークシートの共有

ワークシートは、アカウント間で複製または共有することはできません。ワークシートのコンテンツを他のSnowflakeアカウントのユーザーと共有する場合は、コンテンツをコピーして、Snowflake外のアカウントのユーザーと共有します。

ワークシートの履歴とバージョンの管理

ワークシートに加えたローカル編集は、3秒ごとに自動的に保存されますが、自分だけが見ることができます。SQL クエリを実行したり、ワークシートでコードを実行したりすると、最新バージョンが更新され、すべての共同作業者と共有されます。また、ワークシートの過去のバージョンを表示したり、任意のバージョンから詳細をコピーしたりすることもできます。詳細については、 ワークシートのバージョンの切り替え をご参照ください。

ワークシートに変更を加えたり、ワークシートのバージョンを管理したりする場合は、以下を考慮してください。

  • ワークシートを他のユーザーと共有すると、編集権限を持つユーザーはワークシートの過去のバージョンを表示できます。ワークシートを共有するすべてのユーザーは、ワークシートの最新バージョンの結果を10,000行まで表示できます。

  • 権限を持つ誰かがワークシートを実行するたびに、ワークシートの新しいバージョンが保存されます。

  • ワークシートに変更を加えても消えてしまう場合は、バージョン履歴を使用して、変更が加えられた保存済みのドラフトを開きます。

  • ワークシートの最も最近実行されたバージョンが、共同作業者に表示されるバージョンです。

  • ワークシートを共有したユーザーに表示されるようにワークシートに変更を加えるには、ワークシートを実行する必要があります。

  • 複数のユーザーが共有ワークシートを同時に編集および実行すると、ワークシートを実行するたびに新しいバージョンが作成されます。ワークシートを開いたりリフレッシュしたときに表示されるのは、最近実行されたバージョンのワークシートです。

ワークシートのバージョンの切り替え

過去のバージョンのワークシートを表示するには、次を実行します。

  1. Snowsight にサインインします。

  2. Projects » Worksheets を選択して、ワークシートのリストを開きます。

  3. ワークシートを開きます。

  4. ワークシートの Code Versions を選択します。

  5. ワークシートバージョンのリストから、表示したいバージョンのタイムスタンプを選択します。

  6. そのバージョンのワークシートの詳細を確認し、オプションでコピーします。

  7. ワークシートの現在のバージョンに戻るには、 Close を選択します。

過去のワークシートの実行結果を表示するには、ワークシートの Query History を表示します。 クエリ履歴を表示 をご参照ください。

過去のワークシートバージョンの格納された結果

注釈

ほとんどのアカウントで利用可能です。米国政府リージョンのアカウント、Virtual Private Snowflake(VPS)を使用しているアカウント、Private Connectivityを使用してSnowflakeにアクセスしているアカウントでは、クエリ結果は引き続き10,000行に制限されます。

ワークシートで実行されたクエリの結果はすべて、最大24時間利用可能です。24時間後に結果を表示するには、クエリを再度実行する必要があります。

コンテキスト統計とワークシート結果の共有をサポートするために、最新の25のクエリ結果は、最大90日間キャッシュされます。このキャッシュは、アカウントのデータストレージ使用量に含まれています。

ドロップされたユーザーが所有するワークシートを回復する

ユーザーをドロップした場合、そのユーザーが所有するワークシートの最大500シートまで回復できます。ワークシートを回復するには、次を実行します。

  1. ドロップされたユーザーが所有する 回復したワークシートをダウンロード します。

  2. SQL ファイルからワークシートを作成 して、回復したワークシートをSnowflakeに追加します。

ユーザーをドロップする前にワークシートの所有権を変更したり、ワークシートへのアクセス権を保持したい場合は、そのユーザーにワークシートの共有を依頼してください。 ワークシートとフォルダーの共有 をご参照ください。

ドロップされたユーザーが所有する回復したワークシートをダウンロードする

ドロップされたユーザーが所有するワークシートを回復するには、そのユーザーが所有する最大500シートのワークシートを含む .tar.gz 件のアーカイブファイルをダウンロードします。

注釈

ドロップされたユーザーのワークシートを回復するには、 ACCOUNTADMIN ロールが付与されている必要があります。

  1. Snowsight にサインインします。

  2. Projects » Worksheets を選択します。

  3. その他のオプション » Recover Worksheets from Dropped User を選択します。

  4. ダイアログボックスで、アカウントにドロップされたユーザーのユーザー名を入力します。

    重要

    ユーザー名の大文字と小文字、およびスペルは、Snowflakeに保存されているユーザー名と完全に一致する必要があります。

  5. Recover を選択します。

    ウェブブラウザーは、最大500シートのワークシートを含む .tar ファイルをダウンロードします。ドロップされたユーザーに500件以上のワークシートがある場合、最近更新された500件のワークシートのみがダウンロードされます。

ドロップされたユーザーが所有するワークシートをダウンロードした後、SQL ファイルからワークシートを作成して、回復したワークシートを Snowsight に追加します。

回復したワークシートを Snowsight に追加する前に、ダウンロードした .tar ファイルを .sql ファイルのフォルダーに展開する必要があります。 Snowsight には一度に1つのワークシートのみを追加でき、回復したワークシートを Snowsight に追加したユーザーがワークシートの新しい所有者になります。

詳細については SQL ファイルからワークシートを作成する をご参照ください。

削除されたユーザーが所有するワークシートを回復するための考慮事項

  • 最近実行されたバージョンのワークシートのタイトルと内容のみが回復されます。ワークシートのバージョン履歴、共有先と権限、クエリ結果、およびワークシートのメタデータは回復されません。

  • 最大で500シートのワークシートが回復されます。ドロップされたユーザーに500シート以上のワークシートがある場合、最近更新された500シートのワークシートのみがダウンロードされます。

  • Snowsight のワークシートのみが回復されます。ドロップされたユーザーが所有する Classic Console のワークシートは、この方法では回復できません。

  • 複数のドロップされたユーザーが同じユーザー名を持つ場合、そのユーザー名を持つすべてのドロップされたユーザーが所有するワークシートが回復されます。

予期しない理由でワークシートの回復が失敗した場合は、 Snowflakeサポート に連絡してください。

ワークシートの内部Snowflakeオブジェクト

Snowflakeは、 Snowsight のワークシートの使用をサポートするために次の内部オブジェクトを作成します。

オブジェクト型

名前

セキュリティ統合

WORKSHEETS

BLOB

WORKSHEETS_APP

データベース

WORKSHEETS_APP

ユーザー

WORKSHEETS_APP_USER

ロール

APPADMIN, WORKSHEETS_APP_RL

これらの内部オブジェクトは、アカウントの内部ステージでクエリ結果をキャッシュするために使用されます。このキャッシュされたデータは暗号化され、アカウントのキー階層によって保護されます。

内部ロールに付与された制限付き権限は、 Snowsight が内部ステージにアクセスしてそれらの結果を格納することのみを許可します。ロールは、アカウント内のオブジェクトを一覧表示したり、テーブル内のデータにアクセスしたりすることは できません

SNOWFLAKE 共有データベースの ACCOUNT_USAGE スキーマで、それぞれ USERS ビューと ROLES ビューをクエリすると、 Snowsight のユーザーとロールが返されます。 SHOW <オブジェクト> ステートメントはこれらの内部オブジェクトを返しません。