Configuración de los grupos de escalado horizontal de PolyBase en Windows
Se aplica a: SQL Server: solo Windows Azure SQL Managed Instance
En este artículo se describe cómo configurar un grupo de escalado horizontal de PolyBase en Windows. Esto crea un clúster de instancias de SQL Server para procesar grandes conjuntos de datos a partir de orígenes de datos externos, como Hadoop o Azure Blob Storage, en un modo de escalado horizontal para mejorar el rendimiento de las consultas.
Importante
Los grupos de escalado horizontal de PolyBase de Microsoft SQL Server se retirarán. La funcionalidad de los grupos de escalabilidad horizontal se quitará del producto en SQL Server 2022 (16.x). La virtualización de datos de PolyBase seguirá siendo totalmente compatible como una característica de escalado vertical en SQL Server. Para obtener más información, consulte Opciones de macrodatos en la plataforma Microsoft SQL Server.
Requisitos previos
Más de una máquina en el mismo dominio.
Una cuenta de usuario de dominio para ejecutar los servicios de PolyBase. Se recomienda una cuenta de servicio administrada de grupo (gMSA). Para obtener más información, consulte grupo Managed Service Accounts Overview (Información general sobre cuentas de servicio administradas de grupo).
Información general del proceso
Los pasos siguientes resumen el proceso de creación de un grupo de escalado horizontal de PolyBase. La siguiente sección proporciona una descripción más detallada de cada paso.
Instale la misma versión de SQL Server con PolyBase en cualquier número de máquinas.
Seleccione una instancia de SQL Server como nodo principal.
Agregue las instancias de SQL Server restantes como nodos de ejecución usando sp_polybase_join_group.
Supervise los nodos en el grupo con sys.dm_exec_compute_nodes (Transact-SQL).
Opcional. Quite un nodo de ejecución con sp_polybase_leave_group (Transact-SQL).
Tutorial de ejemplo
En este tutorial se muestran los pasos necesarios para configurar un grupo de PolyBase con:
Dos máquinas en el dominio PQTH4A . Los nombres de las máquinas son:
PQTH4A-CMP01
PQTH4A-CMP02
Cuenta de dominio: PQTH4A\PolyBaseUser
Instalación de SQL Server con PolyBase en todas las máquinas
Ejecute setup.exe.
En la página Selección de características, elija PolyBase Query Service for External Data (Servicio de consultas PolyBase para datos externos).
En la página Configuración del servidor, use la cuenta de dominio PQTH4A\PolyBaseUser para el motor y el servicio de movimiento de datos de SQL Server PolyBase.
En la página PolyBase Configuration (Configuración de PolyBase), seleccione la opción Use the SQL Server instance as part of a PolyBase scale-out group(Usar la instancia de SQL Server como parte de un grupo de escalado horizontal de PolyBase). Se abrirá el firewall para permitir las conexiones entrantes a los servicios de PolyBase. El Asistente para instalación de SQL Server expone automáticamente los siguientes puertos TCP en el firewall de Windows Server: 1433,16450-16453 y 17001. Si el nodo principal es una instancia con nombre de SQL Server, debes agregar manualmente el puerto de SQL Server a Firewall de Windows en el nodo principal y también iniciar la instancia de SQL Browser en el nodo principal. Los puertos solo se deben permitir en los firewalls de los servidores del grupo de escalado horizontal de PolyBase.
Una vez completada la instalación, ejecute services.msc. Compruebe que están ejecutando SQL Server, el motor de PolyBase y el servicio de movimiento de datos de PolyBase.
Seleccione una instancia de SQL Server como nodo principal.
Una vez completada la instalación, las dos máquinas pueden funcionar como nodos principales del grupo de PolyBase. En este ejemplo, elegimos la instancia «MSSQLSERVER» de PQTH4A-CMP01 como nodo principal.
Adición de otras instancias de SQL Server como nodos de ejecución
Conéctese a SQL Server en PQTH4A-CMP02.
Ejecute el procedimiento almacenado 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';
Ejecute services.msc en el nodo de ejecución (PQTH4A-CMP02).
Apague el motor de PolyBase y reinicie el servicio de movimiento de datos de PolyBase.
Nota:
Cuando el servicio de motor de PolyBase se reinicia o se detiene en el nodo principal, los servicios del servicio de movimiento de datos (DMS) se detienen en cuanto se cierra el canal de comunicación entre DMS y el servicio de motor de PolyBase (DW). Si el motor de DW se reinicia más de dos veces, DMS entra en un período no interactivo durante 90 minutos y debe esperar 90 minutos para el siguiente intento de inicio automático. En esta situación, debe iniciar este servicio manualmente en todos los nodos.
Opcional: eliminación un nodo de ejecución
Conéctese al nodo de ejecución de SQL Server (PQTH4A-CMP02).
Ejecuta el procedimiento almacenado
sp_polybase_leave_group
.EXEC sp_polybase_leave_group;
Ejecute services.msc en el nodo de ejecución que se va a eliminar (PQTH4A-CMP02).
Inicie el motor de PolyBase. Reinicie el servicio de movimiento de datos de PolyBase.
Compruebe que el nodo se ha eliminado ejecutando el DMV
sys.dm_exec_compute_nodes
en PQTH4A-CMP01. Ahora, PQTH4A-CMP02 funcionará como nodo principal independiente.
Limitaciones
Si tiene una instancia predeterminada de SQL Server configurada para escuchar en un puerto TCP distinto de 1433, no puede usarla como nodo principal en un grupo de escalado horizontal de PolyBase. Al ejecutar
sp_polybase_join_group
, si pasas «MSSQLSERVER» como nombre de instancia, SQL Server asumirá que el puerto 1433 es el puerto del cliente de escucha, por lo que el servicio de movimiento de datos no puede conectarse al nodo principal al iniciarse.Los grupos de escalabilidad horizontal de PolyBase no se admiten con grupos de disponibilidad AlwaysOn.