4.3.7 時系列情報表の作成
時系列情報表を作成する手順について説明します。
(1) 取得できる時系列情報
反映表定義のto句でtimestampを指定すると,更新情報を更新の履歴として時系列順に取得できます。ただし,更新の種別によっては時系列情報を取得できないことがあります。時系列情報を取得できないときは,null値になります。
取得できる時系列情報の内容と取得可否を次の表に示します。
取得情報 |
内容 |
可 否 |
|||
---|---|---|---|---|---|
更新 |
挿入 |
削除 |
PURGE |
||
抽出日付 |
抽出側システムで更新情報が更新ジャーナルに出力された日付 |
○ |
○ |
○ |
○ |
抽出時間 |
抽出側システムで更新情報が更新ジャーナルに出力された時間 |
○ |
○ |
○ |
○ |
抽出時刻印 |
抽出側システムで更新情報が更新ジャーナルに出力された日付及び時間 |
○ |
○ |
○ |
○ |
反映日付 |
反映側システムで更新情報が反映側DBに反映された日付 |
○ |
○ |
○ |
○ |
反映時間 |
反映側システムで更新情報が反映側DBに反映された時間 |
○ |
○ |
○ |
○ |
反映時刻印 |
反映側システムで更新情報が反映側DBに反映された日付及び時間 |
○ |
○ |
○ |
○ |
反映種別 |
反映の種別が次のように取得されます。
|
○ |
○ |
○ |
○ |
マッピングキー |
更新対象の特定に使ったキー値 |
○ |
○ |
○ |
− |
更新情報 |
更新したデータ |
○ |
○ |
− |
− |
SQL通番 |
時系列情報単位に割り当てたシーケンシャルな番号 |
○ |
○ |
○ |
○ |
- (凡例)
-
○:取得できます。
−:NULL値になります。
(2) 時系列情報を取得する表の定義
更新情報,反映日付,反映時間などの時系列情報を取得するためには,反映対象にするHiRDBのデータベース上に,これらの情報を取得するための表(時系列情報表)を作成しておく必要があります。時系列情報表を作成するときには,表名と列構成(列数,列順序,列名)は任意に指定できます。ただし,列の属性は取得する情報に合わせて定義する必要があります。また,取得する情報の種類によっては,更新情報フィールド定義のconst句で定数を指定します。
時系列情報表の列の属性とconst句での指定を次の表に示します。
取得する情報 |
列の属性 |
更新情報フィールド定義のconst句での指定 |
---|---|---|
抽出日付 |
DATE |
extract_date |
抽出時間 |
TIME |
extract_time |
抽出時刻印 |
TIMESTAMP〔(p)〕※1, p=0,2,4,6 |
extract_timestamp |
反映日付 |
DATE |
reflect_date |
反映時間 |
TIME |
reflect_time |
反映時刻印 |
TIMESTAMP〔(p)〕※1, p=0,2,4,6 |
reflect_timestamp |
反映種別 |
CHAR(5) |
reflect_kind |
マッピングキー |
マッピングキーを格納できる属性 |
− |
更新情報 |
更新情報を格納できる属性 |
− |
SQL通番 |
INTEGER,SMALLINT,位取り0のDECIMAL |
sequence [認可識別子※2.]順序数生成子識別子 |
- (凡例)
-
−:該当しません。
- 注※1
-
pは表示する秒数の小数点以下のけた数を表す整数です。例えば,p=2の場合,小数点第2位の秒数までを時刻として取得します。
抽出時刻印については,pの指定内容に関わらず,抽出側DBがメインフレームの場合にだけ小数点以下の時刻を取得します。また,そのときに取得する秒数は,小数点第2位までになります。
- 注※2
-
認可識別子を省略すると,反映システム定義で定義した認可識別子が仮定されます。
時系列情報表を利用する場合には,次の点に注意してください。
-
時系列情報は,HiRDBの検索機能(SELECTコマンド)によって参照できます。ただし,抽出側DBの更新順に取得されないことがあるため,抽出側DBの更新順に検索したい場合は,時系列情報表にSQL通番列を指定し,SQL通番情報を取得するようにしてください。
また検索時には,SQL通番列でソートの指定をしてください。
-
時系列情報表には,更新情報,反映日付,反映時間などの情報が時系列順に蓄積され続けます。このため,不要になった情報を,DELETE又はPURGE TABLEを発行して,時系列情報表から削除する必要があります。
(3) 時系列情報表へ反映するデータの注意事項
-
BLOB分割取得データを時系列情報表へ反映した場合,反映するデータはBLOB分割取得データだけになります。
-
後方削除更新をしているBLOB型又はBINARY型のデータは,時系列情報表には反映しないでください。抽出側DBと反映側DBで不整合が発生します。
(4) SQL通番を取得する場合の注意事項
-
SQL通番を取得する場合,事前に順序数生成子を作成しておく必要があります。
順序数生成子を作成する際の推奨値を次に示します。
オペランド
推奨値
説明
〔認可識別子.〕
順序数生成子識別子
任意
任意の名称を指定してください。
FOR PUBLIC USAGE
FOR PUBLIC USAGE
Replicatorのプロセスが採番要求を行うため,順序数生成子作成者以外でも使用できるように,FOR PUBLIC USAGEを指定してください。
IN 順序数生成子
格納RDエリア
時系列情報表と同じサーバに存在するRDエリア名
時系列情報表と異なるサーバに順序数生成子を作成すると,採番ごとにサーバ間で通信が発生し,性能が劣化します。そのため,時系列情報表と同じサーバに存在するRDエリア名を推奨します。
順序数生成子データ型オプション
DECIMAL(38)
循環が発生する要因を少なくするため,整数で最大値が指定できる,DECIMAL(38)を推奨します。
順序数生成子開始オプション
任意
SQL通番の使用用途に合わせて値を設定してください。
順序数生成子増分オプション
任意
順序数生成子最大値オプション
任意
順序数生成子最小値オプション
任意
順序数生成子循環オプション
NO CYCLE
SQL通番が重複しないようにNO CYCLEを推奨します。
順序数生成子ログ出力間隔オプション
省略
SQL通番の抜けが発生しないようにオプションを省略または1を指定してください。
-
データ連携中にSQL通番のリセット(順序数生成子の削除後,再定義)は行わないでください。データ連携中にSQL連番のリセットを行うとSQLエラーが発生し,連携が停止します。
-
時系列情報表のクリアを行う際に,SQL通番の循環を発生させないよう,SQL通番のリセット(順序数生成子の削除後,再定義)の実施を推奨します。