合併不同探索的結果

Looker 中的探索由 Looker 開發人員設計,旨在運用已定義的資料欄位與資料表關係,以最有效的方式結合資料庫資料表中的資料,因此建議您使用單一探索檢查資料。

但如果 Looker 開發人員尚未建立所需的資料關係,或遇到技術限制,在這種情況下,您可以使用「合併結果」功能,合併不同探索的結果 (即使探索來自不同的模型或專案),然後建立資料表,並在資料表上探索建立圖表。您可以將合併結果做為概念驗證,進一步開發及定義 LookML 專案和模型。

瞭解合併結果

合併查詢時,請先使用單一探索建立單一查詢,再合併其他查詢與第一個查詢。

系統預設會將第一個查詢視為主要查詢。這是非常重要的概念,因為當 Looker 比對資料以建立合併結果時,會比對各個新增的查詢和主要查詢,而不是任何其他新增的查詢。因此當您新增查詢時,都必須加入可與主要查詢維度相符的維度。

舉例來說,請思考下列查詢。

主要查詢會傳回下列結果:

產品類別 產品數量
有效 5
牛仔褲 9
正式服裝 3

次要查詢會傳回下列結果:

產品類別 商品目錄數量中的項目
有效 11
牛仔褲 16
正式服裝 6

如果您在「產品類別」欄位中合併這些查詢,Looker 會產生下列合併結果:

產品類別 產品數量 商品目錄數量中的項目
有效 5 11
牛仔褲 9 16
正式服裝 3 6

合併結果不會執行實際的 SQL 聯結。不過,如果熟悉 SQL 聯結,您會發現「合併結果」功能合併多個探索結果的方式,與左方聯結類似。新增查詢的結果會與主要查詢的結果合併,就像是左側聯結到主要查詢一樣。

您不必熟悉左側聯結的概念,也能瞭解合併結果的運作方式。就實務而言,主要查詢的重要性在於:

如果某個查詢沒有相符的資料值,該怎麼辦?

主要查詢之所以重要,還有一個原因是相符維度中空值的處理方式:

  • 如果主要查詢中存在某個資料列,但額外查詢中沒有,則該資料列的額外查詢欄位會是 NULL。

  • 如果新增的查詢中存在某個資料列,但主要查詢中沒有,則該資料列完全不會顯示在結果中。

為說明這些範例,請參考以下範例查詢。

主要查詢會傳回下列結果:

產品類別 產品部門 產品數量
有效 兒童 522
有效 成人 545
洋裝 成人 878
正式服裝 成人 349

次要查詢會傳回下列結果:

產品類別 產品品牌名稱 商品目錄數量中的項目
有效 品牌 1 223
洋裝 品牌 2 80
洋裝 品牌 3 3
牛仔褲 品牌 3 8
牛仔褲 品牌 2 19

如果您在「產品類別」欄位中合併這些查詢,Looker 會產生下列合併結果:

產品類別 產品部門 產品品牌名稱 產品數量 商品目錄數量中的項目
有效 成人 品牌 1 545 223
有效 兒童 品牌 1 522 223
洋裝 成人 品牌 2 878 80
洋裝 成人 品牌 3 878 3
正式服裝 成人 349

主要查詢有「正式服裝」的資料列,因此合併結果會顯示這個資料列。新增的查詢沒有「正式服裝」資料列,因此新增查詢中的任何欄位都會顯示「正式服裝」的 NULL (∅)。

新增的查詢有兩列「牛仔褲」,但主要查詢沒有。因此,合併結果中完全不會顯示這個資料列。

在這個範例中,如果您切換主要查詢,將新增的查詢設為新的主要查詢,Looker 會產生下列合併結果:

產品類別 產品品牌名稱 產品部門 商品目錄數量中的項目 產品數量
有效 品牌 1 成人 223 545
有效 品牌 1 兒童 223 522
洋裝 品牌 2 成人 80 878
洋裝 品牌 3 成人 3 878
牛仔褲 品牌 2 19
牛仔褲 品牌 3 8

Looker 不再顯示「正式服裝」資料列,因為新主要查詢中沒有這些資料列。不過,Looker 現在會顯示「牛仔褲」資料列,而這些資料列會針對「新增」至主要查詢的維度和指標顯示 NULL。

您也可以參閱「為什麼我的次要合併結果查詢中出現空值?」如需遺漏或空值合併結果的疑難排解提示,請參閱「最佳做法」頁面。

如果一個查詢有多個資料列具有相同的值,該怎麼辦?

最後,指定所需的主要查詢也很重要,因為系統會以這種方式處理具有相符值的多個資料列。如果新增的查詢有兩列以上的值與主要查詢中的資料列相符,主要查詢資料列就會重複顯示相符的次數。

在下列範例中,「added」查詢有兩列「洋裝」在合併結果中,主要查詢的「洋裝」值會出現兩次,新增查詢的每個「洋裝」列各一次。

主要查詢會傳回下列結果:

產品類別 產品部門 產品數量
有效 兒童 522
有效 成人 545
洋裝 成人 878
正式服裝 成人 349

次要查詢會傳回下列結果:

產品類別 產品品牌名稱 商品目錄數量中的項目
有效 品牌 1 223
洋裝 品牌 2 80
洋裝 品牌 3 3
牛仔褲 品牌 3 8
牛仔褲 品牌 2 19

以「產品類別」欄位合併的合併結果查詢,會傳回下列結果:

產品類別 產品部門 產品品牌名稱 產品數量 商品目錄數量中的項目
有效 成人 品牌 1 545 223
有效 兒童 品牌 1 522 223
洋裝 成人 品牌 2 878 80
洋裝 成人 品牌 3 878 3
正式服裝 成人 349

請注意,如果在此情況下切換主要查詢,您仍會有兩個「洋裝」資料列,因為新指定的主要查詢有兩個「洋裝」資料列。重點是,合併查詢時,結果的資料列可能會比主要查詢多,但絕不會較少

資料庫內合併查詢

根據預設,合併查詢會在 Looker 記憶體中處理,因此每個查詢最多只能合併 5,000 個資料列。如果 Looker 管理員已啟用 In-database merge queries Looker Labs 功能,系統會在 BigQuery 資料庫中,合併兩個位於相同 BigQuery 連線的查詢。在資料庫中執行聯結作業的效能較高,且可聯結的資料列數量不受限制。

此外,為合併結果建立每個探索查詢時,Looker 使用者介面會包含「資料列限制」欄位。Looker 會根據合併結果查詢的處理方式,以不同方式使用「列數限制」欄位:

  • 如果合併查詢是在 Looker 記憶體中計算,Looker 會擷取每個查詢在「資料列限制」欄位中指定的資料列數,並聯結這些資料來建立合併結果。
  • 如果是資料庫內合併查詢,Looker 會忽略每個來源查詢的「資料列數上限」值,並聯結每個來源查詢的完整資料集。

如果 Looker 能夠為合併查詢執行資料庫內聯結,系統會在「合併結果」對話方塊中顯示橫幅,指出查詢正在資料庫中執行,且 Looker 會省略每個來源查詢的資料列限制。

接著,在資料庫內合併查詢的結果資料表中,Looker 會顯示「合併結果」欄位,而非「列數上限」欄位。「合併結果」欄位會限制結果表格中顯示的資料列,而非處理的資料列,因為資料庫內合併結果查詢的處理資料列數沒有限制。

合併查詢

如要合併多個查詢的結果,請按照下列步驟操作:

  1. 建立第一個來源查詢,稱為「主要查詢」
  2. 新增下一個來源查詢
  3. 檢查這些查詢的合併規則,然後執行合併作業
  4. 您也可以

    • 排序、透視及建立結果的視覺化呈現方式。
    • 使用網址重複使用及分享結果。
    • 編輯或新增來源查詢,即可修改結果。

建立主要查詢

如要合併多個查詢的結果,請先準備「主要」查詢,步驟如下:

  1. 從「探索」選單中選取探索。
  2. 從欄位挑選器中選取感興趣的維度和指標。請勿在這個步驟中樞紐分析任何維度。

    只要完成這些步驟,就能開始合併結果。不過,您也可以使用一些進階探索技巧,進一步修正查詢。您可以:

  3. 視需要為資料新增篩選器

  4. 視需要加入資料表計算,建立臨時指標。

  5. 視需要按一下「執行」,查看主要查詢的結果,並測試篩選器和表格計算。

新增下一個來源查詢

建立主要探索後,請按照下列步驟新增另一個來源查詢:

  1. 在「探索」中,按一下齒輪圖示。
  2. 選取「合併結果」,系統會開啟「選取探索檢視表」視窗。
  3. 在「選取探索檢視表」視窗中,點選要建立下一個查詢的探索名稱。

    Looker 會在「編輯查詢」視窗中開啟「探索」,您可以在這裡建立新查詢,並與主要查詢合併。

    如要合併查詢,Looker 會找出查詢中值可以相符的維度。請確保查詢中至少有一個值可以完全相符的維度。舉例來說,如果兩個查詢都包含「日期」維度,但其中一個查詢的維度值為「2017-10-01」,另一個查詢為「2017 年 10 月」,Looker 就無法使用該維度來合併查詢。

  4. 從欄位挑選器中選取感興趣的維度和指標。請務必至少加入一個維度,與主要查詢中的維度完全相符。請勿在這個步驟中樞紐分析任何維度。

  5. 視需要加入篩選器,縮小資料範圍。

  6. (選用) 納入表格計算,根據查詢欄位建立新欄位。

  7. 視需要點選「執行」,查看來源查詢的結果,並測試篩選器和資料表計算。

  8. 點選「儲存」即可合併這個查詢與主要查詢。

檢查合併規則並執行合併作業

Looker 會自動找出最適合比對查詢的維度,並在「合併規則」專區中顯示這些比對結果。Looker 會顯示每個合併作業使用的欄位。

  1. 檢查 Looker 用來比對查詢的維度。(如要瞭解如何變更這些規則,請參閱「編輯合併規則」一文)。

  2. 點選「執行」即可查看合併的查詢結果。

請注意,來源查詢中的任何表格計算都會在合併結果中顯示為標準維度。

使用及修改合併結果

合併結果的用途包括:

  • 檢查及排序資料,包括深入瞭解資料。不過,如果深入瞭解用於合併兩個探索的維度,Looker 只會顯示主要探索的下鑽欄位。
  • 查看總計。Looker 會計算每個元件查詢的總計,並在合併結果中使用這些總計。因此,您看到的總數可能過高,因為這些總數是在合併結果前計算得出。如要避免這種情況,請對齊每項查詢的篩選器。
  • 製作圖表。
  • 如要透視維度,請在資料表的維度資料欄中選取齒輪選單的「透視」。請注意,您無法在來源查詢中樞紐分析維度。

如要重複使用合併結果,可以採取下列做法:

  • 使用瀏覽器網址分享結果。
  • 在瀏覽器中將網址加入書籤,以便日後再次執行相同的合併查詢。您無法將合併結果儲存為 Look。
  • 將合併結果儲存為資訊主頁上的動態磚 (請參閱「將合併結果儲存至資訊主頁」)。

如要修改合併結果,可以採取下列做法:

  • 如要合併其他探索的查詢,請按一下「新增查詢」按鈕,並按照上述步驟操作。
  • 編輯來源查詢或設定查詢的合併方式。詳情請參閱「編輯合併結果」一文。
  • 在建立及合併查詢時,或是在「合併結果」頁面編輯查詢時,在來源查詢中新增篩選條件,即可建立篩選條件。請注意,您無法直接在合併結果中新增篩選器。

如要清除快取並從資料庫擷取最新結果,請在「合併結果」視窗右上方的齒輪選單中,選取「清除快取並重新整理」選項。

如要下載合併結果查詢,可以將查詢儲存至資訊主頁,然後將資訊主頁下載為 PDF 或 CSV 檔案集合

編輯合併結果

取得合併結果後,您可以對合併結果進行下列變更:

編輯來源查詢

在「合併結果」視窗中,按一下左窗格中的查詢名稱,或從查詢的齒輪選單中選取「編輯」,即可返回並編輯來源查詢。這些選項會將您帶回「編輯查詢」畫面。

您可以新增或移除欄位、新增資料表計算,或變更來源查詢的篩選器。按一下「儲存」,返回合併結果。

查詢的齒輪選單也提供下列選項:

  • 重新命名:指定要在「合併結果」視窗中顯示的查詢名稱。
  • 設為主要:將查詢設為合併結果的基礎。如要瞭解主要查詢的角色,請參閱「瞭解合併結果」。
  • 刪除:從合併結果中移除查詢。(如果刪除查詢後想將其加回合併結果,可以使用瀏覽器的「返回」按鈕)。

編輯合併規則

新增查詢時,Looker 會自動找出可用於比對新增查詢與主要查詢的維度。每個新增的查詢都必須至少有一個維度,其值與主要查詢中的維度完全相符。Looker 會在「合併規則」專區中顯示這些比對結果,並指出要使用哪些欄位合併查詢。

您可以在「合併規則」專區中,變更或新增 Looker 用來合併查詢的欄位。

  1. 使用下拉式選單,查看其他可比對資料的維度選項。
  2. 如果還有其他可供比對的維度,Looker 會顯示「+ 新增維度」。按一下「+ 新增維度」,設定要在查詢合併中使用的其他維度。
  3. 如不想比對兩個維度之間的資料,請按一下「X」X

切換主要查詢

合併查詢時,請先使用單一探索建立單一查詢,再合併其他查詢與第一個查詢。系統預設會將第一個查詢視為主要查詢,但您可以從查詢的齒輪選單中選取「設為主要查詢」,將任何查詢指定為主要查詢。

每個新增的查詢都必須至少有一個維度,其值可與主要查詢中的維度完全相符。

切換主要查詢後,合併結果可能會隨之變更。如要瞭解主要查詢的角色,請參閱「瞭解合併結果」。

將合併結果儲存至資訊主頁

將合併結果查詢新增至資訊主頁後,您可以新增或套用資訊主頁篩選器至合併結果動態磚、重新排列動態磚編輯動態磚,或新增動態磚至資訊主頁。您無法下載以合併結果為依據的動態磚資料,但可以將資訊主頁下載為 PDF 檔案,或下載為 CSV 檔案集合

如果以任何方式變更合併查詢,套用至合併結果圖塊的任何資訊主頁篩選器都會關閉。如要恢復篩選器,請在篩選器設定視窗中重新開啟。

合併嵌入式 Look、資訊主頁和探索中的查詢

如果您具備適當權限,可以在內嵌的 Look、資訊主頁和探索中合併查詢。如要合併內嵌 Look 的查詢與其他查詢,請按照下列步驟操作:

  1. 將游標懸停在 Look 的標題上,顯示 Look 的齒輪選單,然後點按齒輪選單。
  2. 選取「合併結果」,然後按照合併查詢的步驟操作。

如要合併內嵌資訊主頁圖塊的查詢,請按照下列步驟操作:

  1. 將游標懸停在資訊主頁動態磚上,即可查看資訊主頁動態磚的下拉式選單。
  2. 在下拉式選單中選擇「從這裡開始探索」。Looker 會開啟該動態磚查詢的「探索」。
  3. 按一下「探索」的齒輪選單,然後選取「合併結果」
  4. 按照合併查詢的步驟操作。

附註

  • 合併結果會顯示主要查詢的所有欄位,並使用主要查詢的欄位名稱。也就是說,如果主要查詢和新增查詢對相符維度使用不同的名稱,結果中只會顯示主要查詢的維度名稱。
  • 「合併結果」查詢可能會有資料列限制:

    • 根據預設,系統會在 Looker 記憶體中處理合併結果查詢的聯結,因此每個要合併的查詢最多只能聯結 5,000 個資料列。如果加入的查詢傳回超過 5,000 列資料,則只有傳回的前 5,000 列會包括在合併結果內。
    • 如果 Looker 管理員已啟用「資料庫內合併查詢」Looker Labs 功能,且您要合併兩個查詢的結果 (這兩個查詢位於相同的 BigQuery 連線),系統會在 BigQuery 資料庫本身執行兩個查詢之間的聯結。資料庫內合併查詢的效能較高,且可聯結無限多列。詳情請參閱「資料庫內合併查詢」一節。
  • 對於在 Looker 記憶體中處理的合併查詢,「合併結果」是查詢後處理功能,如果未妥善使用,可能會過度耗用 Looker 執行個體資源,導致 Looker 執行個體對所有使用者的回應速度變慢。如果無法使用資料庫內合併查詢,最佳做法是在 LookML 中定義函式和邏輯,產生由資料庫處理的 SQL。如要進一步瞭解如何提升 Looker 效能,請參閱「提升 Looker 效能」最佳做法頁面。

結論

請盡可能使用單一探索中的資料,因為 Looker 開發人員已仔細考量如何合併不同資料庫資料表中的資料。不過,在必要時,合併結果是強大的技術,可讓您合併多個探索和資料庫的資料。