SQL Server 言語拡張とは?

適用対象: SQL Server 2019 (15.x) 以降のバージョン

言語拡張は、外部コードの実行に使用される SQL Server の機能です。 リレーショナル データは、機能拡張フレームワークを使用して外部コードで使用できます。 SQL Server 2019 (15.x) 以降のバージョンでは、Java、C#、Python、R ランタイムがサポートされています。

Note

SQL Server で Python または R を実行する場合は、Python および R を使用した Machine Learning Services のドキュメントを参照してください。 SQL Server 2019 (15.x) 以降のバージョンでは、言語拡張機能を備えたカスタム Python および R ランタイムを使用できます。 詳細については、「 SQL Server 用の Python カスタム ランタイムをインストールする」および「SQL Server用の R カスタム ランタイムをインストールする」を参照してください。

言語拡張でできること

言語拡張では、外部コードを実行するための拡張機能フレームワークが使用されます。 コードの実行はコア エンジン プロセスから分離されていますが、SQL Server のクエリ実行と完全に統合されています。 データのソースでコードを実行できるため、ネットワーク経由でデータをプルする必要はありません。

外部言語は CREATE EXTERNAL LANGUAGE で定義されます。 システム ストアド プロシージャ sp_execute_external_script は、コードを実行するためのインターフェイスとして使用されます。

言語拡張には、次のような利点があります。

  • データのセキュリティ。 外部言語の実行をデータのソースに近づけることにより、セキュリティで保護されていないデータ移動を回避できます。

  • 速さ。 データベースは、セットベースの操作用に最適化されています。

  • 展開と統合の容易さ。 SQL Server は、他の多くのデータ管理タスクおよびアプリケーションの操作の中心となるポイントです。 データベース内のデータを使用することで、言語拡張で使用されるデータの一貫性と最新性を確保できます。

ネイティブの共通言語ランタイム統合により、.NET 言語を使用して SQL Server の機能の一部を実装できます。 SQL CLR と SQL 言語拡張機能の違いについては、「SQL Server 言語拡張機能と CLR を比較する」を参照してください。

機能拡張フレームワークによるセキュリティの詳細については、「SQL Server Machine Learning Services の機能拡張フレームワークに関するセキュリティ アーキテクチャ」を参照してください。