Snowflake Workspaceを試してみた
がく@ちゅらデータエンジニアです。
ご無沙汰しております。すっかりサボっておりました(屍
いやさーー、ブログ書こうと思ってもさぁ、生成AIがすごくてさぁ、書いててもなんか意義というかそのあたりどうしたらいいんかな・・・・・なんて思ったり・・・・・
ってのは書かない言い訳ですね(ダメ
ちょっと書くモチベが上がってきたので、やりたい技術検証や記事をやっていきたいなと思っています。
※データエンジニアリング通信も再開しないとね・・・下書き書いてみたけど、没にしたんだorz
概要
先日、2025年6月4日に「Snowsightに新機能「Workspaces」が追加」というリリースがありました。
リリースノートはこちら
このリリースの一環として、SnowflakeはSnowsightの新機能であるワークスペースを導入しました。ワークスペースは、複数のファイルタイプにわたるコードの作成、整理、管理のための統合エディターを提供し、データの分析、モデルの開発、パイプラインの構築に使用できます。
ワークスペースはあなた専用の開発環境であり、作業の構築、実験、テストを自由に行うことができます。ワークスペース内のすべてのコンテンツはファイルベースであるため、より複雑なプロジェクトに取り組むことができ、Gitとの統合も容易で、バージョン管理、コラボレーション、既存のワークフローとの連携も容易です。
にドキュメントがあります。
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