データの移入

データ移入の方法

DB2に他のシステムからのデータの移入を行う場合、LOADとIMPORTという2つの方法がある。
LOADコマンドは、コマンドが直接データイメージを作成して表スペースに挿入していくのに対し、IMPORTコマンドはINSERTコマンドをデータベースに対して発行する。このため、データがある程度より多くなると、LOADコマンドのほうがはるかに高速(通常数十倍)になる。また、LOADコマンドは、索引の作成や統計の収集を同時・高速に行うことが出来る。

LOADコマンド

処理内容

LOADコマンドは、以下の3つのフェーズを順に実行する。

ロード
データを既存の表に書きこむ。SAVECOUNTパラメータで指定された間隔で一貫性ポイントが確保され、メッセージファイルに書き出される。作成フェーズで使用する索引情報もここで収集。
作成
ロード・フェーズで収集した情報を元に索引を作成する。
削除
固有制約違反の原因になった行を表から削除する。例外表が作成されていると、無効の行がそこに保管される。

LOADコマンドがサポートするファイル形式は、IXF(DB2の独自形式)・デリミタ・固定長の三種類である。

パラメータ

回復処理に関連する主なパラメータは以下の通り

COPY (YES|NO)
COPY NOを指定すると、保存ログモードで運用するためのデータのコピーを抑制するため、LOAD処理終了後に表スペースがバックアップ保留状態になる。これによるパフォーマンスの向上はせいぜい数%。デフォルトはCOPY YES。
UNRECOVERABLE
LOADがロールフォワード回復不能な処理であることを明示的に宣言する。読取専用の表の場合、このパラメータを指定することでパフォーマンスを向上させることが出来る。

パフォーマンスチューニングに関連する主なパラメータは以下の通り

Fastparse
データの正しさが確認できている場合、このパラメータを指定するとエラー処理が省略され、パフォーマンスが向上する。
Anyorder
パラレルロードを行う場合にレコードの挿入順を保証しないことで、パフォーマンスを向上させる。

エラー処理

LOADコマンドのロード・フェイズでは、制約検査はオフにされる。ロード・データが適切なデータタイプで無い場合には、その行はインポートされず、指定したメッセージファイルにその旨が書き出される。しかしながら、「固有キー制約違反」「参照制約違反」「不正なロード再試行によるデータ重複」による行のエラーについては、以下のような処理が行われる。

  1. ロード処理自体は正常に終了する
  2. エラー行は例外表に書き出される。例外表が無ければ、エラー行は切り捨てられる。
  3. 表は検査保留状態に置かれる。
  4. ロード終了後、ユーザがSET CONSTRAINTS文を実行して検査保留状態から回復する。

EXPORTコマンド

EXPORTコマンドは、SELECT文の問い合わせ結果を元にデータを書き出す。サポートするファイル形式は、IXF・デリミタに加え、WSPフォーマットの3形式である(固定長テキストはサポートしない)。使用できる主なパラメータは以下の通り:

OF (DEL|IXF|WSF)
エクスポートファイルの形式
METHOD N (column-name, ...)
SELECT文とは別の列名を使用する。IXFとWSFの場合に有効
MODIFIED BY filetype-mod ...
デリミタファイルで使用する制御文字を変更する。COLDEL(デリミタ),CHARDEL(文字ストリング),DECPT(小数点),DATESISO(日付形式)など

IMPORTコマンド

IMPORTコマンドは、外部テーブルの各行をINSERT文でテーブル等に挿入していく。SELECT文の問い合わせ結果を元にデータを書き出す。サポートするファイル形式は、IXF・デリミタ・固定長・WSPフォーマットの4形式である。使用できる主なパラメータは以下の通り:

使用可能なIMPORTモード
COMMITCOUNT
コミットを行う間隔
METHOD (L|N|P)
インポートする列を、カラム範囲(L,固定長のみ)・列名(N)・列番号(P)で指定

LOADとIMPORTの比較

LOADとIMPORTの相違点は以下のようなものである。

IMPORTLOAD
低速(少量データの場合にはオーバーヘッドがない分高速になることも) 高速
存在しない表・索引の作成が可能(IXF形式の場合) 表・索引は事前に存在が必要
WSF形式をサポート IXF・デリミタ・固定長のみ
ビューへのインポートが可能 表・エイリアスのみ
挿入はロギングされる 作業はほとんどロギングされない
トリガが起動される トリガは起動されない
作業が中断してもそのまま処理が可能 作業が中断すると表領域の回復が必要
SMPをサポートしない SMPをサポートする
全ての制約性チェックを行う 制約性チェックは行わない
索引作成・統計情報収集は別途行うべき 索引作成・統計情報収集を同時・高速に行うことが出来る
トップページに
Last modified: Mon Nov 22 12:42:13 +0900 2021