Snowflake Cortex Code Skills 使ってみた

Snowflake

こんにちは!システムサポートの寺田です!

Cortex Code は、Snowflake に統合された AI 駆動型のインテリジェントエージェントで、
データ分析・機械学習・エージェント構築などの複雑なタスクを
Snowflake 内で直接実行できる仕組みです。
クロスリージョンが有効になっているアカウントで利用可能です。

Skills は、Cortex Code に「専門的な知識・手順・ワークフロー」を提示するための
拡張モジュールです。
本来 Cortex Code CLI の拡張機能として提供されていましたが、
現在は Snowsight からも利用でき、
ブラウザ上で直感的に Skills を管理・適用できるようになりました。

今回は、Snowsight 上で Cortex Code に Skills を適用し、
SQL を指定したコーディング規約へ楽に修正してくれるのかを検証しました。


本記事でわかること


  • Cortex Code に Skills を作成し、適用する方法


Skills の作成


Skills の作成方法は簡単です。
Snowsight の Cortex Code 内の「+」ボタンから「Create Skill」ボタンで作成することができます。


Skills の中身


今回は、送信した SQL をコーディング規約に
沿って修正してくれるような Skills を作成しました。
中身は以下の通りです。
緑文字が、Skills の説明本文です。

Skills は md (マークダウン)で記述されます。
「#」と「-」は、共にSkillsのファイル形式であるmd(マークダウン)の記法です。
「#」は、ヘッダーの意味でブログの見出しと同じ感覚です。
例えば、
#→H1
##→H2
と階層を分けることができます。
「-」は、箇条書きの「・」と同様の意味を持ちます。

説明本文に、SQL例を記述しています。
コーディング修正の精度を高めるために例として記述していますが、
SQL例に関しては、必須ではありません。

各項目の意味


Skills の適用


Skills を適用するには、Cortex Code に質問を入力する前に、
「/」を入力します。
入力すると使用可能な Skills の一覧が表示されるので選択し、
そのまま質問を入力し送信することで、
Skills が適用された状態で、質問することができます。


SQL 文を送信してみる


以下の SQL をそのまま送信してみます。
「この SQL を修正してください」等の指示は一切送信しません。
設定したコーディング通りに修正してくれるでしょうか?

以下の回答が返ってきました。

SQLコーディング規約に基づいて修正しました。問題点と修正後のSQLは以下の通りです:

問題点:

予約語が大文字小文字混在(SeLECT, GRouP By など)
インデントが不統一(タブ、全角スペース混在)
余分なカンマ(toTal_c, の後に ,)
COUNT(*) にエイリアスがない
OR 条件に括弧がなく意図が不明確
セミコロンがない
修正後:

sql
SELECT
    column_a,
    column_b,
    SUM(column_c) AS total_c,
    COUNT(*) AS record_count
FROM
    database_name.schema_name.table_name AS t
WHERE
    (t.status = 'active' AND t.created_at >= '2024-01-01')
    OR test = '88'
GROUP BY
    column_a,
    column_b
ORDER BY
    total_c DESC
;
主な修正内容:

予約語をすべて大文字に統一
インデントをスペース4つに統一(全角スペース・タブを除去)
余分なカンマを削除
COUNT(*) に AS record_count エイリアスを追加
OR 条件の論理グループを括弧で明確化
末尾にセミコロンを追加

SQL文だけを送信するだけで、
コーディング規約に沿って、修正してくれました!


まとめ


今回は、Snowsight の Cortex Code に Skills を作成し、
SQL のコーディング規約に沿って自動修正してくれるかを検証しました。
SQL をそのまま送るだけで、予約語の大文字化やインデントの統一、
不要な記述の整理などを行ってくれることが確認できました。
毎回同じルールで SQL を整形したい場合や、
レビューの手間を減らしたい場合に非常に有効だと感じました。
SQL 以外のルールやレビュー観点を Skill 化できれば、
開発効率の向上にさらに役立ちそうです!

コメント

タイトルとURLをコピーしました