[Vis] Redash Dashboard 應用(上)|資料視覺化

Ichi Tsai
Ichi’s Dev Blog
Published in
5 min readJun 10, 2018

這個系列的前言中有提到 4 個應用,基本上是把五月的系列課程投影片文字化。其實本來的計畫中是要倒過來的,先寫文章在弄成投影片,但現實總是趕不上計畫(蛋黃哥貌)

這系列會提到以下幾個主題:

  1. 用 docker-compose 快速架好 local 版本的 Redash (https://github.com/getredash/redash/blob/master/docker-compose.production.yml)(官方 setup 文件
  2. 設定好寄信功能以便邀請使用者,也可以用來重設密碼
  3. 用 Python code 做到不同類型 DB, e.g., 一個是 json, 另一個是 Google Spreadsheet 的 table join
  4. 手邊有個 json 檔的分析方法

這篇會提到 1, 2點。

初始畫面!

1. local build 版本的 Redash —— 使用 docker-compose

什麼時候要用 local 版本

想寫 python 整理資料的時候 :D
因為官網有說明 public 版本不支援開放寫 python,我想是避免線上環境有使用者不受控。自架的部分打開這功能的使用者要知道自己在幹嘛。

還有不想付費跟想擁有資料自主權的時候,例如公司資料很機密或是部門沒有預算之類的。

為什麼用 docker 架

潮(誒)

主要是安裝各個 component 的部分都可以透過拉個 image 的動作統一解決省了很多事情。不用再為了不同平台裝哪些工具遇到什麼特殊問題一一去問谷哥。

透過 docker 可以做到檔案整個與系統切開,例如我只要把 Redash 拿來儲存設定或是 user、query、dashboard 的 PostgreSQL 資料複製到別地方,同樣在 docker-compose.yaml 中 mount 進去就可以完全復活!

docker 的另一個好處是可以在另一個資料夾裡換個 port 就讓多個 Redash 同存於一台機器,hen方便。

官方 Github 上就有 docker-compose 了接下來要做什麼

clone 一份下來以免被 M$(消音)

對其實連結就在上面,但預設是在 datasource 看不到 python 的。
其實就差這個環境變數:REDASH_ADDITIONAL_QUERY_RUNNERS: "redash.query_runner.python"(完整檔案放這邊
在下一個主題還會有像是 email 的設定要做(在本篇後半)

步驟

  1. 安裝 docker, docker-compose
  2. 開一個工作資料夾,把 docker-compose.yaml 檔放進去
  3. 看需求加入可以使用 python 作為 datasource 的環境變數 REDASH_ADDITIONAL_QUERY_RUNNERS: "redash.query_runner.python"
  4. 在環境變數給他一個 top secretREDASH_COOKIE_SECRET: "ur top secret"
  5. mount DB 要用的檔案路徑:例如在這層資料夾下做個 postgresql/data mount 到 docker 裡的 /var/lib/postgresql/data
  6. 初始化 Redash 本身要用的 DB
    docker-compose run --rm server create_db
  7. 啟動
    docker-compose up -d
  8. 檢查 docker instance 狀態
    docker ps -a
  9. 關掉
    docker-compose down
step 5: local data path is just an example
after step 6
step 7
step 8

2. 設定寄信功能以便邀請使用者,也可以用來重設密碼

REDASH_MAIL_SERVER: "localhost"
REDASH_MAIL_PORT: 25 # default: 25
REDASH_MAIL_DEFAULT_SENDER: "<your email address>"

就是這幾個環境變數搞定即可!

為什麼要設定 email address

因為設定帳號方便(認真。

目前還沒看到 Redash 支援 LDAP 整合。
這類要開 local account 的要生一組帳密給要一起使用的人,等到對方忘記密碼就很難過了,要重設很阿雜。
Redash 在管理介面支援一鍵重設密碼:send a password reset mail 這簡直超貼心!系統會以 default sender 的帳號寄信。
這時 admin 就不用管別人的密碼了!!

當然主要也有功能上的用途,他可以在 Alert 介面設定要通知誰。

這些功能在介面上都滿好找的,要邀請別人或重設密碼等等,這就是為什麼超推的原因。一個 dashboard 系統遠遠不只是 query 或是圖表的問題啊~

那就下一篇見~^ↀᴥↀ^

系列其他文章連結

--

--

Ichi Tsai
Ichi’s Dev Blog

A proactive and helpful individual who values integrity above all else. Have both backend engineering experience and project management skills.