Skip to main content

CREATE FOREIGN SERVER (SQL)

外部サーバを作成します。

構文

CSV 外部データ・ラッパ
CREATE [ FOREIGN ] SERVER server-name [ TYPE server-type ] 
  FOREIGN DATA WRAPPER CSV HOST host-name
JDBC 外部データ・ラッパ
CREATE [ FOREIGN ] SERVER server-name [ TYPE server-type ] 
  FOREIGN DATA WRAPPER JDBC CONNECTION connection-name 
  [ PUSHDOWN pushdown-type ]
  [ id-options ]
  [ passthrough-option ]

説明

CREATE FOREIGN SERVER コマンドは、InterSystems SQL が外部サーバと呼ばれる外部データ・ソースへのアクセスに使用できるリモートの場所を定義します。このコマンドは、外部データ・ソースから外部テーブル (ネイティブのテーブルと共に照会できる) にデータを投影するために使用できるメタデータを格納します。さらに、外部サーバが外部ソースのデータにアクセスするために使用するプロトコルを決定する、外部データ・ラッパを定義します。

InterSystems SQL では現在、それぞれ .csv ファイルまたはデータベースから外部データを取得する、'FILE' と 'DB' という 2 つのタイプの外部サーバをサポートしています (オプションで TYPE キーワードを使用して指定)。タイプ 'FILE' の外部サーバはファイル・システム内のファイルにアクセスするのに対し、タイプ 'DB' の外部サーバは事前定義された JDBC 接続を使用して外部データベースにアクセスします。外部サーバのタイプは、外部データ・ラッパによって暗黙的に設定されます。

このコマンドを実行するには、ユーザに %MANAGE_FOREIGN_SERVER の管理特権が必要です。この特権は、GRANT コマンドで付与することができます。

.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 を指定する必要があります。既定の設定では、区切り識別子が許可されます。

引数

server-name

外部サーバの名前。指定する名前は、テーブル名と同様の追加の名前付け制約に従い、有効な識別子とする必要があります。

外部サーバ名は修飾名です。

server-type

外部サーバのタイプ。外部サーバのタイプとして、'DB' または 'FILE' のいずれかを指定できます。各タイプを一重引用符で囲む必要があります。

FOREIGN DATA WRAPPER

外部データ・ラッパは、外部データへのアクセスに使用するプロトコルを記述します。現在、CSVJDBC の 2 つのオプションがあります。CSV 外部データ・ラッパは、外部サーバが .csv ファイルを処理して、InterSystems IRIS の外部で格納されているデータにアクセスすることを示します。JDBC 外部データ・ラッパは、外部サーバが事前定義の JDBC 接続を使用して、外部データ・ソースにあるデータにアクセスすることを示します。

host-name

CSV 外部データ・ラッパでのみ使用します。host-name は、ファイル・システムで外部データ・ソースとして機能するフォルダの名前を指定します。

host-name は、一重引用符で区切る必要があります。

connection-name

InterSystems IRIS を外部システムに接続する JDBC 接続の名前。一重引用符で囲んで記述します。JDBC 接続の確立の詳細は、"JDBC 経由での SQL ゲートウェイへの接続" を参照してください。

pushdown-type

外部サーバでサポートするプッシュダウン・タイプの名前。有効なオプションは、OFFBASIC (既定)、ANSI92EXTENDEDIRIS です。

id-options

外部データ・ソースで区切り識別子を受け入れるかどうかを指定する引数 (省略可)。指定できる値は DELIMITEDIDS または NODELIMITEDIDS です。既定では、外部データ・ソースは区切り識別子を受け入れるように指定されます。

passthrough-option

外部サーバでパススルー・クエリを許可するかどうかを指定する引数 (省略可)。指定できる値は ENABLE PASSTHROUGH または DISABLE PASSTHROUGH です。既定では、サーバはパススルー・クエリを許可します。

プッシュダウン・リファレンス

pushdown-type 引数を使用して、述語の処理を外部データ・ソースにどの程度までプッシュダウンするかを構成できます。述語を外部データ・ソースにプッシュダウンすることで、インスタンス上での処理負荷を削減できます。

プッシュダウン・タイプは、プッシュダウンできるコマンドが少ない順に OFFBASICANSI92EXTENDEDIRIS です。

OFF

外部データ・ソースに、どの述語もプッシュダウンしません。

BASIC

他のデータベースで一般にサポートされている個数の述語をプッシュダウンします。

ANSI92

1992 ANSI SQL 標準で明示的に規定されている述語をプッシュダウンします。ほとんどの主要なデータベースでは、このカテゴリで取り上げている操作をすべてサポートしているわけではありません。厳格に制御するには BASIC を使用する必要があります。

EXTENDED

すべての ANSI-92 準拠データベースでのサポートが保証されているとは限らない述語をプッシュダウンします。それでも、すべての ANSI92 述語のほかに、広くサポートされている述語 (CASE など) をプッシュダウンします。

IRIS

DATEADD など、InterSystems IRIS 固有の述語のほとんどをプッシュダウンします。外部サーバが、InterSystems IRIS の別のインスタンスを外部データ・ソースとして、それにアクセスする場合にのみ使用します。

サポートされている述語

関数名 プッシュダウン・レベル
ABS BASIC  
ACOS BASIC  
ASCII EXTENDED  
ASIN BASIC  
ATAN BASIC  
ATAN2 IRIS  
CASE EXTENDED  
CAST

BASIC : BIGINT、CHAR、CHARACTER、INT、INTEGER、NCHAR、SMALLINT、TINYINT

ANSI92 : DATE、TIME、TIMESTAMP

EXTENDED : DOUBLE

IRIS : BIT、CHAR VARYING、CHARACTER VARYING、DATETIME、NVARCHAR、POSIXTIME、SMALLDATETIME、VARCHAR

外部サーバで使用するプッシュダウン・タイプの許容範囲が広がるに伴い、CAST コマンドでキャストがサポートされるデータ型も多くなります。

CEILING ANSI92 Oracle データベースではサポートされません。
CHAR IRIS  
CHARACTER_LENGTH IRIS  
CHARINDEX IRIS  
CONCAT ANSI92 Microsoft SQL Server ではサポートされません。
CONVERT

OFF : MONEY

EXTENDED : DOUBLE

IRIS : CHAR、CHARACTER、DATE、INTEGER、POSIXTIME、TIME、TIMESTAMP、VARCHAR

外部サーバで使用するプッシュダウン・タイプの許容範囲が広がるに伴い、CONVERT コマンドでキャストがサポートされるデータ型も多くなります。

COS BASIC  
COT EXTENDED  
CURDATE IRIS  
CURRENT_DATE IRIS  
CURRENT_TIME IRIS  
CIRRENT_TIMESTAMP EXTENDED  
CURTIME IRIS  
DATALENGTH IRIS  
DATE ANSI92  
DATEADD IRIS  
DATEDIFF IRIS  
DATEPART IRIS  
DAY IRIS  
DAYNAME IRIS  
DAYOFMONTH IRIS  
DAYOFYEAR IRIS  
DECODE IRIS  
DEGREES ANSI92 Oracle データベースではサポートされません。
%EXACT IRIS  
EXP BASIC  
%EXTERNAL IRIS  
$EXTRACT IRIS  
$FIND IRIS  
FLOOR BASIC  
GETDATE IRIS  
GETUTCDATE IRIS  
GREATEST ANSI92  
HOUR IRIS  
INSTR IRIS  
%INTERNAL IRIS  
ISNUMERIC IRIS  
$JUSTIFY IRIS  
LAST_DAY IRIS  
LCASE BASIC  
LEAST ANSI92 Microsoft SQL Server ではサポートされません。
LEFT ANSI92 Oracle データベースではサポートされません。
LEN IRIS  
LENGTH IRIS  
$LENGTH IRIS  
LOG ANSI92 この関数のバリアントで引数が 1 つのものは、Oracle データベースでサポートされません。
LOG10 ANSI92 Oracle データベースではサポートされません。
LOWER EXTENDED  
LPAD ANSI92 Microsoft SQL Server ではサポートされません。
LTRIM BASIC  
%MINUS IRIS  
MINUTE IRIS  
MOD ANSI92  
MONTH IRIS  
MONTHNAME IRIS  
NOW EXTENDED Microsoft SQL Server ではサポートされません。
PI EXTENDED  
$PIECE IRIS  
%PLUS IRIS  
POSITION ANSI92 Oracle データベースと Microsoft SQL Server ではサポートされません。
POWER BASIC  
QUARTER IRIS  
RADIANS EXTENDED  
REPEAT EXTENDED  
REPLACE EXTENDED  
REPLICATE EXTENDED  
REVERSE EXTENDED  
RIGHT ANSI92 Oracle データベースではサポートされません。
ROUND BASIC  
RPAD ANSI92 Microsoft SQL Server ではサポートされません。
RTRIM BASIC  
SECOND IRIS  
SIGN EXTENDED  
SIN BASIC  
SPACE IRIS  
%SQLSTRING IRIS  
%SQLUPPER IRIS  
SQRT BASIC  
SQUARE BASIC  
STR IRIS  
STRING IRIS  
STUFF IRIS  
SUBSTR IRIS  
SUBSTRING ANSI92 Oracle データベースではサポートされません。
SYSDATE EXTENDED  
TAN BASIC  
TIMESTAMPADD IRIS  
TIMESTAMPDIFF IRIS  
TO_CHAR EXTENDED  
TO_DATE ANSI92 Microsoft SQL Server ではサポートされません。
TO_NUMBER ANSI92  
TO_POSIXTIME IRIS  
TO_TIMESTAMP IRIS  
$TRANSLATE IRIS  
TRIM ANSI92 Microsoft SQL Server では、TRIM(BOTH <string-expression>) バリアントのみがサポートされます。
TRUNCATE IRIS  
%TRUNCATE IRIS  
UCASE BASIC  
UPPER BASIC  
WEEK IRIS  
YEAR IRIS  

関連項目

FeedbackOpens in a new tab