データベース(PostgreSQL)の指定したテーブルを定期的に監視し、更新されているレコードを取り込みます。
更新されているレコードの検出には、指定のテーブルのTimestamp型のフィールドを使用し、
このフィールドの値が更新されているレコードが取り込みの対象になります。
本アクションを使用するためには、指定のテーブルにTimestamp型のフィールドを追加し、 レコードのINSERT時やUPDATE時にそのフィールドが最新日時に更新されるようにしてください。
| 名前 | 説明 | ||||||
|---|---|---|---|---|---|---|---|
| データベースタイプ | 接続するデータベースの種類を選択します。 | ||||||
| ドライバー | データベースに接続するためのJDBCドライバーを指定します。 | ||||||
| URL | 接続先データベースのURLを指定します。 | ||||||
| ユーザー | データベースに接続するときのユーザー名を指定します。 | ||||||
| パスワード | データベースに接続するときのパスワードを指定します。 | ||||||
| コネクションプール |
データベースとのコネクションをプールから使用するかどうかを指定します。
|
||||||
| テーブル名 | 検索するテーブル名を指定します。 | ||||||
| キーとなるフィールド名 | 更新を検出するために使用されるTimestamp型のフィールドのフィールド名を指定します。 | ||||||
| 検索SELECT文 |
検索するためのSELECT文を指定します。 検索するためのSELECT文は、パイプラインのレコード情報と「テーブル名」「キーとなるフィールド名」から自動的に生成されますが、 その他の条件を追加したい場合には、このプロパティに検索するためのSELECT文を指定します。 SELECT文にはWHERE句を必ず記述し、加えてWHERE句中の条件は $condition$ という文字列をANDで結合するようにしてください。 (例1)WHERE句が特に必要ない場合、WHERE $condition$ のみを付加する SELECT * FROM test WHERE $condition$ ORDER BY id (例2)WHERE句に (status = 1 OR status = 2) という条件がある場合、$condition$ をANDで結合する SELECT * FROM test WHERE $condition$ AND (status = 1 OR status = 2) ORDER BY id |
||||||
| 検索SELECT文ファイル |
検索するためのSELECT文を格納したテキストファイルのファイルパスを指定します。 SELECT文の記法に関する注意については「検索SELECT文」をご覧ください。 ファイルパスの区切り文字「\」と「/」は区別されません。 相対パスを指定した場合、 [DATA_DIR]/pipeline/home/pipeline/_filerootが起点になります。 このプロパティを指定した場合は、「検索SELECT文」の指定は無視されます。また、検索するためのSELECT文も自動的に生成されません。 |
||||||
| スケジュールタイプ |
実行スケジュールの種別を指定します。
|
||||||
| 取得間隔 |
実行する間隔を指定します。単位は「時間」「分」「秒」のいずれかで指定します。 スケジュールタイプが「時間間隔設定」の場合にのみ有効です。 |
||||||
| スケジュール実行期間 |
1日のうち実行スケジュールを行う期間を時間で指定します。 スケジュールタイプが「時間間隔設定」の場合にのみ有効です。 |
||||||
| 開始時に実行する |
パイプラインの開始時に処理を実行するかどうかを指定します。 スケジュールタイプが「時間間隔設定」の場合にのみ有効です。 チェックボックスがオンの場合、開始時にパイプラインの処理を実行します。その後は「取得間隔」で指定した時間ごとに実行されます。 オフの場合、パイプライン開始後、「取得間隔」で指定した時間が経った後に最初の実行が行われます。 初期値はオフで、開始時に実行しません。 |
||||||
| 実行曜日 |
どの曜日に処理を実行するかを指定します。 スケジュールタイプが「曜日設定」の場合にのみ有効です。 |
||||||
| 実行時間 |
指定された曜日の何時に処理を実行するかを指定します。 スケジュールタイプが「曜日設定」の場合にのみ有効です。 |
※細字は詳細設定のときのみ設定できるプロパティです。
| 名前 | データ型 | 説明 |
|---|---|---|
| Record.フィールド名 | 指定したデータ型 | レコード情報で定義して取り出したフィールドの値。 |
| エラーコード | エラー時 | 説明 |
|---|---|---|
| A0052-0001 | 終了 |
|
| A0052-0002 | 終了 |
|
| A0052-0003 | 終了 |
|
| A0052-0100 | 終了 |
|
| A0052-0102 | 終了 |
|
| A0052-0103 | 終了 |
|
| A0052-0104 | 終了 |
|
| A0052-0105 | 終了 |
|
| A0052-0101 | 終了 |
|
レコードの更新を監視するために、パイプラインの実行時にデータベースのシステム日付をキャッシュデータに保存しています。
このキャッシュデータはパイプラインの停止やサーバーの停止では初期化されません。
キャッシュデータは、以下のいずれかの条件を満たす場合に初期化されます。
レコードの更新の監視は以下のようにして行われます。
データベースのNull値をパイプラインの文字型のフィールドへ取り込んだ場合、パイプラインではそのフィールドの値はNullではなく空文字列になります。
パイプラインでは文字型のフィールドに関してはNullと空文字列を区別できませんのでご注意ください。