ヒント: フィールドを正確に定義するために、この手順の前にインスペクション フローを1 度実行して、データによって生成される列の名前を確認してください。
a) [追加]をクリックします。
[フィールドの追加]ウィンドウが表示されます。
b) [フィールドの追加]ウィンドウのグリッド列は、[操作]タブで選択した[列]フィールドに基
づきます。これらのグリッド列に、インスペクション フローを実行するときに列見出しと して表示される値を入力します。
例えば、[操作]タブの[列]でShipDateという入力フィールドを選択した場合は、[フィー ルドの追加]ウィンドウのグリッドにはShipDateというラベルの列が表示されます。この グリッド列に、データフローの入力データに存在する正確なShipDateの値を、2/25/2010 や1/31/2010のように入力します。
c) [操作]フィールドで、入力した各列フィールド値に対して出力フィールドを生成する、1つ 以上の操作を選択します。選択した操作は、フィールド名だけに影響を与え、実際の計算は 制御しないことに注意してください。
[フィールド]タブの[操作]フィールドに一覧表示される操作を変更するには、[操作]タブで
[操作]フィールドの値を変更します。
重要: Computational Countの操作オプションである
ComputationalCount<Operation>Of<InputFieldName>は、[操作]タブで[操作]を 定義する際に[計算されたレコード数を取得]チェックボックスをオンにした場合のみ表示 されます。
d) [追加]をクリックします。
上のグリッドに入力された各入力値を、選択された[操作] の各値にマッピングすることによっ て、出力フィールドが自動的に作成されます。グリッドに入力した入力列値と選択した操作のデ カルト積が、最終的な出力列の自動生成に使用されます。
出力列の名前は、命名規則<Data>_<Operation>Of<InputFieldName>に従います。ここで、
<Data>は最初のフィールドで指定した値、<Operation>は[操作]フィールドで選択した操作、
<InputFieldName>はoperationを実行する入力列です。
ピボット テーブルの例
以下は、サービス業務部門からの出荷情報を示す入力データです。
Region,State,County,ShipDate,Unit East,MD,Calvert,1/31/2010,
East,MD,Calvert,6/31/2010,212 East,MD,Calvert,1/31/2010,633 East,MD,Calvert,6/31/2010,234
East,MD,Prince Georges,2/25/2010,112 East,MD,Montgomery,1/31/2010,120 East,MD,Baltimore,6/31/2010,210 East,VA,Fairfax,1/31/2010,710 West,CA,SanJose,1/31/2010,191 West,CA,Alameda,2/25/2010,411 West,CA,Los Angeles,2/25/2010, West,CA,Los Angeles,2/25/2010,215 West,CA,Los Angeles,6/31/2010,615 West,CA,Los Angeles,6/31/2010,727
各出荷日に各州宛てに発送された出荷件数を調べるには、次の図のようにGroup
Statisticsステージを設定することによってピボット テーブルを作成します。
ステージ オプションの[フィールド]タブで、データフローの入力データの
ShipDateフィールドに出現する正確な日付をグリッドに追加し、各列値に対して
表示する[操作]の値を選択します。
[フィールドの追加]ウィンドウの[OK]をクリックすると、作成された出力列が自
動的に[フィールド]タブに一覧表示されます。これらの出力列は、正確な入力値
と、[フィールドの追加]ウィンドウで選択した操作のデカルト積です。
出力
State,1/31/2010_GroupCount,1/31/2010_ComputationalCountSumOfUnit, 1/31/2010_SumOfUnit,2/25/2010_GroupCount,2/25/2010_ComputationalCountSumOfUnit, 2/25/2010_SumOfUnit,6/31/2010_GroupCount,6/31/2010_ComputationalCountSumOfUnit, 6/31/2010_SumOfUnit
VA,1,1,710,,,,,,
CA,1,1,191,3,2,626,2,2,1342 MD,3,2,753,1,1,112,3,3,656
Math
Mathステージは、単一のデータ行に対する算術演算を処理します。1つ以上の式を使用する、
様々な算術関数を実行できます。データは文字列として入力されますが、値は数値またはBoolean
(データに対して実行する演算の種類によります)である必要があります。
[制御ステージ]の下で ステージをクリックして、キャンバスまでドラッグし、データフ
2. ステージをキャンバス上の他のステージに接続します。
3. [Math]ステージをダブルクリックします。[Mathオプション]ダイアログ ボックスの[式]タブ
が表示されます。このタブには、[入力フィールド]、[Calculator]、[式]キャンバスが表示され ます。または、[関数]タブをクリックして、Calculatorの代わりに関数を使用することもでき ます。
[入力フィールド]コントロールには、入力ポートに存在する有効なフィールドの一覧が表示され
ます。フィールド名の構文は、非常に柔軟性の高いものですが、Groovyスクリプトの規則に基づ く一部の制約があります。Groovyスクリプトの詳細な情報については、Webサイト
groovy-lang.orgを参照してください。
Calculatorの使用
[Calculator]コントロールには、数値定数や演算子を式に挿入するためのボタンがあります。フィー
ルド、定数、演算子、関数をダブルクリックすることにより、それらを式に挿入できます。
表5 : Calculatorの演算子
説明 演算子
式の中で1文字分後退します。
Backspace
piは円の直径に対する円周の割合(円周率)を表す数学定数です。
pi
オイラー数。自然対数の底を表す数学定数です。
e
除算 /
乗算
*
加算 +
減算
-累乗(例えば、x^2はxの2乗) x^y
モジュロ。演算の剰余です。
Mod
説明 演算子
セミコロン。式の末尾に使用します。
;
代入演算子
=
括弧。式の演算の優先順位を指定します。
()
小数点
。
条件文。条件が真の場合は処理を実行し、条件が偽の場合は別の処理を実行しま す。
if\else
複数の条件文。条件が真の場合は処理を実行し、条件が偽の場合は別の処理を実行 します。
if\else if\else
算術関数の等号
==
不等号
!=
論理積
&&
論理和
||
次の値より大きい
>
次の値以上
>=
次の値より小さい
<
次の値以下
<=
関数と定数の使用
Mathステージには、式で使用できるいくつかの関数が用意されています。関数の一般的な形式 は、関数(パラメータ)、関数(パラメータ,パラメータ)、関数(パラメータ,...)です。ここで、"パラ メータ"は、数値定数、変数、または数式です。関数は別の数式と共に使用できます(例えば、
x=Sin(y)*Cos(z))。
定数、変換、算術演算、および三角関数があります。次に、サポートされている各関数をカテゴ リ別に示します。
表6 :サポートされている関数
説明 関数
定数
自然対数の底である数学定数です。
e
値falseを表すBoolean定数です。
false
無限大を表す数学定数です。
Infinity
数値ではない値を表す数学定数です。
NaN
円の直径に対する円周の割合(円周率)を表す数学定数です。
Pi
値trueを表すBoolean定数です。
true
変換
パラメータを1つ指定します。
指定された値の絶対値を返します。
Abs (値)
パラメータを1つ指定します。
端数を切り上げた値を返します(例えば、Ceil(5.5)は6を返します)。
Ceil (値)
パラメータを1つ指定します。
指定された値を角度からラジアンに変換します。
DegToRad (値)
パラメータを1つ指定します。
端数を切り捨てた値を返します(例えば、Floor(5.5)は5を返します)。
Floor (値)
説明 関数
パラメータを1つ指定します。
指定された値をラジアンから角度に変換します。
RadToDeg (値)
パラメータを1つ指定します。
四捨五入した値を返します。
Round (値)
Math
パラメータを1つ以上指定します。
指定された値の平均値を返します。
Avg (値,値,...)
パラメータを1つ指定します。
オイラー数の累乗を返します。
Exp (値)
パラメータを1つ指定します。
指定された値の階乗を返します(例えば、Fac(6)は6*5*4*3*2*1を意味し、720を返し ます)。
Fac (値)
パラメータを1つ指定します。
指定された値の自然対数(底e)を返します。
Ln (値)
パラメータを1つ指定します。
指定された値の自然対数(底10)を返します。
Log (値)
パラメータを1つ以上指定します。
引き渡された値の最大値を返します。
Max (値,値,...)
パラメータを1つ以上指定します。
引き渡された値の最小値を返します。
Min (値,値,...)
Sqrt (値)
説明 関数
パラメータを1つ指定します。
指定された値の合計を返します。
Sum (値)
三角関数
パラメータを1つ指定します。
値の逆余弦を返します。
ArcCos (値)
パラメータを1つ指定します。
値の逆正弦を返します。
ArcSin (値)
パラメータを1つ指定します。
値の逆正接を返します。
ArcTan (値)
パラメータを1つ指定します。
値の余弦を返します。
Cos (値)
パラメータを1つ指定します。
指定された値の自然対数(底e)を返します。
Ln (値)
パラメータを1つ指定します。
値の正弦を返します。
Sin (値)
パラメータを1つ指定します。
値の正接を返します。
Tan (値)
条件文の使用
条件文を使用すると、各種条件が真または偽のいずれであるかに応じて処理を実行できます。括 弧(と)を使用してグループ化することにより、さらに複雑な条件を指定できます。
表7 :条件
説明 条件
式= =式 が次に等しい
式!=式 が等しくない
式>式 次の値より大きい
式>=式 次の値以上
式<式 次の値より小さい
式<=式 次の値以下
!条件 条件が偽
条件&&条件 And
条件||条件 Or
If文
if(condition) {
actions to take if condition is true }
中括弧は、"if"の後で複数の文を実行する場合のみ必要です。
If-Else If文
if(condition) {
actions to take if condition is true }
else if(condition) {
actions to take if condition is true
}
else if...
if(SideLength != NaN) {
AreaOfPolygon=
((SideLength^2)*NumberOfSides)/
(4*Tan(pi/NumberOfSides));
}
else if(Radius != NaN) {
AreaOfPolygon=
(Radius^2)*NumberOfSides*Sin((2*pi)/NumberOfSides)/2;
}
else if文は複数指定できます。中括弧は、"if-else- if-else"の後で複数の文を実行する場合にのみ 必要です。
Else-If文
if(condition) {
actions to take if condition is true }
else if(condition) {
actions to take if condition is true }
else if...
else {
actions to take if no conditions are met }
Expressionsコンソールの使用
Expressionsコンソールは、Mathステージで評価する数式を入力するために使用します。[入力
フィールド]、[Calculator]、[関数]コントロールを使用して、このコンソールに値を挿入します。
式は手動で入力することもできます。式は、定数、変数、または算術演算の形式で指定し、数値 定数と変数で構成します。数値定数は、整数または小数で、符号を付けることができます。変数 は入力行からのデータを表します。例えば、フィールドx、y、zが入力に定義されている場合、
x、y、zを式で使用できます。変数は、実行時にフィールドの値で置き換えられます。
また、Mathステージでは、グループ化した式も使用できます。グループ化した式は括弧でくくら れ、演算子の優先順位よりも優先されます。例えば、2*5^2は50ですが、(2*5)^2は100になり ます。
注: 式の末尾には必ずセミコロンを付けます。
また、条件文をExpressionsコンソールで使用すると、各種条件が真または偽のいずれであるか に応じて処理を実行できます。条件文の詳細については、条件文の使用(76ページ) を参照して ください。
Mathステージでは主に、式の結果を変数に代入する代入式を扱います。このステージでは複数の 代入演算がサポートされているため、以前の代入演算の結果を使用できます。
代入式の例
次の例では、x=10、z=1000となります。
x=5+5 z=x*100
次の例では、ポリゴンの面積を一辺の長さと辺の数に基づいて計算します。
AreaOfPolygon=
((SideLength^2)*NumberOfSides)/
(4*Tan(pi/NumberOfSides));
[フィールド]コントロールの使用
[フィールド]コントロールでは、入力および出力フィールドのタイプを変更できます。このコン
トロールでは、フィールドのタイプを変更できます。その場合は、[タイプ]列のドロップダウン 矢印をクリックし、一覧から次のいずれかのオプションを選択します。
trueとfalseの2つの値を持つ論理タイプ。Boolean変数は、条件文で処理の流れ
を制御するために使用できます。次のコードは、Boolean式の例を示したもので す。
if(x && y) z=1;
boolean
else if(x) z=2;
else if(y) z=3;
else z=4;
正と負の倍精度数を含む数値データ タイプ。値の範囲は、2-1074~(2-2-52)×21023。 指数表記すると、値の範囲は、-1.79769313486232E+308~
1.79769313486232E+308となります。
double
正と負の単精度数を含む数値データ タイプ。値の範囲は、2-149~(2-223)×2127。 指数表記すると、値の範囲は、-3.402823E+38~3.402823E+38となります。
float