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

この記事では、Azure SQL Managed Instance の Machine Learning ServicesSQL Server Machine の Learning Services の主な違いについて説明します。

言語のサポート

SQL Managed Instance と SQL Server の Machine Learning Services はどちらも、Python と R の拡張機能フレームワークをサポートしています。 SQL Managed Instance の主な相違点は次のとおりです。

  • Python と R のみがサポートされています。 Java などの外部言語を追加することはできません。

  • 初期バージョンの Python と R が異なります。

    プラットフォーム Python ランタイムのバージョン R ランタイムのバージョン
    Azure SQL Managed Instance 3.7.2 3.5.2
    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 以降)

Python および R のパッケージ

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

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

リソース管理

SQL Managed Instance では、Resource Governor よって R リソースを制限することはできません。また、外部リソース プールはサポートされていません。

既定では、機能拡張が有効になっている場合、R リソースは使用可能な SQL Managed Instance リソースの最大 20% に設定されます。 この既定の割合を変更するには、https://azure.microsoft.com/support/create-ticket/ で 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 purchasing models」 (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.

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

SQL Managed Instance のプール

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

次のステップ