0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

30日でマスターする!Oracle、MySQLからSnowflakeまでデータベース技術完全ロードマップ - 11日目: 手を動かそう!Snowflakeアカウント作成からデータロードまで

0
Posted at

11日目: 手を動かそう!Snowflakeアカウント作成からデータロードまで

はじめに:いよいよSnowflakeを体験しよう

昨日までで、クラウドデータウェアハウスの革新的なアーキテクチャ、特にSnowflakeの「ストレージとコンピュートの分離」について深く理解しました。理論だけでは終わらせません。今日からは、実際に手を動かしてSnowflakeのパワーを体験していきましょう。

11日目の今日は、Snowflakeのトライアルアカウントを作成し、簡単なテーブルを作成、そして外部のCSVファイルからデータをロードする一連の流れをハンズオン形式で解説します。これまでのOracleやMySQLの経験と照らし合わせながら、Snowflakeのシンプルさとパワフルさを実感してください。


1. Snowflakeアカウントの作成(無料トライアル)

Snowflakeは、30日間の無料トライアルを提供しています。クレジットカードの登録は不要で、すぐに始められます。

手順1:公式サイトにアクセス

まず、Snowflakeの公式サイトにアクセスし、画面右上の「Free Trial」ボタンをクリックします。

手順2:必要事項の入力

以下の情報を入力し、アカウントを作成します。

  • First Name, Last Name: 氏名
  • Company: 会社名(個人利用の場合は「Personal」などでOK)
  • Email: メールアドレス
  • Country/Region: 国
  • Cloud Provider: Snowflakeをホストするクラウドプロバイダー(AWS, Azure, GCP)を選択します。どれを選んでも機能は同じです。
  • Region: リージョンを選択します。日本国内であれば「Tokyo」を選択するのが一般的です。
手順3:メール認証とパスワード設定

登録したメールアドレスに認証メールが届きます。「Click to Activate」ボタンをクリックして、パスワードを設定します。これでアカウント作成は完了です。

手順4:ログインとワークシートの確認

設定したパスワードでログインすると、SnowflakeのWeb UI(Webインターフェース)が表示されます。左側のメニューから「Worksheets」を選択してください。ここが、SQLクエリを実行するための開発環境になります。


2. 仮想ウェアハウスとデータベースの作成

SnowflakeでSQLを実行するためには、まず処理を行うためのコンピュートリソースである「仮想ウェアハウス」と、データを格納するための「データベース」を作成する必要があります。

手順1:仮想ウェアハウスの作成

Snowflakeでは、デフォルトで「COMPUTE_WH」というウェアハウスが作成されていますが、ここでは練習用に新しく作成してみましょう。ワークシートに以下のクエリを入力して実行します。

-- 仮想ウェアハウスを作成
CREATE WAREHOUSE my_warehouse WITH
  WAREHOUSE_SIZE = 'XSMALL'
  AUTO_SUSPEND = 60
  AUTO_RESUME = TRUE;
  • WAREHOUSE_SIZE: 処理能力を決定します。XSMALLは最も小さいサイズで、学習には十分です。
  • AUTO_SUSPEND: ウェアハウスが使用されない状態が60秒続くと、自動的に停止し、コストの発生を止めます。
  • AUTO_RESUME: 次のクエリが実行されると、自動的に再開します。
手順2:データベースとスキーマの作成

次に、データを格納するためのデータベースとスキーマを作成します。

-- データベースを作成
CREATE DATABASE my_database;

-- 作成したデータベースを使用
USE DATABASE my_database;

-- スキーマを作成
CREATE SCHEMA public;

-- 作成したスキーマを使用
USE SCHEMA public;

OracleやMySQLのハンズオンで学んだように、スキーマはテーブルを論理的にグループ化する役割を担います。


3. CSVファイルからのデータロード

いよいよ、外部のCSVファイルをSnowflakeにロードしてみましょう。データロードは、データウェアハウスにおける最も基本的な作業の一つです。

ここでは、仮想的な従業員データをCSVファイルとして用意し、それをロードする手順を解説します。

手順1:ステージの作成

Snowflakeにデータをロードする際には、一度「ステージ(Stage)」と呼ばれる中間的な場所にファイルを配置します。これは、Snowflakeの内部ストレージや、AWS S3、Azure Blob Storageなどのクラウドストレージを指します。

ここでは、Snowflakeの内部ステージを使用します。

-- 内部ステージを作成
CREATE OR REPLACE STAGE my_internal_stage;
手順2:CSVファイルのアップロード

Web UIのワークシート画面で「Database」を選択し、my_database -> public -> my_internal_stage を選択します。
「Upload」ボタンをクリックし、手元のPCにあるCSVファイル(例:employees.csv)をアップロードします。

employees.csvの内容例

employee_id,first_name,last_name,department
101,John,Doe,Sales
102,Jane,Smith,Marketing
103,Peter,Jones,Engineering
104,Mary,Williams,Sales
手順3:テーブルの作成

アップロードしたCSVファイルをロードするためのテーブルを作成します。

CREATE TABLE employees (
    employee_id INT,
    first_name VARCHAR,
    last_name VARCHAR,
    department VARCHAR
);
手順4:CSVファイルからテーブルへのデータロード

COPY INTOというコマンドを使って、ステージに置いたCSVファイルからテーブルにデータをロードします。

COPY INTO employees
FROM @my_internal_stage/employees.csv
FILE_FORMAT = (TYPE = 'CSV' FIELD_DELIMITER = ',' SKIP_HEADER = 1);
  • @my_internal_stage/employees.csv: ステージにアップロードしたファイルへのパスを指定します。
  • FILE_FORMAT: ロードするファイルの形式を指定します。SKIP_HEADER = 1は、CSVファイルの1行目をヘッダーとしてスキップする設定です。

このコマンドを実行すると、CSVファイルの内容がemployeesテーブルにロードされます。


4. ロードしたデータの確認と簡単な分析

データがロードされたら、SELECT文を使って確認してみましょう。

-- ロードした全データを表示
SELECT * FROM employees;

-- 部署ごとの従業員数を集計
SELECT
    department,
    COUNT(*) AS employee_count
FROM
    employees
GROUP BY
    department
ORDER BY
    employee_count DESC;

これらのSQLクエリは、これまでOracleやMySQLで使ってきたものと全く同じです。Snowflakeの強力な点は、このシンプルなSQLで、数テラバイト、数ペタバイトといった膨大なデータでも高速に分析できることです。


まとめ:Snowflakeの体験は、データエンジニアの第一歩

今日のハンズオンを通じて、あなたはSnowflakeの基本的な操作を学びました。

  • アカウント作成:数分で分析環境が手に入る手軽さ。
  • 仮想ウェアハウス:処理能力を柔軟に調整できる画期的な仕組み。
  • COPY INTOコマンド:高速なデータロード。

この体験は、データエンジニアとしての新しいキャリアの第一歩です。従来のデータベースの知識を活かしつつ、クラウドネイティブなデータウェアハウスのシンプルさとパワーを理解することは、今後のキャリアにおいて大きな武器となります。

明日からは、この体験をさらに深掘りし、より実践的なSnowflakeの使い方を学んでいきます。

  • 明日(12日目): 複雑なデータも怖くない!JSON/半構造化データのロードと活用
  • 13日目: Snowflakeの真骨頂!スケーラビリティとコスト管理の最適化
  • 14日目: 2週間の総まとめ!データエンジニアとして未来を切り拓くために
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?