目次
この記事が解決できること
- SnowflakeでSQLクエリを作成することができる。
- クエリを実行するまでの基本的な操作が分かる。
はじめに
Snowflakeはクラウドベースのデータウェアハウスサービスであり、柔軟性、スケーラビリティ、使いやすさを特徴としています。
この記事を読めば、Snowflakeの大枠の構造と基本構造を理解して、”とりあえずSnowflakeでSQLを回してデータを取得できる” までが可能です。
Snowflakeのクエリで簡単にテーブル参照できる方法も紹介しています。Snowflakeをさらに活用していきたい方は、こちらをぜひ参考にしてみてください!
Snowflakeの基本概念
まずはSnowflakeをクエリを作成する際に必要な、「Snowflakeの基本概念」をできるだけ分かりやすく紹介します。
■データウェアハウス
Snowflakeにおける「ウェアハウス」とは、SQLクエリの実行に使用される計算リソース(=計算処理の能力)のことです。
Snowflakeは使用量によって料金が変動する「従量課金制」となっていますが、必要に応じて「ウェアハウス」を調整することができます。
例えば……
大量のデータをすばやく分析したい場合には、ウェアハウスのサイズを大きくすることでより多くの計算リソースを使って作業を速めることができます。 逆に、データ量が少ない時や急いでいない時には、ウェアハウスのサイズを小さくしてリソースを少なくすることで、コストを節約することも可能です。
ウェアハウスサイズ | クレジット / 時間 | クレジット / 秒 | 注意 |
---|---|---|---|
XS | 1 | 0.0003 | Snowsight で作成され CREATE WAREHOUSE を使用するウェアハウスのデフォルトサイズ。 |
S | 2 | 0.0006 | |
M | 4 | 0.0011 | |
L | 8 | 0.0022 | |
XL | 16 | 0.0044 | Classic Console を使用して作成されたウェアハウスのデフォルトサイズ。 |
2XL | 32 | 0.0089 | |
3XL | 64 | 0.0178 | |
4XL | 128 | 0.0356 | |
5XL | 256 | 0.0711 | Amazon Web Servicesリージョンで一般公開され、 US 政府およびAzureリージョンではプレビュー段階にあります。 |
6XL | 512 | 0.1422 | Amazon Web Servicesリージョンで一般公開され、 US 政府およびAzureリージョンではプレビュー段階にあります。 |
※XS(一番小さい)~6XLの順番で処理スピードが速くなるが、料金もその分高くなります
👉公式ドキュメント
■データベースとスキーマ
Snowflakeにおける「データベース」とは、一つの大きなデータの箱のようなもの。さまざまな種類のデータが集められ、保存される場所です。
Snowflakeにおける「スキーマ」は、データベース内でさらにデータを小分けに整理する役割を持っています。これにより、特定のデータセットへのアクセスが簡単になります。
また、スキーマの中には、「テーブル」「ビュー」等のデータベースオブジェクトが保管されています。
■ロール
Snowflakeにおける「ロール」は、ユーザーがデータベース内で何ができるかを決定する役割を持つセキュリティ機能です。ロールはユーザーに特定の権限を与えることで、どのデータにアクセスできるか、どのような操作ができるかを管理します。
ロール | 説明 |
---|---|
SYSADMIN | システム管理タスクを実行するためのロール。データベースやウェアハウスの作成、ユーザー管理などの操作が可能です。 |
ACCOUNTADMIN | アカウントレベルの最高管理者ロール。すべてのデータベースオブジェクト、ユーザー、ロール、ウェアハウスに対する完全な権限を持ち、請求やアカウント設定の変更が可能です。 |
SECURITYADMIN | ユーザーとロールの管理に特化したロール。ユーザーの作成やロールの割り当て、パスワードポリシーの設定などの権限を持ちます。 |
USERADMIN | ユーザーとロールの作成および管理を行うロール。SECURITYADMIN よりも限定的な権限で、主にユーザー管理に関連するタスクに使用されます。 |
PUBLIC | Snowflake に作成されるすべてのユーザーに自動的に割り当てられるロール。最低限のアクセス権限が付与されています。 |
※ロールをカスタマイズすることも可能です。
👉公式ドキュメント
Snowflakeの基本操作方法
Snowflakeでクエリを作成→実行する際の基本的な操作をご紹介します。
日本語表記ではまれにエラーになることがあるので、本記事では言語設定:Englishのまま説明していきます。
言語設定の変更方法
①左下のアイコンから「My profile」を選択
②Languageより、「日本語」にチェックを入れて「save」ボタンをクリック
→日本語表記になります
SQLクエリの作成→実行方法
①最初にSQLのワークシートを開きます
「Worksheet」→右上の「+」をクリック
「SQL Worksheet」を選択
SQLのワークシートが表示される
②ロールとウェアハウスを選択します
SQLワークシート右上をクリック
ロールとウェアハウスを選択
ウェアハウスの詳細確認
以下のボタンからウェアハウスの詳細を確認することもできます。
③SQLワークシート左上より、使用するデータベースを選択します
事前にデータベースを設定することで、参照元を明確にし、クエリ内でデータベース名を完全に修飾しなくても、スキーマ内を参照できます。 (スキーマまで設定するとスキーマ名も省略可能)
例えば……
データベースに「SNOWFLAKE_SAMPLE_DATA」を選択した場合、 クエリで「SNOWFLAKE_SAMPLE_DATA」を省略してもクエリが実行されます
④実際にクエリを書いて、実行します
クエリを実行する際は、Ctrl+Enter
または、右上のボタンをクリックします
👇
クエリ実行中……
👇
クエリ結果が表示されます!
クエリ結果はテーブルとして表示されます。スプレッドシートの場合と同様に、結果テーブルの列、セル、行、または範囲を選択できます。また、選択内容をコピーして貼り付けることができます。
全体の実行方法
ワークシート全体を実行するには、「∨」のドロップダウンメニューから「Run All」を選択します。
結果テーブルのダウンロード・コピー方法
■結果テーブルのダウンロード方法
結果テーブル右上のボタンより、ダウンロードが可能です。
■結果テーブルのコピー方法
結果テーブルをCtrl+C(⌘+C)でコピーしてExcel等にそのまま貼り付けることも可能です。
左上の空白部分をクリックするとカラム全体が選択されるので、Ctrl+C(⌘+C) でコピー完了です。
以下のように指定の列を選択することも可能です。
ShiftやCtrlで複数列選択することや、行の選択も可能です。
※クエリ結果は、最大10,000行のテーブルとして表示されます。クエリが10,000行を超える場合は、 必ず「ダウンロード」を使用しましょう。
ワークシートの名前変更方法
ワークシート名は、デフォルトでワークシートを作成した時刻(例:2024-04-19 5:54pm)になります。
ワークシート名を変更する場合は、ワークシート名部分をダブルクリック、もしくはRenameより変更しましょう。
Snowflakeは、クエリ入力時にワークシート・クエリ内容が自動的に保存されます。
ワークシートを削除したい場合は、「Delete Worksheet」から削除できます。
最後に
Snowflakeは、データを扱う際の多くの課題を解決する強力なツールです。
この記事を通じて、Snowflakeの基本を理解し、どのようにビジネスに活用できるかの第一歩を踏み出しましょう。
データ活用でお困りの方へ
私たちDX-Accelerator事業では、データ活用についての様々なスキルを持った人材が常駐でデータ活用支援を行うサービスを提供しています。
当事業はローンチから約3年(24年9月時点)ですが、これまでに様々な業界・業種のお客さまのお手伝いをさせていただいております。
少しでも興味を持ってくださったり、すでにご相談をしたいことがある方はお気軽にご相談ください。現在あなたの組織のフェーズがどこにあるかは関係ありません。まずはお話をしましょう。
もう少しサービスについて知りたい方はサービス紹介資料もご用意しています。