説明
CREATE FOREIGN SERVER コマンドは、InterSystems SQL が外部サーバと呼ばれる外部データ・ソースへのアクセスに使用できるリモートの場所を定義します。このコマンドは、外部データ・ソースから外部テーブル (ネイティブのテーブルと共に照会できる) にデータを投影するために使用できるメタデータを格納します。さらに、外部サーバが外部ソースのデータにアクセスするために使用するプロトコルを決定する、外部データ・ラッパを定義します。
InterSystems SQL では現在、それぞれ .csv ファイルまたはデータベースから外部データを取得する、'FILE' と 'DB' という 2 つのタイプの外部サーバをサポートしています (オプションで TYPE キーワードを使用して指定)。タイプ 'FILE' の外部サーバはファイル・システム内のファイルにアクセスするのに対し、タイプ 'DB' の外部サーバは事前定義された JDBC 接続を使用して外部データベースにアクセスします。外部サーバのタイプは、外部データ・ラッパによって暗黙的に設定されます。
.csv ファイルの外部サーバの作成
.csv ファイルに格納されているデータを読み取って外部テーブルを作成する外部サーバを定義する場合は、CSV 外部データ・ラッパを使用します。この方法で定義された外部サーバは、少なくとも、InterSystems SQL に投影できる .csv ファイルを格納するローカル・ファイル・パスを定義する必要があります。このファイル・パスは、HOST キーワードを使用して指定します。
以下の例では、.csv ファイルにアクセスする外部サーバを作成します。
CREATE FOREIGN SERVER Sample.DumpDir FOREIGN DATA WRAPPER CSV HOST '/data/dumps'
JDBC 接続での外部サーバの作成
外部データベースに格納されているデータを読み取って外部テーブルを作成する外部サーバを定義する場合は、JDBC 外部データ・ラッパを使用します。この方法で定義された外部サーバは、InterSystems SQL のインスタンスと外部データ・ソースを接続する JDBC 接続を指定する必要があります。この接続の名前は、CONNECTION キーワードを使用して指定します。
以下の例では、JDBC 接続の外部サーバを作成します。
CREATE FOREIGN SERVER Sample.Postgres FOREIGN DATA WRAPPER JDBC CONNECTION 'PostgresSQLConnection'
区切り識別子の使用
外部データ・ソースに接続する際は、外部サーバが区切り識別子を受け入れるかどうかを指定することが必要になる場合があります。既定では、プロジェクションの作成時に InterSystems SQL は区切り識別子を外部データベース管理システムに送信できますが、すべてのデータベース管理システムで区切り識別子が許可されるわけではありません。区切り識別子を受け入れない外部データベース管理システムを使用している場合は、CREATE FOREIGN SERVER コマンドの末尾に NODELIMITEDIDS を指定する必要があります。既定の設定では、区切り識別子が許可されます。