3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Snowflakeコミュニティの初心者むけ勉強会が最高でした

Last updated at Posted at 2025-02-13

Snowflake Rookies Camp 勉強会に参加しました

2025年2月12日に開催された Snowflake Rookies Camp に参加させていただきました。その名の通り、「初心者向け」の勉強会ということで、私にピッタリだと思いました。

業務に追われながら何とか学習を進めていますが、社内にはSnowflakeの有識者がおらず、公式のトレーニングコースやコミュニティの皆様に助けられながら少しずつ理解を深めています。今回の勉強会も、そんな私にとって貴重な学びの機会となりました。


勉強会の内容

今回の勉強会は 第1回 ということで、Snowflakeの3層構造の基本的な概要 など基本からスタートし、 ハンズオン形式で外部ステージをロードし、クエリを実行する ところまで学びました。

当日は、内容を目で追いかけるのが精一杯でしたが、疑問点はチャットで質問でき、その場で回答をいただけた ため、理解を深めることができました。講師の方々やコミュニティの皆さんのサポートが本当にありがたかったです。


実際に試してみたら権限エラー

翌日、自分でも トライアルアカウント で同じ操作を試してみました。しかし、コマンドを勘違いして権限周りのエラー に直面しました。

遭遇したエラー

use role accountadmin;
grant operate on warehouse compute_wh to role sysadmin;
use role sysadmin;
use warehouse compute_wh;
Insufficient privileges to operate on warehouse 'COMPUTE_WH'

image.png

「権限が不足している」というエラーですが、operate 権限を付与したはずなのにうまくいかない

解決策:usage 権限の付与

コミュニティのSlackで質問したところ、すぐにアドバイスをいただきました。本当にありがとうございます。

正しいコマンド

grant usage on warehouse compute_wh to role sysadmin;

operate は実行制御の権限であり、クエリの実行権限は usage でないと付与されない とのこと。

以下の手順で権限を設定することで、正常に動作しました:

use role accountadmin;
grant usage on warehouse compute_wh to role sysadmin;
grant operate on warehouse compute_wh to role sysadmin;
use role sysadmin;
use warehouse compute_wh;

image.png

余談

外部ステージと list コマンドの関係を理解

COPY INTOでロードするところまでは理解したものの、Snowflakeの 外部ステージ に格納された CSVファイル と、list コマンドの結果との関連性がよく分からず、色々と試してみました。 おかげで、どのようにデータを扱うのかを理解することができました。


試したこと

通常、以下のように list コマンドを実行すると、外部ステージにあるファイル一覧が表示されます。

LIST @data_dumps;

s3://frostyfridaychallenges/challenge_1/1.csv
s3://frostyfridaychallenges/challenge_1/2.csv
s3://frostyfridaychallenges/challenge_1/3.csv

この状態で、以下のクエリを実行すると すべてのファイルの1カラム目 が表示されることが分かりました。

SELECT $1 FROM @data_dumps;

image.png

つまり、@data_dumps に含まれる すべてのCSVファイルの1カラム目 が返される仕様になっています。

特定のファイルのみを対象にする方法
例えば、1.csv の1カラム目だけを表示したい 場合、以下のクエリを使うことで解決しました。(この方法は ChatGPT に聞いて教えてもらいました。)

SELECT $1 FROM @data_dumps (PATTERN => '.*1\.csv');

image.png

このように、PATTERN を指定することで、外部ステージ内の特定のファイルだけを対象にすることができました。

まとめ

SELECT $1 FROM @data_dumps; を実行すると、ステージ内のすべてのファイル の1カラム目が表示される。
特定のファイルだけを対象にしたい場合は、PATTERN を活用すると良い。
list コマンドを使えば、ステージ内にどのファイルが存在しているかを確認できる。
今回の試行錯誤を通して、 外部ステージ・CSVファイル・list コマンドの関連性を理解することができました。

今後も引き続き、Snowflakeの学習を進めていきたいと思います!
改めて、素晴らしいユーザーコミュニティの皆様に多大な感謝をもうしあげます。

2/18に再度開催予定とのことです
第1回Snowflake Rookies Camp~初心者向け勉強会~第2弾

初心者には絶対におすすめです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?