ワークスペース

概要

ワークスペースは、データ分析、モデル開発、パイプライン構築に使用できる、複数のファイルタイプにまたがるコードを作成、整理、管理するための統一エディターを提供します。

ワークスペース はあなただけのもので、あなたの作品を構築、実験、テストできる開発環境を提供します。ワークスペースのコンテンツはすべてファイルベースになるため、より複雑なプロジェクトに取り組むことができます。Gitと容易に統合することで、バージョン管理、コラボレーション、既存ワークフローとの調整を行えます。

ワークスペース環境

ワークスペースは、6つのセクションまたは ペイン で構成される新しいエディターです。

ワークスペース環境の概要。
  1. ワークスペース: すべてのファイルやフォルダを1つの領域で管理できます。ファイルをドラッグしてフォルダ間で移動できます。ネストされたフォルダを使用して、関連するワークシートを論理的なカテゴリの下にグループ化することで、フラットなリストを検索することなく、特定のワークシートをすばやく見つけることができます。各ユーザーには、Snowflakeによって自動的にプロビジョニングされる「My Workspace」という名前のデフォルトのワークスペースがあります。 Workspaces メニューから + Add New を選択して、新しいワークスペースを作成することもできます。デフォルトのワークスペースは、削除したり名前を変更したりできません。

  2. ワークシート: ワークシートを開いて編集できます。ワークシートの編集権限しかない場合、編集は保存されないことに注意してください。ワークシートをワークスペース内のファイルに変換するには、ワークシート をワークスペース内のフォルダにドラッグします。ワークスペースのクエリはワークシートと同様に実行されますが、 UI のパフォーマンスが向上し、同じ SQL ファイルから 2 つのクエリを同時に実行できるようになるなど、若干の違いがあります。

  3. オブジェクトエクスプローラ: アカウント内のすべてのデータベース、各データベースのスキーマ、その他のオブジェクトをタイプ別に階層表示します。フィルターを使用してオブジェクトを検索します。また、 Show databases I can query を選択すれば、表示をシンプルにするために、使用できないオブジェクトをフィルターで除外することもできます。縦の省略記号 ワークシートのその他のアクション (more actions)ボタンで利用可能なオプションはオブジェクトタイプによって異なりますが、エディターへの名前の配置、名前のコピー、定義の表示などの機能があります。

  4. エディター: クエリを編集し、横に分割して複数のファイルを同時に表示します。インラインCopilotを使用すると、エディタのワークスペース内でサジェストと補完を直接取得できます。

  5. 結果: 結果を横に並べたり、ピン留めして簡単に比較できます。

  6. クエリの履歴: 実行したクエリの履歴を表示します。 Current File 、エディターで現在開いて選択されているファイルの履歴クエリが表示されます。 All Files は、すべてのファイルで実行したすべての履歴クエリを表示します。

ファイルとフォルダの作成と操作

ワークスペースでは、使い慣れた IDE とソース管理規約を使用して、コードを作成、整理、実行できます。

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

  2. ナビゲーションメニューで Projects » Workspaces を選択します。

  3. 該当するフォルダの横にある + を選択します。ワークスペースを初めて使用する場合は、 + Add New を選択します。

  4. 次のオプションから選択して、新しいファイルまたはフォルダを作成するか、既存のファイルまたはフォルダをアップロードします。

    • SQL File: エディター内のタブとして、新しい空白の SQL ファイルを作成します。デフォルトでは、名前のないファイルには .sql が付加されます。エディターはこれを SQL ファイルとして認識し、構文のハイライトとオートコンプリートを有効にします。

    • File: 新しいファイルを作成します。ファイル名と拡張子を指定してください。拡張子がエディターで認識されている場合(Java、 JavaScript、Scalaなど)、コードのハイライトとオートコンプリートが有効になります。

    • Folder: ワークスペース内に新しい空のフォルダを作成します。

    • Upload Files: ワークスペースの任意の場所に1つ以上のファイルをアップロードします。エディターはファイルの拡張子を使用し、ファイルを開いたときに適切なアイコン、動作、構文の強調表示を適用します。例えば、 .sql ファイルは、 SQL 特有の機能を示しています。

    • Upload Folder: 選択したワークスペースに追加するファイルまたはフォルダを 1 つ以上選択します。

ファイルの管理

ワークスペース、ファイル、フォルダの名前の変更、削除、移動、整理ができます。

ワークスペース、ファイル、またはフォルダの名前を変更または削除します。

  1. ターゲットにカーソルを合わせ、縦の省略記号 ワークシートのその他のアクション (その他のアクション)を選択します。

  2. Rename または Delete を選択します。削除を選択すると、確認のプロンプトが表示されます。

  • ワークスペースにフォルダを作成するには、ワークスペースまたは既存のフォルダの横にある + を選択します。

  • ファイルやフォルダを整理するには、任意のファイルやフォルダを同じワークスペースの別の場所にドラッグします。ワークシートをワークスペースにドラッグすることもできます。

複数のファイルや結果を1つのレイアウトで表示

タブと分割ペインで複数のファイルを管理すると、いくつかの利点があります。

  • コードや結果を並べて比較ワークシートのクエリを参照しながら、別のクエリを実行できます。

  • マルチタスクをより効率的に: 異なるセル、出力、ファイルを一度に表示でき、切り替えの手間が省けます。

ワークスペースのレイアウトを調整するには、 Workspaces ペインで縦の省略記号 ワークシートのその他のアクション (その他のアクション)を選択し、適切なオプションを選択します:

  1. 右に分割

  2. 下に分割

  3. その他を閉じる

Gitリポジトリとの統合

ワークスペースはSnowflakeのローカルに置くこともできますし、開発中のワークスペースをGitリポジトリのブランチと同期させることもできます。ワークスペースでは、次のことができます。

Gitワークスペースの作成

Git リポジトリに接続したワークスペースを作成し、 Snowsight で直接ファイルを開発・管理することができます。

新しいGit同期ワークスペースを作成するには

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

  2. ナビゲーションメニューで Projects » Workspaces を選択します。

  3. Workspaces メニューで、 From Git repository を選択します。

  4. Git リポジトリから URL をコピーし(たとえば https://www.github.com/my-user/my-repo-name)、 Repository URL フィールドに貼り付けます。

  5. オプション: 新しいGit同期ワークスペースの名前を変更します。

  6. API Integration メニューで、 API 統合.を選択します。

    API 統合はアカウント管理者によって作成され、ステップ 4 で使用する Git リポジトリ URL へのアクセスを許可する必要があります。詳細については、 リポジトリ API と対話するための API 統合の作成を参照してください。

    また、Gitプロバイダーとして GitHub を使用して認証として OAuth を好む場合、アカウント管理者は、 OAuth をサポートする API 統合コードを作成する必要があります。例:

    CREATE OR REPLACE API INTEGRATION api_integration_name
       API_PROVIDER = git_https_api
       API_ALLOWED_PREFIXES = ('https://github.com/')
       API_USER_AUTHENTICATION = (
          TYPE = snowflake_github_app
       )
       ENABLED = TRUE;
    
    Copy
  7. API 統合の基になる、認証を選択します。

    • OAuth2 - Sign in を選択して、 GitHub リポジトリで認証します。サインイン後は、次回以降のセッションで認証情報を入力する必要はありません。なお、 OAuth2 は PrivateLink 環境では可用性はありません。

    • Personal access token - トークンを含むオブジェクトが格納されているデータベースとスキーマを選択します。新しい秘密を作成するには、 + Secret を選択し、必要な詳細を入力します。このシークレットまたはすべてのシークレットへのアクセスを許可するように API 統合を構成する必要があります。

    • Public repository - 認証を必要としない公開リポジトリを使用している場合は、このオプションを選択します。ワークスペースの変更をコミットして、この公開リポジトリにプッシュすることはできません。

  8. Create を選択します。

ブランチの著者情報および認証情報の更新

デフォルトでは、Git リポジトリへの変更のコミットには Snowflake のメールアドレスとユーザー名が使用されます。いつでも更新できます。

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

  2. ナビゲーションメニューで Projects » Workspaces を選択します。

  3. Changes タブを選択します。

  4. 省略記号を選択し、 Edit credentials を選択します。

  5. 作成者名とメールを指定してください。

  6. Update を選択します。

新しいブランチの作成

現在のブランチから新しいブランチを作成して、単独で変更作業を行うことができます。

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

  2. ナビゲーションメニューで Projects » Workspaces を選択します。

  3. Changes タブを選択します。

  4. リポジトリのドロップダウンを選択します。

  5. + New を選択します。

  6. 新しいブランチ名を指定し、 Create を選択します。

別の支店に変更

保存はしたもののコミットしていない変更がある場合、ブランチを切り替える前にその変更をどのように扱うかを選択する必要があります。

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

  2. ナビゲーションメニューで Projects » Workspaces を選択します。

  3. Git ワークスペース表示で、 Changes を選択します。

  4. ブランチメニューから、切り替えたいブランチを選択します。

    ヒント:リストをフィルターするには、ブランチ名をタイプしてください。

リモートブランチの取得

新しいブランチが Snowsight の外部 (たとえば Git プロバイダーで作成したものなど) で作成された場合は、 Fetch All オプションを使用して Git と同期したワークスペースに取り込むことができます。これで利用可能なリモートブランチのリストが更新されます。

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

  2. ナビゲーションメニューで Projects » Workspaces を選択します。

  3. Git ワークスペース表示で、 Changes を選択します。

  4. Pull メニューの横にある下向き矢印を選択し、 Fetch All を選択します。取得が終了すると、新しく作成されたリモートブランチがブランチリストに表示され、チェックアウトが可能になります。

更新されたファイルの表示

最後にコミットしてプッシュしてから追加、削除、変更されたすべてのファイルを表示します。

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

  2. ナビゲーションメニューで Projects » Workspaces を選択します。

  3. フォルダ表示の上部で、 Changes を選択します。変更されたファイルは M で示され、追加されたファイルは A で示され、削除されたファイルは D で示されます。

  4. エディタで変更点の差分を視覚的に表示するには、ファイルを選択します。

更新のコミットとプッシュ

変更内容を確認したら、ワークスペース内からコミットしてリモートの Git リポジトリにプッシュします。

更新したファイルをコミットしてリモートの Git リポジトリにプッシュします。

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

  2. ナビゲーションメニューで Projects » Workspaces を選択します。

  3. フォルダ表示の上部にある Changes を選択します。

  4. Commit message フィールドにコミットメッセージを書いてください。

  5. Push を選択します。

  6. コミットメッセージを書き、 Push を選択して Git リポジトリに更新をプッシュします。

    注釈

    コンフリクトが検出された場合、最初にプルするよう促されます。コンフリクトのあるファイルのリストを確認するには、 Pull を選択します。

コンフリクトの表示と解決

プッシュ中にコンフリクトが発生した場合、再度コミットする前にワークスペースで直接表示し、解決することができます。

  1. ワークスペースで、フォルダ表示の上部にある Changes を選択します。1つまたは複数のファイルが競合している場合、メッセージが表示の上部に表示されます。競合のあるファイルは、赤い M で示されます。

  2. エディターでコンフリクトの差分を表示するには、ファイルを選択します。 File with conflicts では、相違点はインラインで強調表示されます。

  3. 現在の変更、入力された変更、または両方の変更を受け入れます。マージ結果が表示されます。

  4. Diff View の下に、現在のバージョンとリモートバージョンを並べて表示することができます。

  5. Accept all current または Accept all remote を選択します。

  6. 競合を解決したら、 Push を選択します。

  7. コミットメッセージを書いてください。

  8. Push を選択します。

キーボードのショートカット

ワークシートにはキーボードショートカットが用意されており、ビューのカスタマイズやクエリの編集を素早く行うことができます。次の表は、よく使用されるキーボードショートカットの識別子です。

タスク

MacOS ショートカット

ウィンドウズショートカット

選択された実行

CMD + Return

CTRL + Enter

すべて実行

CMD + Shift + Return

CTRL + Alt + Enter

ペインを水平方向に分割

CTRL + \

CTRL + \

ペインを垂直方向に分割

CTRL + Shift + \

CTRL + Shift + \

ワークスペースの管理

  • ワークスペースを無効にするには、 ENABLE_PERSONAL_DATABASE アカウントレベルパラメーターを FALSE にセットします:

ALTER ACCOUNT SET ENABLE_PERSONAL_DATABASE = FALSE;
Copy

このパラメーターには ACCOUNTADMIN 権限が必要です。 FALSE にセットすると、ワークスペースは機能しなくなりますが、ワークスペースは Snowsight ナビゲーションメニューにリストされます。

Workspacesでセカンダリロールを有効にする必要はありませんが、セッションポリシーでセカンダリロールを明示的にブロックしている場合は、セッションポリシーが削除されるまで、現在の制限によってWorkspacesが機能しなくなります。

考慮事項

ユーザーが初めてWorkspacesにアクセスすると、Snowflakeは自動的に内部のユーザー固有のデータベース(以前は Personal Database と呼ばれていました)を作成します。このデータベースはワークスペースを保存するためだけに使用され、テーブルや表示などの標準オブジェクトを含めることはできません。ユーザーには、ワークスペースの機能を有効にする以上の権限や能力は付与されません。

管理者は、ユーザーがこのデータベース上で OWNERSHIP、 USAGE、 CREATE SCHEMA の権限を持っているように見えることに気づくかもしれません。これらの権限はワークスペースと対話するために必要であり、他のリソースへのアクセスには影響しません。

制限事項

  • ワークスペースは共有に対応していません。

  • クエリフィルターはサポートされていません。フィルターを含むクエリは失敗します。

  • ワークスペース ファイルは Universal Search の結果に含まれません。

  • 新しいワークスペース UI と古いワークシート UI で同じワークシートを同時に開いて編集すると、変更内容が失われることがあります。

  • ワークシートの場合、実行コンテキスト設定(ロール、ウェアハウス、名前空間)は、新しいワークスペース UI と古いワークシート UI の間で同期されません。