從其他專案匯入檔案

您可以將其他 LookML 專案和外部存放區的檔案匯入目前專案,以便在多個專案中使用模型檔案、檢視檔案和其他檔案。匯入的專案為唯讀,如要編輯檔案,必須從檔案所屬的 LookML 專案 (或連線至檔案 Git 存放區的其他編輯器) 進行編輯。

將檔案匯入 LookML 專案有多種用途,以下列舉幾個例子:

  • 以已安裝的 Looker Block 為基礎,不必直接變更。如果 Looker 變更了區塊,您可以提取變更,因為您新增至區塊的所有 LookML 都會保留在個別存放區中。

  • 維護根據資料庫結構定義自動產生的基本專案。您可以將所有自訂維度、指標等項目放在另一個專案中,並從自動產生的專案匯入所有 LookML。您可以定期重新產生基礎專案,因應資料庫結構定義的變更,不必覆寫所有自訂 LookML。

  • 將共用物件封裝在單一專案中,然後匯入多個其他專案。舉例來說,如果您有多個資料庫共用同一個資料表,可以將該資料表的檢視畫面放在一個專案中,並在該處維護。然後將資料表匯入其他專案,供這些專案使用。

如要從其他專案匯入檔案,請執行下列工作:

  1. 建立專案資訊清單檔案
  2. 指定要匯入的本機遠端專案。
  3. 查看匯入專案中的檔案
  4. 加入已匯入專案中的檔案

接著,您就能參照匯入專案檔案中的欄位,並覆寫匯入專案中定義的常數值 (如果常數允許覆寫)。

建立專案資訊清單檔案

凡是從其他專案匯入檔案的專案,都必須有專案資訊清單檔案。如果專案還沒有資訊清單檔案,可以從 Looker IDE 的檔案瀏覽器頂端,點選 + 圖示建立檔案

如要匯入專案,請在資訊清單中指定專案。您可以指定本機遠端專案,詳情請參閱下列章節。

匯入本機專案

只有在匯入的專案位於相同 Looker 執行個體時,才能使用本機專案匯入功能。此外,建議開發人員對匯入專案的模型具備模型權限。如果開發人員在匯入的專案中擁有模型權限,版本控管就會是動態的,也就是說,匯入專案中的變更會立即影響匯入該專案的專案。開發人員可先驗證這兩個專案的變更,再推送至正式版。此外,如果開發人員在兩個專案中都擁有模型權限,匯入的專案檔案會反映開發人員的開發模式狀態。因此,如果開發人員處於開發模式,Looker IDE 會顯示匯入專案檔案的開發模式。如果開發人員處於正式版模式,Looker IDE 會顯示匯入專案的正式版模式。

在資訊清單檔案中,project_name 參數會指定目前專案的名稱 (為專案建立資訊清單檔案時,Looker 會自動填入這個參數)。如要將本機專案匯入目前專案,請使用一或多個 local_dependency 參數指定要匯入的專案:

# This project
project_name: "my_project"

# The project to import
local_dependency: {
  project: "my_other_project"
}

在下列情況下,請使用遠端專案匯入,而非本機專案匯入:

  • 開發人員在匯入專案的模型中沒有模型權限。如果是這種情況,Looker 會複製匯入專案的「正式版模式」,並在 IDE 中顯示該靜態版本的檔案。這個靜態版本一律不會顯示檔案的開發模式版本,而且可能與目前的生產模式不同步,也不會提醒開發人員。建議使用遠端專案匯入功能,並提供 ref,在遠端專案中指定 Git 分支或 Git 版本。這麼做之後,Looker 就會自動偵測遠端專案中的新修訂版本,開發人員會收到警示,然後就能匯入最新版本的遠端專案檔案。
  • 開發人員一律須使用匯入專案的正式版。
  • 開發人員需要使用匯入專案檔案的靜態版本。

匯入遠端專案

在遠端匯入作業中,匯入的專案不一定要位於相同執行個體。而是透過遠端 Git 存放區匯入專案。

如要匯入遠端存放區,請使用 remote_dependency 參數提供遠端存放區的資訊。remote_dependency 參數會採用下列資訊和子參數:

  • 匯入專案的名稱,可自訂。在以下範例中,專案名稱為 ga_360_block。您可以在 include 陳述式中使用這個名稱,在 LookML 專案中參照匯入的檔案。這個名稱也會做為 Looker IDE imported_projects 資料夾下的資料夾名稱
  • url 子參數,用於指定外部 Git 存放區的位址。使用存放區的主要網址。
  • ref 子參數,用於指定 Git 分支版本、Git 發布標記,或 Git 存放區中某次提交的 SHA。如要使用靜態版本控管,可以指定提交 SHA,這樣匯入專案的變更就不會自動反映在專案中 (這是 Looker Blocks 的理想做法)。或者,您也可以指定 Git 分支或 Git 發布標記,讓 Looker 自動偵測遠端專案中的新修訂版本。詳情請參閱本頁面的「自動偵測遠端專案的新版本」一節。
  • override_constant 子參數,這個選用子參數可讓您覆寫匯入專案中定義的常數值。

以下是專案資訊清單檔案中的 remote_dependency 參數範例。本範例使用 HTTPS 連線:

remote_dependency: ga360_block {
  url: "https://github.com/llooker/google_ga360"
  ref: "master"
  override_constant: connection {
    value: "importing_project_connection"
  }
}

您也可以使用 SSH:

remote_dependency: ga360_block {
  url: "[email protected]:llooker/google_ga360.git"
  ref: "master"
  override_constant: connection {
    value: "importing_project_connection"
  }
}

新增遠端依附元件後,您可能需要設定遠端專案的匯入憑證,請參閱本頁面的「設定私有遠端存放區的驗證憑證」一節。

自動偵測遠端專案的新版本

如果您在資訊清單檔案的 remote_dependency 中指定 Git 分支版本或 Git 發布標記,Looker 就會自動偵測遠端專案中的新修訂版本。ref

舉例來說,以下是遠端依附元件,其中 master 分支是在 ref 子參數中指定:

remote_dependency: exchange_rate {
  url: "https://github.com/llooker/datablocks-exchangerate.git"
  ref: "master"
}

隨後,當 master 分支版本透過新提交內容更新時,Looker 會自動偵測到變更。

以下範例指定了 v1.0 發布標記:

remote_dependency: e_faa_original {
  url: "https://github.com/llooker/google_ga360"
  ref: "v1.0"
}

無論您為 ref 參數指定的值類型為何 (即使是提交 SHA),在專案中新增 remote_dependency 參數時,IDE 都會在頂端專案導覽列中顯示「更新依附元件」按鈕。

按一下「Update Dependencies」,匯入遠端專案檔案。如果這是您首次在專案中新增遠端依附元件,更新依附元件時,Looker 也會提示您建立資訊清單鎖定檔案。Looker 會使用資訊清單鎖定檔案追蹤遠端專案的版本。

如果您在 ref 子參數中指定 Git 分支版本或 Git 發布標記,每當 Looker IDE 重新整理時 (Looker 開發人員進入開發模式、在 IDE 中執行 Git 動作或重新整理瀏覽器時),Looker 就會檢查是否有新的修訂版本。

如有新的修訂版本,Looker 會在 IDE 的 Git 動作面板中顯示「更新依附元件」選項。

選取「Update Dependencies」選項,將最新的遠端專案檔案匯入專案。

取得最新檔案後,您可以