查詢現有查詢結果
查詢結果資料來源(QRDS)讓您可以根據其他資料來源的結果執行查詢。您可以使用它來合併來自多個資料庫的資料或執行後處理。Redash 使用記憶體中的 SQLite 資料庫來實現此功能。因此,如果 Redash 耗盡記憶體,針對大型結果集的查詢可能會失敗。
QRDS 不適用於使用參數的查詢結果。如果您嘗試使用,您會看到 執行查詢時發生錯誤:無法從查詢 ID xxxx 載入結果
。從 query_xxxx
移除參數以修正此錯誤。
設定
您可以在設定選單的 資料來源
標籤下啟用查詢結果。設定很簡單:只需為資料來源提供一個名稱。
這是將出現在查詢編輯器左側的來源下拉式選單中的名稱。在下面的螢幕截圖中,資料來源名為查詢結果。
大多數組織只需要一個查詢結果資料來源。
查詢
QRDS 接受 SQLite 查詢語法
SELECT
a.name,
b.count
FROM query_123 AS a
JOIN query_456 AS b
ON a.id = b.id
您的其他查詢對於 QRDS 來說就像「表格」。每個查詢都會以 query_
作為別名,後面接著其 query_id
,您可以在查詢編輯器的瀏覽器網址列中看到它。例如,位於 /queries/49588
的查詢的別名為 query_49588
。
query_49588
)必須與其關聯的 FROM
或 JOIN
關鍵字出現在同一行。快取的查詢結果
當您查詢查詢結果資料來源時,Redash 會先執行基礎查詢。如果您排程 QRDS 查詢,這可以確保最新的結果。您可以使用 cached_query_
作為查詢別名,而不是 query_
,來加速 QRDS 查詢。這會告訴 Redash 使用特定查詢最近一次執行的快取結果。這可以透過使用較舊的資料來提高效能。您也可以在同一個查詢中混合使用這兩種語法。
SELECT
a.name,
b.count
FROM cached_query_123 AS a
JOIN query_456 AS b
ON a.id = b.id
查詢結果權限
與任何其他資料來源一樣,對查詢結果資料來源的存取權限由其關聯的群組控管。但是,Redash 也會檢查使用者是否有權限對原始查詢所使用的資料來源執行查詢。
例如,如果查詢 123
使用使用者沒有權限存取的資料來源,則具有 QRDS 存取權限的使用者無法執行 SELECT * FROM query_123
。他們會在 Redash 的查詢畫面中看到最近快取的 QRDS 查詢結果。但是,他們將無法再次執行該查詢。