外部表を使用する LOAD CLPPlus コマンド
ターゲット Db2® サーバーへのファイルのロードのために、外部表を使用する LOAD CLPPlus コマンドがサポートされています。
呼び出し
LOAD コマンドは CLPPlus インターフェースから実行する必要があります。
許可
なし必要な接続
データベースに接続している必要があります。コマンド構文
コマンド・パラメーター
- EXTERNAL
- LOAD コマンドが外部表操作を使用することを指定します。
- FROM filename または pipename
- ロードされるデータを含むファイルまたはパイプを指定します。
- NOT LOGGED INITIALLY
- 同じ作業単位内にある LOAD 操作によって表にロードされるデータは、ログに記録されません。
- OPTIONS(options-string)
- LOAD 操作の処理を制御する外部表オプションを指定します。詳しくは、ターゲット・サーバーの外部表オプションを参照してください。
- INTO table-name
- データのロード先となるデータベース表を指定します。
- insert-column-names
- データのロード先となるコンマ区切り表の列を指定します。
使用上の注意
LOG および BAD ファイルには、正常にロード、拒否、またはスキップされたレコードについての情報が含まれています。これらのファイルのロケーションは、以下のようにサーバーのロケーションによって異なります。
- リモート・サーバー (REMOTESOURCE 'LOCAL' が指定されていない)
- LOGDIR は、~.log ファイルおよび ~.bad ファイルが生成されるディレクトリーを指定します。log ファイルおよび bad ファイルが生成される場合、サーバーは、ドライバーに返される log および bad のファイル・パスに指定された LOGDIR を含めることによって、それらのファイルの保管場所の絶対パスを返します。
LOGDIR オプションが定義されていない場合には、JDBC ドライバーの出力ディレクトリーが、log ファイルと bad ファイルを保管するために使用されます。このデフォルトの出力ディレクトリーは、オペレーティング・システムのデフォルトの一時ディレクトリーまたは構成された db2.jcc.outputDirectory ディレクトリーです。
- ローカル・サーバー (REMOTESOURCE 'LOCAL' が指定されている)
- LOGDIR は、~.log ファイルおよび ~.bad ファイルが生成されるディレクトリーを指定します。SWIFT または S3 と一緒に使用される場合、これらのファイルはそのオブジェクト・ストアに置かれ、log ファイルと bad ファイルのパスは、そのバケットまたはコンテナーの先頭に対する相対パスになります。
ERROR_LOG は、LOGDIR オプションの同義語として使用できます。LOGDIR オプションが定義されていない場合、デフォルトのロケーションはデータ・ファイルのロケーションです。
外部表を使用する LOAD CLPPlus コマンドの出力
- すべてのデータの行が正常にロードされると、LOAD コマンドの結果として、以下の出力のような情報が返されます。
Total number of rows loaded: 10 Db250000I: The command completed successfully. - すべてのデータの行が正常にロードされなかった場合は、LOAD コマンドの結果として、以下の出力のような情報が返されます。
SQL5108W Loading of data to a Hadoop table or processing of data in an externaltable completed. Number of rows processed: "2". Number of source records: "3". If the source was a file, number of skipped lines: "0". Number of rejected source records: "1". Job or file identifier: "SAMPLE.REGRES1.SYSTET46273.019412". Db250000I: The command completed successfully. - サーバーまたは JCC ドライバーがエラー・メッセージを戻した場合、LOAD コマンドの結果として CLP に同じエラー・メッセージが表示されます。
例
- 例 1
- この例では、データ・ファイルは、データベースに接続されたクライアント上にあります。このデータ・ファイルがリモートでロードされます。
ターゲット表は DB2TBL1 であり、列は ID [タイプ INTEGER] および NAME [タイプ varchar(50)] です。
データ・ファイルのパスおよび名前は、C:¥data¥et.txt であり、以下の内容があります。1, 'Name0' 2, 'Name1' 3, 'Name2'- CLPPlus を開始します。
- ターゲット・データベースに接続します。
- 次の LOAD コマンドを実行します。
LOAD EXTERNAL FROM C:\data\et.txt OPTIONS (DELIMITER ',' SOCKETBUFSIZE 30000 LOGDIR 'C:\data\' MAXERRORS 20 REMOTESOURCE 'JDBC') INTO DB2TBL1;注: REMOTESOURCE 'JDBC' は、リモート・ロードの必須オプションです。 - データはターゲット表に正常にロードされ、以下の出力メッセージが出されます。
Total number of rows loaded: 3 Db250000I: The command completed successfully.
- 例 2
- この例では、データ・ファイルはターゲット・サーバーに存在し、ローカルでロードされます。
ターゲット表は DB2TBL1 であり、列は ID [タイプ INTEGER] および NAME [タイプ VARCHAR(50)] です。
データ・ファイルのパスおよび名前は、/home/regres1/et/et1.txt であり、以下の内容があります。1, 'Name0' 2, 'Name1' "3", 'Name2'- CLPPlus を開始します。
- ターゲット・データベースに接続します。
- 次の LOAD コマンドを実行します。
LOAD EXTERNAL FROM /home/regres1/et/et1.txt OPTIONS (DELIMITER ',' SOCKETBUFSIZE 30000 LOGDIR /home/regres1/et/' MAXERRORS 20) INTO DB2TBL1;注: キーワード REMOTESOURCE は、ローカル・ロードには使用できません。 - 一部のデータがターゲット表に正常にロードされ、以下の出力メッセージが出されます。
SQL5108W Loading of data to a Hadoop table or processing of data in an external table completed. Number of rows processed: "2". Number of source records: "3". If the source was a file, number of skipped lines: "0". Number of rejectedsource records: "1". Job or file identifier: "SAMPLE.REGRES1.SYSTET46273.019412". Db250000I: The command completed successfully.
- 例 3
- この例では、データ・ファイルは AWS S3 オブジェクト・ストアにあります。
ターゲット表は DB2TBL1 であり、列は ID [タイプ INTEGER] および NAME [タイプ VARCHAR(50)] です。
データ・ファイルのパスおよび名前は、C:¥data¥et.txt であり、以下の内容があります。1, 'Name0' 2, 'Name1' 3, 'Name2'- CLPPlus を開始します。
- ターゲット・データベースに接続します。
- 次の LOAD コマンドを実行します。
LOAD EXTERNAL FROM /home/regres1/et/et1.txt OPTIONS (S3 (ENDPOINT, AUTHKEY1, AUTHKEY2, BUCKET), DELIMITER ',' SOCKETBUFSIZE 30000 LOGDIR /home/regres1/et/' MAXERRORS 20) INTO DB2TBL1;注: キーワード REMOTESOURCE は、AWS S3 オブジェクト・ストアとは使用できません。 - データはターゲット表に正常にロードされ、以下の出力メッセージが出されます。
Total number of rows loaded: 3 Db250000I: The command completed successfully.
- 例 4
- この例では、データ・ファイルは IBM® Cloud Object Storage にあります。
ターゲット表は DB2TBL1 であり、列は ID [タイプ INTEGER] および NAME [タイプ VARCHAR(50)] です。
データ・ファイルのパスおよび名前は、C:¥data¥et.txt であり、以下の内容があります。1, 'Name0' 2, 'Name1' 3, 'Name2'- CLPPlus を開始します。
- ターゲット・データベースに接続します。
- 次の LOAD コマンドを実行します。
LOAD EXTERNAL FROM /home/regres1/et/et1.txt OPTIONS (SWIFT (ENDPOINT, AUTHKEY1, AUTHKEY2, CONTAINER), DELIMITER ',' SOCKETBUFSIZE 30000 LOGDIR /home/regres1/et/' MAXERRORS 20) INTO DB2TBL1;注: キーワード REMOTESOURCE は、IBM Cloud Object Storage とは使用できません。 - データはターゲット表に正常にロードされ、以下の出力メッセージが出されます。
Total number of rows loaded: 3 Db250000I: The command completed successfully.
- 例 5
- この例は、NOT LOGGED INITIALLY オプションの使用例を示しています。
ターゲット表は DB2TBL1 であり、列は ID [タイプ INTEGER] および NAME [タイプ VARCHAR(50)] です。
データ・ファイルのパスおよび名前は、C:¥data¥et.txt であり、以下の内容があります。1, 'Name0' 2, 'Name1' 3, 'Name2'- CLPPlus を開始します。
- ターゲット・データベースに接続します。
- 次の LOAD コマンドを実行します。
LOAD EXTERNAL FROM 'C:\data\et1.txt' NOT LOGGED INITIALLY OPTIONS (DELIMITER ',' LOGDIR 'C:\data\' MAXERRORS 20 SOCKETBUFSIZE 30000 REMOTESOURCE 'JDBC') INTO DB2TBL1(ID, NAME); - データはターゲット表に正常にロードされ、以下の出力メッセージが出されます。
Total number of rows loaded: 3 Db250000I: The command completed successfully.
