この記事では、 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 では使用できません。
次のステップ
- Azure SQL Managed Instance の Machine Learning Services の概要を参照してください。
- Machine Learning Services で Python を使用する方法については、「 Python スクリプトの実行」を参照してください。
- Machine Learning Services で R を使用する方法については、「 R スクリプトの実行」を参照してください。