2.80.1 pdparaloadの形式と規則
(1) 機能
一つの入力データファイルから横分割表を構成する複数のRDエリアに対して,データロード(pdloadコマンド)を並列実行します(パラレルローディング機能)。
(2) 実行者
pdloadコマンドと同じ実行権限を持つユーザが実行できます。
(3) 形式
pdparaload 〔pdloadコマンドオプション〕 〔-I 実行間隔〕 〔認可識別子.〕表識別子 pdparaload制御文ファイル名
(4) オプション
(a) pdloadコマンドオプション
pdloadコマンドのオプションを指定します。指定されたコマンドのオプションは,pdparaloadコマンドがpdloadコマンドを実行するときに使用します。
pdloadコマンドのオプションの中でpdparaloadコマンドに指定できないオプションがあります。pdparaloadコマンドでのpdloadコマンドオプションの指定可否を次に示します。
なお,指定できないオプションを指定すると,データロード実行中にエラー終了します。
項番 |
オプション |
pdparaloadへの指定可否 |
説明 |
---|---|---|---|
1 |
-d |
○ |
pdloadコマンドを作成モードで実行する場合に指定します。 なお,表に非横分割インデクスが定義されているときは,表の既存データ削除時に非横分割インデクスの排他を取得します。表の分割数や既存データ量によっては削除処理に時間が掛かり,排他待ちでpdloadがエラー終了するおそれがあるため,以下の対処を推奨します。
|
2 |
-a|-b|-U |
○ (-w allは×) |
入力データファイルの形式を指定します。 なお,-w all(表移行用アンロードファイルを使用し,表,及びインデクス定義を伴うデータロード指定)は指定できません。 |
3 |
-i |
○ |
インデクス作成方法を指定します。 |
4 |
-l |
○ |
pdloadコマンド実行時のデータベースの更新ログの取得方法を指定します。 |
5 |
-k |
○ |
LOBデータをLOB列に格納する場合,及び抽象データ型列に格納する値を生成するコンストラクタ関数の引数がLOBパラメタのときに,そのデータの入力方法を指定します。 pdparaloadコマンドでは,-k fオプションでのファイルの作成方法を推奨します。 このオプションを指定すると,一つのLOBデータごとにファイルを作成するため,並列実行時にLOBデータを重複して読み込むことがありません。そのため,入出力処理を削減できます。ただし,このオプションを指定すると,各RDエリア単位でのデータロード中に,LOB中間ファイルが作成されます。作成されたLOB中間ファイルは,pdparaloadコマンド終了後も削除されないため,pdparaloadコマンド終了後にユーザが削除する必要があります。 |
6 |
-c |
○ |
列構成情報ファイルの名称を指定します。 |
7 |
-v |
○ |
ナル値・関数情報ファイルの名称を指定します。 |
8 |
-n |
○ |
ローカルバッファを使用するときにバッファ面数を指定します。 |
9 |
-u |
× |
pdloadコマンドを実行するユーザの認可識別子は指定できません。 |
10 |
-x |
○ |
入力データがクラスタキーの昇順又は降順になっているかどうかをチェックしない場合に指定します。 |
11 |
-s |
○ |
入力データファイルがDAT形式の場合,各データ間のセパレータ文字を変更するときに指定します。 |
12 |
-e |
○ |
入力データの不正を検出した場合に,処理を中断するときに指定します。 |
13 |
-r |
○ |
入力データファイルの1行目からデータを入力しないで,指定した行からデータを入力する場合に指定します。 |
14 |
-z |
○ |
可変長文字列,可変長各国文字列,及び可変長混在文字列に対して,長さ0のデータを格納する場合に指定します。 |
15 |
-y |
○ |
データロード時,未使用ページを使い切った場合に,使用中ページの未使用領域へデータを格納したいときに指定します。 |
16 |
-o |
× |
インデクス一括作成が正常終了した後,index文に指定したインデクス情報ファイルを自動的に削除できません。 |
17 |
-m |
○ |
処理の実行状況を出力するメッセージの出力間隔を指定します。 |
18 |
-X |
○ |
障害を検知するために,コマンドで実施されるディクショナリ操作についての通信の応答時間を指定します。 |
19 |
-K |
○ |
XML型のパラメタに対する入力データ値の形式を指定します。 |
20 |
-G |
○ |
入力データファイルとして指定したXMLデータのデータ種別(XML文書又はESIS-B形式)を指定します。 |
21 |
-F |
○ |
FLOAT型及びSMALLFLT型の入力データ値がOSの制限値に満たない場合,又はOSの制限値を超えている場合に,入力データ値をOSの制限値内に補正するときに指定します。 |
- (凡例)
-
○:pdparaloadコマンドに指定できます。
×:pdparaloadコマンドに指定できません。
(b) -I 実行間隔 〜<符号なし整数>((10〜600000))《1000》(単位:ミリ秒)
pdparaloadコマンドは,RDエリア単位でデータロードを行います。このオプションでは,各データロードの実行間隔を指定します。
実行間隔を空けることで,複数のpdloadコマンドが同時に実行されないため,ディクショナリ表にアクセスが集中し,実行待ちになることを防止できます。
<指定値の目安>
通常は,デフォルト値で運用します。
pdloadの前処理時間が指定値を超える場合は,1000ずつ加算してpdparaloadコマンドを再実行してください。
(c) 〔認可識別子.〕表識別子 〜<識別子>((1〜30バイト))
pdparaloadコマンドを使用して,データロードする表の表識別子を指定します。指定時の規則は,pdloadコマンドと同じです。pdloadコマンドの〔認可識別子.〕表識別子については,「〔認可識別子.〕表識別子」を参照してください。
(d) pdparaload制御文ファイル名 〜<パス名>((1〜1023バイト))
pdparaload制御文ファイルのパスを指定します。pdparaload制御文ファイルとは,pdparaloadコマンドによって実行される,pdloadコマンドの制御文を記述したファイルです。pdloadコマンドの制御文については,「コマンドの形式」を参照してください。ただし,pdloadコマンドの制御文の中でpdparaload制御文ファイルに指定できない制御文があります。pdparaload制御文ファイルでのpdloadコマンドの制御文の指定可否を次に示します。
なお,指定できない制御文を指定すると,pdparaloadは制御文をチェックしないため,データロード実行時に制御文エラーとなります。
項番 |
制御文 |
オプション |
pdparaloadでの指定可否 |
説明 |
---|---|---|---|---|
1 |
mtguide |
− |
× |
テープ装置は使用できません。 |
2 |
emtdef |
− |
× |
|
3 |
source |
RDエリア名 |
× |
RDエリア名は,pdparaloadコマンドが指定するため,ユーザは指定できません。 |
4 |
サーバ名|ホスト名 |
HiRDB/パラレルサーバの場合:◎ HiRDB/シングルサーバの場合:△ |
HiRDB/パラレルサーバの場合,必ず指定してください。指定しないでデータロードを実行すると,各RDエリアが存在するサーバ上のファイルを入力データファイルとして処理してしまいます。 |
|
5 |
入力データファイル名 |
◎ |
入力データが入っている入力データファイルの名称を絶対パス名で指定します。 |
|
6 |
(uoc) |
△ |
UOCを使用する場合,入力デ−タファイルの入出力をUOC側でするときに指定します。 |
|
7 |
error |
△ |
エラー情報を出力するファイルの名称を絶対パス名で指定します。 なお,データロードの実行時にpdparaloadコマンドがファイル名にRDエリア名,_RDエリアID,""を付加します。そのため,指定するパス名の長さに注意してください。詳細については,注意事項の4.を参照してください。 |
|
8 |
errdata |
△ |
入力データがエラーとなった場合,そのエラーとなった行データを出力するときに指定します。 なお,データロードの実行時にpdparaloadコマンドがファイル名にRDエリア名,_RDエリアID,""を付加します。そのため,指定するパス名の長さに注意してください。詳細については,注意事項の4.を参照してください。 |
|
9 |
errwork |
△ |
errdataオペランド指定時に,エラーデータファイル作成用のバッファサイズをキロバイト単位で指定します。 |
|
10 |
maxreclen |
△ |
入力データファイルがDAT形式,拡張DAT形式,バイナリ形式,及びpdrorg出力バイナリ形式の場合に入力データ長を指定します。 |
|
11 |
index |
− |
× |
インデクス情報ファイルの情報は指定できません。 |
12 |
idxwork |
サーバ名 |
△ |
インデクス情報ファイルを作成するサーバの名称を指定します。 |
13 |
ディレクトリ名 |
○ |
インデクス情報ファイルを作成するディレクトリの名称を絶対パス名で指定します。 |
|
14 |
sort |
サーバ名 |
△ |
ソート用ワークファイルを作成するサーバの名称を指定します。 |
15 |
ディレクトリ名 |
○ |
ソート用ワークファイルを作成するディレクトリの名称を,絶対パス名で指定します。 |
|
16 |
lobdata |
LOB入力ファイル名 |
×※ |
LOB列がある表へデータロードする場合,又はコンストラクタ関数への入力パラメタとしてLOBデータを入力する場合に,LOBの情報を指定します。 対象表にBLOB列,又はBLOBパラメタがある抽象データ型列を定義し,-kオプションにf,又はvを指定する場合は,必ずlobdata文を指定してください。指定しないと,基表だけがデータロードされ,BLOBデータはデータロードされません。 |
17 |
LOB入力ファイルのディレクトリ名 |
△※ |
||
18 |
lobcolumn |
− |
× |
列単位LOB入力ファイルは使用できません。 |
19 |
lobmid |
− |
× |
LOB中間ファイルは指定できません。 LOB中間ファイルは,次のファイル名で作業用ディレクトリ下に作成します。 \作業用ディレクトリ\LOBMID-xxxxxxxxx xxxxxxxxxは,各実行プロセスの実行時間,及びプロセスIDを含む名称です。各RDエリア単位にファイルを作成します。 |
20 |
srcuoc |
− |
△ |
UOCを利用して,データを編集してからデータべースに格納する場合,UOCの情報を指定します。 |
21 |
array |
− |
△ |
繰返し列を含む表の場合,入力データファイルに記述する配列データ形式とナル値の扱いを指定します。 |
22 |
extdat |
− |
△ |
DAT形式の入力データファイルで,拡張機能を使用する場合に指定します。 |
23 |
src_work |
− |
× |
分割入力データファイルは作成できません。 |
24 |
constraint |
− |
△ |
検査保留状態に関する設定をします。 |
25 |
option |
spacelvl |
△ |
入力データに対して,空白変換をするかどうかを指定します。 |
26 |
tblfree |
△ |
データロード時に,CREATE TABLEで指定した空き領域比率(PCTFREEの指定値)を変更してデータを格納したい場合に指定します。 |
|
27 |
idxfree |
△ |
インデクス一括作成モードでインデクスを作成する場合に,CREATE INDEXで指定した空き領域比率(PCTFREEの指定値)を変更してインデクスを作成したいときに指定します。 |
|
28 |
job |
× |
同期点指定のデータロードはできません。 |
|
29 |
cutdtmsg |
△ |
DAT形式の入力データファイルのデータロード時に切り捨てが発生した場合,エラー情報ファイルに警告メッセージを出力するかどうかを指定します。 |
|
30 |
nowait |
× |
NOWAIT検索はできません。 |
|
31 |
bloblimit |
△ |
pdrorg出力バイナリ形式の入力データファイルでデータ変換をしてデータロードする場合に,データを保持する領域の大きさを指定します。 |
|
32 |
exectime |
△ |
pdloadの実行時間を監視する場合に,その監視時間を分単位で指定します。 |
|
33 |
null_string |
△ |
DEFAULT句を指定している表に対してデータロードする場合,入力データがナル値("*"又は記述しない場合)のときに,DEFAULT句の既定値を格納するか,又はナル値を格納するかを指定します。 |
|
34 |
dataerr |
△ |
入力データエラー(論理エラー)を検知した場合,データ格納処理を無効(ロールバック)にするときに指定します。 RDエリア単位でデータロードを行うため,非分割キーインデクスがあり,-i sオプション(インデクス更新モード)以外の指定がある場合は,各データロード実行時に制御文エラーとなります。 |
|
35 |
lengover |
△ |
DAT形式(拡張DAT形式を含む)の入力データファイルの,データ型がCHAR,VARCHAR,NCHAR,NVARCHAR,MCHAR,MVARCHAR,又はBINARYの列に格納する入力データ長が列定義長より長い場合,入力データエラーとして扱うときに指定します。 |
|
36 |
divermsg |
× |
divermsgは,pdparaloadコマンドが指定するため,ユーザは指定できません。 |
|
37 |
srcendian |
△ |
エンディアンが異なるプラットフォーム間でpdrorg出力バイナリ形式ファイルを使用してデータを移行する場合に指定します。 |
|
38 |
allspace |
△ |
固定長データ形式の入力データファイルを使用してデータロードする場合,数値データ型(INTEGER,SMALLINT,DECIMAL,FLOAT,SMALLFLT)の列に格納する文字データを「0」と変換して格納するときに指定します。 |
|
39 |
whitespace |
△ |
XML型の列に対してXML文書をデータロードする場合に,XML文書に含まれる空白類の取り扱い方法を指定します。 |
|
40 |
seq_range |
△ |
自動採番機能を使用してデータロードする場合,順序番号の取得方式を指定します。 |
|
41 |
file_buff_size |
△ |
入力バッファに入力データファイルのデータを読み込む場合に,使用する入力バッファ用のメモリサイズを指定します。 |
|
42 |
charset |
△ |
UTF-8の環境で定義した表に対して,UTF-16の入力データファイルでデータロードする場合,入力データファイルのエンディアンを指定します。 |
- (凡例)
-
◎:必ず指定してください。
○:制御文を指定した場合は,指定してください。
△:指定は任意です。
×:指定できません。
−:該当しません。
- 注※
-
対象表にBLOB列,又はBLOBパラメタがある抽象データ型列を定義し,-kオプションにf,又はvを指定する場合は,lobdata文を指定する必要があります。詳細を次の表に示します。
項番
-kオプション指定
BLOB列
BLOB型の入力パラメタを持つ抽象データ型の列
1
d
×
×
2
f
○
○
3
v
○
×
- (凡例)
-
○:lobdata文が必要です。
×:lobdata文は必要ありません。
(5) 規則
-
pdparaloadコマンドは,HiRDBが稼働中のときだけ実行できます。
-
pdparaloadコマンドでデータロードできる表は,横分割表だけです。
ただし,フレキシブルハッシュ分割を定義した表は対象外とします(マトリクス分割にフレキシブルハッシュ分割を定義している場合も含む)。フレキシブルハッシュ分割を定義した表を指定した場合,pdparaloadコマンドはエラー終了します。
-
横分割表を構成するRDエリアが,データベース作成ユティリティ(pdload)を実行できる状態である必要があります。RDエリアの状態については,「RDエリアの状態によるユティリティ及びUAPの実行可否」を参照してください。
-
pdparaloadコマンドを起動するには,RDエリア単位でデータロードを実行するために使用される排他資源数を合計した数分の排他資源が必要です。RDエリア単位データロードが必要とする排他資源数については,「注意事項」を参照してください。
-
同じ表には,pdparaloadコマンドを同時に実行できません。異なる表であれば,pdparaloadコマンドを同時に実行することができます。ただし,各表を構成するRDエリアに同じRDエリアがないことが前提となります。pdparaloadコマンドは,内部でRDエリア単位にデータロードを実行するため,RDエリア単位に排他を掛けています。同じRDエリアに格納した表に同時にpdparaloadコマンドを実行した場合,データロードが排他エラーで終了します。
RDエリア単位のデータロードの排他制御モードについては,「ユティリティの排他制御モード」を参照してください。
(6) 注意事項
-
pdparaloadコマンドのリターンコードを次に示します。
0:正常終了
4:正常終了(一部の入力データに論理エラーが発生したため,データベースへの格納処理をスキップしました)
8:異常終了
-
pdparaloadコマンドは,次の規則でpdload制御文ファイル名を生成します。
LOD_CTL_認可識別子_表識別子_RDエリアID
上記と同じ名称のファイルが既に存在している場合は,エラー終了します。
なお,認可識別子,表識別子が「\」を含む場合は,これらは「(」(左括弧)に置き換えて生成されます。
-
次の制御文からpdparaloadコマンドが生成するファイル名と同じ名称のファイルが既に存在している場合は,既存のファイルを上書きします。
-
source文のerrorで指定したエラー情報ファイル名
-
source文のerrdataで指定したエラーデータファイル名
-
-
pdparaloadコマンドは,source文で指定するファイル名にRDエリア名,_RDエリアID,""を付加します。そのため,指定するパス名,及びファイル名の長さは,次のように指定してください。
-
source文の場合
source文のerror,及びerrdataオペランドに指定するパス名,及びファイル名の長さは,次の計算式の値以下にしてください。
<errorオペランドの場合>
・パス名の長さ(単位:バイト)
OS上のパス名の上限値−(RDエリア名称長+9)
・ファイル名の長さ(単位:バイト)
OS上のファイル名の上限値−(RDエリア名称長+9)
<errdataオペランドの場合>
・パス名の長さ(単位:バイト)
(OS上のパス名の上限値−8)−(RDエリア名称長+9)
・ファイル名の長さ(単位:バイト)
(OS上のファイル名の上限値−8)−(RDエリア名称長+9)
また,1行のsource文の長さが1023バイトに収まるように指定する必要があります。1023バイトを超えた場合はエラー終了します。
source文で付加されるRDエリア名と""の規則を次に示します。
なお,RDエリア名が「\」を含む場合は,これらは「(」(左括弧)に置き換えて生成されます。
-
-
pdparaloadコマンドで分割キー構成列に対して順序数生成子を指定した実行はできません。実行した場合は処理を続行します。その結果,入力データファイルのデータがデータベースに格納できない場合があります。