M1 Mac (Apple silicon)のTableauからSnowflakeへ接続に使うODBCドライバーは"mac64"版を選択する! - Qiita
はじめに最近(もう結構前から?)、データウェアハウスのSnowflakeがかなり注目されていますよね!そこで、今回はTableauからSnowflakeへの接続をテストしてみました!その際にハ...
https://qiita.com/se_yataro/items/21a7fcac1adcbc6ddd6b
こんにちは、ナイトレイインターン生の星合です!
Wantedlyをご覧の方に、ナイトレイのエンジニアがどのようなことをしているか知っていただきたく、Qiitaに公開している記事をストーリーに載せています。
少しでも私たちに興味を持ってくれた方は下に表示される募集記事もご覧ください↓↓
はじめまして、徳竹です。
株式会社ナイトレイで主に位置情報の分析や可視化、少しバックエンドに携わっています。
今回は、SnowflakeのCUIクライアント「SnowSQL」のインストールとチュートリアルを体験した内容を紹介します!
今回の作業環境は以下のとおりです。
【作業環境】
・ チップ Apple M1
・ macOS Ventura 13.3
※その他、Snowflake関連記事はコチラ↓
macへのSnowSQLのインストールは上記のドキュメントを参考に進めていきます。
まずはSnowSQLをHomebrewを使ってインストールしましょう!
といっても、既にHomebrewを導入していれば下記のコマンドを実行すればOKです。
brew install --cask snowflake-snowsql
続いて、インストールが完了したらzshrcファイルを編集し、SnowSQL 実行可能ファイルのエイリアスを登録しましょう!
エイリアスを登録することで、ターミナルで SnowSQLが実行できるようになります。
※以下、公式ドキュメントから引用+追記
2. 次の行を追加します。
alias snowsql=/Applications/SnowSQL.app/Contents/MacOS/snowsql
→ snowsqlという名前で実行ファイルのエイリアスを登録次の行を追加します。
3. ファイルを保存します。
これで、SnowSQLのインストールは完了です!
SnowSQLのインストールが完了したので、チュートリアルをやってみましょう!
チュートリアルに沿って進めていきたいと思います。
まずは、サンプルファイルgetting-started.zip をダウンロードして、/tmpフォルダを作成し、その中にダウンロードしたファイルを解凍して準備しておきます。
それではターミナルで以下のコマンドを実行して、SnowSQLにログインしましょう。
$ snowsql -a <account_identifier> -u <user_name>
SnowSQLへログインする際の account_identifierとuser_nameは以下のとおりです。
account_identifier → 組織名-アカウント名
user_name → 各自のユーザー名
次のプロンプトでパスワードが要求されるので、SnowSight(SnowflakeのWebUI)にログインする際のパスワードを入力します。
ログインが完了すると下記キャプチャのように表示されると思います。
このあとのチュートリアルの大まかな流れは以下のとおりです。
それでは早速チュートリアル用のデータベース等を作成していきます。
まずはデータベースの作成です。下記のコマンドを実行します。
CREATE OR REPLACE DATABASE sf_tuts;
また、下記コマンドで現在のデータベースとスキーマを確認できます。
SELECT CURRENT_DATABASE(), CURRENT_SCHEMA();
テーブルとウェアハウスについても、チュートリアルページのコマンドを実行して作成しましょう。
■テーブル作成
CREATE OR REPLACE TABLE emp_basic (
first_name STRING ,
last_name STRING ,
email STRING ,
streetaddress STRING ,
city STRING ,
start_date DATE
);
■ウェアハウス作成
CREATE OR REPLACE WAREHOUSE sf_tuts_wh WITH
WAREHOUSE_SIZE='X-SMALL'
AUTO_SUSPEND = 180
AUTO_RESUME = TRUE
INITIALLY_SUSPENDED=TRUE;
ダウンロードしたデータをSnowflakeにステージングします。
Snowflakeに記載のとおり、ステージとはテーブルにデータをロード・アンロードするための場所で、今回はそこにサンプルデータをアップロードしていきます。
mac環境なので以下のコマンドを実行してアップロードします。
PUT file:///tmp/employees0*.csv @sf_tuts.public.%emp_basic;
※/tmp/employees0*.csv部分は、サンプルデータを解凍したフォルダ名に置き換えてください。今回はユーザーディレクトリ直下に配置したので/Users/ユーザー名/tmp/employees0*.csvに置き換えています。
ステージングの状況は下記コマンドで確認できます。
LIST @sf_tuts.public.%emp_basic;
ステージにあげたサンプルデータを先に作成したテーブルにコピーしましょう。
下記のコマンドを実行します。
COPY INTO emp_basic
FROM @%emp_basic
FILE_FORMAT = (type = csv field_optionally_enclosed_by='"')
PATTERN = '.*employees0[1-5].csv.gz'
ON_ERROR = 'skip_file';
以下のように結果にコピー結果が表示されればOKです!
チュートリアルに紹介されているクエリをそれぞれ試していきます!
SELECT * FROM emp_basic;
INSERT INTO emp_basic VALUES
('Clementine','Adamou','cadamou@sf_tuts.com','10510 Sachs Road','Klenak','2017-9-22') ,
('Marlowe','De Anesy','madamouc@sf_tuts.co.uk','36768 Northfield Plaza','Fangshan','2017-1-26');
SELECT email FROM emp_basic WHERE email LIKE '%.uk';
SELECT first_name, last_name, DATEADD('day',90,start_date) FROM emp_basic WHERE start_date <= '2017-01-01';
最後にチュートリアル用に作成したデータベース等をクリーンアップします。
下記コマンドを実行してデータベースとウェアハウスを削除します。
DROP DATABASE IF EXISTS sf_tuts;
DROP WAREHOUSE IF EXISTS sf_tuts_wh;
クリーンアップが完了したら、!exitコマンドを実行してSnowSQLを抜けて、チュートリアルは終了です。
チュートリアルを通じて、一連の流れが体験できるので非常におすすめです!
また、SnowSQLはサジェストも効きますし、キャプチャのとおりシンタックスハイライトもしてくれるので、使いやすい雰囲気です。
私たちの会社、ナイトレイでは一緒に事業を盛り上げてくれるGISチームメンバーを募集しています!
現在活躍中のメンバーは開発部に所属しながらセールス部門と密に動いており、
慣れてくれば顧客とのフロントに立ち進行を任されるなど、顧客に近い分やりがいを感じやすいポジションです。
このような方は是非Wantedlyからお気軽にご連絡ください(もしくは recruit@nightley.jp まで)
✔︎ GISの使用経験があり、観光・まちづくり・交通系などの分野でスキルを活かしてみたい
✔︎ ビッグデータの処理が好き!(達成感を感じられる)
✔︎ 社内メンバーだけではなく顧客とのやり取りも実はけっこう好き
✔︎ 地理や地図が好きで仕事中も眺めていたい
一つでも当てはまる方は是非こちらの記事をご覧ください 。
二つ当てはまった方は是非エントリーお待ちしております(^ ^)
「位置情報×モビリティ.まちづくりetc事業領域拡大の為GISエンジニア募集」
「裁量が大きい会社でAWSの知識を活かす!インフラ周りの設計・監視好き募集中」
▼ナイトレイとは?