はじめに
最近、私の中で話題沸騰中のビッグデータ活用データウェアハウス、『Snowflake』
Twitterの「ホッキョク クマ太郎」さんアカウントだったと思うが、無料トライアルのツイート。
これを見て、突発的にSnowflakeアカウントを作って、テストしてみることとした。
最終目標は、マーケットプレイス上でのデータ公開紹介。
今回は、その第一歩。
アカウントの作成とDB構築、データアップまでを(やっつけブログで)まとめていきたい。
校正はしていないので、誤字脱字ご勘弁を。
改めて、(元気回復したら)見直します。
アカウントの作成
Snowflakeの公式サイトで、ユーザ登録をする。
登録すると、入力したアドレスに認証用の通知が来ます。
認証画面で、必要項目を数個入力すると、管理画面に入れます。
(認証画面では、ユーザ名、パスワードを入力したはず)
ここまでは、拍子抜けするほど、簡単に進みました。


姓名を全角漢字にしたところ、認証の画面で文字がおかしなこと(Web系のコード文字?)になっていました。
半角英字が良いかも。
管理画面

ユーザ名とパスワードを設定をすると、すぐにこの画面が表示されます。
今回は、「DB作成」「テーブル作成」「データインポート」までやります。
使うメニュは、『データベース』『ワークシート』までです。
他メニューについては、今後解説するかもしれません。
データベース作成
「データベース」→「⊕作成…」をクリック
作成するデータベース名を入力
テーブル作成
作成した[データベース]をダブルクリック→「⊕作成…」をクリック
テーブル名、フィールド名・型を指定
今回上げるデータはこんな感じ

「⊕作成…」をクリック

テーブル名、フィールド名・型を指定
スキーマ名は、既存のPUBLICを指定。他のスキーマは作っていないため、選択肢はこれのみ。
カラム名に2バイトの日本語が使えます。
共有する時など、便利ですね。
入力終わったら、【完了】をクリック
テーブル完成(空っぽ)!!
数字の型は、INTEGERやFLOATなど選べるが、内部ではすべて「数字」として判断されるらしい。
ここで何を指定しても影響はないってことなんだろう。
雰囲気でしか理解していない。
「テーブル」→「ステージ」作成
出来上がったテーブルをクリック。
「ステージ」をクリック
「⊕作成…」をクリック
名前、コメントを入れ、作成
ステージングする場所の指定
名称指定
とりあえず、「Snowflake」を指定

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

入力終わったら、【完了】をクリック
「テーブル」→「ファイル形式」作成
ここでは、アップロードするファイルの形式定義を作成します。
「ファイル形式」をクリックした後、「⊕作成…」をクリック
諸設定指定
今回は、引用符とNull文字の指定ミスで躓いた。
データ側の空白が「””」となるのだが、これインポート時に空白ではなくNull判断されるんだな。
だから、「Null文字列」の指定を「空」にしないとエラーで止まった。

引用符のエラーがこれ↓だったので、少し苦労した。
snowsqlのインストール
データのPUT、まずはWindowsのコマンドから実行。
その準備として、「snowsql」をインストールする。
snowsqlの最新バージョンをダウンロード
snowsqlのインストール
データファイルのアップロード(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)
まずは、画面遷移しましょう。
アップロードしたファイルを念のため確認しましょう。
list @StagName;

データをテーブルにコピーします。
copy into "DataBaseName" from @StagName file_format=【ファイル形式】;
管理画面からのデータロード
下記の手順で管理画面から直接データをアップロードすることもできます。
画面上にある「↑テーブルをロード」をクリック

「テーブル形式」のNullの指定が間違っていて、アップに戸惑いました。
「アップするデータの中身」と「テーブル形式」の指定が間違っていなければ、一発でアップできると思います。
「まあ、大丈夫だよな」って手を抜くと、トラブルが起きることがあるからな。
確認は大切だ!!
tableauからの接続
細かなことは書かないから、お前ら自身で頑張ってくれ。
疲れた。
ODBCドライバーのインストール
tableauからの接続

サーバー等設定
サーバー:各ユーザの管理画面のURL 、下の例の赤文字部分。
https://hana59603.mo-gera-1.aws.snowflakecomputing.com/console/login#/?returnUrl=internal%2Fworksheet
役割:空白
ユーザー名:自分で登録したユーザ
パスワード:自分で登録したパスワード
データベース等設定
ウェアハウスとか、データベースとか聞かれるから、よしなにやってくれ。
Snowflakeの世界へ、Go!!!
最後に
というわけで、ここまで一気に書きました。
疲れたので本日はこれで終了。
ここまで読んでいただき、ご興味を持たれた方、
今すぐに「トライアル」申し込みましょう!!
では、また。ノシ~~~~~~~~~~~~~~