透過 DRY LookML 盡量提高程式碼重複使用性:一次定義字串,即可在整個 LookML 專案中使用

您可以在專案的資訊清單檔案中使用 LookML constant 參數,定義可在整個專案中使用的字串。當您需要定義特定字串 (例如數字、名稱或欄位值的 HTML 格式),並在整個專案中重複使用該值時,LookML 常數就非常實用。

本頁面提供以下範例,說明如何使用 LookML 常數,在單一位置定義及維護可重複使用的字串值:

食材

事前準備

範例:在多個探索中使用相同的字串做為標籤

假設您想建立兩個探索,並在 UI 中標示為「San Francisco Users」和「San Francisco Orders」,但不想手動輸入每個標籤的文字。

如要這麼做,您可以在專案的專案資訊清單檔案中,定義值為 "San Francisco" 的常數 place_name

constant: place_name {
  value: "San Francisco"
}

接著,您可以在專案中任何可接受字串的部分,使用 @{place_name} 語法參照這個常數。在這個範例中,您可以定義 usersorders Explore,並指定 "@{place_name} Users""@{place_name} Orders" 做為 label 參數的值,如以下範例所示:


explore: users {
  label: "@{place_name} Users"
}

explore: orders {
  label: "@{place_name} Orders"
}

在這個範例中,Looker 會在「探索」選單和「探索」標題中顯示「舊金山使用者」和「舊金山訂單」,而不是預設的「使用者」和「訂單」標籤。

假設您想將所有 舊金山的參照更新為 灣區

您不必手動更新每個參照,只需針對專案的資訊清單檔案中的 place_name 常數進行單一更新即可:

constant: place_name {
  value: "Bay Area"
}

由於您已定義 place_name 常數,因此不必在多個位置手動將「舊金山」變更為「灣區」。使用 place_name 常數的 舊金山參照項目會替換為 灣區,因此 Looker 會在「探索」選單和「探索」標題中顯示「灣區使用者」和「灣區訂單」

範例:將相同的格式套用至多個欄位的負值

假設您希望負值資料在圖表或查詢中顯示時,以紅色並置於括號內顯示。

只要將這項格式設為 LookML 常數的值,即可使用 Liquid 變數HTML 一次指定格式。之後,您可以隨時參照該常數,將該格式套用至欄位。

舉例來說,您可以建立名為 negative_format 的常數,用於將此格式套用至欄位:


constant: negative_format {
  value: "{% if value < 0 %}
            <p style='color:red;'>({{rendered_value}})</p>
          {% else %}
            {{rendered_value}}
          {% endif %}"
}

這段程式碼會建立常數 negative_format,指定負值資料應使用紅色字型,並以括號包圍。接著,您可以使用 html 參數,將這類格式套用至資料集中的維度和指標。

舉例來說,您可以建立 type: sum 的「總金額」評估指標,並將 @{negative_format} 指定為 html 參數的值:


measure: total_amount {
  type: sum
  value_format_name: usd
  sql: ${amount} ;;
  html: @{negative_format} ;;
}

在表格中,總金額評估指標的負值會採用 negative_format 常數定義中指定的格式,以紅色字型顯示,並以括號包圍。

如果您想將相同的格式套用至其他欄位的負值,可以參考這些欄位的 html 參數中的 negative_format 常數。