手順
-
tPigCoGroupをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
- [Edit schema] (スキーマを編集)の横の[...]ボタンをクリックし、スキーマエディターを開きます。
- [+]ボタンを5回クリックして5つの行を追加し、[Column] (カラム)カラムで名前をそれぞれowner_friend、age、pet_number、pet、studentに変更します。
- age行の[Type] (タイプ)カラムで、[Integer] (整数)を選択します。
- [OK]をクリックしてこれらの変更を確認し、ポップアップ表示されるダイアログボックスで求められるプロパゲーションを承認します。
- [Group by] (グルーピング)テーブルで、[+]ボタンを1回クリックして1行を追加します。
-
次に、[Group by] (グルーピング)テーブルでグルーピングの条件を設定して、2つの入力関係を集約する必要があります。入力関係を表す各カラムで、新しく追加された行をクリックして、グルーピングの条件を構成するために必要なカラムを選択します。このシナリオでは、飼い主/ペット関係からのownerカラムと学生/友人関係からのfriendカラムは共通のレコードがあるので、選択されています。これらのカラムに基づいて、2つの関係はバッグに集約されます。
Aliceというレコードに関連するバッグは以下のように表示されることがあります:
Alice,{(Alice,turtle,17),(Alice,goldfish,17),(Alice,cat,17)},{(Cindy,Alice),(Mark,Alice)}
-
[Output mapping] (出力マッピング)テーブルで、前に定義した出力スキーマは[Column] (カラム)カラム内に自動的に流されました。出力関係のスキーマにグルーピングされたバッグを集約する方法を定義するには、このテーブルを完成させる必要があります。以下のリストには、このシナリオ用に集約の設定方法に関する詳細が含まれます。
カラム
説明
owner_friend
グルーピングの条件として使用されるカラムからリテラルレコードを受信します。
そのため、受信レコードがそのままであるように[Function] (関数)ドロップダウンリストから[EMPTY]関数を選択します。そして、[Source schema] (ソーススキーマ)リストからrow1を、[Expression] (式)リストからownerを選択して、対応する入力カラムからレコードを読み取ります。または、row2およびfriendを選択できます(グルーピングの条件として使われる時に、ownerカラムとfriendカラムが結合されるため、受信されるレコードは同じです。)
row1が入力リンクのIDであるため、自分のシナリオでは異なることがあります。
age
年齢データを受信します。
前のステップのサンプルバッグに示されるように、グルーピング後に飼い主の年齢が繰り返し表示されます。[Function] (関数)リストから[AVG]関数を選択して、この年齢が最終結果に1回のみ表示されるよう、反復的な値の平均を計算します。次に、[Source schema] (ソーススキーマ)リストからrow1を、[Expression] (式)リストからageを選択します。
pet_number
飼い主がペットを何匹飼っているかを受信します。
[Function] (関数)リストから、[COUNT] (カウント)関数を選択して、その計算を行います。次に、[Source schema] (ソーススキーマ)リストからrow1を、[Expression] (式)リストからpetを選択します。
petとstudent
入力petカラムと入力studentカラムから、グルーピングされたレコードをそれぞれ受信します。
両方の[EMPTY]を選択して、各カラムの[Source schema] (ソーススキーマ)リストから対応する入力スキーマを、[Expression] (式)リストから対応するカラムを選択します。