共用方式為


在 SQL Server 2019 巨量數據叢集上使用機器學習服務執行 Python 和 R 腳本

適用於: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

每個負載平衡器都是主要復本端點。

在每個復本上啟用文本執行

  1. 取得主要復本端點的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-cluster
    

    Note

    有可能需要一些時間,才能夠等到外部的IP位址可供使用。 定期執行上述腳本,直到每個端點傳回外部IP位址為止。

  2. 連線到主要復本端點,並啟用腳本執行。

    執行此語句:

    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

SQL Server 巨量數據叢集機器學習快速入門

Python quickstarts

R quickstarts

SQL Server 巨量數據叢集機器學習教學課程

Python tutorial

滑雪板租賃業 (線性迴歸)

將客戶分類 (k-means 叢集)

NYC 計程車小費分類

R tutorials

滑雪用具出租 (決策樹)

將客戶分類 (k-means 叢集)

NYC 計程車小費分類

SQL Server 大數據叢集機器學習操作指南

數據探索和模型化

數據類型轉換

Deploy

Predictions

Package management

安裝新的 Python 套件

安裝新的 R 套件

Monitor

安全性

Spark 機器學習

Next steps