データ準備機能詳解:計算フィールド #quicksight #24 | Amazon QuickSight Advent Calendar 2016

2016.12.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

当エントリは『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本目、『計算フィールド』に関するご紹介でした。明日もお楽しみに!

参考情報