CREATE SERVER ステートメント

CREATE SERVER ステートメントは、データ・ソースをフェデレーテッド・データベースへ定義します。

このステートメントでは、SERVER という語と、server- で始まるパラメーター名は、 フェデレーテッド・システムでのデータ・ソースを指しています。 これらは、そのようなシステム内のフェデレーテッド・サーバー、または DRDA アプリケーション・サーバーを参照しません。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

このステートメントの 許可 ID が持つ特権には、DBADM 権限が含まれている必要があります。

構文

Read syntax diagramSkip visual syntax diagramCREATE SERVERserver-nameTYPEserver-typeVERSIONserver-versionWRAPPERwrapper-nameAUTHORIZATIONremote-authorization-namePASSWORDpasswordOPTIONS(,server-option-namestring-constant)
server-version
Read syntax diagramSkip visual syntax diagramversion.release.modversion-string-constant

説明

server-name
フェデレーテッド・データベースに対して定義するデータ・ソースの名前を指定します。 この名前は、カタログに記述されているデータ・ソースを指すものであってはなりません。 サーバー名は、フェデレーテッド・データベース内のいずれかの表スペースの名前と同じであってはなりません。

リレーショナル・データ・ソースのサーバー定義は、通常リモート・データベースを表します。 Oracle など一部のリレーショナル・データベース管理システムでは、 各インスタンス内に複数のデータベースを取ることが許可されていません。 その代わりに、各インスタンスはフェデレーテッド・システム内のサーバーを表します。

非リレーショナル・データ・ソースの場合、サーバー定義の目的はデータ・ソースごとに異なります。 検索タイプやデーモン、Web サイト、または Web サーバーにマップされるサーバー定義もあります。 その他の非リレーショナル・データ・ソースの場合、フェデレーテッド・オブジェクトの階層ではデータ・ソース・ファイル (ニックネームで識別される) が特定のサーバー・オブジェクトに関連付けられていることが必要なため、サーバー定義が作成されます。

TYPE サーバー・タイプ
フェデレーテッド・データベースに対して定義されているデータ・ソースのタイプを指定し、使用されるデフォルト・ラッパーを決定します。
表 1. サーバー・タイプとデフォルト・ラッパー
データ・ソース タイプ デフォルト・ラッパー
Amazon Redshift REDSHIFT ODBC
Apache Hive HIVE ODBC
Apache Spark SPARK JDBC
Apache Spark SQL SPARK_ODBC ODBC
Cloudera Impala IMPALA ODBC
CouchDB COUCHDB NoSQL
database.com DATABASE.COM ODBC
force.com FORCE.COM ODBC
HDFS parquet HDFSPARQUET NoSQL
IBM BigInsights BIGSQL DRDA
IBM Db2® Warehouse on Cloud DASHDB DRDA
IBM Db2 on Cloud DASHDB DRDA
IBM Db2 Warehouse DASHDB DRDA
IBM Db2 DB2/LUW DRDA
Db2 for z/OS® DB2/ZOS DRDA
Db2 for IBM® i DB2/ISERIES DRDA
IBM Db2 Hosted DB2/LUW DRDA
IBM Db2 Server for VSE and VM DB2/VM DRDA
IBM PureData System for Analytics (以前の名称は Netezza) PDA (タイプ NETEZZA も使用可能ですが、非推奨です) ODBC
IBM PureData System for Operational Analytics DB2/LUW DRDA
IBM PureData System for Transactions DB2/LUW DRDA
Informix® (INFORMIX ラッパーを使用) INFORMIX INFORMIX
Informix (ODBC ラッパーを使用) INFORMIX_ODBC ODBC
JDBC JDBC JDBC
MariaDB MARIADB ODBC
Microsoft Azure AZURE ODBC
Microsoft SQL Server ( MSSQLODBC3 ラッパーを使用) MSSQLSERVER MSSQLODBC3
Microsoft SQL Server (ODBC ラッパーを使用) MSSQL_ODBC ODBC
MongoDB MONGODBREST1、MONGODRIVER2、 RESTHEART3 NoSQL
ODBC ODBC ODBC
Oracle (NET8 ラッパーを使用) ORACLE NET8
Oracle (ODBC ラッパーを使用) ORACLE_ODBC ODBC
Oracle Cloud ORACLE_CLOUD ODBC
Oracle MySQL MYSQL ODBC
Pivotal Greenplum GREENPLUM ODBC
Pivotal HAWQ HAWQ ODBC
PostgreSQL POSTGRESQL ODBC
Progress OpenEdge OPENEDGE ODBC
Salesforce SALESFORCE ODBC
SAP HANA HANA ODBC
SAP Sybase SYBASE CTLIB
SAP Sybase IQ SYBASEIQ ODBC
SAP Sybase ASE SYBASE_ODBC ODBC
Teradata (TERADATA ラッパーを使用) TERADATA TERADATA
Teradata (ODBC ラッパーを使用) TERADATA_ODBC ODBC
一部のラッパーには、このパラメーターが必須です。 例えば、DSN なしの接続モードで作動している ODBC ラッパーでは必須です。

1 サーバー・タイプ MONGODBREST は、RESTAPI を使用して MongoDB に接続します。 MONGODBREST オプションは、MongoDB バージョン 3.4 で実行される正しく構成された HTTP インターフェースに依存します。それより前のバージョンでは、組み込みの HTTP インターフェースがあります。

2 サーバー・タイプ MONGODRIVER は、ネイティブの MongoDB ドライバーを使用して MongoDB に接続します。 この方法は、他の方法に比べて依存性が低く、MongoDB の完全なネイティブ API を利用するため、パフォーマンスが向上します。

3 サーバー・タイプ RESTHEART は、RESTAPI を使用してデータを取得します。 ただし、RestHeart はサード・パーティー製のツールであり、別途インストールする必要があります。 RestHeart は、MongoDB HTTP インターフェースより多くのフィーチャーをサポートします。また、MONGODBREST サーバー・タイプを使用する場合より多くのフィルター機能をサポートするため、パフォーマンスが向上します。

バージョン
server-name に示されるデータ・ソースのバージョンを指定します。 一部のラッパーには、このパラメーターが必須です。
version
バージョン番号を指定します。 値は整数でなければなりません。
リリース
version で示されたバージョンのリリース番号を指定します。 値は整数でなければなりません。
修正
release で示されたリリースのモディフィケーション番号を指定します。 値は整数でなければなりません。
バージョン・ストリング定数
バージョンの正式名称を指定します。 version-string-constant は単一値 (例えば、'8i') にすることができます。あるいは、versionrelease、そして該当する場合は mod を連結した値にすることができます (例えば、'8.0.3')。
WRAPPER ラッパー名
新しく作成されたサーバー・オブジェクトと対話するために、フェデレーテッド・サーバーが使用するラッパーの名前を指定します。 デフォルトは、リモート・サーバーのタイプによって異なります ( 表 1を参照)。
デフォルト・ラッパーがまだ存在しない場合は、SET DB2_FENCED 'Y' オプションによって作成されます。 デフォルト・ラッパーは一度だけ作成されます。 例えば、DRDA という名前のラッパーがまだ存在しないときに、2 つの CREATE SERVER ステートメント (BIGSQL サーバーを作成するものと DB2/ZOS サーバーを作成するもの) を発行した場合、どちらのサーバーのラッパー名も明示的に指定していなければ、DRDA という名前のデフォルト・ラッパーが最初のステートメントによって作成され、両方の新しいサーバーがそのラッパーを使用します。
注: まだ作成されていないデフォルト・ラッパーと同じ名前のラッパーが既に存在する場合 (例えば、CREATE WRAPPER ステートメントによって作成されたため)、そのラッパーは CREATE SERVER ステートメントのデフォルトとして使用されません。 この状態の場合、デフォルトは使用できないので、CREATE SERVER ステートメントにラッパー名を明示的に指定する必要があります。
許可 remote-authorization-name
Db2 ファミリー・データ・ソースの場合のみ必須。 CREATE SERVER ステートメントの処理時に、 必要なアクションをデータ・ソースで実行するときの許可 ID を指定します。 この許可 ID は、サーバーに対する後続の接続を確立するときには使用されません。

この ID には、実行するアクションに必要な権限 (BINDADD または同等の権限) がなければなりません。 remote-authorization-name が大文字小文字混合または小文字で指定される場合 (かつ リモート・データ・ソースに大/小文字の区別のある許可名がある場合) には、 remote-authorization-name を二重引用符で囲んでください。

PASSWORD password
Db2 ファミリー・データ・ソースの場合のみ必須。 remote-authorization-name で表された 許可 ID に関連付けられているパスワードを指定します。 password が大文字小文字混合または小文字で指定される場合 (かつ リモート・データ・ソースに大/小文字の区別のあるパスワードがある場合) には、 password を二重引用符で囲んでください。
OPTIONS
作成するサーバーの構成オプションを指定します。 指定可能なオプションは、サーバーの作成対象オブジェクトのデータ・ソースによって異なります。 データ・ソースと、それぞれに適用されるサーバー・オプションのリストについては、 データ・ソース・オプションを参照してください。 各オプション値は文字ストリング定数で、単一引用符で囲む必要があります。

  • データ・ソースがパスワードを必要とする場合は、 password を指定します。 password のいずれかの文字が小文字であれば、 password を引用符で囲みます。
  • CREATE SERVER ステートメントを使って Db2 ファミリー・インスタンスをデータ・ソースとして定義する場合、 Db2 で特定のパッケージをそのインスタンスにバインドする必要があるかもしれません。 バインドする必要がある場合、 ステートメント内の remote-authorization-name に BIND 権限がなければなりません。 バインド操作の完了に要する時間は、データ・ソースの速度と ネットワーク接続の速度によって異なります。
  • 指定されたサーバー・バージョンがリモートのサーバー・バージョンと一致することを確かめる検査は行われません。 指定されたサーバー・バージョンが誤っている場合は、データベースのサーバー定義に属するニックネームにアクセスする際に、SQL エラーになる可能性があります。 その可能性が最も高いのは、リモートのサーバー・バージョンよりも後のサーバー・バージョンを指定する場合です。 その場合、サーバー定義に属するニックネームにアクセスすると、データベース・サーバーはリモート・サーバーが認識できないSQL を送信することがあります。
  • 以下の条件が当てはまる場合、 CREATE SERVER ステートメントの AUTHORIZATION キーワードと PASSWORD キーワードはオプションになります。
    • Db2 ファミリー・データ・ソース。
    • ネイティブ・ラッパーまたは Db2 JDBC ラッパー。
    • サーバー・オプション SSO_AUTH の値が 'Y' に設定されている。
  • 代替構文: 製品の以前のバージョンとの互換性のために、以下の構文がサポートされています。
    • ADD は、server-option-name string-constant の前に指定できます。
  • TYPE server-type は、DSN 接続モードではオプションですが、DSN なしの接続モードでは必須です。

  1. Db2 for z/OS および OS/390®バージョン 7.1 データ・ソースにアクセスするためのサーバー定義を登録します。 CRANDALL は、 Db2 for z/OS および OS/390 サーバー定義に割り当てられた名前です。 DRDA は、このデータ・ソースにアクセスするために使用するラッパーの名前です。 さらに、以下のものを指定します。
    • GERALD および drowssap は、このステートメントの処理時に、 パッケージを CRANDALL でバインドするときの許可 ID とパスワードです。
    • CATALOG DATABASE ステートメントによって指定された Db2 for z/OS および OS/390 データベースの別名は、 CLIENTS390です。
    • CRANDALL にアクセスするときの許可 ID とパスワードは、 CRANDALL へ大文字で送信されます。
    • CLIENTS390 とフェデレーテッド・データベースは、同じ照合順序を使用します。
      CREATE SERVER CRANDALL
        TYPE DB2/ZOS
        VERSION 7.1
        WRAPPER DRDA
        AUTHORIZATION "GERALD"
        PASSWORD drowssap
        OPTIONS
            (DBNAME 'CLIENTS390',
            FOLD_ID 'U',
            FOLD_PW 'U',
            COLLATING_SEQUENCE 'Y')
  2. Oracle 9 データ・ソースにアクセスするためのサーバー定義を登録します。 CUSTOMERS は、Oracle サーバー定義に割り当てられる名前です。 NET8 は、このデータ・ソースにアクセスするために使用するラッパーの名前です。 さらに、以下のものを指定します。
    • ABC は、Oracle データベース・サーバーが置かれているノードの名前です。
    • フェデレーテッド・サーバーの CPU の動作速度が、 CUSTOMERS をサポートする CPU の 2 倍であること。
    • フェデレーテッド・サーバーの入出力装置のデータ処理速度が、 CUSTOMERS の入出力装置の 1.5 倍であること。
      CREATE SERVER CUSTOMERS
        TYPE ORACLE
        VERSION 9
        WRAPPER NET8
        OPTIONS
            (NODE 'ABC',
            CPU_RATIO '2.0',
            IO_RATIO '1.5')
  3. Excel ラッパーのサーバー定義を登録します。 このサーバー定義は、フェデレーテッド・オブジェクトの階層を保持するために必要です。 BIOCHEM_LAB は Excel サーバー定義に割り当てられる名前です。 EXCEL_2000_WRAPPER は、このデータ・ソースにアクセスするために使用するラッパーの名前です。
      CREATE SERVER BIOCHEM_DATA
        WRAPPER EXCEL_2000_WRAPPER
        
  4. ODBC ラッパーのサーバー定義を登録します。 DSN なしモードで Apache Hive にアクセスするには、サーバー・タイプを指定する必要があります。 HOST は Hive サーバー・アドレスです。 PORT は、このデータ・ソースにアクセスするために使用される接続ポート番号です。 PORT はオプション・パラメーターです。 PORT が定義されていない場合、デフォルトの番号は 10000 です。
      CREATE SERVER HIVE_SERV TYPE HIVE
    		WRAPPER ODBC AUTHORIZATION ‘root’ PASSWORD ‘hadoop’
             OPTIONS (HOST ‘hives.cn.ibm.com’, PORT ‘10000’, 
                     DBNAME ‘default’, PASSWORD ‘Y’, PUSHDOWN ‘Y’)    
  5. デフォルトの DRDA ラッパーを使用する Db2 データ・ソースにアクセスするためのサーバー定義を登録します。 サーバー・オプション SSO_AUTH は、リモート・データ・ソースがシングル・サインオン (SSO) 認証メカニズムを使用することを示しているため、AUTHORIZATION キーワードおよび PASSWORD キーワードは指定されていません。
    CREATE SERVER server1 TYPE DB2/LUW VERSION 11 OPTIONS(HOST, PORT 50000, DBNAME sample, SSO_AUTH 'Y')