iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
1
AI & Data

[BI工具] 以Redash為資料視覺化方案之選擇與實踐系列 第 20

[Redash] Google Spreadsheet & Url 設定

  • 分享至 

  • xImage
  •  

Google Spreadsheet

建立 Google 服務帳號金鑰

同前一篇設定 Google Analytic 時,
第一步「建立 Google 服務帳號金鑰」會拿到

  • 金鑰檔案 (服務帳戶ID-xxxx.json)
  • 服務帳號ID (服務帳戶ID@專案ID.iam.gserviceaccount.com)

把服務帳號加入 Google Spreadsheet

在 Google 文件中,或是在整個 Google Drive 的資料夾,
把建立的服務帳號 ID 加入共用權限中(可以選擇只有檢視權限就好)

https://ithelp.ithome.com.tw/upload/images/20181028/201116386MqXc2e3lR.png

https://ithelp.ithome.com.tw/upload/images/20181028/20111638Rz0WqiFizT.png

Redash 設定 Google Spreadsheet Data Sources

在 Data Sources 選擇 Google Spreadsheet,
選擇在前述步驟下載的金鑰檔案「服務帳戶ID-xxxx.json」

https://ithelp.ithome.com.tw/upload/images/20181028/20111638YDQxCLJsMM.png

Google Spreadsheet Query

在試算表頁面的網址中找到「試算表的 ID 」:
https://docs.google.com/spreadsheets/d/試算表ID/edit

https://ithelp.ithome.com.tw/upload/images/20181028/20111638naEQsALh5e.png

回到 Redash 的 Query 頁面,
選擇 Google Spreadsheet 為 Data Sources,
把試算表的 ID 貼上就可以運作:

https://ithelp.ithome.com.tw/upload/images/20181028/20111638I1fE4i5KXl.png

如果試算表有多張工作表,可在最後加上 |第幾張工作表(從0開始數)
eg. 試算表ID|0 為第1張工作表、 試算表ID|3 為第4張工作表

注意:因為 Redash 看的是工作表的位置,而不是該工作表的 ID,
所以如果在試算表中更換工作表的排列順序,也是會影響到 Redash Query 結果的!


Url

要使用 Url 設定方式就更為簡單了,
在 Data Sources 直接選擇 Url 加入就行(名稱隨意)

https://ithelp.ithome.com.tw/upload/images/20181028/20111638LOtMZ9KnYc.png

但放入 Query 的 Url 回傳的格式必須要符合下列範例:

  • result 需包含 rows, columns 兩個鍵值(key),其值(value) 都是為串列(list),元素為字典
  • columns 元素可用鍵值 name, type 指定資料型態
    • TYPE_INTEGER (預設為0)
    • TYPE_STRING (預設為空字串)
    • TYPE_FLOAT (預設為0.00)
    • TYPE_BOOLEAN (預設為true)
    • TYPE_DATE (預設為空)
    • TYPE_DATETIME (預設為空)
  • rows 元素鍵值為 columns 所有的 name
    (同以 Python Query 組合資料最後所需符合的格式)
{
  "columns": [
    {
      "name": "date",
      "type": "date"
    },
    {
      "name": "day_number",
      "type": "integer"
    },
    {
      "name": "value",
      "type": "integer"
    },
    {
      "name": "total",
      "type": "integer"
    }
  ],
  "rows": [
    {
      "value": 40832,
      "total": 53141,
      "day_number": 0,
      "date": "2014-01-30"
    },
    {
      "value": 27296,
      "total": 53141,
      "day_number": 1,
      "date": "2014-01-30"
    },
    {
      "value": 22982,
      "total": 53141,
      "day_number": 2,
      "date": "2014-01-30"
    }
  ]
}

這裡我把此範例存成一個 test.json 檔案,
放到 Google Drive 中,開成共享,拿到該檔案的「檔案ID」
https://drive.google.com/file/d/檔案ID/view?usp=sharing

https://ithelp.ithome.com.tw/upload/images/20181028/20111638bUwFyDTSqG.png

回到 Redash 的 Url Query,貼上連結
https://drive.google.com/uc?export=download&id=檔案ID
(此連結是可以略過 Google 檔案預覽的畫面,直接下載檔案)
就可以看到 Query 結果!

https://ithelp.ithome.com.tw/upload/images/20181028/20111638K1WwQefj2i.png


以上不管是 Google Spreadsheet 或是 Url,在 Query 中都是直接放入 ID 或網址,
所以沒有辦法下 SQL 語法或是用 Python 直接進行加工,
必須透過 Query Result 或是 Python Query 才能做進一步處理

ps. 這跟 Redash 線上體驗中,csv Data Sources 直接放 csv 連結有異曲同工之妙,
不過自架系統目前還沒支援還要持續觀望了


使用案例

目前公司還沒使用到這兩個 Data Sources,
不過是有不少人工維護的報表是用 Google Spreadsheet
(方便共享編輯,而不需要額外請技術人員開發資料庫及相關介面)

而 Url 覺得可以配合 Parameter,等於就可以在 Redash 建立一個搜尋系統,
去對接 API Server 做查詢。

https://ithelp.ithome.com.tw/upload/images/20181028/20111638HItkWu7RDi.png

這些如果都能串接進 Redash,就可以讓同事們在同一系統中瀏覽相關資訊,很是方便。

ps. 文章同步發表於 Medium


上一篇
[Redash] Google Analytic 設定
下一篇
[Redash] Counter & Word Cloud
系列文
[BI工具] 以Redash為資料視覺化方案之選擇與實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言