12.1.1 データロード
pdsdbdefコマンドで定義したデータベースにレコードを格納し,インデクスを作成します。この機能をデータロードといいます。データロードには,次の表に示す2種類があります。
データロードの種類 |
説明 |
---|---|
environment文のpurgeオペランドにyesを指定して実行するデータロードのことです。この場合,格納済みのレコードを削除してから,データロードが実行されます。 |
|
environment文のpurgeオペランドにnoを指定するか,またはpurgeオペランドを省略して実行するデータロードのことです。この場合,格納済みのレコードは削除されません。入力データファイルのデータが追加でデータロードされます。 追加データロードは,4V FMBまたはSD FMBのSDBデータベースの場合に実行できます。 |
データロードの概要を次の図に示します。
- 注※
-
更新可能なオンライン再編成を実行する場合に必要となるRDエリア,および作成されるファイルです。
- [説明]
-
-
入力データファイル中のレコードをデータベースに格納します。
-
インデクスに関する情報がインデクス情報ファイルに出力され,ソート用ワークファイルでインデクスのデータをソートしてインデクスが作成されます。
-
更新可能なオンライン再編成を実行する場合,追い付き反映キー対応表に登録する情報を中間ファイルに一時的に出力します。その後,追い付き反映キー対応表にデータが登録されます。
-
SDBデータベース定義のDBLODUTL句にUSEを指定したデータベースに対してだけデータロードを実行できます。
- 〈この項の構成〉
(1) データロードの際に準備するファイル
データロードを実行する前に,次のファイルを準備しておきます。これらのファイルは通常ファイル上に作成してください。
-
データベースに格納するレコードを格納しているファイルです。入力データファイルは決まった形式で作成する必要があります。入力データファイルの形式については,「12.6 入力データファイルの形式」を参照してください。
-
pdsdblodコマンドの動作条件を指定したpdsdblod制御文を格納したファイルです。pdsdblod制御文については,「12.3 pdsdblod制御文」を参照してください。
(2) データロードの際に準備するRDエリア【4V FMB】
更新可能なオンライン再編成を実行する前に,次のRDエリアを準備しておきます。
-
追い付き反映キー対応表を格納するRDエリア
-
追い付き反映キー対応表のインデクスを格納するRDエリア
詳細については,「5.13.3(6) 追い付き反映キー対応表,追い付き状態管理表を格納するRDエリアの作成(pdmodコマンド)」を参照してください。
(3) データロードの際に作成されるファイル
データロードの際,HiRDB/SDは次に示すファイルを作成します。これらのファイルは通常ファイル上に作成されます。
-
インデクスを一括作成する際に一時的に作成されるファイルです。pdsdblodコマンドが正常終了した場合,これらのファイルは自動的に削除されます。
追加データロードのインデクス一括作成モードの場合は,レコード格納前に既存レコードのインデクス情報をインデクス情報ファイルに出力します。その後,追加するレコードのインデクス情報をこのインデクス情報ファイルに追加します。そのため,レコード格納後には,追加するレコードだけでなく,SDBデータベースに格納済みのレコードを含めた全レコードのインデクス情報ファイルが作成されます。
-
pdsdblodコマンドの実行結果を出力するファイルです。実行結果ファイルに出力される情報については,「12.7 実行結果ファイルの出力形式」を参照してください。
-
入力データファイル中のレコードに論理エラーがあった場合,論理エラーに関する情報を出力するファイルです。
HiRDB/SDはデータベースの定義に合っていない不整合なレコードを論理エラーのレコードと判定します。データロードの際は,正常なレコードだけが格納され,論理エラーと判定されたレコードは格納されません。論理エラーが発生した場合,どのようなエラーで,レコード中のどの個所にエラーがあったかという情報が論理エラー情報ファイルに出力されます。論理エラー情報ファイルに出力される情報については,「12.8.2 論理エラー情報ファイルの出力形式」を参照してください。
-
追い付き反映キー対応表に登録する情報を一時的に格納するファイルです。更新可能なオンライン再編成の実行時に作成されます。
(4) インデクスの作成モードの選択
データロードを実行する際,インデクスの作成方法(作成モード)を選択します。次に示すどちらかのモードを選択してください。
インデクス一括作成モードを選択した場合,すべてのレコードの格納処理が完了したあとに,まとめてインデクスが作成されます。インデクス更新モードを選択した場合,1レコードを格納するたびにそのレコードのインデクスが作成されます。
- ポイント
-
通常は,性能面で優れているインデクス一括作成モードを選択してください。ただし,データロード時にシーケンシャルインデクスのキー値の重複が検出された場合(KFPB63481-Eメッセージが出力された場合)は,インデクス更新モードでデータロードを再実行してください。
- 理由:
-
インデクス一括作成モードでデータロードを実行した場合,シーケンシャルインデクスのキー値の重複情報が論理エラー情報として出力されないため,どのキー値が重複しているのかを特定できません。一方,インデクス更新モードでデータロードを実行した場合,シーケンシャルインデクスのキー値の重複情報が論理エラー情報として出力されるため,どのキー値が重複しているのかを特定できます。
pdsdblod制御文のload文のidxmodeオペランドでインデクスの作成モードを選択します。
(5) SDBデータベースが横分割されている場合のデータロード
SDBデータベースが複数のRDエリアに横分割されている場合のデータロードについて説明します。
-
SDBデータベースがサーバ内横分割されている場合
複数のRDエリアに対して一括してデータロードが実行できます(pdsdblodコマンドの一度の実行でデータロードが完了します)。また,RDエリア単位にデータロードを実行することもできます。この場合,pdsdblodコマンドを複数回実行します。
-
SDBデータベースがサーバ間横分割されている場合
データロードはバックエンドサーバ単位でしか実行できないため,SDBデータベースがサーバ間横分割されている場合は,バックエンドサーバ単位にデータロードを実行します。
(6) 一連番号の扱い
一連番号は入力データ順に自動的に1から採番され,付与されます。
(7) 追加データロード【4V FMB,SD FMB】
格納されていないデータベースキーを持つルートレコードのファミリ単位で追加データロードができます。