新增自訂欄
在 Metabase 中建立自訂欄以計算新指標或清理您的資料
Metabase 可讓您使用來自其他欄位的資訊,即時建立新的欄位。例如,您可以
- 新增兩個欄位
- 擷取日期的一部分
- 根據邏輯條件定義新的欄位
Metabase 將這些新的衍生欄稱為「自訂欄」。
若要建立自訂欄,您可以使用自訂運算式,其類似於試算表中的公式,或 SQL 中的函數。例如,您可以使用 substring
函數擷取文字的一部分,並使用 case
根據條件定義值。
在本教學課程中,我們將逐步說明自訂欄最常見的一些使用案例。我們將使用範例資料庫中的 分析事件
表格,其中包含虛構產品的事件資料。我們將建立自訂欄範例,這些範例對於產品分析可能有所幫助。
新增自訂欄
根據 分析事件
表格,開始新的查詢產生器問題。
若要新增自訂欄,請按一下「資料」區塊下方的灰色按鈕。
您會看到 Metabase 運算式編輯器。您可以使用快速鍵來組合或擷取欄位中的資料,或撰寫您自己的運算式。在您開始之前,有幾件事需要注意
- 使用
[]
在運算式編輯器中參照欄位,例如[Timestamp]
,或[Accounts → Timestamp]
代表來自聯結表格的欄位。幸運的是,您不需要自行輸入完整的欄位名稱 (或括號),因為當您開始輸入時,Metabase 會為您提供自動完成選項。 - 您可以在自訂運算式中使用運算子,例如
OR
、AND
、<
、=
、!=
。 - 某些自訂運算式有資料庫限制。請查看我們的文件,取得完整清單。
SQL 專家注意事項
在 SQL 中,欄位運算 (例如 Total + Tax
或 DateDiff(Created_At, Canceled_at, 'week')
) 和彙總 (例如 SUM(Total)
或 AVG(Quantity)
) 都在 SELECT
子句中定義。在 Metabase 查詢產生器中,這些是不同的查詢階段:欄位上的運算子和函數在自訂欄區塊中定義,但欄位的彙總在個別的「摘要」區塊中定義。您將無法在自訂欄中使用彙總,例如 Sum
、Count
,但您可以在「摘要」區塊中定義自訂摘要。
請查看我們關於如何摘要資料的教學課程,以深入瞭解。
擷取與組合欄位
您可以擷取日期或 URL 欄位的部分,並將欄位串連在一起。
例如,您可能會對事件活動在一天中的分佈方式感興趣:人們最活躍的時間是幾點?
-
若要新增自訂欄,請按一下「資料」區塊下方的灰色按鈕。
您可以新增運算式,或擷取或組合欄位。
-
在快速鍵下的運算式編輯器中,選取擷取欄位。
擷取快速鍵適用於 URL 欄位或時間戳記欄位。對於 URL 欄位,您可以選擇擷取主機、網域或子網域。對於時間戳記欄位,您可以擷取日期或時間的部分。
-
選取
Timestamp
欄位,並擷取時辰
您會看到自訂運算式編輯器,其中包含
hour([Timestamp])
運算式。所有快速鍵所做的只是為您預先填寫運算式。 - 按一下完成以儲存自訂欄並關閉編輯器。
- 預覽結果。
您會在結果中看到新的欄位 時辰
,對於凌晨 12 點到凌晨 1 點之間的時間戳記為 0,對於凌晨 1 點到凌晨 2 點之間的時間戳記為 1,依此類推。
處理文字
您可以使用自訂欄來清理、格式化或操作文字。
例如,「分析事件」中的 URL 格式為 www.piespace.example/<path>
。由於每個 URL 的網域都相同,因此僅使用 path
部分進行分析是有意義的。但是擷取 URL 快速鍵只能擷取主機、網域或子網域。對於路徑,您需要撰寫自己的自訂運算式
-
按一下自訂欄區塊中的 + 建立新的自訂欄,並在運算式欄位中,輸入運算式
regexextract([Page URL], "/.*")
regexextract
使用規則運算式來抓取以/
開頭的Page URL
部分。如需深入瞭解regexextract
運算式,請參閱我們的文件。 - 將欄位命名為
URL 路徑
,然後按一下完成。 -
預覽結果。
其他有用的文字函數:replace
、substring
、concat
。請參閱字串函數,取得完整清單。
處理日期
您可以使用日期自訂運算式來尋找兩個日期之間的差異、新增或減去期間,或擷取日期的部分。
例如,如果您對新訪客與舊訪客的行為差異感興趣,您可以建立一個欄位,其中包含帳戶建立與事件之間經過的天數。
-
按一下自訂欄區塊中的 + 建立新的自訂欄,並在運算式欄位中,輸入運算式
datetimeDiff([Account → Created At],[Timestamp], "day")
Created At
欄位位於Account
表格中,而不是用作問題來源的分析事件
表格中。但是,由於Account
已連線到分析事件
表格 (透過「帳戶 ID」欄位),因此 Metabase 可以在關於分析事件
的問題中使用來自Account
欄位的資料。您只需要使用→
指定欄位來自不同的表格。如需深入瞭解
datetimeDiff
運算式,請參閱我們的文件。 - 將欄位儲存為
建立以來的天數
(我們稍後會參照此名稱)。 -
預覽結果。
其他有用的日期函數:datetimeAdd
、convertTimezone
、now
。請參閱日期函數,取得完整清單。
進行數學運算
您可以使用自訂運算式,對欄位和數字執行常見的數學運算:例如,您可以將兩個欄位相加、將欄位乘以 100,或將值 round
為整數。
在上一個步驟中,您使用 datetimeDiff
運算式計算了分析事件與帳戶建立之間的天數。如果您需要以週為單位計算該數字,您可以只使用相同的 datetimeDiff
自訂運算式和 "weeks"
週期,但這樣您只會得到整週數。如果您想知道帳戶已建立 3.5 週,您可以將天數除以 7
-
按一下自訂欄區塊中的 + 建立新的自訂欄,並在運算式欄位中,輸入運算式
[Days since creation] / 7
此處
[建立以來的天數]
是您在上一個步驟中建立的自訂欄的名稱 (您可以在定義新的自訂欄時參照其他自訂欄)。 -
將欄位儲存為
建立以來的週數
,然後預覽結果。
請參閱數學函數,取得數學函數的完整清單。
新增 if-then 邏輯
在前兩個步驟中,您計算了事件發生時帳戶的建立時間 (以週為單位)。假設您想要使用此資訊來查看新帳戶與現有帳戶的事件。為此,您首先需要根據帳戶在事件發生時的建立時間,將帳戶分類為「新」或「現有」。在 Metabase 中,邏輯陳述式是使用 case
陳述式定義的 (類似於 CASE
SQL,但不同於試算表,試算表使用 IF
函數來達到此目的)。
-
按一下自訂欄區塊中的 + 建立新的自訂欄,並在運算式欄位中,輸入運算式
case([Weeks since creation] < 52, "New", "Existing")
新的欄位欄位,對於來自建立時間少於一年 (52 週) 的帳戶的事件,其值為
"新"
,否則為"現有"
。如需深入瞭解
case
運算式,請參閱我們的文件。 -
將欄位儲存為
帳戶狀態
,然後預覽結果。
其他有用的邏輯函數:coalesce
、isnull
。請參閱邏輯函數,取得邏輯函數的完整清單。
使用自訂欄來建立查詢與圖表
自訂欄的作用與表格欄相同,因此您可以在篩選器、摘要中使用它們,並建立圖表。
例如,我們可以查看新帳戶在一天中不同事件的分佈情況。
-
新增新帳戶與非空白 URL 路徑的篩選器
您需要將篩選器運算從預設的「包含」變更。
-
依時辰計算每個 URL 路徑的事件數。
自訂欄應該只會彈出在群組依據區塊中。
-
視覺化
當您在查詢產生器中按一下「視覺化」時,Metabase 會自動建立樞紐分析表。若要更佳地視覺化每日模式資料,您可以切換至折線圖或區域圖。
順帶一提,螢幕擷取畫面上的圖表已開啟一些額外的視覺化設定,使其看起來更美觀。試驗「資料」索引標籤中的系列設定 (「資料」索引標籤中每個系列的「三點」選單),看看您是否可以讓圖表看起來相同。
那麼,對於新帳戶事件,我們可以說些什麼呢?我們看到所有事件都遵循類似的模式:大多數事件在早上和下午早些時候觸發,午餐期間則會下降。但是,對 /help
頁面的造訪在晚上 7 點左右還有另一個高峰。
後續步驟
自訂運算式不僅可以用於新的欄位,您還可以使用它們來建立複雜的篩選器或摘要。請查看關於自訂運算式的擴充教學課程。
下一步:使用儀表板篩選器
如何使用篩選器讓您的儀表板更實用且更具互動性