こんにちは!最近久しぶりに筋トレをして筋肉痛が酷すぎて数日苦しんだLeonです!
皆さんも運動不足にならないように気をつけましょう…!僕も運動します…!
さて今回はSnowflakeの新しいワークシートであるSnowsightについてご紹介です。
ご存じの方も多いと思いますがSnowsightが発表されPreviewになったのが2020年の6月で、
もう1年ぐらい時間が経過しそろそろGAになるかもしれないとのことなので実際に触ってみたいと思います。
これまでの(といってもまだ執筆時点では現行ですが)SQLワークシートはシンプルで他のクラウドDWHでも見られるタイプのワークシートになっていました。クエリを手で入力し実行結果を眺める感じですね。
このワークシートを利用ユーザーがよりデータ分析をしやすくするため進化したのがSnowsightです。
Leon的に気になった進化ポイントをざっくり挙げると
・ワークシートのフォルダ管理
・テーブルの確認がよりわかりやすくなった
・クエリ結果をチャート表示
・チャートを組み合わせてダッシュボードに
・フィルター操作がわかりやすく簡単に
などなど…
そしてガッツリUIも変わってますのでもはや元のワークシートとは全然違うようです!
ここまで読んだらどんなものか気になってくるかと思いますので実際に触ってみたいと思いマス!
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のワークシートでは過去に実行したクエリのバージョンを保存しているようです。
ワークシート右上の
前に実行したクエリなんだったっけ?となった場合はこちらから振り返れます。
次はSnowsightの目玉機能であるチャートを作成してみましょう。
ドキュメントによるとSnowsightでは以下のチャートが作れるようです。
棒グラフ
折れ線グラフ
散布図
ヒートグリッド
スコアカード
それではチャートを作成していきます。
クエリからカスタムフィルターを無くし、最初書いたクエリに戻しクエリを実行します。
もう折れ線グラフが出来てしまいました…簡単!
右下のAppearanceでは点を付けたり、軸タイトルなどを設定できます。
さすがにBIのように細かくは設定できないですがこれはあくまでSQLワークシートの1機能。
クエリを叩きデータを確認しながら、チャートで視覚的に傾向がサクッと見れるだけでもめちゃくちゃ便利です。
個人的にはすごく便利だなと感じたのがチャートの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されていくことを想像するとワクワクがとまりませんね!
まだ試していない方はぜひともお試しください!