目次
SQLワークシートに代わる「Snowsight」
こんにちは!最近久しぶりに筋トレをして筋肉痛が酷すぎて数日苦しんだLeonです!元々インドア人間だった自分がリモートワークに移行してより高レベルのインドア人間になったことがここまで響いているとは…
皆さんも運動不足にならないように気をつけましょう…!僕も運動します…!
さて今回はSnowflakeの新しいワークシートであるSnowsightについてご紹介です。
ご存じの方も多いと思いますがSnowsightが発表されPreviewになったのが2020年の6月で、
もう1年ぐらい時間が経過しそろそろGAになるかもしれないとのことなので実際に触ってみたいと思います。
これまでの(といってもまだ執筆時点では現行ですが)SQLワークシートはシンプルで他のクラウドDWHでも見られるタイプのワークシートになっていました。クエリを手で入力し実行結果を眺める感じですね。
このワークシートを利用ユーザーがよりデータ分析をしやすくするため進化したのがSnowsightです。
Leon的に気になった進化ポイントをざっくり挙げると
・ワークシートのフォルダ管理
・テーブルの確認がよりわかりやすくなった
・クエリ結果をチャート表示
・チャートを組み合わせてダッシュボードに
・フィルター操作がわかりやすく簡単に
などなど…
そしてガッツリUIも変わってますのでもはや元のワークシートとは全然違うようです!
ここまで読んだらどんなものか気になってくるかと思いますので実際に触ってみたいと思いマス!
Snowsightの利用方法
Snowsightを利用するにはまずSnowflakeにアクセスします。
右上に[アプリをプレビュー]とあると思いますのでそちらをクリックすると別タブへ遷移して
Snowsightページが開きます。
これでSnowsightを触ることができますよ!
ワークシートを触ってみる
それでは実際に新しいSnowsightのワークシートを触ってみたいと思います!
Worksheetsページでを選択するとワークシートが開きます。
の右にあるワークシート名をクリックするとワークシート名の変更やフォルダーの移動などが実行できます。フォルダを作成しそちらに保存して整理しておきましょう。
実行するウェアハウスやロールを変えておきたい場合はの左にウェアハウスやロールが表示されていますのでそちらをクリックして変更ができます。
スキーマ・テーブルの確認
スキーマやテーブルを確認する場合はワークシートの下にあるをクリックしてください。そうすると以下のような表示になります。
右側にテーブルが表示されるので確認したいテーブルを選択すると対象テーブルのカラム情報が表示されます。
各テーブルの左上の[~~rows]はテーブルの行数で右上の[Preview]はクリックするとテーブルの中身を確認することができます。
ワークシート上でこのようにサクッと各テーブルの中身を確認できるのはとても便利ですよね!
もしデータベースを変更したい場合は以下の部分をクリックすると変更できます。
クエリを書いてみる
テーブルの中身を確認できるようになったので早速クエリを書いてみましょう!
今回確認に使うデータは以前ブログでも紹介していた
troccoを使いSlackから取得した社内サービス購買データです!
実際にテーブルを見ながら書きます。
シンプルに購買日時と売上を見ていきますか…
スマートオートコンプリート機能
クエリを入力する際、スマートオートコンプリート機能によりキーワードの一覧が表示されます。
これもワークシートの新機能でクエリのキーワードやカラム名、関数の説明などが提案されてるので以前のワークシートと比べて入力しやすいものになっています。
クエリ結果の統計情報
クエリの実行結果は以下のように表示されます。
右側には各カラムの統計情報が表示され、傾向を一目で把握することができるようです。
またこの統計情報をクリックするとデータにフィルターを掛けることができます!
クエリを書き直さなくてもBIチックにフィルターを掛けた結果が見れるのは便利すぎます!!
ここ編の期間がよく売れているな~とか気になれば選択して気軽にデータを見れるので分析の効率も上がりますし探索性を向上していますね~!
カスタムフィルター
統計情報からのフィルターも便利ですがカスタムフィルターも便利です。
カスタムフィルターはその名の通り文字列や数値を設定したフィルターをクエリに入れてワークシートのUI上でポチポチとフィルター選ぶことができる機能みたいです。
今回は元々用意されているシステムフィルターの[:daterange]と[:datebucket]を使ってみたいと思います。
フィルターを使用する
Snowflakeのドキュメントによると[:daterange]はWhere句に入れて利用するようです。
具体的な説明が無かったのですがおそらく期間の範囲をフィルターできる機能だと思います…!
実際にWhere句を入力してみたところフィルターマークの横に[Last day]というボタンが出てきました。
ボタンを押すとDate rangeを選択できるようになっています。
またをクリックするとクエリの内容が変わりました。
なるほど、内部的にWhere内容を選択した値に書き換えて取得しているようですね。
Date rangeではLast~~と過去の期間の他にカスタムで期間を選べるようです。
これなら柔軟に選べますしタイムゾーン選択もできるのでわかりやすいですね。
[:datebucket]についてですがこれもドキュメントに説明がなく使用例も無かったので…探り探りで触ってみました。
実際に入力してみたところ説明ではGroup byのフィルターっぽいのでGroup byに入れて実行してみましたが…
括弧で挟みなさいと怒られたので挟んでみたところ
違うそうじゃないと怒られちゃいました。。。
エラー的にselectで使うのかな~と思いつつを押してみたところ
とGroup by の中身が関数に置き換わり、[:datebucket]がどういった機能か理解できました。
[:daterange]もそうですが内部的に関数を書いてくれているんですね!なるほど~
select句に[:datebucket]を入れるようにクエリを書き直して実行してみたところ結果が表示されました。
Data bucketはDayやWeekなど時間軸を選ぶことができるようです。
Monthを選んでApplyしました。月毎のサマリーが表示されています!
毎回毎回、クエリを書き直さずUIをポチポチ選んで時間軸が変更できるはとても便利ですね!
過去のクエリを振り返る
Snowsightのワークシートでは過去に実行したクエリのバージョンを保存しているようです。
ワークシート右上のの下に[update~~ago]が表示されていると思うのでそちらをクリックすると[History]が表示されます。
前に実行したクエリなんだったっけ?となった場合はこちらから振り返れます。
チャートを作成してみる
次はSnowsightの目玉機能であるチャートを作成してみましょう。
ドキュメントによるとSnowsightでは以下のチャートが作れるようです。
-
棒グラフ
-
折れ線グラフ
-
散布図
-
ヒートグリッド
-
スコアカード
それではチャートを作成していきます。
チャート作成方法
クエリからカスタムフィルターを無くし、最初書いたクエリに戻しクエリを実行します。
の右にあるをクリックしてください。
もう折れ線グラフが出来てしまいました…簡単!
右下のAppearanceでは点を付けたり、軸タイトルなどを設定できます。
さすがにBIのように細かくは設定できないですがこれはあくまでSQLワークシートの1機能。
クエリを叩きデータを確認しながら、チャートで視覚的に傾向がサクッと見れるだけでもめちゃくちゃ便利です。
便利なAggregationとBucketing機能
個人的にはすごく便利だなと感じたのがチャートのAggregationとBucketing機能です。
Dataの各カラムを選択すると
と表示され下にあるのがAggregationとBucketingです。
表示を見たらわかるかなと思いますが
Aggregationであれば集計方法を
Bucketingであれば時間軸を変更することができます!
つまりクエリを書き直さなくてもポチポチと選択するだけで変更できちゃいます。
上記でお話していたカスタムフィルターと近い機能ですね!
クエリではシンプルにタイムスタンプを軸にしていましたが月毎ではどうだったのか、
集計は売上合計だったけど、平均売上はどうだったのかということが簡単にチャートで確認できます。
これは分析が捗りますね~!
チャートの種類を確認する
チャートを変更するには[Chart type]から変更します。
それぞれ見ていきたいと思います。
Bar(棒グラフ)
Scatter(散布図)
Heatgrid(ヒートグリッド)
Scoreboard(スコアボード)
ダウンロード機能
クエリを実行するとデータをダンロードすることができます。
以下の赤丸の部分をクリックするとダウンロードが開始されます。
Resultsを表示している場合はCSVが、
Chartを表示している場合はチャートの画像がダウンロードされます。
日本語は文字化けしちゃうみたいですがグラフを共有する際はこちらでも良さそうです。
ダッシュボードを作成してみる
Snowsightではワークシートで作成したチャートを使ってダッシュボードを作成できるようです。
早速ダッシュボードを作成してみましょう!
ワークシートを開き、左上のワークシート名をクリックします。
[Move to]から[New dashboard]をクリックし新しいダッシュボードを作成します。
作成するとチャートの編集画面が表示されるのでクエリやチャートに変更がなければ左上の[Return to ダッシュボード名]をクリックするとダッシュボードが表示されます。
これでダッシュボードへのチャートの追加方法がわかりました!
思いのままにチャートを追加してみてください。
終わりに
長々となってしまいましたが一通りSnowsightを触ってみました。
これまでのSQLワークシートとは全く違うワークシートになっており感動しました。
今後PreviewからGAとなり、よりUPDATEされていくことを想像するとワクワクがとまりませんね!
まだ試していない方はぜひともお試しください!