Python ツールを使用して SQL Server 上にパッケージをインストールする
適用対象: SQL Server 2017 (14.x) のみ
この記事では、標準の Python ツールを使用して、新しい Python パッケージを SQL Server Machine Learning Services のインスタンスにインストールする方法について説明します。 一般に、新しいパッケージをインストールするプロセスは、標準の Python 環境のプロセスと似ています。 ただし、サーバーからインターネットに接続できない場合は、いくつかの追加の手順が必要です。
パッケージの場所とインストール パスの詳細については、「Get Python package information」(Python パッケージ情報の取得) を参照してください。
前提条件
- Python 言語オプションと共に SQL Server Machine Learning Services がインストールされている必要があります。
その他の考慮事項
パッケージは Python 3.5 に準拠し、Windows で実行する必要があります。
Python パッケージ ライブラリは SQL Server インスタンスの Program Files フォルダー内にあります。既定では、このフォルダーにインストールするには管理者権限が必要です。 詳細については、パッケージ ライブラリの場所に関するページを参照してください。
パッケージのインストールはインスタンス単位です。 Machine Learning Services のインスタンスが複数ある場合は、各インスタンスにパッケージを追加する必要があります。
多くの場合、データベース サーバーはロック ダウンされています。 多くの場合、インターネット アクセスは完全にブロックされています。 依存関係が多数あるパッケージの場合、それらの依存関係を事前に特定し、各依存関係を手動でインストールする準備ができている必要があります。
パッケージを追加する前に、パッケージが SQL Server 環境に適しているかどうかを検討してください。
データベースをクエリするだけのタスクではなく、データベース エンジンとの緊密な統合からメリットが得られるタスク (機械学習など) には、データベース内の Python を使用することをお勧めします。
サーバーに対して計算の負荷が大きくなるパッケージを追加すると、パフォーマンスが低下します。
強化された SQL Server 環境では、次のパッケージを避けることをお勧めします。
- ネットワーク アクセスを必要とするパッケージ
- 管理者特権でのファイル システム アクセスが必要なパッケージ
- Web 開発、または SQL Server 内で実行しても効果のないタスクに使用されるパッケージ
SQL Server への Python パッケージのインストール
スクリプトで使用できる新しい Python パッケージを SQL Server にインストールするには、Machine Learning Services のインスタンスにパッケージをインストールします。 Machine Learning Services のインスタンスが複数ある場合は、各インスタンスにパッケージを追加する必要があります。
次の例でインストールされるパッケージは CNTK です。これは、さまざまな種類のニューラル ネットワークのカスタマイズ、トレーニング、および共有をサポートする Microsoft のディープ ラーニング用フレームワークです。
オフライン インストールの場合は、Python パッケージをダウンロードします
インターネットにアクセスできないサーバーに Python パッケージをインストールする場合は、インターネットにアクセスできるコンピューターから WHL ファイルをダウンロードしてから、そのファイルをサーバーにコピーする必要があります。
たとえば、インターネットに接続されたコンピューターには、CNTK の .whl
ファイルをダウンロードし、そのファイルを SQL Server コンピューターのローカル フォルダーにコピーできます。 使用できる CNTK の .whl
ファイルの一覧については、Wheel ファイルからの CNTK のインストールに関する記事を参照してください。
重要
必ず Windows バージョンのパッケージを入手します。 ファイルの末尾が .gz の場合は、正しいバージョンではない可能性があります。
複数のプラットフォーム用の CNTK フレームワークと複数のバージョンの Python のダウンロードの詳細については、「マシン上で CNTK をセットアップする」を参照してください。
Python ライブラリを見つける
SQL Server によって使用される既定の Python ライブラリの場所を見つけます。 複数のインスタンスをインストールした場合は、パッケージを追加するインスタンスの PYTHON_SERVICES
フォルダーを見つけます。
たとえば、既定値を使用して Machine Learning Services をインストールし、既定のインスタンスで機械学習を有効にした場合のパスは次のとおりです。
cd "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES"
ヒント
今後のデバッグとテストのために、インスタンス ライブラリに固有の Python 環境を設定することができます。
pip を使用してパッケージをインストールする
pip インストーラーを使用して、新しいパッケージをインストールします。 PYTHON_SERVICES
フォルダーの Scripts
サブフォルダーに pip.exe
があります。 SQL Server のセットアップでは、システム パスに Scripts
サブフォルダーは追加されないため、完全なパスを指定するか、Windows で PATH 変数に Scripts フォルダーを追加できます。
注意
Visual Studio 2017 を使用している場合、または Python 拡張機能と共に Visual Studio 2015 を使用している場合は、[Python 環境] ウィンドウから pip install
を実行できます。 [パッケージ] をクリックし、インストールするパッケージの名前または場所をテキスト ボックスに入力します。 「pip install
」と入力する必要はありません。自動的に入力されます。
コンピューターからインターネットにアクセスできる場合は、パッケージの名前を指定します。
scripts\pip.exe install cntk
また、次の例のように、特定のパッケージとバージョンの URL を指定することもできます。
scripts\pip.exe install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp35-cp35m-win_amd64.whl
コンピューターからインターネットにアクセスできない場合は、上記の手順でダウンロードした WHL ファイルを指定します。 例:
scripts\pip.exe install C:\Downloads\cntk-2.1-cp35-cp35m-win_amd64.whl
インストールを完了するためにアクセス許可を昇格するように求めるメッセージが表示される場合があります。 インストール手順を進めると、コマンド プロンプト ウィンドウに状態メッセージが表示されます。
スクリプトの一部としてパッケージまたはその関数を読み込む
インストールが完了すると、すぐに SQL Server の Python スクリプトでパッケージを使い始められます。
スクリプトでパッケージの関数を使用するには、スクリプトの最初の行に標準の import <package_name>
ステートメントを挿入します。
EXECUTE sp_execute_external_script
@language = N'Python',
@script = N'
import cntk
# Python statements ...
'