Ejecución de scripts de Python y R con Machine Learning Services en clústeres de macrodatos de SQL Server
Se aplica a: SQL Server 2019 (15.x)
Importante
El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Para obtener más información, consulte Opciones de macrodatos en la plataforma Microsoft SQL Server.
Se pueden ejecutar scripts de Python y R en la instancia maestra de clústeres de macrodatos de SQL Server con Machine Learning Services.
Nota
También puede ejecutar código Java en la instancia maestra de Clústeres de macrodatos de SQL Server con la extensión del lenguaje Java. Si sigue los pasos que se indican aquí, también se habilitarán las extensiones de lenguaje de SQL Server.
Habilitar Machine Learning Services
Machine Learning Services se instala de forma predeterminada en clústeres de macrodatos y no precisa de una instalación independiente.
Para habilitar Machine Learning Services, ejecute esta instrucción en la instancia maestra:
EXEC sp_configure 'external scripts enabled', 1
RECONFIGURE WITH OVERRIDE
GO
Ya está listo para ejecutar scripts de Python y R en la instancia maestra de clústeres de macrodatos. Vea las guías de inicio rápido en Pasos siguientes para ejecutar su primer script.
Nota
No se puede establecer el valor de configuración en una conexión del cliente de escucha del grupo de disponibilidad. Si la característica Clústeres de macrodatos se implementa con alta disponibilidad, establezca external scripts enabled
en cada réplica. Vea Habilitación en un clúster de alta disponibilidad.
Habilitación en un clúster de alta disponibilidad
Cuando se implementan clústeres de macrodatos de SQL Server con alta disponibilidad, la implementación crea un grupo de disponibilidad para la instancia maestra. Para habilitar Machine Learning Services, establezca external scripts enabled
en cada instancia del grupo de disponibilidad. En el caso de un clúster de macrodatos, debe ejecutar sp_configure
en cada réplica de la instancia maestra de SQL Server.
En la siguiente sección se describe cómo habilitar los scripts externos en cada instancia.
Creación de un equilibrador de carga externo para cada instancia
Para cada réplica del grupo de disponibilidad, cree un equilibrador de carga que le permita conectarse a la instancia.
kubectl expose pod <pod-name> --port=<connection port number> --name=<load-balancer-name> --type=LoadBalancer -n <kubernetes namespace>
En los ejemplos de este artículo se utilizan los valores siguientes:
<pod-name>
:master-#
<connection port number>
:1533
<load-balancer-name>
:mymaster-#
<kubernetes namespace>
:mssql-cluster
Actualice el script siguiente para su entorno y ejecute los comandos:
kubectl expose pod master-0 --port=1533 --name=mymaster-0 --type=LoadBalancer -n mssql-cluster
kubectl expose pod master-1 --port=1533 --name=mymaster-1 --type=LoadBalancer -n mssql-cluster
kubectl expose pod master-2 --port=1533 --name=mymaster-2 --type=LoadBalancer -n mssql-cluster
kubectl
devuelve la salida siguiente.
service/mymaster-0 exposed
service/mymaster-1 exposed
service/mymaster-2 exposed
Cada equilibrador de carga es un punto de conexión de la réplica maestra.
Habilitación de la ejecución de scripts en cada réplica
Obtiene la dirección IP del punto de conexión de la réplica maestra.
El siguiente comando devuelve la dirección IP externa del punto de conexión de la réplica.
kubectl get services <load-balancer-name> -n <kubernetes namespace>
Para obtener la dirección IP externa de cada réplica en este escenario, ejecute los siguientes comandos:
kubectl get services mymaster-0 -n mssql-cluster kubectl get services mymaster-1 -n mssql-cluster kubectl get services mymaster-2 -n mssql-cluster
Nota
Es posible que la dirección IP externa tarde un poco en estar disponible. Ejecute el script anterior periódicamente hasta que cada punto de conexión devuelva una dirección IP externa.
Conéctese al punto de conexión de la réplica maestra y habilite la ejecución de scripts.
Ejecute esta instrucción:
EXEC sp_configure 'external scripts enabled', 1 RECONFIGURE WITH OVERRIDE GO
Por ejemplo, puede ejecutar el comando anterior con
sqlcmd
. En el ejemplo siguiente se conecta al punto de conexión de la réplica maestra y se habilita la ejecución de scripts. Actualice los valores del script para su entorno.sqlcmd -S <IP address>,1533 -U <user name> -P <password> -Q "EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;"
Repita el paso para cada réplica.
Demostración
La imagen siguiente muestra este proceso.
Ya está listo para ejecutar scripts de Python y R en la instancia maestra de clústeres de macrodatos. Vea las guías de inicio rápido en Pasos siguientes para ejecutar su primer script.
Eliminación de los puntos de conexión de la réplica maestra
En el clúster de Kubernetes, elimine el punto de conexión para cada réplica. El punto de conexión se expone en Kubernetes como un servicio de equilibrio de carga.
El siguiente comando elimina el servicio de equilibrio de carga.
kubectl delete svc <load-balancer-name> -n mssql-cluster
En los ejemplos de este artículo, ejecute los siguientes comandos.
kubectl delete svc mymaster-0 -n mssql-cluster
kubectl delete svc mymaster-1 -n mssql-cluster
kubectl delete svc mymaster-2 -n mssql-cluster