現在_SQL Server 2016 SP
_標準版を使用していて、Rサービスをインストールしたい。 ドキュメント では、スタンドアロンインストールはエンタープライズ(Machine Learning Server (Standalone)
)でのみ許可されていると言われています。
また、私は投稿を見つけました、その男が標準で並列操作を使用することができず、メモリ制限があると話している:
正確なメモリ/プロセッサの制限は何か教えてもらえますか?
重いR計算を使用するなどの詳細が必要ですが、今のところテストでは、標準版の実装が期待どおりに機能していないことを示しています。
オンラインブックの "SQL Server Machine Learning Servicesのエディション間の機能の可用性"ページ を確認してください。
基本的な統合と高度な統合の違いは規模です。高度な統合では、使用可能なすべてのコアを使用して、コンピューターが対応できる任意のサイズのデータセットを並列処理できます。基本的な統合は2つのコアとメモリに収まるデータセットに制限されています。
Books Onlineでは、次のように、このページで展開の制限について詳しく説明しています。
(スタンドアロン)サーバーのみが、Microsoft(非SQLブランド)Rサーバーまたは機械学習サーバーのインストールに含まれている操作機能を提供します。運用には、Webサービスの展開とホスティング機能が含まれます。
(データベース内)インストールの場合、ソリューションを運用するための同等のアプローチは、コードをストアドプロシージャで実行できる関数に変換するときに、データベースエンジンの機能を活用することです。
ブレントが引用しているように、主な違いの1つは規模です。
計算が非常に並列である場合、つまり、各行を互いに独立して計算できる場合、sp_execute_external_script
と@parallel = 1
を使用すると、R計算を簡単に並列実行できます。かみ砕いてメモリ不足になる可能性がある場合でも、かみつく可能性があることに注意してください。この場合、@params = N'@r_rowsPerRead INT', @r_rowsPerRead = N
を追加できます。ここで、Nは一度に読み取る行の最大数です。
上記を使用して、20億行のデータに対して10分未満でR計算を実行できました(明らかに、走行距離は異なる場合があります)。
適切な行が一緒にグループ化されるようにするなど、バッチ処理をさらに制御する必要がある場合は、Rスクリプト内からRevoScaleR関数を直接呼び出すことでこれを実現できると思いますが、これについては触れていません。
Standard Editionを絶対に使用する必要がある場合は、自分でデータをバッチ処理することで独創的にできますが、これを試したところ、コードが非常に複雑になり、Enterprise Editionストリーミングを利用するほど速くなかったことがわかりました。
SSDTはGRANT EXECUTE ANY EXTERNAL SCRIPT
をサポートしていないため、これをデプロイメントに使用している場合、問題が発生します。私はこれをユーザーの声の問題として提起しました https://feedback.Azure.com/forums/908035-sql-server/suggestions/32896864-grant-execute-any-external-script-not-recognised -b 。