2020.01.17

Redash 8.0.0追加機能とSQL Tipsの紹介

Pocket

こんにちは。次世代システム研究室のS.Iです。

今回、担当しているシステムのRedash環境を「6.0.0」から「8.0.0」にバージョンアップしました。その中で実際に使っている機能や気になった変更点(※ver 7.0.0含む)とデータ分析や可視化の際によく利用するSQLのTipsを紹介します。

Redash 8.0.0追加機能の紹介

Datasourceの追加

以下のデータソースが追加されました。
  • Azure Data Explorer (Kusto)
  • Cassandra
  • Couchbase
  • Dgraph
  • JSON
  • Phoenix
  • Uptycs
  • Apache Drill

SQLの選択実行

以下のように選択した範囲のクエリのみ実行できるように!使い込むほどクエリは複雑になりやすいので、作業しながらの確認が効率的にできるようになりました。

ドロップダウンのマルチ選択サポート

作成したドロップダウンリストで値を複数選択できるようになりました。利用する際はドロップダウン作成画面で「Allow multiple values」にチェックが必要です。


ちなみにリストは以下のように手動でvaluesに追加する方法と、


以下のように作成したクエリを元にリストを作成する方法があります。クエリを元に作成する場合は表示部分を「name」ID、CDなどの検索条件を「value」で定義する必要があります。
select xxxxx name, xxxxx value from table

日付の動的パラメータ

やっと・・、やっと簡単に設定できるように・・。以前はDate Rangeを選択する際、カレンダー2つ設定する必要があり非常に面倒だったのと、大抵の場合、データ見たいのは昨日の情報になるのでDateの初期値にTodayのみしか設定できず非常に不便でした。それぞれ使い勝手が改善され、今のところ困る場面がなくなりました。

ドロップダウンの値検索

ドロッププルダウンの選択窓で値の検索ができるようになりました。いっぱいあると探すの大変なので地味に便利!

詳細ビューの追加

1レコードの情報を一覧で表示できる詳細ビューが追加されました。

ダッシュボードのグリッド表示

ダッシュボードでグリッド表示ができるようになりました。以外と複数の枠の大きさをそろえるのに便利!もう目を凝らさなくてヨイ。

スケジュールクエリ失敗時のメール送信

スケジュール設定されたクエリがエラーになった際、オーナーにメールを送信することができるように。意外といつの間にか動かなくなるケースがあるのでこれもよい機能ですね。利用する際はSettingの「Email query owners when scheduled queries fail.」にチェックが必要です。

クエリ実行期限の設定

クエリのリフレッシュスケジュールに実行期限が設定できるようになりました。スケジュールされたクエリは永久に実行され続けるので期限が決まっているものは設定しておきましょう。

SQL Tipsの紹介

分析時のクエリ作成時に役立つOracleの機能を一部紹介します。

データサンプリング

サンプリング機能を使用してテーブルからブロックレベルか行レベルでランダムにレコードを取り出すことができます。データ量の多い表からランダムにデータを取得し、データベースにかけるメモリやディスクなどへの負荷をかなり減少させることができ、サンプルデータ取得以外にも、これを元に全データを対象とせずに期待している情報が取得できているかを確認しながら効率的にクエリを作成することができます。
select xxx from table sample (0.1)

PivotとUnPivot

エクセルのピボットテーブル(PIVOT TABLE)などクロス集計機能と同じ。このPIVOTという単語を直訳すると「回転する」という意味で、「行データを列データ」に変換したり、逆に「列データを行データ」に加工してデータを抽出することできる。
with 
example as (
 select 2019 year, 1 value from dual
 union all
 select 2018 year, 1 value from dual
)
select * from example
pivot (
 count(value) for year in (2019 as year_2019, 2018 as year_2018)
)

YEAR_2019 YEAR_2018
1         1

With句

WITH句は、副問い合わせに名前を付ける句です。この名前を付けられた副問い合わせは、「インラインビュー」 または 「一時表」として使用されます。同じインラインビューを何度もSQLの中に記述するよりもWITH句で問い合わせに名前付けを行なうことで視認性が高まり、場合によりパフォーマンスが向上する可能性があります。また、再帰的に呼び出すことで段階的に加工しながら意図する結果を抽出することができます。
with
example as (
 select 2019 year, 1 value from dual
 union all
 select 2018 year, 1 value from dual
) ,
example_work as (
 select year, count(value) cnt from example
 group by year
)
select * from example_work

まとめ

Redashを「6.0.0」から「8.0.0」にバージョンアップしたことで、全体的に痒い所に手が届くようになり、とても使いやすくなりました。今後の更新も楽しみですね!

次世代システム研究室では、データ分析やアプリケーション開発、設計を行いながら一緒にサービスを成長させていける仲間を募集しています。様々なサービスで多くの経験を積むことができますので、アプリケーション開発者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。