適用於: Windows 上的 SQL Server 2016(13.x)及更新版本
含有 PolyBase 的獨立 SQL Server 執行個體會在處理 Hadoop 或 Azure Blob 儲存體中的大量資料集時成為效能瓶頸。 PolyBase 群組功能可讓您建立 SQL Server 執行個體的叢集,利用向外延展方式處理來自外部資料來源 (例如 Hadoop 或 Azure Blob 儲存體) 的大型資料集,以提高查詢效能。 您現在可以調整 SQL Server 計算,以符合您工作負載的效能需求。 PolyBase 向外延展群組是一組 SQL Server 執行個體,能讓您在平行處理結構中處理龐大的外部資料集。 當您將更多 SQL Server 執行個體新增至群組時,資料載入及查詢效能可線性增加。
重要
MICROSOFT SQL Server PolyBase 向外延展群組已淘汰。 已從 SQL Server 2022 (16.x) 和更新版本的產品中移除向外延展群組功能。 PolyBase 資料虛擬化將在 SQL Server 作為向上擴充的功能來繼續受到完整支援。 如需詳細資訊,請參閱 Microsoft SQL Server 平台的巨量資料選項。
請參見 SQL Server 中的 PolyBase 資料虛擬化 及 SQL Server 中的 PolyBase 資料虛擬化。
前端節點
前端節點包含要提交 PolyBase 查詢的目標 SQL Server 執行個體。 每個 PolyBase 群組只能包含一個前端節點。 前端節點是 SQL Server 執行個體上 SQL Server 資料庫引擎、PolyBase 引擎與 PolyBase 資料移動服務的邏輯群組。 使用 SQL Server 2017 與 SQL Server 2016 時,前端節點必須是 Enterprise 版本。 從 SQL Server 2019 開始,PolyBase 前端節點可以是 Enterprise 或 Standard 版本。
計算節點
計算節點包含 SQL Server 執行個體,可協助處理外部資料上的向外延展查詢。 計算節點是 SQL Server 執行個體上 SQL Server 和 PolyBase Data Movement Service 的邏輯群組。 一個 PolyBase 群組可以有多個計算節點。 前端節點和計算節點全都必須執行同一個 SQL Server 版本。 SQL Server 2016 的初始版本允許計算節點為 Enterprise 或 Standard 版本。 從 SQL Server 2016 SP1 開始,所有版本的 SQL Server 都可以成為計算節點。
放大讀取
當你查詢外部的 SQL Server、Oracle 或 Teradata 實例時,分區資料表會受益於擴展讀取。 PolyBase 擴展群組中的每個節點最多可旋轉八台讀取器以讀取外部資料。 而且每個讀取器會獲派一個要在外部表格中讀取的分割區。
舉例來說,假設你有一個外部 SQL Server 表格,裡面有 12 個每月分割區,以及一個三節點的 PolyBase 擴展群組,每個節點會使用四個 PolyBase 讀取器來處理這 12 個分割區中的每一個。 此案例如下圖所示。
注意
這項功能與 Hadoop 中的擴展讀寫操作不同。
分散式查詢處理
PolyBase 查詢會提交到前端節點上的 SQL Server。 參考外部表格之查詢的這一部分會交付至 PolyBase Engine。
PolyBase Engine 是 PolyBase 查詢背後的索引碼元件。 它解析外部資料的查詢,產生查詢計畫,並將工作分發給計算節點的資料移動服務執行。 工作完成之後,它會接收來自計算節點的結果,然後提交給 SQL Server 進行處理並傳回給用戶端。
PolyBase Data Movement Service 會接收來自 PolyBase Engine 的指示,並在 HDFS 與 SQL Server 之間傳輸資料,以及在前端和計算節點上的 SQL Server 執行個體之間傳輸資料。