インポート制御ファイルの作成

XDBの開始時,インポート制御ファイルの指定に従って,共用メモリ上の表にデータがインポートされます。インポート制御ファイルには,どの表にどの入力データファイルを読み込むかという情報を定義します。

形式

{{処理対象表識別子=入力データファイル名〔,
           〔囲み文字〕,
           〔区切り文字〕,
           〔ソートバッファサイズ〕,
           〔処理経過メッセージの出力契機間隔〕,
           〔一時ファイルを作成するディレクトリパス名〕〕}}

処理対象表識別子

  ~〈識別子〉
データをインポートする表の表識別子を指定します。
なお,インポート制御ファイル中に指定する処理対象表識別子は,重複しないようにしてください。重複して指定した場合,エラーになります(KFSB66054-Eメッセージが出力されます)。

入力データファイル名

  ~〈パス名〉((1~510文字))
入力データファイル名を絶対パス名で指定します。
この項目を指定するときの規則を次に示します。
  • 入力データファイル名は,二重引用符(")で囲んで指定してください。
  • パス名として指定できる文字は,英数字,スラッシュ(/),ピリオド(.),下線(_),#,@,~,コロン(:),および半角空白です。パス名にこれら以外の文字列が含まれている場合は,そのパス名をこの項目に指定できません。
  • パス名に全角文字が含まれている場合,そのパス名をこの項目に指定できません。

囲み文字

  ~〈文字列〉《"》
入力データファイル中の列データを囲む文字を指定します。この指定を省略した場合は,囲み文字として二重引用符(")が仮定されます。
この項目を指定するときの規則を次に示します。
  • 囲み文字は,二重引用符(")で囲んで指定してください。
  • 次に示す文字は指定できません。
    ・2バイト以上の文字列
    ・マルチバイト文字
    ・半角空白
    ・タブ
    ・アスタリスク(*)
    ・区切り文字と同じ文字

区切り文字

  ~〈文字列〉《,》
入力データファイル中の列データ区切る文字を指定します。この指定を省略した場合は,区切り文字としてコンマ(,)が仮定されます。
この項目を指定するときの規則を次に示します。
  • 区切り文字は,二重引用符(")で囲んで指定してください。
  • 次に示す文字は指定できません。
    ・2バイト以上の文字列
    ・マルチバイト文字
    ・英大文字(A~Z),英小文字(a~z),数字(0~9)
    ・アスタリスク(*)
    ・二重引用符(")
    ・下線(_)
    ・囲み文字と同じ文字

ソートバッファサイズ

  ~〈符号なし整数〉((128~2097152))《1024》(単位:キロバイト)
インデクスの作成処理で使用するソートバッファサイズをキロバイト単位で指定します。

処理経過メッセージの出力契機間隔

  ~〈符号なし整数〉((0~1000))《0》(単位:1000行)
TP1/EEのメッセージログに出力する処理経過メッセージの出力契機間隔を1000行単位で指定します。例えば,1を指定すると,インポート処理が1000行終わるごとにTP1/EEのメッセージログに処理経過メッセージが出力されます。0を指定した場合は,処理経過メッセージは出力されません。

一時ファイルを作成するディレクトリパス名

  ~〈パス名〉((1~400文字))
一時ファイルを作成するディレクトリ名を絶対パス名で指定します。パス名の最後のスラッシュ(/)は指定しないでください。
この指定を省略した場合は,次の優先順位でディレクトリが決定されます。
  1. XDBサービス定義のxdb_import_work_directoryオペランドで指定したディレクトリ
  2. TP1/EEプロセスのカレントワーキングディレクトリ
この項目を指定するときの規則を次に示します。
  • パス名は二重引用符(")で囲んで指定してください。
  • パス名として指定できる文字は,英数字,スラッシュ(/),ピリオド(.),下線(_),#,@,~,コロン(:),および半角空白です。パス名にこれら以外の文字列が含まれている場合は,そのパス名をこの項目に指定できません。
  • パス名に全角文字が含まれている場合,そのパス名をこの項目に指定できません。
 
このディレクトリ下に作成される一時ファイルの見積もり式を次に示します。
作成される一時ファイル計算式
インデクス情報ファイルD+S+MAX(B1,B2,…,Bn,80×b)
変数の説明
D:次の計算式で求めます。

[図データ]
n:インポートする表に定義されているインデクス数
di:インデクスのキー長
3.6(3)(a)計算式中で使用する変数」の「DB格納キー長」の計算式を参照してください。
b:行データを格納する件数
e:0
ただし,eexdbimportコマンド(-dオプションを省略)実行時の一時ファイルの見積もりの場合は,表の既存の行数としてください。
S:インデクスをキー順にソートするための作業ファイルの容量
次の計算式で求めます。

S=(D+4×(b+e))×2

Bi:インデクス作成時に作成するファイルの容量
次の計算式で求めます。

Bi=(di+3)×(P1+P2)+12

P1:リーフページ数
P2:インデクス段数が2段目の上位ページ数
P1は「3.6(3)(c)インデクスの格納ページ数」の計算式1から,P2は同じ計算式1のPiから算出してください。

記述例

インポート制御ファイルの記述例を次に示します。

#COMMENT 入力データファイル名以降の項目を省略;
T1="/tmp/inputdb.dat"

#COMMENT 複数行にわたって記述;
T2="/home/xdbuser/tmp/table_a.dat",
  "|",
  "$",
   256,
   1,
  "/home/xdbuser/tmp"

注意事項

インポート制御ファイルの指定項目に誤りがあった場合は,エラーメッセージを出力したあと,誤りのあった項目の処理をスキップし,インポート処理を続行します。