Python ツールを使用して SQL Server 上にパッケージをインストールする

適用対象: SQL Server 2017 (14.x) のみ

この記事では、標準の Python ツールを使用して、新しい Python パッケージを SQL Server Machine Learning Services のインスタンスにインストールする方法について説明します。 一般に、新しいパッケージをインストールするプロセスは、標準の Python 環境のプロセスと似ています。 ただし、サーバーからインターネットに接続できない場合は、いくつかの追加の手順が必要です。

パッケージの場所とインストール パスの詳細については、「Get Python package information」(Python パッケージ情報の取得) を参照してください。

前提条件

その他の考慮事項

  • パッケージは 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 ...
'

関連項目