Looker 的探索由 Looker 開發人員設計,主要是運用資料欄位與資料表之間已定義的關係,以最有效率的方式整合資料庫資料表中的資料,因此,一般最佳做法是使用單一探索檢視資料。
但如果 Looker 開發人員尚未建立所需的資料關係,或受到技術限制,在這種情況下,您可以使用「Join data」(彙整資料) 頁面,彙整 (或合併) 來自不同探索 (甚至是不同模型或專案) 的兩項或多項查詢結果,並將查詢結果顯示為單一查詢。您可以使用彙整查詢建立資料表,以便探索和建立圖表,並做為概念驗證,進一步開發及定義 LookML 專案和模型。
瞭解彙整結果
彙整或合併查詢時,請先使用一個探索建立第一個查詢,再將其他查詢與該查詢合併。
系統預設會將第一個查詢視為「主要」查詢。主要查詢非常重要,因為 Looker 比對資料來建立合併結果時,會以主要查詢做為各個新增查詢的比對基準,而不是任何其他新增的查詢。每次新增查詢時,都必須加入可與主要查詢維度比對的維度。
例如,請考慮下列查詢。
主要查詢會傳回下列結果:
| 產品類別 | 產品數量 |
|---|---|
| 有效 | 5 |
| 牛仔褲 | 9 |
| 正式服裝 | 3 |
次要查詢會傳回下列結果:
| 產品類別 | 商品目錄中的商品數量 |
|---|---|
| 有效 | 11 |
| 牛仔褲 | 16 |
| 正式服裝 | 6 |
如果依「產品類別」欄位彙整這些查詢,Looker 會產生下列彙整結果:
| 產品類別 | 產品數量 | 商品目錄中的商品數量 |
|---|---|---|
| 有效 | 5 | 11 |
| 牛仔褲 | 9 | 16 |
| 正式服裝 | 3 | 6 |
彙整結果不會執行實際的 SQL join (除非您使用資料庫內合併查詢)。不過,如果您熟悉 SQL join,join 查詢會合併多個探索的結果,方式類似左 join。新增查詢的結果會與主要查詢的結果合併,就像是左連結至主要查詢一樣。
您不需要熟悉左側彙整的概念,也能瞭解彙整結果的運作方式。實際來說,指定主要查詢之所以重要,原因如下:
- 欄位名稱的顯示方式:如前例所示,如果欄位相符,彙整結果會使用主要查詢的欄位名稱。
彙整結果如何處理沒有相符值的查詢:下一節「如果查詢沒有相符的資料值,該怎麼辦?」將說明只有部分查詢在相符維度中具有特定值時,Looker 如何處理合併資料。
如需更多疑難排解提示,瞭解如何處理遺漏或空值的彙整結果值,請參閱「為什麼次要彙整結果查詢中出現空值?」一節。最佳做法頁面。
彙整結果如何處理有多個相符值的查詢:本頁稍後的「如果查詢有多個相同值的資料列,該怎麼辦?」一節,將說明當部分查詢在相符維度中有多個特定值 (或值的組合) 的資料列時,Looker 如何處理合併資料。
如果某個查詢沒有相符的資料值,該怎麼辦?
主要查詢之所以重要,另一個原因在於比對維度中空值的處理方式:
- 如果某個資料列存在於主要查詢中,但不存在於附加查詢中,則附加查詢的欄位會顯示該資料列的 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 | ∅ |
主要查詢包含「Formalwear」資料列,因此彙整結果會顯示這個資料列。新增的查詢沒有「Formalwear」資料列,因此新增查詢中的任何欄位都會顯示「Formalwear」的 NULL (∅)。
新增的查詢有兩個「Jeans」資料列,但主要查詢沒有「Jeans」資料列。因此,這些資料列完全不會顯示在彙整結果中。
在這個範例中,如果您切換主要查詢,將新增的查詢設為新的主要查詢,Looker 就會產生下列彙整結果:
| 產品類別 | 產品品牌名稱 | 產品部門 | 商品目錄中的商品數量 | 產品數量 |
|---|---|---|---|---|
| 有效 | 品牌 1 | 成人 | 223 | 545 |
| 有效 | 品牌 1 | 兒童 | 223 | 522 |
| 洋裝 | 品牌 2 | 成人 | 80 | 878 |
| 洋裝 | 品牌 3 | 成人 | 3 | 878 |
| 牛仔褲 | 品牌 2 | ∅ | 19 | ∅ |
| 牛仔褲 | 品牌 3 | ∅ | 8 | ∅ |
Looker 不會再顯示「Formalwear」資料列,因為新的主要查詢中沒有這些資料列。不過,Looker 現在會顯示「Jeans」資料列,而這些資料列會針對僅存在於新增至主要查詢的查詢中的維度和測量指標,顯示 NULL (∅)。
如需更多疑難排解提示,瞭解如何處理遺漏或空值的彙整結果值,請參閱「為什麼次要彙整結果查詢中出現空值?」一節。最佳做法頁面。
如果一項查詢有多個資料列,且這些資料列的值相同,該怎麼辦?
指定主要查詢也很重要,因為系統會處理多個具有相符值的資料列。如果新增的查詢有兩個以上的資料列,且值與主要查詢中的資料列相符,系統會複製主要查詢資料列,複製次數與相符資料列數相同。
在以下範例中,新增的查詢有兩個「Dresses」資料列。在彙整結果中,主要查詢的「Dresses」值會出現兩次,分別對應新增查詢中的兩個「Dresses」資料列。
主要查詢會傳回下列結果:
| 產品類別 | 產品部門 | 產品數量 |
|---|---|---|
| 有效 | 兒童 | 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 | ∅ |
在這種情況下,如果您切換主要查詢,仍會有兩個「Dresses」列,因為新指定的主要查詢有兩個「Dresses」列。彙整查詢時,結果的資料列數可能會比主要查詢多,但絕不會少於主要查詢。
資料庫內合併查詢
根據預設,合併查詢會在 Looker 記憶體中處理,因此每個查詢最多可合併 5,000 個資料列。如果 Looker 管理員已啟用資料庫內合併查詢 Looker Labs 功能,系統會在 BigQuery 資料庫中,執行相同 BigQuery 連線上的兩項查詢之間的彙整。在資料庫中執行彙整作業可提升效能,並可彙整無限數量的資料列。
此外,為合併結果建立各項探索查詢時,Looker UI 會顯示「Row Limit」(資料列限制) 欄位。Looker 會根據合併結果查詢的處理方式,以不同方式使用「資料列限制」欄位:
- 對於在 Looker 記憶體中計算的合併查詢,Looker 會擷取每個查詢的「Row Limit」(資料列限制) 欄位中指定的資料列數量,並合併這些資料,建立合併結果。
- 對於資料庫內合併查詢,Looker 會忽略每個來源查詢的「Row Limit」(資料列限制) 值,並彙整每個來源查詢的完整資料集。
如果 Looker 能夠為合併查詢執行資料庫內合併,系統會顯示橫幅,指出查詢正在資料庫中執行,且 Looker 會省略各來源查詢的資料列限制。
接著,在資料庫內合併查詢的結果表格中,Looker 會顯示「合併結果」欄位,而非「資料列限制」欄位。「合併結果」欄位會限制結果表格中顯示的資料列,而非處理中的資料列,因為資料庫內合併結果查詢可處理的資料列數量沒有限制。
彙整查詢
如要彙整多個查詢的結果,請按照下列步驟操作:
- 建立第一個來源查詢,稱為主要查詢。
- 新增另一個來源查詢。
- (選用) 設定彙整查詢的彙整規則。
- (選用) 以圖表呈現彙整查詢。
- 建立彙整查詢後,請儲存或分享彙整查詢。
- 視需要修改彙整查詢。
建立主要查詢
如要彙整多個查詢的結果,請先從「探索」選單中選取探索,然後從欄位挑選器中選取所需維度和測量指標,準備「主要」查詢。在這個步驟中,請勿透視任何維度。或者,您也可以選取 Look 圖表或資訊主頁,然後在 Look 圖表或資訊主頁圖塊上,按一下「從這裡探索」。
現在可以開始合併結果。不過,您也可以透過下列選用方式進一步精細查詢:
新增另一個來源查詢
建立主要探索查詢後,請按照下列步驟新增其他來源查詢:
- 在「探索」的「設定」面板中,點選「合併查詢 (彙整資料)」,開啟「彙整資料」頁面。
在「Add join」(新增彙整) 視窗中,選擇新增其他來源查詢的方法:
- 透過探索建構新查詢:Looker 會顯示探索清單。選擇要用做來源查詢的探索,然後按一下「Add query」(新增查詢)。Looker 會顯示「設定已彙整欄位」頁面。選取新查詢的維度和測量指標,並新增任何篩選條件或自訂欄位。請勿在來源查詢中透視任何維度,而是在彙整結果中透視維度。請務必加入至少一個維度,且其值與主要查詢中的維度完全相符。完成新來源查詢設定後,按一下「Save and continue」(儲存並繼續)。
- 貼上預先建立的查詢網址:在「Add prebuilt query URL」(新增預先建立的查詢網址) 欄位中,輸入要用做來源查詢的查詢、Look 圖表或資訊主頁圖塊網址,然後點選「Add query」(新增查詢)。
- 選取 Look 圖表:Looker 會顯示 Look 圖表清單。選擇要用做來源查詢的 Look 圖表,然後按一下「Add query」(新增查詢)。
- 選取資訊主頁圖塊:Looker 會顯示資訊主頁清單。選擇資訊主頁後,Looker 會顯示該資訊主頁的圖塊清單。選取圖塊,然後點選「新增查詢」。
設定加入規則
如要彙整兩項以上的查詢,Looker 會在查詢中找出值能相互比對的維度。每個新增的查詢都必須至少有一個共同維度,且其中的值要能完全對上主要查詢中的維度。舉例來說,如果您想將顧客資料新增至訂單探索,且訂單探索和顧客查詢都有「Customer ID」欄位,且值相符,您可以使用「Customer ID」欄位彙整查詢。不過,如果兩個查詢都包含「日期」維度,但其中一個查詢的值為 "2017-10-01",另一個查詢的值為 "October 2017",Looker 就無法使用該維度來彙整查詢。
選取並設定主要和額外來源查詢後,Looker 會自動選取最相符的彙整欄位,並在「彙整資料」頁面的「設定彙整」視窗中建立彙整規則。主要查詢和各項彙整規則會分別列在「Source queries and join rules」(來源查詢和彙整規則) 下方。
在「Source queries and join rules」(來源查詢和彙整規則) 部分,您可以透過下列方式修改彙整規則:
- 變更主要查詢或來源查詢的彙整欄位。
- 新增彙整欄位。
- 刪除彙整欄位。
- 將來源查詢設為主要查詢。切換主要查詢後,彙整結果可能會改變。如要瞭解主要查詢的角色,請參閱「瞭解彙整結果」。
- 按一下「新增彙整」,新增來源查詢。
設定圖表樣式
如要以圖表呈現彙整查詢,請按一下「Select chart」(選取圖表),選擇圖表類型。或者,您也可以使用「Auto-visualize」(自動圖表化) 選項,讓 Gemini 選取合適的圖表。然後選取「Chart style」(圖表樣式),設定該圖表類型的圖表選項。
如需所有可用圖表設定和支援圖表類型的完整指南,請參閱「設定及編輯圖表」。
儲存或共用彙整查詢
建立彙整查詢後,您可以點選「Save or share」(儲存或共用),執行下列操作:
- 「Save to new dashboard」(儲存至新的資訊主頁):Looker 會顯示「Save as a new dashboard」(另存為新的資訊主頁) 視窗。為新資訊主頁命名,並選取要儲存新資訊主頁的資料夾。
- 儲存至現有資訊主頁:Looker 會顯示「新增至這個資料夾中的資訊主頁」視窗。輸入新資訊主頁圖塊的標題,然後選取要儲存查詢的資訊主頁。
- 複製網址:Looker 會顯示「分享網址」視窗,其中包含查詢的短網址和完整網址。您可以分享網址,或在瀏覽器中加入書籤,以便日後再次執行相同的彙整查詢。無法將彙整結果儲存為 Look 圖表。
將彙整查詢新增至資訊主頁後,您可以對彙整查詢圖塊新增或套用資訊主頁篩選器、重新排列圖塊、編輯圖塊,或在資訊主頁新增圖塊。您無法直接從以彙整結果為基礎的圖塊下載資料,但可以將資訊主頁下載為 PDF,或下載為 CSV 檔案集合。
修改彙整查詢
建立聯結查詢後,您可以在「Join data」(聯結資料) 頁面中,透過下列方式與結果互動及修改查詢:
- 檢查及排序資料,包括細查資料。不過,如果深入探討用於彙整兩個探索的維度,Looker 只會顯示主要探索的細查欄位。
- 在「Configure joins」(設定彙整) 視窗中,選取主要查詢旁的「Edit query」(編輯查詢),開啟查詢的資料表,然後使用欄位挑選器進行變更,例如新增或移除欄位、新增資料表計算,或變更來源查詢的篩選器 (請注意,您無法直接在彙整結果中新增篩選器)。您也可以選取主要查詢旁的「Options」(選項),重新命名或刪除主要查詢。
- 在「Configure joins」(設定彙整) 視窗中,找出要修改彙整規則的查詢,然後選取旁邊的「Edit query」(編輯查詢)。對於每個額外的來源查詢,您也可以選取「Options」(選項),然後重新命名或刪除查詢 (如果想在刪除查詢後將其重新加入彙整結果,可以使用瀏覽器中的「返回按鈕」Back),或將該來源查詢設為彙整查詢的主要查詢。
- 在「彙整的欄位和圖表樣式」視窗的「彙整的欄位」分頁中,透視一或多個彙整的查詢欄位,並新增資料表計算。請注意,來源查詢的資料表計算結果會顯示為彙整結果中的標準維度。
- 在「彙整的欄位和圖表樣式」視窗的「圖表樣式」分頁中,變更彙整查詢圖表的設定。
- 使用「總計」切換鈕,在彙整查詢中新增或移除總計。Looker 會計算每項元件查詢的總計,並在彙整結果中使用這些總計。因此,總計可能會偏高,因為您看到的是結果彙整前計算的總計。如要一律顯示最新資料,其中一個方法是調整每項查詢的篩選器。
- 按一下「Change chart」(變更圖表),為彙整查詢選取其他圖表。
完成任何變更後,只要按一下「執行以更新」,即可查看更新後的彙整查詢結果。
在資訊主頁編輯彙整查詢圖塊
如要編輯資訊主頁上的彙整查詢圖塊,請按照下列步驟操作:
- 將資訊主頁切換至編輯模式。
- 在圖塊上選取「編輯合併查詢」。
- Looker 會直接在資訊主頁編輯畫布中開啟「Join data」(彙整資料) 頁面。
- 變更主要查詢、其他來源查詢、彙整規則或圖表。
- 選取「儲存」,更新合併查詢設定,然後選取「儲存」,更新資訊主頁上的圖表。
合併嵌入式 Look、資訊主頁和探索中的查詢
如果您具備適當權限,可以在嵌入的 Look、資訊主頁和探索中彙整查詢:
- 如要將嵌入式 Look 或嵌入式資訊主頁圖表的查詢與其他查詢合併,請按一下「從這裡探索」,從 Look 或資訊主頁圖表開啟「探索」,然後按照合併查詢的步驟操作。
- 在嵌入的「探索」中,按一下「設定」面板中的「合併查詢 (彙整資料)」,然後按照彙整查詢的步驟操作。
附註
- 所有主要查詢的欄位都會顯示在彙整結果中,並使用主要查詢的欄位名稱。如果主要查詢和新增的查詢對相符維度使用不同名稱,結果只會顯示主要查詢的維度名稱。
合併查詢可能有資料列限制:
- 根據預設,系統會在 Looker 記憶體中處理合併查詢的合併作業,因此每個合併查詢最多只能合併 5,000 列 (如果管理員指定較高的上限,則最多可達 50,000 列)。如果加入的查詢傳回的資料列數超過上限,合併結果就不會顯示超出上限的資料列。
- 如果 Looker 管理員已啟用資料庫內合併查詢 Looker Labs 功能,且您要合併來自相同 BigQuery 連線的兩項查詢結果,則這兩項查詢之間的彙整作業會在 BigQuery 資料庫中執行。資料庫內合併查詢可提升效能,並可彙整不限數量的資料列。詳情請參閱本頁的「資料庫內合併查詢」一節。
對於在 Looker 記憶體中處理的合併查詢,合併查詢是一項查詢後處理功能,如果使用不當,可能會過度消耗 Looker 執行個體資源,導致 Looker 執行個體對所有使用者的回應速度變慢。如果無法使用資料庫內合併查詢,最佳做法是在 LookML 中定義函式和邏輯,產生由資料庫處理的 SQL。如要進一步瞭解如何提升 Looker 效能,請參閱「提升 Looker 效能」最佳做法頁面。
結論
請盡可能使用單一探索中的資料,因為 Looker 開發人員已仔細考量如何整合不同資料庫資料表中的資料。不過,在必要時,彙整查詢是一項強大的技術,可讓您合併多個探索和資料庫的資料。