ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework システム構築・運用ガイド

[目次][索引][前へ][次へ]

11.6.2 ファイルへの出力のデータ処理の流れ

出力アダプターでのファイルへの出力のデータ処理の流れと処理の内容を次の図に示します。

図11-20 ファイルへの出力のデータ処理の流れと処理の内容

[図データ]

出力アダプターで扱うデータ形式について,「(1) 出力アダプターで扱うデータ形式」で説明します。また,各処理の詳細について,「(2) タプル受信」以降で説明します。

<この項の構成>
(1) 出力アダプターで扱うデータ形式
(2) タプル受信
(3) マッピング
(4) フォーマット変換
(5) ファイル出力コネクターによるファイルへの出力

(1) 出力アダプターで扱うデータ形式

出力アダプターで扱うデータ形式には,共通形式レコードおよび出力形式レコードがあります。共通形式レコードについては,入力アダプターで扱う共通形式レコードと同じです。共通形式レコードについては,「11.2.2(1) 入力アダプターで扱うデータ形式」の共通形式レコードの説明を参照してください。ここでは出力形式レコードについて説明します。

出力形式レコード
出力ファイルに出力する,行単位のデータのことです。出力アダプターでは,1行のデータを1出力形式レコードとして扱います。

(2) タプル受信

タプル受信についての定義は,アダプター構成定義ファイルの出力ストリーム定義に定義します。

タプル受信では,出力ストリームから送信されたタプルを受信し,共通形式レコードに変換します。

出力アダプターでの,出力ストリームからのタプル受信の例を次の図に示します。この例では,出力ストリームs1からタプルを受信します。

図11-21 出力アダプターでのタプル受信の例

[図データ]

(3) マッピング

マッピングについての定義は,アダプター構成定義ファイルのマッピング定義で定義します。

マッピングには,レコードとストリーム間のマッピング,およびレコード間のマッピングがあります。それぞれのマッピングの概要を次の表に示します。

表11-3 マッピングの概要

項番 マッピングの種類 説明
1 レコードとストリーム間のマッピング タプル受信で変換された共通形式レコード(マッピングの変換元)を,出力形式に従った共通形式レコード(マッピングの変換先)に変換します。
レコードとストリーム間のマッピングは,タプル受信のあとに必ず実施します。
2 レコード間のマッピング レコードとストリーム間のマッピングで変換された共通形式レコードを編集し,マッピングの変換先の共通形式レコードに変換します。
レコード間のマッピングは,レコードとストリーム間のマッピングのあと,かつフォーマット変換の前に,必要に応じて実施します。
マッピングの変換元の共通形式レコードのフィールド名を変更したい場合や,複数のフィールドから次のコールバックの処理に不要なフィールドを削除したい場合などに使用できます。
また,組み込み関数を使用して,マッピングの変換元の共通形式レコードから文字列や時刻を取得し,取得した文字列や時刻をマッピングの変換先の共通形式レコードに反映することもできます。
なお,レコード間のマッピングは複数定義できます。
注※
レコード間のマッピングで使用できる組み込み関数は,アダプター構成定義ファイルのmapタグのfunction属性で指定します。function属性で指定できる組み込み関数については,「9.11.2 マッピング定義」を参照してください。

出力アダプターでのマッピングの例を次の図に示します。この例では,tフィールドとurlフィールドを,アダプターの出力形式に従ってtimeフィールドとurlフィールドに変換し,マッピングの変換先の共通形式レコードに変換します。

図11-22 出力アダプターでのレコードとストリーム間マッピングの例

[図データ]

参考
レコードとストリーム間のマッピングのあとには,レコード間のマッピングおよびレコードのフィルタリングが順不同で実施できます。必要に応じて実施してください。
レコードのフィルタリングについては,「11.4 レコードのフィルタリング」を参照してください。

(4) フォーマット変換

フォーマット変換についての定義は,アダプター構成定義ファイルのフォーマット変換定義で定義します。

フォーマット変換では,共通形式レコードを出力形式レコードに変換します。

共通形式レコードから出力形式レコードへのフォーマット変換の例を次の図に示します。この例では,TIME型と文字列型のフィールド値を持つ共通形式レコードから,空白で区切られた三つのフィールドで構成された出力形式レコードにフォーマット変換されます。

図11-23 共通形式レコードから出力形式レコードへのフォーマット変換の例

[図データ]

この図の場合の共通形式レコードのレコード構成と指定するフォーマット変換定義のタグを次の表に示します。

表11-4 指定する定義ファイルとレコード構成

レコード構成 タグ
レコード名:R1
レコード構成:($_time)△($_method)△($_url)
recordタグ(レコード定義)
フィールド名:time,型:TIME fieldタグ(フィールド定義)
フィールド名:method,型:STRING
フィールド名:url,型:STRING
(凡例)
△:半角スペース

変換できるデータ型および共通形式レコードのレコード構成の設定については,「9.11.1 フォーマット変換定義」を参照してください。

(5) ファイル出力コネクターによるファイルへの出力

ファイル出力についての定義は,アダプター構成定義ファイルのファイル出力コネクター定義で定義します。

ファイル出力コネクターでは,入力された出力形式レコードを,定義された出力ディレクトリに出力します。

ファイル出力コネクターで出力できるファイルのファイル構成を次の表に示します。

ファイル構成 説明
ラップアラウンド ファイル出力コネクター定義に指定した出力ファイル生成規則に従ってファイルを生成します。最大ファイル数に達すると,最初に起動したファイルを上書きして書き込みます。
非ラップアラウンド ファイル出力コネクター定義に指定した出力ファイル生成規則に従ってファイルを生成します。最大ファイル数に達すると,出力アダプターでレコードの出力を停止し,レコードを破棄します。