同前一篇設定 Google Analytic 時,
第一步「建立 Google 服務帳號金鑰」會拿到
在 Google 文件中,或是在整個 Google Drive 的資料夾,
把建立的服務帳號 ID 加入共用權限中(可以選擇只有檢視權限就好)
在 Data Sources 選擇 Google Spreadsheet,
選擇在前述步驟下載的金鑰檔案「服務帳戶ID-xxxx.json」
在試算表頁面的網址中找到「試算表的 ID 」:https://docs.google.com/spreadsheets/d/試算表ID/edit
回到 Redash 的 Query 頁面,
選擇 Google Spreadsheet 為 Data Sources,
把試算表的 ID 貼上就可以運作:
如果試算表有多張工作表,可在最後加上 |第幾張工作表(從0開始數)
eg. 試算表ID|0
為第1張工作表、 試算表ID|3
為第4張工作表
注意:因為 Redash 看的是工作表的位置,而不是該工作表的 ID,
所以如果在試算表中更換工作表的排列順序,也是會影響到 Redash Query 結果的!
要使用 Url 設定方式就更為簡單了,
在 Data Sources 直接選擇 Url 加入就行(名稱隨意)
但放入 Query 的 Url 回傳的格式必須要符合下列範例:
{
"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
回到 Redash 的 Url Query,貼上連結https://drive.google.com/uc?export=download&id=檔案ID
(此連結是可以略過 Google 檔案預覽的畫面,直接下載檔案)
就可以看到 Query 結果!
以上不管是 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 做查詢。
這些如果都能串接進 Redash,就可以讓同事們在同一系統中瀏覽相關資訊,很是方便。
ps. 文章同步發表於 Medium