适用范围:SQL Server - 仅限 Windows
Azure 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 横向扩展组的过程。 下一节提供了各步骤更详细的演练过程。
- 在 N 台计算机上安装相同版本的具有 PolyBase 的 SQL Server。 
- 选择一个 SQL Server 实例作为头节点。 
- 使用 sp_polybase_join_group将剩余的 SQL Server 实例添加为计算节点。 
- 使用 sys.dm_exec_compute_nodes (Transact-SQL) 监视组中的节点。 
- 可选。 使用 sp_polybase_leave_group (Transact-SQL) 删除计算节点。 
示例演练
它将演示使用以下内容配置 PolyBase 组的步骤:
- 域 PQTH4A 中的两台计算机,计算机名称为: - PQTH4A-CMP01 
- PQTH4A-CMP02 
 
- 域帐户:PQTH4A\PolyBaseUser 
在所有机器上安装具有 PolyBase 的 SQL Server
- 运行 setup.exe。 
- 在“功能选择”页上,选择“针对外部数据的 PolyBase 查询服务”。 
- 在“服务器配置”页上,对 SQL Server PolyBase 引擎和 SQL Server PolyBase 数据移动服务使用域帐户 PQTH4A\PolybaseUser。 
- 在“PolyBase 配置”页中,选择“将 SQL Server 实例用作 PolyBase 横向扩展组的一部分”选项。 这将打开防火墙以允许 PolyBase 服务的传入连接。 SQL Server安装向导会自动在 Windows Server 防火墙中公开以下 TCP 端口:1433、16450-16453 和 17001。 如果头节点是 SQL Server 命名实例,则还必须手动将 SQL Server 端口添加到头节点上的 Windows 防火墙,同时在头节点上启动 SQL Browser。 只有在 PolyBase 横向扩展组中的服务器的防火墙上才允许有端口。 
- 安装完成后,运行“services.msc” 。 验证 SQL Server、PolyBase 引擎和 PolyBase 数据移动服务是否在运行。   
选择一个 SQL Server 作为头节点
安装完成后,两台计算机都可充当 PolyBase 组头节点。 在此示例中,我们选择 PQTH4A-CMP01 上的“MSSQLSERVER”实例作为头节点。
将其他 SQL Server 实例添加为计算节点
- 连接到 PQTH4A-CMP02 上的 SQL Server。 
- 运行存储过程 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';
- 在计算节点 (PQTH4A-CMP02) 上运行 services.msc。 
- 关闭 PolyBase 引擎并重启 PolyBase 数据移动服务。 
注意
当 PolyBase 引擎服务在头节点中重新启动或停止时,只要数据移动服务 (DMS) 和 PolyBase 引擎服务 (DW) 之间的信道关闭,DMS 服务就会停止。 如果 DW 引擎重启两次以上,则 DMS 会进入 90 分钟的静默期,并且必须等待 90 分钟才能进行下一次自动启动尝试。 在这种情况下,应在所有节点上手动启动此服务。
可选:删除计算节点
- 连接到计算节点 SQL Server (PQTH4A-CMP02)。 
- 运行存储过程 - sp_polybase_leave_group。- EXEC sp_polybase_leave_group;
- 在正在删除的计算节点 (PQTH4A-CMP02) 上运行 services.msc。 
- 启动 PolyBase 引擎。 重启 PolyBase 数据移动服务。 
- 验证 PQTH4A-CMP01 上是否已通过运行 DMV - sys.dm_exec_compute_nodes删除该节点。 现在,PQTH4A-CMP02 将充当独立头节点
限制
- 如果有一个默认 SQL Server 实例配置为侦听 1433 以外的 TCP 端口,则不能将其用作 PolyBase 横向扩展组中的头节点。 执行 - sp_polybase_join_group时,如果将“MSSQLSERVER”作为实例名称传递,SQL Server 将假设端口 1433 是侦听器端口,因此数据移动服务将无法在启动时连接到头节点。
- AlwaysOn 可用性组不支持 PolyBase 横向扩展组。