Chevron Left

查看所有社群故事

在 Metabase 中使用變數來減少特設分析

2021 年 11 月 07 日

作者

Chris So

Chris 的 Medium

photo of Chris So

Chris 是一位數據分析師,熱愛探索資料庫和 SQL 的可能性。他的座右銘是:永不停歇地學習。

減少臨時分析

在我們公司,我們奉行數據民主策略。這表示我們積極避免數據孤島,並在全公司範圍內分享關於我們數據的知識。對每個人來說,這都是完全透明的。有了 Metabase 作為我們的 BI 工具,這變得非常容易,我協助人們快速上手。但有時會出現一些問題,需要我們在資料倉儲的報表區域中建立全新的表格模型。在大多數情況下,建立新模型的成本太高,所以我會在 Metabase 的 SQL 編輯器中編寫臨時查詢。

這可能會導致大量的調整,因為人們對一個以上的細節感興趣。但大多數問題都發生在我完成最後一次查詢之後,這會消耗大量的資源,而且我的同事需要等到我每次完成變更 WHERE 子句中的表達式後才能繼續。

這些重複出現的問題有它們的意義,並表明人們實際上對這些數據感興趣。那麼,如果我可以讓我的同事自己變更篩選條件,使整個過程更加精簡、可自訂且使用者友善,那會怎麼樣呢?

嗯,這就是我使用變數所做的事情。

Metabase 中的變數入門

Metabase 中的變數是將使用者輸入插入現有 SQL 程式碼的好方法。它們以 {{}} 初始化,並建立一個篩選器小工具。這個小工具接受使用者輸入,並直接將其放置在變數的位置。以下是一個簡單的範例

SQL query

使用 [[]] 可以使表達式成為選填。只要在對應的篩選器小工具中沒有輸入任何內容,它對原始程式碼就是不可見的。當使用多個篩選器時,它的效果最佳。

SQL query

如您所見,篩選器小工具的數量不受限制。如果您有一個具有許多篩選選項的大型查詢,只需將選填子句鏈接在一起即可。如果您這樣做,最佳實務是以 1 = 1 開始您的 WHERE 區塊,因為它是一個有效且獨立存在的篩選子句。因此,如果沒有對任何小工具進行任何輸入,您的程式碼仍然可以運作。

SQL query

一個簡短的附註:日期的 Widget 看起來有點不同。那是因為資料類型。您可以選擇 Metabase 原生能夠解釋的 3 種資料類型。對於這兩個 Widget,我選擇了「日期」,它會建立一個可點擊的日期選擇器 Widget

a screenshot with a Metabase date picker

這些是我必須學習的基礎知識,我希望我為您提供了這些知識的良好且快速的概述。

在某個時候,我就像「嘿,這只是文字。就像 Python 中的 f-string 一樣。」因此,我開始嘗試使用一些 SQL 函數來操作這個輸入。結果證明任何東西都可以,所以我決定建立一些很酷的東西,例如一個接受多個關鍵字作為輸入的篩選器。如果您對它的運作方式感興趣,請查看我在 Medium 上關於變數的詳細文章

作者

Chris So

Chris 的 Medium

photo of Chris So

Chris 是一位數據分析師,熱愛探索資料庫和 SQL 的可能性。他的座右銘是:永不停歇地學習。

您可能也會喜歡

預測下一次點擊

Ukrit Wattanavaekin

Metabase

利用數據交付值得信賴的指標

Frédéric Vion

Subclic

數據驅動的產品管理

Victor Bolu

WebAutomation

您可能也會喜歡

預測下一次點擊

Ukrit Wattanavaekin

Metabase

利用數據交付值得信賴的指標

Frédéric Vion

Subclic

數據驅動的產品管理

Victor Bolu

WebAutomation