自訂 Looker Marketplace 區塊

Looker Blocks™ 是針對常見的分析模式和資料來源預先建構的資料模型。本頁說明開發人員如何自訂從 Looker Marketplace 安裝的 Looker 方塊。Looker Marketplace 可讓您集中一處搜尋、部署及管理多種 Looker 內容,例如應用程式、圖表和外掛程式。

如要進一步瞭解所有可用的 Looker 區塊 (包括目前無法從 Looker Marketplace 取得的區塊),以及其他區塊自訂方法,請參閱 Looker 區塊說明文件頁面。

從 Looker Marketplace 安裝及管理 Looker Blocks 的相關規定

如要安裝及使用 Looker Marketplace 中的部分模塊,請先注意下列事項:

  • 如果您是透過 Looker Marketplace 安裝區塊,Looker 管理員必須啟用Marketplace 功能。
  • 使用者必須具備 developmanage_modelsdeploy 權限,才能安裝及管理市集套件。
  • 如果特定區塊包含 local_dependency 參數,該區塊就會使用本機專案匯入程序。如要進一步瞭解如何匯入專案,請參閱「從其他專案匯入檔案」說明文件。以下區塊包含 local_dependency 參數:

    • 數位行銷數據分析
    • 銷售數據分析
    • 網頁分析

如要進一步瞭解如何從 Looker Marketplace 安裝管理 Looker 區塊,請參閱 Looker Marketplace 說明文件頁面。

存取市集區塊的 LookML

以使用精修功能的專案為基礎的區塊會從市集安裝,做為單一可編輯的 CONFIG 專案,可遠端匯入 CORE 專案,其中包含所有 LookML 程式碼和常數參數化。

從 Marketplace 安裝區塊後,您可以點選專案清單中的專案名稱,透過「Develop」選單存取該專案。市集精細設定區塊的名稱通常會在前面加上 marketplace_,後面接上產品資訊 ID。

雖然您無法直接修改區塊的唯讀 CORE 專案,但在自訂區塊的 CONFIG 檔案時,建議您使用區塊的唯讀 CORE 檔案中定義的 LookML 做為參考。您可以在 IDE 中前往區塊的專案檔案,然後在 IDE 檔案瀏覽器中展開 imported_projects 目錄,查看區塊的 CORE 檔案。

區塊檔案結構

當您安裝用於精修的區塊時,系統會自動建立這些檔案,做為區塊專案的 CONFIG 部分:

檔案名稱 存取 函式
<model_name>.model.lkml 所有使用者只能讀取 與區塊安裝作業相關聯的虛擬模型檔案,可處理從區塊 CORE 專案匯入任何模型的作業。解除安裝或更新區塊時,系統會刪除相關聯的模型檔案,避免多個區塊安裝作業之間發生模型衝突。
manifest.lkml 可由具備 develop 權限的使用者編輯 說明專案及其外部依附元件。包含模組安裝的市集產品資訊 ID,並透過 marketplace 關鍵字,協助遠端匯入模組的 CORE 專案檔案。
marketplace_lock.lkml 所有使用者只能讀取 包含資訊清單檔案中 marketplace_ref 關鍵字的參照,用於處理核心專案的遠端匯入作業。提供與安裝作業相關的特定商店、版本和型號資訊。包含安裝期間設定的常數資訊 (可使用 Marketplace 使用者介面中的「管理選項進行更新)。
refinements.lkml 可由具備 develop 權限的使用者編輯 讓開發人員精進在匯入的 CORE 專案檔案中定義的檢視畫面和 Explore。

自訂市集方塊

啟用開發人員模式,對區塊的可編輯檔案進行自訂。

如果您擁有 develop 權限,就可以在區塊的 CONFIG 專案 refinements.lkml 檔案中自訂 LookML。您可以精進區塊 CORE 專案中已定義的檢視畫面和探索,甚至新增 CORE 專案中未定義的新檢視畫面和探索。在其他 LookML 專案中,只要是 LookML 精修功能可執行的操作,在區塊的 refinements.lkml 檔案中也都能執行。精修版和原始 LookML 的組合會以物件的原始 LookML 行為運作。

您也可以變更 CONFIG 專案的 manifest.lkml 檔案,指定需要為該區塊擷取的所有依附元件。

您不必修改這些檔案,也能達成所需的自訂設定。您也可以在 CONFIG 專案中建立新檔案,但請務必include refinements.lkml 檔案中的所有新檔案。

自訂精修檔案

如果您擁有 develop 權限,就可以在 CONFIG 專案中新增自訂 LookML,以便加入其他資料或變更區塊的核心分析模型。您可以建立新檢視畫面並與現有探索結果彙整,定義新的欄位或重新定義現有欄位,或視需要套用標籤,為要提供的分析建立模型。如果您已在 CONFIG 專案中建立新檔案,則必須在精修檔案中include這些檔案。

舉例來說,假設您已安裝一個區塊,且其 refinements.lkml 檔案包含:

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

其中 listing_idmanifest.lkml 檔案中 listing 參數的值。

您可以使用精緻化功能,在名為 flights 的檢視畫面中新增維度:

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

view: +flights {
  dimension: air_carrier {
    type: string
    sql: ${TABLE}.air_carrier ;;
  }
}

您也可以為名為 aircraft 的探索套用標籤,讓其在 UI 中顯示為「Aircraft Simplified」

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

explore: +aircraft {
  label: "Aircraft Simplified"
}

refinements.lkml 檔案會自動納入區塊的「虛擬」模型檔案,該檔案基本上會從 CORE 專案匯入模型。

如要進一步瞭解這個進階主題,請參閱 LookML 精修功能說明文件。

自訂可編輯的資訊清單檔案

在使用精修功能的區塊中,核心和設定專案都會產生資訊清單檔案,但只有設定專案的資訊清單檔案可供編輯。

您可以編輯 CONFIG manifest.lkml 檔案,將專案參數新增至 CORE 專案資訊清單檔案中已顯示的參數。舉例來說,您可以新增 local_dependency,將區塊連結至同一 Looker 執行個體中的其他區塊。

更新常數的值

區塊的常數是在匯入的 CORE 專案資訊清單檔案中定義。如果系統允許,您可以在設定期間使用市集 UI 或更新區塊,覆寫常數的值。如要更新區塊,使用者必須具備 developmanage_modelsdeploy 權限。

如要透過更新區塊覆寫常數的值,請按照下列步驟操作:

  1. 在 Looker Marketplace 中,前往要更新的區塊。
  2. 按一下「管理」按鈕。
  3. 找出要更新的區塊名稱,然後按一下旁邊的齒輪圖示。系統會開啟區塊設定視窗。
  4. 視需要變更常數值。
  5. 按一下「Update」關閉區塊設定視窗,並更新區塊以反映變更。

您所做的變更會反映在已安裝專案中唯讀的 marketplace_lock.lkml 檔案中。

保留使用 extends 的 Marketplace 區塊自訂項目

部分可從 Looker Marketplace 取得的模塊,是由使用 LookML extends 的專案組成。Looker 會將 Looker 21.8 以上版本執行個體的所有市集區塊轉換為採用 LookML 精修的專案結構,並移除以 extends 為基礎的區塊支援。

Looker 建議您在執行個體上安裝任何 Marketplace 區塊的微調版本 (當這些區塊可供使用時),取代使用 extends 建構的區塊。雖然這個取代程序很簡單,您可以從 Looker Marketplace 的方塊清單安裝新的 (精進) 方塊,並在 Looker Marketplace 的「管理」頁面上解除安裝原始 (擴充) 方塊,但這麼做不會保留任何可能對使用擴充功能建構的方塊所做的自訂設定。Looker 也不會將任何 Looker 內容或以該內容為基礎的函式 (資訊主頁、探索、排程內容提交作業、快訊) 從原始區塊轉移至新區塊。

本節說明如何保留使用 extends 建構的區塊任何自訂項目,否則從頭複製這些項目可能會耗時且不易複製。

如要保留自訂區塊,使用者必須具備安裝及管理 Marketplace 中的套件權限,並符合下列條件:

  1. 更新原始區塊的 CONFIG 專案,為遷移作業做好準備
  2. 從 Looker Marketplace 安裝新版模組
  3. 將自訂項目轉移至新的市集方塊
  4. 根據原始區塊重建 Looker 內容
  5. 解除安裝使用 extends 建構的版本模組

更新自訂區塊,為遷移作業做好準備

本節說明如何更新使用 extends 建構的區塊中的重要專案檔案,以便將區塊的客製化內容複製到以精修為基礎的新版區塊。從市集安裝的區塊,如果是基於使用擴充功能的專案,則會以唯讀的 CORE 專案和可編輯的 CONFIG 專案形式安裝。

  1. 透過下列任一方式,從「Develop」專區前往區塊的 CONFIG 專案:

    • 按一下「Projects」選項,然後點選專案名稱。
    • 在專案清單中,按一下區塊的 CONFIG 專案名稱。

    CONFIG 專案名稱通常會以 _config 結尾,而 CORE 專案名稱通常沒有後置字串。

  2. 開啟專案的模型檔案,可能會像這樣:


    explore: ga_sessions_config {
      extends: [ga_sessions_core]
      extension: required
      join: user_sales_data {
        sql_on: ${user_sales_data.full_visitor_id} = ${ga_sessions.full_visitor_id} ;;
      }
      join: sales__by__category {
        sql: LEFT JOIN UNNEST(${user_sales_data.sales_by_category}) as sales__by__category;;
      }
    }

    explore: future_input_config {
      extends: [future_input_core]
      extension: required
      join: future_purchase_prediction {
        type: left_outer
        sql_on: ${future_input.full_visitor_id} = ${future_purchase_prediction.full_visitor_id} ;;
        relationship: one_to_one
      }
    }

  1. 開發模式中:

    1. 刪除整個 extendsextension 行。
    2. explore 名稱中刪除 _config
    3. explore 名稱開頭加上 +

    前述的模型檔案範例如下所示:


    explore: +ga_sessions {
      join: user_sales_data {
        sql_on: ${user_sales_data.full_visitor_id} = ${ga_sessions.full_visitor_id} ;;
      }
      join: sales__by__category {
        sql: LEFT JOIN UNNEST(${user_sales_data.sales_by_category}) as sales__by__category;;
      }
    }

    explore: +future_input {
      join: future_purchase_prediction {
        type: left_outer
        sql_on: ${future_input.full_visitor_id} = ${future_purchase_prediction.full_visitor_id} ;;
        relationship: one_to_one
      }
    }

  1. 複製並保留這個檔案的內容,以便在後續步驟中使用。

安裝新的市集方塊

從市集安裝的區塊,是以使用精進功能的專案為基礎,做為單一可編輯的 LookML 專案,可遠端匯入包含所有 LookML 和常數參數化的專案。

  1. 選取 Looker 選單列中的商店圖示,前往 Looker 市集。
  2. 按一下清單,即可查看新的「精修」市集區塊。這個區塊的名稱與使用 extends 建構的現有區塊相同。
  3. 按一下「安裝」即可安裝新區塊。安裝這個區塊後,您會在 Looker Marketplace 的「管理」頁面上看到兩個相同的產品資訊。

將自訂項目轉移至新的 Marketplace 區塊

本節說明如何將對原始 (extends) 區塊所做的更新,轉移至新的 (refinements) 區塊。

  1. 在「Develop」專區中,透過下列任一方式開啟新區塊的專案:

    • 按一下「Projects」選項,然後點選專案名稱。
    • 在專案清單中按一下區塊專案的名稱。

    市集精細設定區塊的名稱通常會在前面加上 marketplace_,後面接上產品資訊 ID。

  2. refinements.lkml 檔案中,貼上原始 (擴充) 區塊的模型檔案中更新後的內容。請務必保留精修檔案中已有的任何 include 陳述式。

根據原始區塊重建 Looker 內容

採用 Marketplace Block 的改良版的最後一個步驟,就是解除安裝原始的擴充版。部分以擴充為基礎的區塊包含預先建構的 LookML 資訊主頁和 Explore。如果使用者已建立以原始 (擴充) 區塊定義的任何 LookML 資訊主頁建立快訊排程傳送,一旦從 Looker Marketplace 解除安裝該區塊,這些快訊或排程就會分別遭到停用或失敗。

您必須在新的 (精進) 區塊的 LookML 資訊主頁中重新建立這些快訊或排程提交作業。Looker 管理員和具備排程警示適當權限的使用者,可在管理員專區的「警示與排程」頁面中搜尋 (擴充) 區塊的資訊主頁名稱,然後視需要在 (精進) 區塊的對應資訊主頁上建立新的警示或排程。

您也必須視需要修改任何參照原始 (擴充) 區塊的探索或 LookML 資訊主頁的其他 Looker 內容,以便指向新的 (精進) 區塊。

解除安裝原始區塊

如要解除安裝使用 extends 建構的版本,請按照下列步驟操作:

  1. 選取 Looker 選單列中的商店圖示,前往 Looker 市集。

  2. 在 Looker 市集中,選取左側導覽面板中的「管理」,即可開啟「管理」頁面。

  3. 在「管理」頁面中,按一下垃圾桶圖示,即可解除安裝原始 (extends) 區塊。您可以查看版本編號,區分擴充區塊清單和精緻化區塊清單。extends 區塊會比 refinements 區塊晚一個主要版本。舉例來說,extends 區塊可能是 1.0.4 版本,而 refinements 區塊可能是 2.0.0 版本。

解除安裝後,Looker 執行個體的左側導覽面板中,原始 (擴充) 區塊清單就會消失,其探索功能也會從「探索」部分消失,LookML 資訊主頁也會從「LookML 資訊主頁」資料夾消失,而根據區塊 LookML 資訊主頁建立的任何快訊或排程傳送作業,也會分別遭到停用或失敗。

排解區塊問題

如果市集方塊顯示錯誤,表示你的結構定義可能不符合方塊的結構。

您也可以檢查在區塊安裝期間提供的常數是否已正確定義,這些常數代表區塊的連線、資料庫或結構定義。如要這樣做,您可以:

  1. 選取 Looker 選單列中的商店圖示,前往 Looker 市集。

  2. 在 Looker 市集中,選取左側導覽面板中的「管理」,即可開啟「管理」頁面。

  3. 在「管理」頁面中,按一下區塊的齒輪圖示,查看其設定。

  4. 在「Update configurations」視窗中,確認區塊設定正確無誤。完成變更後,按一下「更新」即可儲存更新內容並關閉區塊設定視窗。