適用於:SQL Server 2019 (15.x)
Important
MICROSOFT SQL Server 2019 巨量數據叢集已淘汰。 SQL Server 2019 巨量數據叢集的支援已於 2025 年 2 月 28 日結束。 如需詳細資訊,請參閱 Microsoft SQL Server 平臺上的公告部落格文章和巨量數據選項。
您可以使用機器學習服務,在 SQL Server 巨量數據叢集的主要實例上執行 Python 和 R 腳本。
Note
您也可以使用 Java 語言延伸模組,在 SQL Server 巨量數據叢集的主要實例上執行 Java 程式代碼。 遵循下列步驟也會啟用 SQL Server 語言延伸模組。
啟用機器學習服務
機器學習服務預設會在 SQL Server 2019 巨量數據叢集上安裝,而且不需要個別安裝。
若要啟用機器學習服務,請在主要實例上執行此語句:
EXEC sp_configure 'external scripts enabled', 1
RECONFIGURE WITH OVERRIDE
GO
您現在已準備好在巨量數據叢集的主要實例上執行 Python 和 R 腳本。 請參閱 後續步驟 底下的快速入門,以執行您的第一個腳本。
Note
組態設定無法在可用性群組接聽程式連線上設定。 如果巨量資料叢集是以高可用性部署,則會在每個復本上設定 external scripts enabled 。 請參閱 在具有高可用性的叢集上啟用。
在具有高可用性的叢集上啟用
當您 使用高可用性部署 SQL Server 巨量數據叢集時,部署會為主要實例建立可用性群組。 若要啟用機器學習服務,請在可用性群組的每個實體上設定 external scripts enabled 。 針對巨量數據叢集,您必須在 SQL Server 主要實例的每個複本上執行sp_configure
下一節說明如何在每個實例上啟用外部腳本。
為每個實例建立外部負載平衡器
針對可用性群組上的每個復本,建立負載平衡器以允許您連線到實例。
kubectl expose pod <pod-name> --port=<connection port number> --name=<load-balancer-name> --type=LoadBalancer -n <kubernetes namespace>
本文中的範例會使用下列值:
-
<pod-name>:master-# -
<connection port number>:1533 -
<load-balancer-name>:mymaster-# -
<kubernetes namespace>:mssql-cluster
更新您環境的下列文本,並執行命令:
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 會傳回下列輸出。
service/mymaster-0 exposed
service/mymaster-1 exposed
service/mymaster-2 exposed
每個負載平衡器都是主要復本端點。
在每個復本上啟用文本執行
取得主要復本端點的IP位址。
下列命令將傳回副本端點的外部 IP 位址。
kubectl get services <load-balancer-name> -n <kubernetes namespace>若要取得此案例中每個複本的外部IP位址,請執行下列命令:
kubectl get services mymaster-0 -n mssql-cluster kubectl get services mymaster-1 -n mssql-cluster kubectl get services mymaster-2 -n mssql-clusterNote
有可能需要一些時間,才能夠等到外部的IP位址可供使用。 定期執行上述腳本,直到每個端點傳回外部IP位址為止。
連線到主要復本端點,並啟用腳本執行。
執行此語句:
EXEC sp_configure 'external scripts enabled', 1 RECONFIGURE WITH OVERRIDE GO例如,您可以執行上述命令,使用
sqlcmd。 下列範例會連線到主要復本端點,並啟用腳本執行。 將腳本中的值更新為符合您的環境。sqlcmd -S <IP address>,1533 -U <user name> -P <password> -Q "EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;"針對每個復本重複此步驟。
Demonstration
下圖示範此過程。
您現在已準備好在巨量數據叢集的主要實例上執行 Python 和 R 腳本。 請參閱 後續步驟 底下的快速入門,以執行您的第一個腳本。
刪除主要復本端點
在 Kubernetes 叢集上,刪除每個複本的端點。 端點會在 Kubernetes 中公開為負載平衡服務。
下列命令會刪除負載平衡服務。
kubectl delete svc <load-balancer-name> -n mssql-cluster
如需本文中的範例,請執行下列命令。
kubectl delete svc mymaster-0 -n mssql-cluster
kubectl delete svc mymaster-1 -n mssql-cluster
kubectl delete svc mymaster-2 -n mssql-cluster