レコードを取捨選択して,特定のレコードを取得したあと,それらのレコードを意味のある一つのレコードにする場合,レコード抽出を使用します。
- 参考
- 「2.3.6 ストリームデータの結合」で説明したように,CQLでもレコード抽出処理を実行できますが,処理効率向上のため,アダプターで実行することをお勧めします。
例えば,クライアントとサーバ間の応答状況を集計・分析の対象としたい場合,入力用コールバックにHTTPパケット入力コネクターを使用した上で,編集用コールバックとしてレコード抽出を使用します。ネットワーク上のリクエストとレスポンスのそれぞれのHTTPパケットを,レコード抽出によって送信元IPと送信先IPで結び付けた一つのレコードにすれば,応答時間などが明確になり,集計・分析がしやすくなります。
レコード抽出では,レコード形式およびレコードに設定されている値で目的のレコードをフィルタリングしたあと,それらのレコードを結合して新たなレコードを生成します。レコードの抽出でのコールバックの構成と処理の内容を次の図に示します。
図3-8 レコードの抽出でのコールバックの構成と処理の内容
![[図データ]](figure/zd030500.gif)
- レコード抽出に入力されたレコードは,最初にレコード形式でフィルタリングされます。ここでは,レコード形式がR1およびR2のレコードだけを次の判定に掛けるように条件を指定しているため,この条件を満たすレコードが,次の判定の対象となります。条件を満たさないレコードは,次のコールバックに渡されます。
- レコード形式でフィルタリングしたあとは,レコードの値でフィルタリングします。ここでは,リクエストの送信元IPおよび送信先IP,ならびにレスポンスの送信元IPおよび送信先IPが,それぞれ対になるレコードだけを次の処理に渡すように条件を指定しています。そのため,この条件を満たすレコードが,次の処理での対象となります。
- レコード形式,およびレコードに設定されている値でフィルタリングされたレコードを結合し,一つのレコードとします。ここで結合されたレコードが,次のコールバックでの処理の対象となります。