レコードを処理するには

レコードを絞り込む(RecordFilter コンポーネント)

1. 対象のフローを表示し、「レコード」タブからRecordFilterコンポーネント(「条件によって入力レコードを絞り込みます」)をドラッグして配置する

2. インスペクタの「条件式」の「...」をクリックし、レコードを絞り込む条件を指定する

HINT
インデックスで絞り込むには
RecordFilter コンポーネントの「フィルタリングの条件」プロパティで、「条件式」の代わりに「インデックス」を選択すると、「読込み開始行」や「取出す件数」を指定して絞り込むことができます。

 

3. その他のコンポーネントを接続し、マッピングを設定する

4. RecordFilterコンポーネントの直後のマッパーで「一致した件数」や「一致しなかった件数」をマッピングし、出力できる

上の例では、商品番号フィールドの値に JM1を含むレコードを絞り込み、一致するレコードは CSV ファイルへ出力、条件式と一致した件数、一致しなかった件数は画面に出力するフローを作成しています。

HINT
条件式は、レコード形式を評価する RQL の記述方法で指定します。「~=」は、右辺が文字列の場合に、「を含む」を 指定する比較演算子です。

RecordFilter コンポーネントの「一致しないレコードも取り出す」プロパティで、条件に一致しないレコードの出力も指定できます。

 

レコードのジョインを実行する(RecordJoin コンポーネント)

1. 対象のフローを表示し、「レコード」タブからRecordJoinコンポーネント(「指定したキーで二つのレコードを結合します」)をドラッグして配置する

2. それぞれのコンポーネントを接続する

3. RecordJoinコンポーネントを選択し、処理に応じてインスペクタの各プロパティを設定する

HINT
RecordJoinコンポーネントで「入力キー」プロパティを設定する場合には、事前に入力ストリームを2つ接続しておく必要があります。
RecordJoinコンポーネントの「モード」プロパティで「RDB」を選択した場合は、「コネクション名」プロパティで接続先のコネクションも指定します。

 

4. インスペクタの「入力キー」タブをクリックし、ジョイン処理で使用される入力キーを設定する

 

5. RecordJoin コンポーネントアイコンをダブルクリックすると、「出力列の選択」ダイアログが 表示されるので、出力対象のフィールド名にチェックマークを付け、「OK」をクリックする

 

「出力列の選択」ダイアログで出力フィールドを設定することで、出力ストリーム型やフィールド定義も指定できるようになります。必要に応じマッピングなども設定してフローを完成させます。

HINT

手順4では、JOIN で使用されるキーを指定します。「入力キー1」に入力ストリーム 1 のキーとなるフィールドを指定し、「入力キー2」に入力ストリーム 2 のキーとなるフィールドを指定します。この指定により、「入力キー1 = 入力キー2」という条件でレコードの JOIN が実行されま す。入力キーは複数指定することが可能です。

「出力列の選択」ダイアログで出力フィールドを設定すると、RecordJoinコンポーネントの「出力キー」プロパティに表示されます。

 

レコードをソートする (RecordSort コンポーネント)

1. 対象のフローを表示し、「レコード」タブから RecordSort コンポーネント(「レコードをソー トして出力します」)をドラッグして配置する

2. 各コンポーネントを接続し、RecordSortコンポーネントを選択して、インスペクタの各プロパティを設定する

CAUTION
大量のレコードを処理しようとすると実行時にエラーに なることがあります。

HINT
RDB データの読み込み時にソートを指定するには
SQL ビルダーを使うと、RDB データの読み込み時にソートを指定し、ソートを実行した状態で結果ストリームを出力できます。指定するには、SQL ビルダーの右欄にある「ソート」タブをクリックし、「フィールド名」の一覧から、ソート対象のフィールドを選択します。

 

3. インスペクタの「ソートキー」タブをクリックし、「キー名」からソート対象のキーを選択する

 

4. 必要に応じMapperコンポーネントでストリーム定義やマッピングを設定し、フローを完成させる

 

上の例では、RDB の結果ストリームから、「商品番号」をキーとして昇順にソートしたレコードを、CSV ファイルとして出力しています。

HINT
「ソートキー」タブで「キー名」にキーを指定すると、「ソート順」に「昇順」が指定されます。降順にしたい場合は「ソート順」で「降順」を選択してください。

設定したソートキーを削除するには、「ソートキー」タブの一覧で行全体が選択された状態で右クリックし、メニューから「削除」を選択します。なお、ソートキーは複数指定できます。

 

レコードを SQL で加工する (RecordSQL コンポーネント)

1. 「レコード」タブから RecordSQL コンポーネント(「レコードを仮想テーブルを使って SQLで加工します」)を配置し、各コンポーネントと接続する

2. RecordSQL コンポーネント「SQL 文」プロパティに SQL 文を指定し、出力ストリームのストリーム型やフィールド定義を設定する

RecordSQL コンポーネントでは、入力ストリームのレ コードを複数接続できます。

HINT
SQL 文の指定方法
テーブル名は、入力ストリームの接続順に、in[1], in[2],...と指定します。また、フィールド名は、入力ストリームで定義されているFieldの順に、field[1], field[2],...と指定します。たとえば、1番目の入力ストリームの 1 番目のField と、2 番目の入力ストリームの1番目の Fieldをキーにinner joinを行う場合は、「select in[1].field[1], in[1].field[2], in[1].field[3], in[2].field[2] from in[1] inner join in[2] on in[1].field[1] = in[2].field[1]」のように指定します。

 

レコードの行と列を入れ替える (RecordTransposeコンポーネント)

1. ファイル入出力のフローを作成し、「レコード」タブからRecordTransposeコンポーネント(「レコードの行と列を入れ替えます」)をドラッグして配置する

2. 各コンポーネントを接続し、RecordTransposeコンポーネントを選択して出力ストリームのストリーム定義を設定する

入出力のファイルを指定し、ストリーム定義を設定することで、行と列を入れ替えたファイルを出力できます。

CAUTION
対象のデータによっては出力ストリームのフィールド定義でデータ型をすべて String 型にする必要があります。

 

レコードの値を集計する (RecordAggregate コンポーネント)

1. 対象のフローを表示し、「レコード」タブからRecordAggregate コンポーネント(「レコードを集計します」)をドラッグして配置する

2. 各コンポーネントを接続し、RecordAggregate コンポーネントを選択して、「キー項目」タブで「キーフィールド名」を指定する

3. 「集計項目」タブで、「出力フィールド名」の値欄をクリックし、出力フィールド名としたい文字列を入力する

HINT

指定可能な集計方法
RecordAggregate コンポーネントでは、合計、平均、最大値、最小値、個数、個数(重複を除く)の各集計方法を指定できます。

4. 「集計フィールド名」の一覧から集計対象のフィールドを選択し、「集計方法」の一覧から集計方法を選択する

5. マッピングウィンドウで出力ストリームのマッピングやストリーム定義を設定する

「キー項目」プロパティで指定したキーフィールドごとに、「集計項目」で指定したフィールドが集計され、出力されます。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
    キーワード:
他にご質問がございましたら、リクエストを送信してください

このセクションの記事

他のキーワードで検索する