次の方法で共有


Azure SQL Managed Instance と SQL Server の Machine Learning Services の主な違い

この記事では、 Azure SQL Managed Instance の Machine Learning Services と SQLServer Machine Learning Services の機能の主な違いをいくつか説明します。

言語のサポート

SQL Managed Instance と SQL Server の両方の Machine Learning Services では、Python と R の機能拡張フレームワークがサポートされています。 SQL Managed Instance の主な違いは、Python と R のみがサポートされ、Java などの外部言語を追加できないことです。

Python と R の初期バージョンは、SQL Managed Instance と SQL Server で異なります。

Platform Python ランタイムのバージョン R ランタイムのバージョン
Azure SQL Managed Instance 3.7.2 3.5.2
SQL Server 2022 * - -
SQL Server 2019 3.7.1 3.5.2
SQL Server 2017 3.5.2 および 3.7.2 (CU22 以降) 3.3.3 および 3.5.2 (CU22 以降)
SQL Server 2016 利用できません 3.2.2 および 3.5.2 (SP2 CU14 以降)

* SQL Server 2022 以降では、R、Python、Java のランタイムは、SQL セットアップ内で配布またはインストールされなくなります。 代わりに、R または Python のカスタム ランタイムとパッケージをインストールします。 詳細については、「Windows に SQL Server 2022 Machine Learning Services (Python と R) をインストールする」を参照してください。

Python および R パッケージ

SQL Managed Instance では、外部ランタイム (Java など) に依存するパッケージや、インストールまたは使用のために OS API へのアクセスが必要なパッケージはサポートされていません。

Python および R パッケージの管理の詳細については、以下を参照してください。

sqlmlutils を使用してパッケージを管理する

バイナリ パッケージを出力として生成するためにローカルでビルドできる場合は、 sqlmlutilsを使用してバイナリ パッケージをインストールできます。 例については、「 sqlmlutils を使用した R パッケージのインストール」または「sqlmlutils使用した Python パッケージのインストール」を参照してください。

リソース管理

SQL Managed Instance では、 リソース ガバナーを使用して R リソースを制限することはできず、外部リソース プールはサポートされていません。

既定では、拡張が有効になっている場合、R リソースは使用可能な SQL Managed Instance リソースの最大 20% に設定されます。 この既定の割合を変更するには、 Azure サポート チケットを作成します。

機能拡張は、次の SQL コマンドを使用して有効になります (SQL Managed Instance は再起動され、数秒間使用できなくなります)。

sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;

機能拡張を無効にし、メモリと CPU リソースの 100% を SQL Server に復元するには、次のコマンドを使用します。

sp_configure 'external scripts enabled', 0;
RECONFIGURE WITH OVERRIDE;

SQL Managed Instance で使用できるリソースの合計は、選択したサービス レベルによって異なります。 詳細については、 Azure SQL Database の購入モデルに関するページを参照してください。

メモリ不足エラー

メモリ使用量は、R スクリプトで使用される量と、実行されている並列クエリの数によって異なります。 R で使用可能なメモリが不足している場合は、エラー メッセージが表示されます。 一般的なエラー メッセージは次のとおりです。

  • Unable to communicate with the runtime for 'R' script for request id: *******. Please check the requirements of 'R' runtime
  • 'R' script error occurred during execution of 'sp_execute_external_script' with HRESULT 0x80004004. ...an external script error occurred: "..could not allocate memory (0 Mb) in C function 'R_AllocStringBuffer'"
  • An external script error occurred: Error: cannot allocate vector of size.

これらのエラーのいずれかが発生した場合は、データベースを上位のサービス レベルにスケーリングすることで解決できます。

Azure SQL Managed Instance でメモリ不足エラーが発生した場合は、 sys.dm_os_out_of_memory_events確認してください。

SQL マネージド インスタンス プール

現在、Machine Learning Services は Azure SQL Managed Instance プール (プレビュー) ではサポートされていません。

外向きネットワーク アクセス

ネットワーク アクセスは許可またはブロックされ、有効にできません。 Azure SQL Managed Instance の送信ネットワーク接続は、Machine Learning Services では使用できません。

次のステップ