❄️

Snowflake Workspaceを試してみた

がく@ちゅらデータエンジニアです。
ご無沙汰しております。すっかりサボっておりました(屍

いやさーー、ブログ書こうと思ってもさぁ、生成AIがすごくてさぁ、書いててもなんか意義というかそのあたりどうしたらいいんかな・・・・・なんて思ったり・・・・・

ってのは書かない言い訳ですね(ダメ
ちょっと書くモチベが上がってきたので、やりたい技術検証や記事をやっていきたいなと思っています。
※データエンジニアリング通信も再開しないとね・・・下書き書いてみたけど、没にしたんだorz

概要

先日、2025年6月4日に「Snowsightに新機能「Workspaces」が追加」というリリースがありました。

リリースノートはこちら
https://docs.snowflake.com/en/release-notes/2025/other/2025-06-03-workspaces

このリリースの一環として、SnowflakeはSnowsightの新機能であるワークスペースを導入しました。ワークスペースは、複数のファイルタイプにわたるコードの作成、整理、管理のための統合エディターを提供し、データの分析、モデルの開発、パイプラインの構築に使用できます。
ワークスペースはあなた専用の開発環境であり、作業の構築、実験、テストを自由に行うことができます。ワークスペース内のすべてのコンテンツはファイルベースであるため、より複雑なプロジェクトに取り組むことができ、Gitとの統合も容易で、バージョン管理、コラボレーション、既存のワークフローとの連携も容易です。

https://docs.snowflake.com/en/user-guide/ui-snowsight/workspaces
にドキュメントがあります。

Workspaceを作ってみる

そのままでもいいのですが、やはり作ったファイル達はGitのレポジトリに上げたいですよね。
そちらの準備をしてから、ワークスペースを作ろうと思います。

ワークスペースを開けるには、
左ナビゲート→プロジェクト→ワークスーペース(プレビュー)
で開けます。
初期状態では、「自分のワークスペース」が作られます。

今回は、FrostyFridayで私が公開しているレポジトリについて設定を行ってみます。

https://github.com/gakut12/Frosty-Friday/

手順としては

  • 【AWS】Fine-grained personal access tokensを生成
  • 【Snowflake】Secretを作成 & API INTEGRATIONを作成
  • 【Snowflake】ワークスペースを作成→Gitレポジトリから

Fine-grained personal access tokensを生成

  • githubへログインします
  • 右上の自分のアイコンをクリック
  • Settings をクリック
  • 左ナビゲートの最下部にある <> Developer settings をクリック
  • Personal access tokens -> Fine-grained tokens
  • 右上の Generate new token ボタンをクリック

Token name : 入力必須
Description : 説明を書く(任意)
Resource owner : 自分(gakut12)
Expiration: 90 days (日付)

Repository accessは、
「Only Select repositories」にして「gakut12/Frosty-Friday」を選択

次に、Permissionの設定
ここでは「Contents」を「Read and write」にするだけ

設定が済んだら「Generate token」ボタンをクリックします


【ボタン】Generate token

PATが作成されるので、メモしておきます。

【Snowflake】Secretを作成 & API INTEGRATIONを作成

スキーマ:COMMMONを作っています。
これはINTEGRATIONを置くためのスキーマを作ってみました ※データと一緒でもいいのですが、なんとなく分けたい気持ちがありまして・・・

use role sysadmin;
use warehouse GAKU_WH;

use database gaku_frosty_friday_db;
create schema if not exists common;
use schema common;

-- SECRETの作成
CREATE OR REPLACE SECRET gaku_frosty_friday_db.common.ff_git_secret
  TYPE = password
  USERNAME = 'gakut12'
  PASSWORD = 'github_pat_*******************************************'; 

-- API INTEGRATIONの作成
CREATE OR REPLACE API INTEGRATION git_api_integration_ff
  API_PROVIDER = git_https_api
  API_ALLOWED_PREFIXES = ('https://github.com/gakut12')
  ALLOWED_AUTHENTICATION_SECRETS = (ff_git_secret)
  ENABLED = TRUE;

【Snowflake】ワークスペースを作成→Gitレポジトリから

左ナビゲートから プロジェクト→ワークスペースをクリックし、画面上部の自分のワークスペースをクリック¥

ワークスペースを作成Gitレポジトリから をクリック

レポジトリURLに、「https://github.com/gakut12/Frosty-Friday」
と入力するとワークスペース名が自動で入るので、今回はそのまま「Frosty-Friday」へ

API統合では、先ほど作成したAPI INTEGRATIONを指定

個人用アクセストークンを選択
データベース名、スキーマ名、シークレット名を選択して、【ボタン】作成 をクリック

ちょっとお時間がかかります

ワークスペースを触ってみる

GitRepositoryをもとに作ったので、ファイルが取り込まれています。

ファイルを追加してみる

** + Add New ** をクリックし、SQLファイルを追加してみます

ファイル名を入れてみます。ここでは「week056.sql」とします。
そして簡単なSQLを書いてみる。

変更タブを選択
すると変更対象のファイルが一覧に出てくるので、「プッシュ」を選択


ブランチ:mainにプッシュ
コミットメッセージをちゃんと入れましょう〜
そして【ボタン】プッシュ をクリック

これでプッシュに成功します。ちなみに、クエリ履歴でプッシュのSQLも見ることが出来ました。

フォルダを作ってみる

レポジトリ直下に作ってしまったので、フォルダを作って入れてみたいと思います。
+ Add New をクリックして、「フォルダー」を選択

week56.sqlを掴んで、week056_intermediate_udf_and_alerts に置きます

フォルダ配下にファイルが移動できました

ちなみに、フォルダを選ぶと「+」ボタンが出てくるので、README.md ファイルを作ってみます。

最後に、この変更をPushしましょう。

ペインを分割

ペインを分割することも出来ます

README.md をプレビュー

プレビューも出来ますね。

branchもできる

branch : week56
がつくれて、ファイル作って、コミット&プッシュして、
PRつくって、マージとかもできます!

ちゅらデータ株式会社

Discussion