SnowflakeSQL

CLIクライアント(SnowSQL)を使ってSnowflakeにアクセスしてみよう

Snowflakeで今日拝なびら(ちゅう うがなびら=こんにちは)。
ちゅらデータshinyashikiです!

前回「SnowflakeにPythonから繋いでみよう!」ではPythonからSnowflakeへの繋ぎを行いました。
今回はSnowflakeのCLIツール(SnowSQL)を使って可視化するためのデータを登録してみます。

前回、今回、そして次回と3部構成でご紹介いたします。
SnowflakeにPythonから繋いでみよう!←前回掲載記事
CLIクライアント(SnowSQL)を使ってSnowflakeにアクセスしてみよう ← 本記事
SnowflakeとPythonでデータ可視化(次回掲載予定:1/8)

はじめに
使用するSnowflake環境について
ユーザや仮想ウェアハウス、データベースといったSnowflakeのリソースの作成方法については本記事では省略します。必要に応じて事前にご用意ください。

なお、本記事では以下のリソースが存在すると仮定します。
アカウント: sample123.ap-northeast-1.aws
ユーザ: TRAINING_SHINYASHIKI
仮想ウェアハウス: SHINYASHIKI_TRAINING_WH
データベース: SHINYASHIKI_TRAINING_DB

検証で使用する端末について
本記事の検証端末としてMacを使用しています。

SnowSQLのインストール

いろんなやり方のインストールがありますが、今回はHomebrewを使ったインストールをします。
Homebrewを使ったインストール
Homebrewが導入済みのMacOSであれば、以下のようにbrew caskコマンドでインストールできます。

インストールが成功したようです。

確認

では早速使ってみます。
まずは手っ取り早くSnowflakeのバージョンを確認してみます。

ん?実行に失敗しましたね。
どうやら実行可能ファイル「snowsql」のPATHが通っていないようです。

エイリアスの設定

実行可能ファイル「snowsql」の場所を確認したところ、 /Applications/SnowSQL.app/Contents/MacOS/snowsql にインストールされています。
zsh用の設定として.zshrcに以下のようにエイリアスを設定します。

改めてsnowsqlのバージョンを確認してみます。

バージョンが表示されましたね!
無事インストールされたことが確認できました。

データ登録の準備

登録するデータ(CSV)を取得する

それではSnowflakeに登録するデータを準備します。
今回は機械学習やデータ可視化でよく使われるアヤメの花のデータ「iris.data」を使います。
こちらからダウンロードします。
ダウンロードした「iris.data」をテキストエディタなどで開いて確認してみると、以下のようなCSV形式となっています。

ちなみに各列の意味については以下の通りです(参考: Iris Data Set
1列目: sepal length in cm がく辺の長さ(cm)
2列目: sepal width in cm がく辺の幅(cm)
3列目: petal length in cm 花びらの長さ(cm)
4列目: petal width in cm 花びらの幅(cm)
5列目: class 種類

ダウンロードした「iris.data」は後ほど使うので、いったん/tmpディレクトリに移動しておきます。

Snowflakeにログインする

以下のコマンドでSnowflakeにログインします。

ログイン時にパスワードを求められるので、パスワードを入力して接続できたのを確認します。

テーブルを作成する

データを登録するテーブルを作っていきます。
まずは以下のコマンドで対象となるデータベースを選択します。

今回はデータベース「SHINYASHIKI_TRAINING_DB」があると仮定して進めていきます。

続いて先ほどのアヤメの花のデータ「iris.data」を格納するテーブルを作成します。
テーブル作成はMySQLやPostgreSQLなどと同様、CREATE TABLE文を使います。
なお、テーブルの列数、位置、およびデータ型をiris.dataのフィールドに対応した状態で作成します。

実際にテーブルが作成されていることを確認します。

これでデータを登録する準備が整いました。

データ登録

Snowflakeではデータロード機能を使ってCSVなどローカルにあるファイルをSnowflake上のテーブルへ登録することができます。

データを登録する手順としては以下の流れとなります

1.PUTコマンドでステージと呼ばれる領域にローカルのファイルをアップロード
ステージには外部ステージと内部ステージがあり、今回は内部ステージのテーブルステージと呼ばれる領域を利用します。ステージについての詳細はこちらを参考ください

2.COPYコマンドでステージにあるデータをテーブルにコピー

データをアップロードする

まずはPUTコマンドを使ってローカルファイル「iris.data」をテーブルステージにアップロードします。

・ローカルファイルパス: /tmp/iris.data
・データベース: SHINYASHIKI_TRAINING_DB
・スキーマ: public
・テーブルステージ: iris_data

アップロードに成功しました。
それではLISTコマンドで実際にアップロードされたか確認します。

正常にアップロードされていますね。
それではデータをロードしていきます。

データをロードする

ステージングにアップロードできたので、今度はCOPYコマンドを使ってテーブルにデータをコピーします。

おや?エラーになりました。
何やら「iris.data」の151行目のデータがおかしいようなので確認してみます。

なるほど、空行になっているようです。
空行を削除して改めてアップロードしなおします。

アップロードし直す前にREMOVEコマンドを使って先ほどアップロードしたファイルを削除します。

LISTコマンドを使ってテーブルステージに「iris.data」が削除されたか確認します。

削除されたのを確認できたので、改めてアップロードしなおします。

LISTコマンドを使ってアップロードされたか確認します。

ではもう一度COPYコマンドを使ってテーブルにデータをコピーします。

コピーに成功しましたね!

データを確認する

ではSELECT文でデータが登録されているか確認します。

ちゃんとデータが登録されてますね!
これで可視化を行う準備が整いました。

次回予告

前回そして今回で、PythonからSnowflakeへアクセスする準備と実際に使用するデータの登録まで行いました。
次回はついにPythonを使ってSnowflakeのデータを可視化してみます。
ではまた!
うにげーさびら!(よろしくお願いします!)



DATUM STUDIOは、クライアントの事業成長と経営課題解決を最適な形でサポートする、データ・ビジネスパートナーです。
データ分析の分野でお客様に最適なソリューションをご提供します。まずはご相談ください。

このページをシェアする: