【初心者歓迎】Snowflake簡単設定 まずは体験!!【ビッグデータ高速処理】

はじめに

最近、私の中で話題沸騰中のビッグデータ活用データウェアハウス、『Snowflake』
Twitterの「ホッキョク クマ太郎」さんアカウントだったと思うが、無料トライアルのツイート。
これを見て、突発的にSnowflakeアカウントを作って、テストしてみることとした。

 

最終目標は、マーケットプレイス上でのデータ公開紹介。

今回は、その第一歩。
アカウントの作成とDB構築、データアップまでを(やっつけブログで)まとめていきたい。
校正はしていないので、誤字脱字ご勘弁を。
改めて、(元気回復したら)見直します。

アカウントの作成

Snowflakeの公式サイトで、ユーザ登録をする。
登録すると、入力したアドレスに認証用の通知が来ます。
認証画面で、必要項目を数個入力すると、管理画面に入れます。
(認証画面では、ユーザ名、パスワードを入力したはず)

補足
ここまでは、拍子抜けするほど、簡単に進みました。
補足
姓名を全角漢字にしたところ、認証の画面で文字がおかしなこと(Web系のコード文字?)になっていました。
半角英字が良いかも。
お茶太郎
ちなみに、もろもろの作業、主にこの超小型・非力PCでチャレンジしていくぞ。
非力マシンが足を引っ張らないことを確認したいからな。

メモリ:8GB(当初予定の6GBからアップされた)
CPU:Celeron N4100

製品説明
開封ブログ

管理画面

 

ユーザ名とパスワードを設定をすると、すぐにこの画面が表示されます。
今回は、「DB作成」「テーブル作成」「データインポート」までやります。

使うメニュは、『データベース』『ワークシート』までです。
他メニューについては、今後解説するかもしれません。

お茶太郎
まあ、ぶっちゃけ理解してねーんだけどな。

データベース作成

「データベース」→「⊕作成…」をクリック
作成するデータベース名を入力

データベース作成

「データベース」→「⊕作成…」をクリック

作成するデータベース名を入力


テーブル作成

作成した[データベース]をダブルクリック→「⊕作成…」をクリック
テーブル名、フィールド名・型を指定

テーブル作成

今回上げるデータはこんな感じ

「⊕作成…」をクリック

テーブル名、フィールド名・型を指定
スキーマ名は、既存のPUBLICを指定。他のスキーマは作っていないため、選択肢はこれのみ。


補足
カラム名に2バイトの日本語が使えます。
共有する時など、便利ですね。

入力終わったら、【完了】をクリック
テーブル完成(空っぽ)!!


補足
数字の型は、INTEGERやFLOATなど選べるが、内部ではすべて「数字」として判断されるらしい。
ここで何を指定しても影響はないってことなんだろう。
雰囲気でしか理解していない。

「テーブル」→「ステージ」作成

出来上がったテーブルをクリック。
「ステージ」をクリック
「⊕作成…」をクリック
名前、コメントを入れ、作成

ステージ作成①

テーブルをクリックすると、対テーブル用のメニューが表示される。
「ステージ」をクリック→「⊕作成…」をクリック

ステージングする場所の指定
名称指定

ステージ作成②

とりあえず、「Snowflake」を指定

こんな感じでもろもろ指定(適当)
スキーマ名は、既存のPUBLICを指定。他のスキーマは作っていないため、選択肢はこれのみ。

入力終わったら、【完了】をクリック

「テーブル」→「ファイル形式」作成

ここでは、アップロードするファイルの形式定義を作成します。

「ファイル形式」をクリックした後、「⊕作成…」をクリック
諸設定指定

もげもげ
「ファイル形式」をクリック→「⊕作成…」をクリック

もろもろ設定

個々のcsvファイルにはヘッダがあるため、「スキップするヘッダー行」を【1】に指定

注意
今回は、引用符とNull文字の指定ミスで躓いた。
データ側の空白が「””」となるのだが、これインポート時に空白ではなくNull判断されるんだな。
だから、「Null文字列」の指定を「空」にしないとエラーで止まった。

引用符のエラーがこれ↓だったので、少し苦労した。


データが正しいのにインポートがうまくいかない時は、ファイル形式再チェックした方が良い。

snowsqlのインストール

データのPUT、まずはWindowsのコマンドから実行。
その準備として、「snowsql」をインストールする。

snowsqlの最新バージョンをダウンロード

snowsqlダウンロード

画面右上、「ヘルプ」→「ダウンロード」を指定

「CLIクライアント(snowsql)」→「Snowflakeリポリトジ Linux、Windows、Mac OS」を選択

最新バージョンを選択、ダウンロード


snowsqlのインストール

snowsqlインストール
ダウンロードしたインストーラファイルをダブルクリック

インストーラの指示に従いインストール

データファイルのアップロード(PUT)

コマンドプロンプトを管理者として立ち上げる

cmd立ち上げ
Windowsメニュー → 「cmd」検索 → 「コマンドプロンプト」を右クリック。「管理者として実行」する。

データファイルのアップロード(PUT)

補足
コマンドプロンプトで『snowsql –help』と入力するとヘルプが表示されます。

ここでヘルプが表示されなかった時は、インストール失敗です。
『アプリと機能』でアンインストールし、再度インストールし直してください。

お茶太郎
ここ、トラブル起きなかったから、これ以外リカバリの仕方を説明してやれん。
すまないな。
アップ
サインイン

snowsql -a 【accountname】 -u 【username】 -r sysadmin
補足
-a : アカウント。
各ユーザの管理画面のURL 、下の例の赤文字部分。
https://hana59603.mo-gera-1.aws.snowflakecomputing.com/console/login#/?returnUrl=internal%2Fworksheet
-u : ユーザーネーム。
-r : ロール。今は、システムアドミン指定しています。

データベース指定

use database 【DataBaseName】;

ファイルのPUT

put file://C:\data\filename.csv @StagName;
補足
StagName : 管理画面で作成したステージ名を指定
バックスラッシュは、「半角円マーク」です。
注意
Windowsでは、2バイト文字をパスに使うとエラーとなりました。

また、Linuxでは、パスの指定を下記のように「file:///data」とするようです。
これでうまくいきました。

put file:///data/filename.csv @StagName;
補足
SQL抜けるときは、「!q」もしくは「!quit」

あと、ここにもいろいろ書いてある。

データのインポート(COPY INTO)

PUTしたデータをテーブルに流し込みます。
私が教わったときは、管理画面から実行しましたので、ここでも画面上で進めていきます。
(もちろん、snowsqlからでも実行できます。)

 

インポート(COPY INTO)

COPY INTO
ワークシートからのSQLコマンド実行を実行します。
まずは、画面遷移しましょう。

画面上部、メニューから「ワークシート」を選択します。

アップロードしたファイルを念のため確認しましょう。

list @StagName;

データをテーブルにコピーします。

copy into "DataBaseName" from @StagName
file_format=【ファイル形式】;
お茶太郎
データファイルをアップした「StageName」っていうステージから、「DataBaseName」ってデータベースのテーブルに、あらかじめ定義していた「ファイル形式」のルールに従って、データを流し込めってことだな。

管理画面からのデータロード

下記の手順で管理画面から直接データをアップロードすることもできます。

管理画面上でのロード
テーブルを指定。
画面上にある「↑テーブルをロード」をクリック

ウェアハウスを指定

ファイルを指定

ファイル形式を指定

アップロード時のオプション(エラー発生時の挙動)を指定

しばし、待つ

ロード、完了!!

データ屋さんは、きちんと確認する!!

注意
「テーブル形式」のNullの指定が間違っていて、アップに戸惑いました。
「アップするデータの中身」と「テーブル形式」の指定が間違っていなければ、一発でアップできると思います。
お茶太郎
データ屋なので、何かした後はそれがきちんとできたかを必ず確認するぞ。
「まあ、大丈夫だよな」って手を抜くと、トラブルが起きることがあるからな。
確認は大切だ!!

tableauからの接続

お茶太郎
おっさんな、疲れてきたからここからは手を抜く。
細かなことは書かないから、お前ら自身で頑張ってくれ。
疲れた。

ODBCドライバーのインストール

ODBCドライバーインストール
ここにある。
自分のPC環境にあったもの、最新のもをを探してダウンロードして、入れてくれ。

tableauからの接続

tableauからの接続
「接続 ⇒ その他 ⇒ Snowflake」を選択

 

サーバー等設定
サーバー:各ユーザの管理画面のURL 、下の例の赤文字部分。
https://hana59603.mo-gera-1.aws.snowflakecomputing.com/console/login#/?returnUrl=internal%2Fworksheet
役割:空白
ユーザー名:自分で登録したユーザ
パスワード:自分で登録したパスワード

データベース等設定
ウェアハウスとか、データベースとか聞かれるから、よしなにやってくれ。

 Snowflakeの世界へ、Go!!! 

最後に

というわけで、ここまで一気に書きました。

 

疲れたので本日はこれで終了。

ここまで読んでいただき、ご興味を持たれた方、
今すぐに「トライアル」申し込みましょう!!

 

では、また。ノシ~~~~~~~~~~~~~~