[Redash] Filter & Download files

Mars Weng
MarsW-Redash
Published in
5 min readOct 22, 2018

前面的章節介紹過 Query 的 Parameter ,可以用來對搜尋結果進行條件篩選,今天要介紹另外一個功能有點相似但原理大為不同的 Filter

Filter

Filter 有分成單選的下拉選單以及多選的方式,分別要將語法更改為

  • 單選:column_name::filter
  • 多選:column_name::multi-filter

就可以在該 Query 各個 Visualization 產生出對應的 Filter 。

SELECT 
`TransactionID`,
`Date` AS 'date::multi-filter',
`Time`,
`CustomerID`,
`CardID` AS 'card_id::filter',
`GasStationID`,
`ProductID`,
`Amount`,
`Price`
FROM ccs.transactions_1k

Filter vs. Parameter vs. Use for search(Table Visualization)

Filter 會列出該欄位在資料中所出現的所有值當成選項來篩選顯示的資料,
而不需像 Parameter 還要指令哪些值當成過濾條件。

在 Filter 功能是,只要一改變值,「顯示」的資料就會立即改變,
類似 Table Visualization 選擇 Use for search 的結果,
而不會像 Parameter 要按下 Execute 才會重新 Query 出對應的結果。
換句話說是 Parameter 會影響 Query 出來的基底資料,
Filter、Use for search 只改變顯示的資料,不影響基底的 Query 結果。

但同時也伴隨著一些相對的缺點:

  • 不如 Table Visualization 的 Use for search 可以不給值而顯示所有資料
  • 不像 Parameter 會記得上一次的 Query 選擇,
    每次都會以第一筆資料當成預設值
  • 是列出「所有值」,因此重複的值會重複出現
  • 無法同 Parameter 有客制化能選擇的 Value,
    因此上面那條缺點暫時無法改變

Dashboard & Filters

當在 Dashboard 使用的 Visualization 帶有 Filter 時,
可以個別對每一個 Visualization 使用各自的 Filter;
或者也可以使用 Dashboard 的 Use Dashboard Level Filters 功能,
讓 Dashboard 列出所有 Visualization 用到的 Filter ,
同時對所有的 Visualization 進行 Filter,
而 Visualization 仍能使用自己的Filter 而不影響到其他區塊

Parameter 要到 Dashboard 的層級是要在原 Query 勾選 Global
Filter 則是在Dashboard 中勾選 Use Dashboard Level Filters

Download files

可以在 Query 中使用「Download Dataset」
或是在 Dashboard 針對需要的 Visualization ,
分別選擇下載成 CSV 或是 Excel File。

下載的資料是 Query 後的結果,也就是 SQL 出來的資料以 Table 方式呈現,
而 Filter、Use for search 影響的是「顯示」的資料,
所以 Download 的資料並不受影響,但 Parameter 就會!

注意如果是 Windows 系統,而且 Query 出的內容有中文,
下載成 CSV 會有亂碼,只能用 Excel

使用案例

在公司的使用經驗中比較少用 Filter,而主要是以 Parameter 為主,
也能避免在 Download files 需要跟大家解釋為何 Filter 看到的資料與下載的不同。而下載檔案的情境滿常是想要比對圖表的數據是否正常,會看檔案的原始資料,或是要暫時做一些試驗性的研究,就會直接以檔案來處理,
畢竟用 local file 處理還是比遠端資料庫快,配上自己熟悉的工具方便各自操作,像我是以 Python 用 csv module 處理,非技術員的同事就直接用 Excel。

此為系列文章,傳送門在此

--

--