在 Windows 上設定 PolyBase 相應放大群組

適用於:SQL Server - 僅限 WindowsAzure SQL 受控執行個體

本文描述如何在 Windows 上設定 PolyBase 相應放大群組。 這會建立 SQL Server 執行個體叢集,以相應放大方式處理來自外部資料來源 (例如 Hadoop 或 Azure Blob 儲存體) 的大型資料集,以提高查詢效能。

重要

Microsoft SQL Server PolyBase 向外延展群組將會淘汰。 向外延展群組功能將從 SQL Server 2022 (16.x) 產品移除。 PolyBase 資料虛擬化將在 SQL Server 作為向上擴充的功能來繼續受到完整支援。 如需詳細資訊,請參閱 Microsoft SQL Server 平台上的巨量資料選項

必要條件

  • 相同網域內有超過一部電腦。

  • 一個執行 PolyBase 服務的網域使用者帳戶。 建議使用群組受控服務帳戶 (gMSA)。 如需詳細資訊,請參閱群組受控服務帳戶概觀

程序概觀

下列步驟摘要建立 PolyBase 相應放大群組的程序。 下一節會提供每個步驟更詳細的逐步解說。

  1. 在 N 部電腦上安裝同一個含有 PolyBase 的 SQL Server 版本。

  2. 選取一個 SQL Server 執行個體做為前端節點。

  3. 使用 sp_polybase_join_group,加入其餘的 SQL Server 執行個體作為計算節點。

  4. 使用 sys.dm_exec_compute_nodes (Transact-SQL) 監視群組中的節點。

  5. 選擇性。 使用 sp_polybase_leave_group (Transact-SQL) 移除計算節點。

範例逐步解說

這會使用下列項目逐步設定 PolyBase 群組︰

  1. 位於網域 PQTH4A 中的兩部電腦 電腦名稱為︰

    • PQTH4A-CMP01

    • PQTH4A-CMP02

  2. 網域帳戶:PQTH4A\PolyBaseUser

在所有電腦上安裝包含 PolyBase 的 SQL Server

  1. 執行 setup.exe。

  2. 在 [功能選取] 頁面上,選取 [適用於外部資料的 PolyBase 查詢服務] 。

  3. 在 [伺服器設定] 頁面上,針對 SQL Server PolyBase 引擎和 SQL Server PolyBase 資料移動服務,請使用網域帳戶 PQTH4A\PolyBaseUser。

  4. 在 [PolyBase 組態] 頁面上,選取 [Use the SQL Server instance as part of a PolyBase scale-out group (使用此 SQL Server 執行個體作為 PolyBase 向外延展群組的一部分)] 。 這會開啟防火牆,以允許 PolyBase 服務的連入連線。 SQL Server 安裝精靈會自動在 Windows Server 防火牆中公開下列 TCP 通訊埠:1433、16450-16453 和 17001。 如果前端節點是 SQL Server 具名執行個體,您還必須將 SQL Server 連接埠手動新增至前端節點的 Windows 防火牆,同時在此前端節點上啟動 SQL Browser。 僅可在 PolyBase 向外延展群組的伺服器防火牆上允許連接埠。

  5. 安裝程式完成之後,執行 services.msc。 確認 SQL Server、PolyBase Engine 和 PolyBase Data Movement Service 正在執行中。

    A screenshot from SQL Server Configuration Manager, showing the PolyBase services.

選取一個 SQL Server 作為前端節點

安裝程式完成之後,這兩部電腦可用來做為 PolyBase 群組前端節點。 在此範例中,我們選擇 PQTH4A-CMP01 上的 "MSSQLSERVER" 執行個體作為前端節點。

新增其他 SQL Server 節點作為計算節點

  1. 連接到 PQTH4A-CMP02 上的 SQL Server。

  2. 執行預存程序 sp_polybase_join_group

    -- Enter head node details:
    -- head node machine name, head node dms control channel port, head node sql server name  
     EXEC sp_polybase_join_group 'PQTH4A-CMP01', 16450, 'MSSQLSERVER';
    
  3. 在計算節點 (PQTH4A-CMP02) 上執行 services.msc。

  4. 關閉 PolyBase 引擎並重新啟動 PolyBase 資料移動服務。

注意

當 PolyBase 引擎服務在前端節點中重新啟動或停止時,資料移動服務 (DMS) 服務會在 DMS 與 Polybase 引擎服務 (DW) 之間關閉通道時立即停止。 如果 DW 引擎重新啟動超過兩次,則 DMS 會進入 90 分鐘的無干擾週期,且必須等候 90 分鐘才能進行下一次自動啟動嘗試。 在這種情況下,您應該在所有節點上手動啟動此服務。

選擇性:移除計算節點

  1. 連線到計算節點 SQL Server (PQTH4A-CMP02)。

  2. 執行預存程序 sp_polybase_leave_group

    EXEC sp_polybase_leave_group;  
    
  3. 在已移除的計算節點 (PQTH4A-CMP02) 上執行 services.msc。

  4. 啟動 PolyBase Engine。 重新啟動 PolyBase 資料移動服務。

  5. 透過在 PQTH4A-CMP01 上執行 DMV sys.dm_exec_compute_nodes,確認節點已移除。 現在,PQTH4A-CMP02 將可用來做為獨立的前端節點

限制

  • 如果您將預設 SQL Server 執行個體設定為接聽 1433 以外的 TCP 通訊埠,就無法將其當作 PolyBase 向外延展群組中的前端節點來使用。 執行 sp_polybase_join_group 時,如果傳遞 'MSSQLSERVER' 作為執行個體名稱,SQL Server 會假設連接埠 1433 是接聽程式連接埠,因此資料移動服務在啟動時將無法連線到前端節點。

  • Always On 可用性群組不支援 PolyBase 向外延展群組。