4.3.3 マッピングキーの対応の設計
マッピングキーとは,更新情報が反映対象表のどの行に対応するのかを特定するためのキーのことです。このため,マッピングキーは抽出対象表と反映対象表とで対応させる必要があります。マッピングキーは1個以上の列で構成します。
- 注意1
-
マッピングキーは,反映対象のどの行に反映するかを特定するためのものです。マッピングキーが抽出側と反映側の間で特定できないときは,該当する行が複数になって,残りの反映処理で不都合が起こります。
- マッピングキーで行が特定できない場合:
-
データを反映するときに,行が存在しないエラーになって終了することがあります。この場合は,反映環境定義のskip_sqlcodeオペランドにスキップするSQLCODEを指定して再実行してください。
- 注意2
-
反映対象表には,すべてのマッピングキー列を構成列とするユニークキーインデクスを定義してください。ユニークキーインデクスを定義していないと,キー重複エラーを検知できなくなります。さらに,UPDATEとDELETEの反映性能が著しく低下します。
マッピングキーは,抽出側DBによって指定方法が異なります。抽出側DB ごとのマッピングキーについて説明します。
- 〈この項の構成〉
(1) 抽出側DBがHiRDBの場合のマッピングキー
マッピングキーに指定できるデータ型を次に示します。
分類 |
マッピングキーに指定できるデータ型 |
列定義長 |
---|---|---|
数値型 |
INTEGER |
− |
SMALLINT |
− |
|
DECIMAL(m,n) |
1≦m≦38,0≦n≦38,n≦m |
|
FLOAT |
− |
|
SMALLFLT |
− |
|
文字型 |
CHAR(n) |
n≦255 |
VARCHAR(n) |
n≦255 |
|
NCHAR(n) |
n≦127 |
|
NVARCHAR(n) |
n≦127 |
|
MCHAR(n) |
n≦255 |
|
MVARCHAR(n) |
n≦255 |
|
日付型 |
DATE |
− |
TIME |
− |
|
TIMESTAMP(p) |
p=0,2,4,6 |
|
INTERVAL YEAR TO DAY |
− |
|
INTERVAL HOUR TO SECOND |
− |
- (凡例)
-
−:該当しません。
- 注
-
繰返し列はマッピングキーに指定できません。
-
マッピングキーは,抽出定義の抽出文のkey句 又はukey句で指定します。
-
マッピングキーには,最大16個の列が指定できます。
-
抽出定義の抽出定義文にkey句で列を指定した場合は,マッピングキーは更新しないでください。マッピングキーを更新すると反映側DBでは更新後のキーで反映されるので,抽出側DBでの更新とは異なる行に対する更新になります。このため,抽出側DBと反映側DBとの間に不整合が発生することがあります。マッピングキーを更新する場合は,ukey句で列を指定してください。
-
反映側Datareplicatorには,INSERT,UPDATE,及びDELETE時に操作したすべての行のマッピングキーに対応するデータが送信されます。
(5) 抽出側DBがPDMII E2の場合のマッピングキー
(a) XDM/DSを使ってデータ連動する場合
(b) SAMファイルを使ってデータ連動する場合
-
抽出側DBがPDMII E2の場合のマッピングキーは,更新情報定義で指定します。更新情報定義の指定については,「5.11 更新情報定義」を参照してください。
-
反映側Datareplicatorの反映情報キューファイルには,抽出側DBから転送されたSAMファイルの内容が格納されます。