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

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

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

食材

必要條件

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

假設您想在 UI 中建立兩個探索,分別標示為「舊金山使用者」和「舊金山訂單」,但不想手動輸入每個標籤的文字。

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

constant: place_name {
  value: "San Francisco"
}

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


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

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

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

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

您不必手動更新每個參照,只要在專案的資訊清單檔案中更新 place_name 常數即可:

constant: place_name {
  value: "Bay Area"
}

由於您定義了 place_name 常數,因此不必在多個位置手動將「San Francisco」變更為「Bay Area」。系統會將 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 常數。