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 の機能拡張フレームワークに関するセキュリティ アーキテクチャ」を参照してください。
関連するコンテンツ
- Windows 上に SQL Server の Java 言語拡張を インストールする
- Linux 上に SQL Server の Java 言語拡張をインストールする
- C# 言語拡張とは
- Windows 上に SQL Server の .NET 言語拡張をインストールする
- SQL Server 用の Python カスタム ランタイムをインストールする
- SQL Server 用の R カスタム ランタイムをインストールする
- SQL Server 用の Microsoft Extensibility SDK for Java
- SQL Server 用の Microsoft Extensibility SDK for C#