SQL Server 2019 のビッグ データ クラスターで Machine Learning Services を使用して 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 プラットフォームのビッグ データ オプション」を参照してください。

Machine Learning Services を使用して SQL Server ビッグ データ クラスターのマスター インスタンスで Python や R のスクリプトを実行できます。

注意

また、Java 言語拡張機能を使用して、SQL Server ビッグ データ クラスターのマスター インスタンスで Java コードを実行することもできます。 以下の手順に従うと、SQL Server言語拡張機能も有効になります。

Machine Learning Services を有効にする

Machine Learning Services は、SQL Server 2019 のビッグ データ クラスターに既定でインストールされるため、個別にインストールする必要はありません。

Machine Learning Services を有効にするには、マスター インスタンスで次のステートメントを実行します。

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

ビッグ データ クラスターのマスター インスタンスで、Python および R のスクリプトを実行する準備ができました。 初めてスクリプトを実行する場合は、「次のステップ」の下のクイックスタートを参照してください。

注意

可用性グループ リスナー接続で構成設定を設定することはできません。 ビッグ データ クラスターが高可用性で展開されている場合は、レプリカごとに external scripts enabled を設定します。 「クラスターで高可用性を有効にする」を参照してください。

クラスターで高可用性を有効にする

高可用性で SQL Server ビッグ データ クラスターを展開すると、その展開によってマスター インスタンスの可用性グループが作成されます。 Machine Learning Services を有効にするには、可用性グループの各インスタンスに 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;"
    

    レプリカごとにこのステップを繰り返します。

デモンストレーション

次の図は、このプロセスを示しています。

外部スクリプトを有効にするために必要な手順のデモを提供するコマンド プロンプトのスクリーンショット。

ビッグ データ クラスターのマスター インスタンスで、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 パッケージのインストール

Monitor

セキュリティ

Spark の機械学習

次のステップ