聯結資料 - Amazon QuickSight

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

聯結資料

您可以使用 Amazon 中的聯結界面加入 QuickSight 來自一個或多個資料來源的物件。透過使用 Amazon QuickSight 加入資料,您可以合併不同的資料,而不必複製來自不同來源的資料。

聯結資料集的類型

聯結會在兩個 QuickSight 邏輯資料表之間執行,其中每個邏輯資料表都包含如何擷取資料的相關資訊。在中編輯資料集時 QuickSight,頁面上半部的聯結圖表會將每個邏輯資料表顯示為矩形區塊。

中有兩種不同類型的聯結資料集 QuickSight:相同來源和跨來源。當資料集沒有任何聯結,或滿足以下所有條件時,資料集被視為同來源:

  • 如果有任何邏輯資料表參照 QuickSight 資料來源:

    • 此資料集中的所有邏輯資料表都必須參照相同的 QuickSight 資料來源。如果兩個單獨的 QuickSight 資料來源參考相同的基礎資料庫,則不適用此選項。它必須是完全相同的 QuickSight 資料來源。如需使用單一資料來源的詳細資訊,請參閱 使用現有資料來源建立資料集

  • 如果有任何邏輯資料表參照父系資 QuickSight 料集的資料集:

    • 父資料集必須使用直接查詢。

    • 父資料集必須參照相同的 QuickSight 資料來源。

如果不滿足上述條件,則資料集會被視為跨來源聯結。

有關聯結資料集的事實

同來源和跨來源資料集聯結都具有以下限制。

聯結資料集最多可以包含多少個資料表?

所有聯結的資料集最多可以包含 32 個資料表。

聯結資料最大可以是多少?

聯結的允許大小上限是由所使用的查詢模式和查詢引擎決定。下面的列表提供了有關要聯接的表的不同大小限制的信息。大小限制適用於所有組合的次要表格。主資料表沒有聯結大小限制。

  • 相同來源資料表 — 當資料表源自單一查詢資料來源時, QuickSight 對聯結大小沒有任何限制。這不會覆寫來源查詢引擎可能有的聯結大小限制。

  • 跨來源資料集 — 這種聯結類型包含來自不同資料來源的資料表,這些資料來源並未儲存在中SPICE。對於這些類型的聯結, QuickSight 會自動識別資料集中最大的資料表。所有其他次要表格的組合大小必須小於 1 GB。

  • 儲存在的資料集 SPICE — 這種類型的聯結包含所有擷取到SPICE的資料表。此聯結中所有次要資料表的合併大小不得超過 20 GB。

如需資SPICE料集大小計算的詳細資訊,請參閱估計 SPICE 資料集的大小

聯結的資料集可以使用直接查詢嗎?

同來源資料集支援直接查詢 (假設使用直接查詢沒有其他限制)。例如,S3 資料來源不支援直接查詢,因此仍必須使用SPICE相同來源的 S3 資料集。

跨來源資料集必須使用SPICE。

計算欄位可以在聯結中使用嗎?

所有聯結的資料集都可以使用計算欄位,但計算欄位不能在任何 "on" 子句中使用。

地理資料可以用於聯結嗎?

同來源資料集支援地理資料類型,但地理欄位不能在任何 "on" 子句中使用。

跨來源資料集不支援任何形式的地理資料。

如需跨資料來源聯結資料表的一些範例,請參閱 AWS 大數據部落格上的 Amazon 跨資料來源聯結 QuickSight文章。

建立聯結

使用以下程序聯結資料表供您在資料集內使用。開始之前,請先匯入或連接到您的資料。您可以在 Amazon 支援的任何資料來源之間建立聯結 QuickSight,物聯網 (IoT) 資料除外。例如,您可以在 Amazon S3 儲存貯體中新增逗號分隔值 (.csv) 檔案、資料表、檢視、SQL查詢或JSON物件。

若要新增一或多個聯結
  1. 開啟您要使用的資料集。

  2. (選用) 開始之前,請決定是否要停用根據資料範例自動產生的預覽。若要關閉功能,請選擇右上角的自動預覽。預設情況下它是開啟的。

  3. 如果您尚未選擇查詢模式,請選擇查詢模式

    選擇SPICE將資料集儲存在中 SPICE,或選擇「直接查詢」以每次提取即時資料。如果資料集包含一個或多個手動上傳的檔案,資料集將自動儲存在 SPICE 中。

    如果您選擇 SPICE,則會將資料擷取到中 QuickSight。使用該資料集的視覺化效果在 SPICE 中執行查詢,而不是在資料庫上執行查詢。

    如果您選擇直接查詢,則資料不會擷取到 SPICE。使用該資料集的視覺化效果在資料庫上執行查詢,而不是在 SPICE 中。

    如果您選擇查詢模式,請確保在聯結中設定唯一鍵 (如果適用),以提高載入視覺化效果時的效能。

  4. 在資料準備頁面上,選擇新增資料

  5. 在開啟的新增資料頁面中,選擇以下選項之一並完成下列步驟:

    • 從資料集中新增資料:

      1. 選擇資料集

      2. 從清單中選取資料集。

      3. 選擇選取。

    • 從資料來源新增資料:

      1. 選擇資料來源

      2. 從清單中選取資料來源。

      3. 選擇選取

      4. 從清單中選取資料表。

      5. 選擇選取

    • 透過多次新增資料表來建立自我聯結。名稱後面會出現一個計數器。例如 ProductProduct (2)Product (3)欄位篩選條件區段內的欄位名稱附有計數器,讓您可得知特定欄位是取自資料表的哪個執行個體。

    • 選擇上傳檔案來新增檔案,然後選擇要聯結的檔案。

  6. (選擇性) 選擇 [使SQL用自訂] 以開啟查詢編輯器並撰寫SQL資料來源的查詢。

  7. (選用) 新增資料後,透過選擇資料表選單圖示與每個資料表互動。透過拖放來重新排列資料表。

    出現帶有紅點的圖示表示您需要設定相應聯結。尚未設定的聯結會出現兩個紅點。若要建立聯結,請選擇第一個聯結組態圖示。

    Database icon labeled "Sale" connected to another icon with red dots indicating configuration needed.
  8. (選用) 若要變更現有聯結,請透過選擇兩個表之間的聯結圖示,來重新開啟聯結組態

    聯結組態窗格開啟。在聯結介面上,指定聯結類型,以及要用來聯結資料表的欄位。

  9. 畫面底部會提供選項,讓您將某個資料表中的欄位設為等於另一資料表中的欄位。

    Join configuration interface showing fields to select and match from Sale and City tables.
    1. Join clauses (聯結子句) 區段,選擇各個資料表的聯結資料欄。

      Join configuration interface showing City Key selection in dropdown and join clause setup.

      (選用) 如果您選取的資料表要依據多個資料欄進行聯結,請選擇 Add a new join clause (新增聯結子句)。如此將使聯結子句多出一列,讓您可以指定下一組要聯結的資料欄。重複這個程序,直到您已識別兩個資料物件的所有聯結資料欄。

      Join configuration interface showing FeedbackDetails and New custom SQL columns with matching fields.
  10. 聯結組態窗格中,選擇要套用的聯結類型。如果聯結欄位是一個或兩個資料表的唯一索引鍵,請啟用唯一索引鍵設定。唯一索引鍵僅套用於直接查詢,不套用於 SPICE 資料。

    如需聯結的詳細資訊,請參閱 聯結類型

    Join types diagram showing Inner, Left, Right, and Full, with Right highlighted as recommended.
  11. 選擇 Apply (套用) 以確認您的選擇。

    若要取消而不進行任何變更,請選擇取消

  12. 工作空間中的聯結圖示會變更以顯示新的關係。

    Join icon showing a connection between two database symbols labeled Sale and City.
  13. (選用) 在欄位區段中,可以使用每個欄位的選單執行下列一項或多項操作:

    • 將階層新增至地理空間欄位。

    • 包含排除欄位。

    • 編輯欄位的名稱和描述

    • 變更資料類型

    • 新增計算 (計算欄位)。

    • 限制為只有我能存取,從而防止其他人存取。當您在已經使用的資料集中新增欄位時,這會很有用。

  14. (選用) 在篩選條件區段,您可以新增或編輯篩選條件。如需詳細資訊,請參閱 在 Amazon 過濾數據 QuickSight

聯結類型

Amazon QuickSight 支持以下聯接類型:

  • 內部聯結

  • 左外部聯結和右外部聯結

  • 完整外部聯結

底下將深入探討各種聯結類型處理資料的方式。範例資料所使用的資料表如下,其名稱是 widgetsafety rating

SELECT * FROM safety-rating rating_id safety_rating 1 A+ 2 A 3 A- 4 B+ 5 B SELECT * FROM WIDGET widget_id widget safety_rating_id 1 WidgetA 3 2 WidgetB 1 3 WidgetC 1 4 WidgetD 2 5 WidgetE 6 WidgetF 5 7 WidgetG

內部聯結

當您只想查看兩個資料表互有相符的資料時,請使用內部聯結 ( Two overlapping circles representing a Venn diagram or intersection concept. )。例如,假設您對 safety-ratingwidget 資料表執行內部聯結。

如以下結果集所示,沒有安全評分的小工具已移除,未與任何小工具相關聯的安全評分也已移除。結果僅包含完全相符的資料列。

SELECT * FROM safety-rating INNER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 3 A- 1 WidgetA 3 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 5 B 6 WidgetF 5

左外部聯結和右外部聯結

這一類又稱為左外部聯結或右外部聯結。當您想要查看某個資料表的所有資料並僅查看另一資料表中相符的資料列時,請使用左外部聯結 ( Two circles, one blue and one gray, partially overlapping to form a Venn diagram. ) 或右外部聯結 ( Two circular icons: a gray one with a checkmark and a blue one with an arrow. )。

透過圖形界面,您可以看到位於右側或左側的是哪個資料表。在SQL聲明中,第一個表被認為是在左邊。因此,選擇左外部聯結或相對的右外部聯結,僅取決於資料表在查詢工具中的配置順序。

例如,假設您對 safety-rating (左側資料表) 和 widgets (右側資料表) 執行左外部聯結 ( Two circles, one blue and one gray, partially overlapping to form a Venn diagram. )。在此情況下將傳回所有 safety-rating 資料列,並且僅傳回相符的 widget 資料列。結果集內呈空白之處即表示沒有相符的資料。

SELECT * FROM safety-rating LEFT OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 3 A- 1 WidgetA 3 4 B+ 5 B 6 WidgetF 5

若您改為使用右外部聯結 ( Two circular icons: a gray one with a checkmark and a blue one with an arrow. ),以同樣的順序呼叫資料表,則 safety-rating 位於左側,widgets 位於右側。在此情況下將僅傳回相符的 safety-rating 資料列,並且傳回所有 widget 資料列。結果集內呈空白之處即表示沒有相符的資料。

SELECT * FROM safety-rating RIGHT OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 3 A- 1 WidgetA 3 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 5 WidgetE 5 B 6 WidgetF 5 7 WidgetG

完整外部聯結

這一類有時簡稱外部聯結,但此用語可能是指左外部聯結、右外部聯結或完整外部聯結。為了明確其含意,本文將使用全名:完整外部聯結。

使用完整外部聯結 ( Two blue circular icons overlapping to form a figure-eight shape. ) 查看相符的資料,以及兩個資料表中不相符的資料。此一類型的聯結將包括兩個資料表中的所有資料列。例如,假設您對 safety-ratingwidget 資料表執列完整外部聯結,便會傳回所有資料列。相符的資料列將彼此對齊,而所有額外的資料則納入至單獨的各列。結果集內呈空白之處即表示沒有相符的資料。

SELECT * FROM safety-rating FULL OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 3 A- 1 WidgetA 3 4 B+ 5 B 6 WidgetF 5 5 WidgetE 7 WidgetG