ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework システム構築・運用ガイド
レコードの抽出では,レコードを抽出して,抽出したレコードを結合して新たなレコードを生成するまでに,抽出対象条件の判定,抽出条件の判定,および抽出レコード生成の処理を実施します。レコードの抽出のデータ処理の流れを次の図に示します。
図11-14 レコードの抽出のデータ処理の流れ
図中の1.〜3.の処理の詳細について,以降で説明します。なお,説明に出てくるアダプター構成定義ファイルのレコード抽出定義のタグや属性の詳細については,「9.11.4 レコード抽出定義」を参照してください。
入力されたレコードに対して,抽出対象条件の判定をします。
抽出対象条件とは,抽出対象のレコードを取捨選択するための条件の一つです。抽出対象条件は,レコード抽出定義のtargetrecordタグで指定します。
抽出対象条件には,レコード条件とフィールド条件を指定します。
例えば,レコード名がR1,フィールド名がF1,フィールド値がTAROという条件を指定したい場合には,レコード条件のレコード名には「source="R1"」,フィールド条件には「source="F1" condition="eq" value="TARO"」と指定します。
抽出対象条件の判定では,レコード抽出定義で定義した抽出対象条件に従って,レコード条件の判定,およびフィールド条件の判定が行われます。抽出対象条件の判定の流れを次に示します。
抽出対象条件が成立したレコードに対して,抽出条件の判定をします。
抽出条件とは,抽出対象のレコードを取捨選択するための条件の一つです。抽出条件は,レコード抽出定義のextractionタグで指定します。
抽出条件には,レコードバッファーに保持するレコードの上限値や,レコード間条件を指定します。レコード間条件には,レコードの入力順序と,レコード間でフィールド値を比較するためのフィールド値を指定します。レコード間条件は,targetsタグで指定します。
抽出条件の判定では,レコード抽出定義で定義した抽出条件に従って,レコード間条件の判定が行われます。レコード間条件に一致したレコードは,抽出条件が成立するまでレコードバッファーに保持されます。抽出条件の判定の流れを次に示します。
レコードの入力順序を指定している場合のレコード保持と破棄の流れの例を次の図に示します。
図11-15 レコードの入力順序を指定している場合のレコード保持と破棄の流れの例
この例では,レコードの入力順序をレコードA→レコードB→レコードCと指定しています。このため,入力されたレコードは次のように保持,または破棄されます。
レコードを破棄した場合,破棄したレコード数は,アダプタートレースに出力されます。アダプタートレースについては,「6.3.3 アダプタートレースの詳細」を参照してください。
抽出条件の判定では,レコード内の時刻情報が逆転した場合や,レコードバッファーに保持しているレコードがタイムアウトした場合などにもレコードを破棄します。それぞれの内容について,次に説明します。
図11-16 タイムアウト時のレコードの処理の流れ
この例の条件は次のとおりです。図11-17 同一レコードが入力された場合の処理
この例の条件は次のとおりです。抽出レコード生成では,抽出条件が成立したレコードを結合して,抽出レコードを生成します。抽出レコード生成の流れを次に示します。
生成される抽出レコードには,extractionタグのname属性で指定した抽出条件名が入力されたフィールドが追加されます。
抽出レコードの例を次の図に示します。
図11-18 抽出レコードの例
この例では,レコードAとレコードCを結合して,抽出レコードとして,新たなレコードEが生成されます。
All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.