Skip to content

y-ytakahashi/redash-hands-on

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 

Repository files navigation

redash-hands-on

GitHub stars Redash version

前提

Redash ハンズオン資料は以䞋の環境を前提に動䜜確認をしおいたす

  • Docker For Mac
  • Docker For Windows

なおRedash のバヌゞョンごずにハンズオン資料を甚意しおいたす最新バヌゞョン以倖を䜿う堎合は以䞋のタグから参照できたす

環境構築

Docker Compose で Redash (v5.0.1) 環境を構築したす任意のディレクトリに kakakakakku/redash-hands-on リポゞトリをクロヌンしたしょう

$ git clone https://github.com/kakakakakku/redash-hands-on.git
$ cd redash-hands-on

公匏の getredash/redash リポゞトリに公開されおいる蚭定をベヌスにテストデヌタを事前に投入した MySQL 5.7 コンテナを含めた docker-compose.yml を準備したした

以䞋のコマンドを実行しDocker Compose で Redash を起動したしょう

初回はむメヌゞをダりンロヌドするため少し時間がかかる堎合がありたす

$ docker-compose run --rm server create_db
$ docker-compose up

起動するず以䞋の URL で Redash にアクセスできるようになりたす

最初に Admin User ず Organization Name を登録したしょう以䞋にサンプルを茉せおおきたす登録が完了するずRedash にログむンできたす

  • Admin User
    • Name
      • admin
    • Email Address
    • Password
      • 任意のパスワヌド
  • General
    • Organization Name
      • hands-on

なおRedash 環境の構築方法は Docker Compose 以倖にもありたす興味のある方は公匏ドキュメントを読んでみたしょう

デヌタ゜ヌス蚭定

次に Redash から MySQL に接続できるように「デヌタ゜ヌス」を蚭定したす

ログむン埌の画面にある「1. Connect a Data Source」のリンクをクリックし「New Data Source」ボタンをクリックしたす

次に右偎にある「MySQL」をクリックしたす「MySQL (Amazon RDS)」ではなく「MySQL」です

以䞋の通りに蚭定したら「Save → Test Connection」ずクリックし接続確認をしたしょうSuccess ず画面右䞋に衚瀺されたすなお今回はテストデヌタずしお world デヌタベヌスを䜿いたす

項目 倀
Name MySQL
Host mysql
Port 3306
User root
Password -
Database Name world

日付フォヌマット蚭定

画面右䞊にある Settings アむコンをクリックし「Settings」タブをクリックしたす

日付フォヌマットを以䞋の通りに倉曎したす

  • General
    • Date Format
      • YYYY-MM-DD

ク゚リを䜜っおみよう

ナビバヌから「Create → Query」ずクリックし以䞋のク゚リを入力したしょう

SELECT * FROM country;

入力したら「Execute」ボタンをクリックしおク゚リを実行したすするず「囜の䞀芧」が取埗できたす

ク゚リの実行ができたら画面巊䞊の「New Query」ずいう郚分をクリックしク゚リタむトルを「囜の䞀芧」に倉曎したす忘れずに画面右偎にある「Save」ボタンをクリックしたしょう

さらに「Publish」ボタンをクリックしたすRedash ではク゚リを公開するこずで他のナヌザヌに共有するこずができたす

ク゚リの「お気に入り登録」ず「タグ登録」をしよう

Redash ではク゚リに察する「お気に入り登録」ず「タグ登録」がサポヌトされおいたす

たずク゚リ名の巊にある星アむコンをクリックしお気に入り登録をしおみたしょう次にク゚リ名の右にある「Add tag」ボタンをクリックし2個のタグ「分析チヌム」ず「マスタデヌタ」を登録しおみたしょう

ク゚リが増えるず探しにくくなっおしたうため積極的に「お気に入り登録」ず「タグ登録」を掻甚したしょう

グラフを䜜っおみよう

先ほどず同様に新芏ク゚リを䜜成し以䞋のク゚リを入力したしょう実行するず登録されおいる囜の件数が「239」であるこずが取埗できたすこの件数をグラフにしおみたしょう

SELECT COUNT(*) AS COUNT FROM country;

「TABLE」 タブの暪に衚瀺されおいる「+ New Visualization」タブをクリックし以䞋の通りに蚭定をしたす「Save」ボタンをクリックするず件数のグラフが衚瀺されたす最新倀など特定の倀をグラフにする堎合は Counter が䟿利です

  • Visualization Type
    • Counter
  • Visualization Name
    • 囜の件数
  • Counter Value Column Name
    • COUNT

なお Counter には「目暙倀」を蚭定する機胜もありたす今回のデヌタ゜ヌスではデヌタ件数に倉化がありたせんがサンプルずしお䜜っおみたしょう先ほどのク゚リを以䞋の通りに倉曎したす

SELECT COUNT(*) AS COUNT, 500 AS kpi FROM country;

もう1床「+ New Visualization」タブをクリックし以䞋の通りに蚭定をしたす先ほどずの違いは「Target Value Column Name」の蚭定を远加した点ですこのようにク゚リを掻甚するこずで目暙倀ず実瞟倀を䞀緒に可芖化するこずができたす

Counter に「目暙倀」を蚭定した堎合倀が実瞟を䞋回る堎合は赀く衚瀺され䞊回る堎合は緑で衚瀺されたす

  • Visualization Type
    • Counter
  • Visualization Name
    • 囜の件数+ 目暙倀
  • Counter Value Column Name
    • COUNT
  • Target Value Column Name
    • kpi

ク゚リタむトルを「囜の件数」ずし忘れずに保存ず公開をしおおきたしょう

円グラフず棒グラフを䜜っおみよう

ク゚リの䜜成はもう慣れたず思いたす以䞋のク゚リを䜜成し実行したしょう

囜ごずに郜垂の件数を取埗できたす䞭囜ずむンドが特に倚いこずがわかりたす

SELECT CountryCode, COUNT(*) AS COUNT
FROM city
GROUP BY CountryCode
ORDER BY COUNT DESC;

先ほどず同様に「+ New Visualization」タブをクリックし以䞋の通りに蚭定をするず円グラフを䜜るこずができたす

  • Visualization Type
    • Chart
  • Visualization Name
    • 郜垂の件数
  • General
    • Chart Type
      • Pie
    • X Column
      • CountryCode
    • Y Columns
      • COUNT

次に棒グラフも䜜っおみたしょう蚭定は以䞋の通りです

  • Visualization Type
    • Chart
  • Visualization Name
    • 郜垂の件数棒グラフ
  • General
    • Chart Type
      • Bar
    • X Column
      • CountryCode
    • Y Columns
      • COUNT

しかし棒グラフの堎合このたたでは順序がバラバラです「GENERAL」タブの隣にある「X AXIS」タブをクリックし軞の蚭定をする必芁がありたす

  • Scale
    • Category
  • Sort Values
    • OFF

これで棒グラフも䜜れたした

ク゚リタむトルを「郜垂の件数」ずし忘れずに保存ず公開をしおおきたしょう

ダッシュボヌドを䜜っおみよう

次にダッシュボヌドを䜜っおみたしょう

ナビバヌから「Create → Dashboard」ずクリックしダッシュボヌドタむトルに「ハンズオン:囜ダッシュボヌド」ず入力したしょう

ポむントは グルヌプ名:ダッシュボヌド名 ずいう呜名芏則にするこずです

Redash には Grouping Dashboards ずいう機胜がありダッシュボヌドタむトルにコロンを含めるこずで同じグルヌプのダッシュボヌドをたずめお管理するこずができたす詳しくは公匏ドキュメントを読んでみたしょう

次にダッシュボヌドにグラフを配眮しおいきたす

画面右䞋にあるメニュヌから「Add Widget」をクリックしたすするず「Add Widget」ずいうモヌダルが衚瀺されるため以䞋の蚭定を繰り返し行いたしょうレむアりトは自由に倉曎するこずができたす

  • 1回目
    • Visualization
      • 囜の䞀芧
    • Choose Visualization
      • Table
  • 2回目
    • Visualization
      • 囜の件数
    • Choose Visualization
      • 囜の件数+ 目暙倀
  • 3回目
    • Visualization
      • 郜垂の件数
    • Choose Visualization
      • 郜垂の件数
  • 4回目
    • Visualization
      • 郜垂の件数
    • Choose Visualization
      • 郜垂の件数棒グラフ

「Visualization」にク゚リが衚瀺されない堎合はそのク゚リが公開されおいないこずが考えられたす

ナビバヌの「Queries」で Unpublished 状態になっおいるク゚リがあったらそのク゚リを公開し再床ダッシュボヌドにグラフを远加しおみたしょう

最埌に画面右䞊にある「Apply Changes」をクリックし続けお「Publish」をクリックしたしょうク゚リ同様にダッシュボヌドも他のナヌザヌに共有するこずができたす

ダッシュボヌドの「お気に入り登録」ず「タグ登録」をしよう

Redash ではク゚リだけではなくダッシュボヌドに察しおも「お気に入り登録」ず「タグ登録」がサポヌトされおいたす

たずダッシュボヌド名の巊にある星アむコンをクリックしお気に入り登録をしおみたしょう次にダッシュボヌド名の右にある「Add tag」ボタンをクリックしタグ「分析チヌム」を登録しおみたしょう

パラメヌタ付きク゚リを䜜っおみよう

次はク゚リにパラメヌタを付けおみたしょう

Redash ではク゚リに {{}} を含めるずその郚分がパラメヌタになりたす以䞋の新芏ク゚リを䜜りたしょうなおク゚リを入力した埌にク゚リの䞋にある2番目のアむコン「Format Query」をクリックするず自動的にク゚リをフォヌマットするこずができたす

SELECT * FROM city WHERE CountryCode = '{{CountryCode}}' ORDER BY Population DESC;

するず画面巊䞋に「CountryCode」をパラメヌタずしお入力するテキスト゚リアが衚瀺されたす

ここに「JPN」を入力しク゚リを実行するず日本の郜垂を人口の倚い順に取埗するこずができたすク゚リタむトルを「郜垂の怜玢」にしお保存しおおきたしょう

パラメヌタずしお入力できる UI はテキストフィヌルド以倖にもありたす名前の通り䟋えば「Date」を遞択するず日付ピッカヌカレンダヌから日付を遞択するこずができたす

  • Text
  • Number
  • Dropdown List
  • Query Based Dropdown List
  • Date
  • Date and Time
  • Date and Time (with seconds)
  • Date Range
  • Date and Time Range
  • Date and Time Range (with seconds)

今回は䟿利な「Dropdown List」を詊したしょう

パラメヌタの暪にあるトグルをクリックし「Type」を Dropdown List にしたすさらに Dropdown List Values (newline delimited) に以䞋のリストを蚭定したす

JPN
USA

するず遞択肢から遞べるようになるため入力ミスを軜枛できるようになりたす

フィルタ機胜を䜿っおみよう

Redash ではク゚リのカラム名を カラム名::filter もしくは カラム名::multi-filter ずいう呜名芏則にするずク゚リ結果をフィルタできるようになりたすさっそく詊しおみたしょう

以䞋の新芏ク゚リを䜜成し実行するずク゚リ結果を「CountryCode」で自由にフィルタできるようになりたすこれが「フィルタ機胜」です

SELECT *, CountryCode AS 'CountryCode::filter' FROM city ORDER BY Population DESC;

次に「マルチフィルタ機胜」を詊したしょうク゚リを以䞋のように倉曎するず今床は耇数の「CountryCode」でフィルタできるようになりたすなお今回も「Format Query」を実行しおおきたしょう

SELECT *, CountryCode AS 'CountryCode::multi-filter' FROM city ORDER BY Population DESC;

フィルタ機胜は非垞に䟿利です詳しくは公匏ドキュメントを読んでみたしょう

ク゚リタむトルを「郜垂のフィルタ」にしお保存しおおきたしょう

ク゚リスニペットを掻甚しよう

Redash ではよく䜿うク゚リもしくはク゚リの䞀郚をク゚リスニペットずしお登録する機胜がありたす

画面右䞊にある Settings アむコンをクリックし「Query Snippets」タブをクリックしたす

次に「New Snippet」ボタンをクリックするず登録画面が衚瀺されたす以䞋の蚭定をしたら「Save」ボタンを抌したしょう

  • Trigger
    • _country_code
  • Description
    • 囜コヌド怜玢
  • Snippet
    • WHERE CountryCode = '{{CountryCode}}'

新芏ク゚リを䜜成し以䞋のク゚リを入力したしょうク゚リスニペットに登録した「Trigger」に郚分䞀臎するず候補ずしお衚瀺されるため _ ず入力するずク゚リスニペットを呌び出すこずができたす

SELECT * FROM city _

ク゚リスニペットにプレヌスホルダを蚭定するこずもできたす

以䞋のように ${1:table} ず蚭定するずテヌブル名のプレヌスホルダになりたす是非詊しおみたしょう今回はク゚リスニペットの動䜜確認が目的ですのでク゚リは保存しなくお倧䞈倫です

  • Trigger
    • _record_count
  • Description
    • レコヌド件数
  • Snippet
    • SELECT COUNT(*) FROM ${1:table};

ク゚リ結果に色を付けよう

Redash ではク゚リ結果に HTML を埋め蟌むこずができたすさっそく以䞋の新芏ク゚リを䜜成しおみたしょう

SELECT Code,
       Name,
       Population,
       CASE
           WHEN Population > 1000000000 THEN '<div class="bg-success p-30 text-center">AAA</div>'
           WHEN Population > 140000000 THEN '<div class="bg-warning p-20 text-center">BBB</div>'
           ELSE '<div class="bg-danger p-10 text-center">CCC</div>'
       END AS Color
FROM country
ORDER BY Population DESC;

「Population」の倀によっお「緑黄赀」ず色を倉えおいたすさらに瞊サむズも倉えおいたすこのように掻甚するずよりク゚リ結果を䟿利に䜿うこずができたす

ク゚リタむトルを「囜の䞀芧色付き」にしお保存しおおきたしょう他にも利甚可胜なマヌクアップがあり公匏ドキュメントに茉っおいたす

リンク集を䜜ろう

ダッシュボヌドに耇数のグラフを配眮する堎合関連する URL などを茉せおおくず䟿利な堎合がありたす

ダッシュボヌドにフリヌテキストを入力する方法もありたすがRedash ではク゚リ結果に HTML を埋め蟌むこずができるため簡単にリンクを䜜成するこずができたす

以䞋の新芏ク゚リを䜜成しク゚リタむトルを「リンク集」にしお保存しおおきたしょう

SELECT '<a href="https://www.google.co.jp/" target="_blank">Google</a>' AS name
UNION
SELECT '<a href="https://www.yahoo.co.jp/" target="_blank">Yahoo!</a>'
UNION
SELECT '<a href="https://www.bing.com/" target="_blank">Bing</a>';

ク゚リ結果をダりンロヌドしよう

Redash ではク゚リ結果をダりンロヌドするこずができたす珟状サポヌトされおいるデヌタ圢匏は CSV ず Excel です

ナビバヌの「Queries」をクリックし既に䜜ったク゚リ「囜の䞀芧」を開きたしょう

画面䞋にある「Download Dataset」ボタンを抌すず以䞋のメニュヌが衚瀺されたすク゚リ結果をダりンロヌドしおみたしょう

  • Download as CSV File
  • Download as Excel File

ク゚リのフォヌク機胜を䜓隓しよう

今回はハンズオンずしお Redash を1人で䜿っおいたすが䞀般的にはチヌムで䜿うこずが倚いず思いたす

チヌムで䜿っおいるず「メンバヌが䜜ったク゚リを少しカスタマむズしたい」ず感じる堎面がありたすそのために Redash には「フォヌク機胜」がありたす

既に䜜ったク゚リ「囜の䞀芧」を開き画面右䞊にあるプルダりンから「Fork」ボタンをクリックしたしょうするず自動的に新芏ク゚リが䜜成されたすク゚リタむトルを「Copy of (#1) 囜の䞀芧」から「囜の䞀芧カスタマむズ」に倉曎したしょう

ク゚リを自由に倉曎できるため以䞋のク゚リを入力し実行したしょう衚瀺するカラムを「囜コヌド」ず「名前」ず「人口」にカスタマむズできたしたなお今回も「Format Query」を実行しおおきたしょう

SELECT Code, Name, Population FROM country;

アラヌトを蚭定しよう

Redash の機胜は可芖化だけではありたせん特定の倀が閟倀を超えた堎合にアラヌトを通知する機胜がありたす通知先は以䞋から遞ぶこずができたす

  • ChatWork
  • Slack
  • Webhook
  • HipChat
  • Mattermost
  • Email

Slack に Webhook 経由でアラヌトを通知しおみたしょう今回は自由に䜿える Slack アカりントがある前提で進めたす

たずSlack で Incoming WebHooks を䜜成したすそのたたでも䜿えたすが「Customize Name」に Redash Alerts「Customize Icon」に Redash のロゎ画像などを蚭定しおおくず䟿利です「Webhook URL」の倀は次に䜿いたす

画面右䞊にある Settings アむコンをクリックし「Alert Destinations」タブにある「New Alert Destination」ボタンをクリックしたしょう次に「Slack」をクリックし登録画面で以䞋を蚭定したす

  • Name
    • Slack
  • Slack Webhook URL
    • Webhook URL

アラヌトを蚭定する前にもう少し準備をしおおく必芁がありたす

既に䜜成をした「囜の件数」ク゚リを開き「Refresh Schedule」を有効にする必芁がありたす今回は Every 1 minute にしたしょう

今回の䟋では囜の件数に倉化はありたせんが定期的にク゚リの実行をする機胜ですアラヌトの蚭定をするク゚リには「Refresh Schedule」の蚭定が必芁です

最埌はアラヌトの蚭定ですナビバヌから「Create → Alert」をクリックし「New Alert」の画面を開きたす以䞋の゚ラヌが出る堎合がありたすが問題ありたせん

It looks like your mail server isn't configured. Make sure to configure it for the alert emails to work.

登録画面で以䞋を蚭定したす「Rearm seconds」は異垞倀が続く堎合にアラヌトを再通知する間隔秒数です

  • Query
    • 囜の件数
  • Name
    • 囜の件数が200件を超えた堎合
  • Value column
    • COUNT
  • Op
    • greater than
  • Reference
    • 200
  • Rearm seconds
    • 60

「Save」をクリックするず右偎に「Notifications」のメニュヌが衚瀺されるため「Slack」を「Add」しもう䞀床「Save」をクリックしたす

するずSlack にアラヌトが通知されたす確認ができたら「Rearm seconds」をブランクにしお「Save」をクリックしおおきたしょう

Redash ナヌザヌを远加無効化しよう

次にRedash 管理者ずしお Redash ナヌザヌを远加無効化する運甚手順を詊しおみたしょう

たず画面右䞊のメニュヌから「Users」をクリックし次に「New User」ボタンをクリックしたすなお登録画面に以䞋の゚ラヌが出る堎合がありたすが問題ありたせん

It looks like your mail server isn't configured. Make sure to configure it for the alert emails to work.

以䞋の通りにRedash ナヌザヌを2個登録したすなお2個目を登録する際はタブの「Users」をクリックする必芁がありたす登録が終わったらもう1床タブの「Users」をクリックしナヌザヌ䞀芧で確認をしたしょう

メンバヌの退職などRedash ナヌザヌを削陀する堎合はどうしたら良いのでしょう

Redash にはナヌザヌを削陀する機胜はありたせんがナヌザヌを無効化する手順がありたすナヌザヌ䞀芧で「RedashUser2」の「Disable」ボタンを抌しおみたしょうするず画面から消え隣の「Disabled Users」タブに移動したこずが確認できたす無効化を解陀する堎合は「Enable」ボタンをクリックしたす

About

Redash study materials for beginners 📊

Resources

Stars

Watchers

Forks

Packages

No packages published