17.1.2 adbimportコマンドのオプション機能
adbimportコマンドには,次に示すオプション機能があります。
-
論理エラーデータの出力機能
-
B-treeインデクスとテキストインデクス作成処理からの再実行機能
-
バックグラウンドインポート機能
(1) 論理エラーデータの出力機能
データをインポートする際,正常なデータだけがインポートされ,不正なデータ(論理エラーデータ)はインポートされません。論理エラーデータを含む行のデータは,論理エラーデータファイルに出力されます。ファイルに出力された論理エラーデータを修正したあとに,adbimportコマンドを再実行して,修正したデータをインポートできます。
論理エラーデータの出力機能の概要を次の図に示します。
- ■論理エラーデータとは
-
論理エラーデータとは,次に示すデータのことです。
-
データ長が不正なデータ
-
不正な囲み文字が指定されているデータ
-
入力データの変換処理中にエラーが発生したデータ
-
インポート対象の入力データが存在しない場合
-
入力データの列数が,表の列数より多いまたは少ない場合
-
非ナル値制約の列のデータに空文字列※がある場合
-
入力データファイルの書式が不正の場合
- 注※
-
空文字列とは,入力データ中でフィールドデータの値が存在しない空の文字列のことです。
-
(2) B-treeインデクスとテキストインデクス作成処理からの再実行機能
データインポート処理では,表データのインポートが完了したあとにB-treeインデクスおよびテキストインデクスを作成します。B-treeインデクスおよびテキストインデクスの作成処理中にadbimportコマンドが異常終了するなどした場合,adbimportコマンドの再実行時にB-treeインデクスおよびテキストインデクスの作成処理からデータインポート処理を再開します。そのため,データインポート処理の再実行に掛かる時間を短縮できます。
B-treeインデクスとテキストインデクス作成処理からの再実行機能の概要を次の図に示します。
B-treeインデクスとテキストインデクス作成処理からの再実行機能は,次に示すすべての条件を満たす場合に適用されます。
-
次に示すインデクスのどちらか,または両方がインポート対象表に定義されている※
-
B-treeインデクス(インポート対象表に主キーが定義されている場合も含む)
-
テキストインデクス
- 注※
-
adbimportコマンドの再実行前に,処理対象表のB-treeインデクスおよびテキストインデクスをすべて削除した場合は,コマンドの終了処理だけが実行されます。
-
-
表データのインポートが完了している(表データのインポートが完了するとKFAA80203-Iメッセージが出力されます)
-
次に示すどれかの理由で処理が中断している
-
adbimportコマンドが異常終了した
-
adbcancelコマンドでadbimportコマンドを強制終了した
-
adbstop --forceコマンドでHADBサーバを強制終了した
-
OSのkillコマンド,電源断などでサーバプロセスを強制終了した
-
なお,表データのインポート中(KFAA80203-Iメッセージの出力前)にadbimportコマンドが中断した場合,B-treeインデクスとテキストインデクス作成処理からの再実行機能は適用されません。
また,--forceオプションを指定してadbimportコマンドを再実行したときは,データインポート処理の初めから強制実行されるため,B-treeインデクスとテキストインデクス作成処理からの再実行機能は適用されません。
(3) バックグラウンドインポート機能
バックグラウンドインポート機能を適用すると,同一の表に対してデータ検索とインポートが同時に実行できます(バックグラウンドインポート中のデータは検索の対象外となります)。
バックグラウンドインポート機能の概要を次の図に示します。
バックグラウンドインポート機能は,次のすべての条件を満たす場合に適用されます。
-
インポート対象表の定義時にCHUNKを指定している(インポート対象表はマルチチャンク表である)
-
データインポートを追加モードで実行している(adbimportコマンドの-dオプションを省略している)
-
adbimportコマンドの-bオプションを指定している
-
これまでに表に作成されたチャンク数,およびバックグラウンドインポートで作成されるチャンク数の合計が,表定義時のCHUNKの指定値を超えていない
- 注
-
バックグラウンドインポート実行中に,次の情報がメッセージログファイルに出力されます。
-
表に作成できる残りのチャンク数
-
バックグラウンドインポート実行中に作成されたチャンクのチャンクID
-
- メモ
-
- ■待機状態のチャンクを作成するバックグラウンドインポート
-
バックグラウンドインポートで,インポートしたデータを操作系SQLの対象外としたい場合は,-bオプションだけでなく,--status waitオプションも指定してください。バックグラウンドインポートで,待機状態のチャンクに対してデータがインポートされます。
なお,待機状態のチャンクに対して,操作系SQLのPURGE CHUNK文とTRUNCATE TABLE文は実行できます。