Text⭐さぁ、手を動かすのだ⭐
Chapter 2: Snowflake環境のセットアップ
この章では、データパイプラインの中核となるデータウェアハウス「Snowflake」のセットアップを行います。 無料トライアルアカウントを作成し、基本的な操作に慣れていきましょう。
主な学習内容
- Snowflake無料トライアルアカウントの作成
- Snowsight (新UI) の基本操作
- データベース、スキーマ、ウェアハウスの作成
- サンプルデータのロードとクエリ実行
Snowflakeとは?
1. アカウント作成
まずは公式サイトから30日間の無料トライアルにサインアップします。 クレジットカードの登録は不要です。
Snowflake 無料トライアルプラットフォームは「AWS」、リージョンは「Asia Pacific (Tokyo)」を選択することをおすすめします。
また、セキュリティやガバナンス系の機能の検証もできるようにするため、「Enterprise Edition」を選択しましょう。
2. Snowsightの確認
アカウント作成後、Snowsightと呼ばれる新しいWebインターフェースにログインします。 左側のメニューから「Projects」 > 「Worksheets」を開き、右上の + ボタンから新しいSQLワークシートを追加してみましょう。
3. 基本的な環境設定
まずはロールとウェアハウスを設定し、作業用のデータベースとスキーマを作成します。
use roleやuse warehouseは、createコマンドを実行したタイミングで自動で設定されますが、訓練も兼ねて実行してもらいました。
4. サンプルテーブルの作成
従業員データを格納するテーブルを作成します。
5. CSVファイルのアップロードとデータロード
サンプルCSVファイルをダウンロードして、Snowflakeの内部ステージにアップロードし、データをロードします。
内部ステージ作成とファイルアップロード手順
2. Snowsightの左下のユーザのアイコンなどがある部分をクリックしてSwitch Roleで「SYSADMIN」を選択
3. Snowsightの左メニューから「Data」 > 「Databases」を選択
4. TUTORIAL_DB > SAMPLE_SCHEMA を開く
5. 「Create」ボタン > 「Stage」 > 「Snowflake Managed」を選択
6. Stage名を「my_stage」、Encriptionは「Server-side encryption」を選択して作成
7. 作成したステージを選択し、「+ Files」ボタンをクリック
8. ダウンロードしたCSVファイルをBrowseで選択してアップロード

図1: Snowflakeでの内部ステージ作成画面
ステージにファイルをアップロード後、以下のSQLコマンドでデータをロードします:
6. 基本的なクエリの実行
ロードしたデータに対して基本的な分析クエリを実行してみましょう。
これでSnowflakeの基本的なセットアップとデータロードが完了しました。
7. リソースの削除
作業完了後は、不要なリソースを削除してクリーンアップしましょう。
次章では、このSnowflake環境にdbtから接続し、最初のデータモデルを構築していきます。
8. dbt接続用ユーザーとキーペア認証の設定
次章でのdbt接続に備えて、専用のdbtユーザーを作成し、セキュアなキーペア認証を設定します。 パスワード認証よりも安全で、自動化にも適した認証方式です。
キーペア認証のメリット
2. 自動化対応: CI/CDパイプラインでの利用に最適
3. ローテーション: 定期的なキー更新が容易
4. 監査: アクセスログの追跡が明確
手順1: dbt専用ユーザーとロールの作成
Snowflakeロール分離のベストプラクティス
SYSADMIN: データベース、スキーマ、ウェアハウスの管理を担当
この分離により、責任の明確化とセキュリティの向上を図れます。
キーペア認証の詳細設定は、次章の開発環境構築後に行います。
手順2: 権限とアクセス確認
Snowflake設定完了の確認項目
✓ dbt_userとdbt_roleの作成
✓ dbt_tutorialデータベースの作成
✓ 必要な権限の付与(USAGE、CREATE SCHEMA、FUTURE権限など)
✓ dbt_userでのアクセステスト成功
✓ テーブル作成・操作権限の確認
次章では、Devcontainer環境でRSAキーペアを生成し、キーペア認証を設定します。
これでSnowflake側のdbt接続準備が完了しました。
次章では、Mac環境でDevcontainerをセットアップし、キーペア認証を設定してdbt開発環境を構築します。
Sponsored by
スポンサーを募集中。紹介コンテンツもご用意しますので、ご興味あればお問い合わせください。