CREATE FOREIGN SERVER (SQL)
構文
CREATE [ FOREIGN ] SERVER server-name [ TYPE server-type ]
FOREIGN DATA WRAPPER CSV HOST host-name
CREATE [ FOREIGN ] SERVER server-name [ TYPE server-type ]
FOREIGN DATA WRAPPER JDBC CONNECTION connection-name id-options
引数
引数 | 説明 |
---|---|
server-name | 作成する外部サーバ定義の名前。テーブル名と同様の追加の名前付け制約に従う、有効な識別子です。外部サーバ名は修飾名です。 |
TYPE server-type | 外部サーバのタイプ。外部サーバには、'DB' または 'FILE' の 2 つのタイプのいずれかを指定できます。区切り文字は必須です。 |
FOREIGN DATA WRAPPER [ CSV | JDBC ] | 外部データへのアクセスに使用するプロトコルを示します。外部データ・ラッパには、CSV または JDBC の 2 つのオプションのいずれかを指定できます。 |
HOST host-name | データを格納するソース。この名前は、ファイル・システムにおけるフォルダです。host-name は、一重引用符で区切る必要があります。 |
CONNECTION connection-name | InterSystems IRIS を外部システムに接続する JDBC 接続の名前。区切る必要があります。JDBC 接続の確立の詳細は、"JDBC 経由での SQL ゲートウェイへの接続" を参照してください。 |
id-options | オプション — DELIMITEDIDS または NODELIMITEDIDS。外部データ・ソースが区切り識別子を受け入れるかどうかを指定します。 |
説明
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 を指定する必要があります。既定の設定では、区切り識別子が許可されます。