データ準備機能詳解:計算フィールド #quicksight #24 | Amazon QuickSight Advent Calendar 2016
当エントリは『Amazon QuickSight Advent Calendar 2016』の24本目のエントリです。
昨日の23本目のエントリは『Amazon S3マニフェストファイル詳解:QuickSightでサポートされているファイル取り込み指定方法』でした。
『AWS re:Invent 2016』の直前に一般利用可能となったAWSによるBIサービス、Amazon QuickSight。発表されたばかりですが、早速Amazon QuickSightを使い倒すべく色々な切り口でその内容について見て行きたいと思います。
24本目となる当エントリでは、Amazon QuickSightにおける『計算フィールド』について見て行きたいと思います。
計算フィールド
フィールドデータを分析または変換する演算子または関数を使用する計算フィールド(Calculated Fields)を作成する事が出来ます。
計算されたフィールドには、複数の関数と演算子を使用できます。 例えば以下サンプルコードの場合、日付フィールドから年を抽出するにはformatDate関数を使用し、年に基づいてレコードをセグメント化するifelse関数を使用します。
ifelse(formatDate(order_date, 'yyyy') > '2000', 'this century', 'last century')
1つまたは複数のデータセットフィールドおよび/または既存の計算フィールドに基づいて計算フィールドを作成することができます。 たとえば、ifelse関数を使用して、日付の月の値から判定されたquarterというフィールドを作成することができます。
ifelse(month <=3, 1, month > 3 AND month <= 6, 2, month > 6 AND month <= 9, 3, 4)
そして、上記quarter計算フィールドと売上金額のフィールドを使用して、第1四半期の高消費顧客を特定します。
ifelse(quarter = 1 AND sales_amount >= 10000, 'review account', 'n/a')
データ準備中または解析ページから計算されたフィールドをデータセットに追加できます。 データ準備中に計算フィールドをデータセットに追加すると、そのデータセットを使用するすべての分析で計算フィールドを使用できます。 計算されたフィールドを分析のデータセットに追加すると、その分析でのみ使用できます。 データ準備中に計算フィールドを追加する方法については、以下をご参照ください。
また分析で計算フィールドを追加する方法については、以下をご参照ください。
計算フィールドの実践内容については下記エントリで一部言及していますのでご参考頂けますと幸いです。
計算フィールドにおけるDecimal値の扱いについて
小数点データ型は小数点以下4桁までをサポートします。 データ準備中に、小数点以下4桁以上の小数点データを使用する計算フィールドは、計算を実行するために完全な値を使用しますが、SPICEにインポートされる時点で結果が小数点以下4桁を超える部分の値は切り捨てられます。
例として、0.0006の値を持つ小数フィールドFieldAをとります。これはユーザーインターフェイスでは0.0として表示されます。 完全な値0.00006は、すべての計算で引き続き使用されます。 この値が計算でどのように使用されるかの例を以下に示します。
- FieldA > 0 = true。 分析で表示される、またはSPICEにインポートされる計算フィールド値はtrueです。
- ceil(FieldA) = 1。分析で表示される、またはSPICEにインポートされる計算フィールド値は1です。
- FieldA + 0.00009 = 0.00015。 分析で表示される、またはSPICEにインポートされる計算フィールド値は0.0001です。
- FieldA * 1.5 = 0.00009。 分析で表示される、またはSPICEにインポートされる計算フィールド値は0.0です。
利用可能な算術演算子・関数一覧
算術演算子・比較演算子
Amazon QuickSightで利用可能な算術演算子・比較演算子は以下となります。
- 加算(+)
- 減算(-)
- 乗算(*)
- 除算(/)
- 等しい(=)
- 等しくない(!=)
- より大きい(>)
- 以上(>=)
- 未満(<)
- 以下(<=)
- AND
- OR
条件判定関数
Amazon QuickSightで利用可能な『条件判定関数』は以下となります。
関数名 | 説明 | 参照URL |
---|---|---|
coalesce(expression, expression [, expression, ...]) | NULLでは無い最初の値を返す | URL |
ifelse(if, then [, if, then ...], else) | 条件判定 | URL |
isNotNull(expression) | 条件がNULLで無いか否か(NULLでは無い=trueを返す) | URL |
isNull(expression) | 条件がNULLか否か(NULLである=trueを返す) | URL |
nullIf(expression, expression) | 2つの式を比較(等しい場合=NULLを返す) | URL |
日付関数
Amazon QuickSightで利用可能な『日付関数』は以下となります。
関数名 | 説明 | 参照URL |
---|---|---|
dateDiff(date, date) | 2つの日付値の差分を算出 | URL |
epochDate(epochdate) | UNIXタイムスタンプを日付値(TIMESTAMP型)に変換 | URL |
extract('period', date) | 日付値の任意の情報を抽出 | URL |
formatDate(date, ['format'], ['time_zone']) | 日付値を任意のフォーマットで表示 | URL |
now() | 現在の日付情報を取得 | URL |
truncDate('period', date) | 日付情報を任意の単位で切り捨て表示 | URL |
数値関数
Amazon QuickSightで利用可能な『数値関数』は以下となります。
関数名 | 説明 | 参照URL |
---|---|---|
ceil(decimal) | Decimalの数値を整数値(Integer)に切り上げ | URL |
decimalToInt(decimal) | Decimal値→Integer変換(小数点値は切り捨て) | URL |
floor(decimal) | Decimalの数値を整数値(Integer)に切り捨て | URL |
intToDecimal(int) | 整数値→Decimal値変換 | URL |
round(decimal, scale) | 最も近い整数に小数値を丸める | URL |
文字列関数
Amazon QuickSightで利用可能な『文字列関数』は以下となります。
関数名 | 説明 | 参照URL |
---|---|---|
concat(expression, expression) | 文字列結合 | URL |
left(expression, limit) | 文字列情報を左側から任意の桁数分抽出 | URL |
locate(expression, substring, start) | 別の文字列内で指定した部分文字列を検索し、 部分文字列の最初の文字までの 文字数を返す |
URL |
ltrim(expression) | 文字列の左辺(先頭)側の空白を除去 | URL |
parseDate(expression, ['format']) | 任意の文字列情報を所定の日付フォーマットで パースしてDate型オブジェクトを生成 |
URL |
parseDecimal(expression) | 任意の文字列情報を所定の日付フォーマットで パースしてDecimal型オブジェクトを生成 |
URL |
parseInt(expression) | 任意の文字列情報を所定の日付フォーマットで パースしてInteger型オブジェクトを生成 |
URL |
replace(expression, substring, replacement) | 文字列置換 | URL |
right(expression, limit) | 文字列情報を右側から任意の桁数分抽出 | URL |
rtrim(expression) | 文字列右辺(末尾)側の空白を除去 | URL |
strlen(expression) | 空白を含めた指定文字列の文字列長を取得 | URL |
substring(expression, start, length) | 指定範囲の文字列情報を取得 | URL |
toLower(expression) | 文字列を全てlowercase(小文字)で返す | URL |
toString(expression) | 対象の文字列表現を返す | URL |
toUpper(expression) | 文字列を全てuppercase(大文字)で返す | URL |
trim(expression) | 先頭・末尾双方からの空白除去 | URL |
まとめ
という訳で『Amazon QuickSight Advent Calendar 2016』24本目、『計算フィールド』に関するご紹介でした。明日もお楽しみに!