對安裝有機器學習服務的 SQL Server 2019 巨量資料叢集執行 Python 與 R 指令碼

適用於:SQL Server 2019 (15.x)

重要

Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章Microsoft SQL Server 平台上的巨量資料選項

您可以對安裝有機器學習服務SQL Server 巨量資料叢集主要執行個體,執行 Python 與 R 指令碼。

注意

您也可以使用 Java 語言延伸模組,在 SQL Server 巨量資料叢集的主要執行個體上執行 Java 程式碼。 執行下列步驟也將啟用 SQL Server 語言延伸模組

啟用機器學習服務

根據預設,機器學習服務會安裝在 SQL Server 2019 巨量資料叢集上,而且不需要個別安裝。

若要啟用機器學習服務,請對主要執行個體上執行下列陳述式:

EXEC sp_configure 'external scripts enabled', 1
RECONFIGURE WITH OVERRIDE
GO

您現在已可對巨量資料叢集的主要執行個體執行 Python 與 R 指令碼。 請參閱後續步驟下的快速入門來執行第一個指令碼。

注意

無法在可用性群組接聽程式連線上設定組態設定。 如果以高可用性部署巨量資料叢集,則會在每個複本上設定 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
    

    注意

    可能需要一些時間才能使用外部 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;"
    

    針對每個複本重複此步驟。

示範

下圖示範這項程序。

A screenshot of the command prompt providing a demo of the steps necessary to enable external scripts.

您現在已可對巨量資料叢集的主要執行個體執行 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 快速入門

R 快速入門

SQL Server 巨量資料叢集機器學習教學課程

Python 教學課程

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

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

NYC 計程車秘訣 (分類)

R 教學課程

滑雪板出租 (決策樹)

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

NYC 計程車秘訣 (分類)

SQL Server 巨量資料叢集機器學習操作指南

資料探索及模型化

資料類型轉換

部署

預測

套件管理

安裝新的 Python 套件

安裝新的 R 套件

監視器

安全性

Spark 機器學習服務

後續步驟