[小ネタ]QuickSightで表示するフィールド名の置換について
こんにちは、洲崎です。
QuickSightで表示するフィールド名を置換する方法を紹介します。
元データにリソースネーム(ARN)しかなくて前処理をしていない場合
QuickSightはデータセットで様々な参照先を選ぶことができます。
参照先にある元データを見に行くときに、AWSのリソースネーム(ARN)しかない場合&前処理も行っていないと、ダッシュボードで見ても長くなる&分かりづらくなります。
今回はARNの情報を元にQuickSightの計算フィールドを利用して表示名を置換してたかったので、2パターン試してみました。
いきなりまとめ
QuickSightで表示するフィールド名を置換する際は以下の関数を利用する方法があります。
- replace関数
- 文字列の一部を指定した別の文字列に置き換える場合
- ifelse関数
- 複数のパターンで文字列を置き換える場合
やってみる
replace関数
replace関数は文字列の一部を、指定した別の文字列に置き換える関数です。
例えば、Amazon ConnectのCTR(問い合わせレコードデータモデル)では、Amazon ConnectインスタンスのARNを取得することができます。
しかしARNだと情報が分かりづらいので、これをインスタンス名に置換します。
データセットの編集画面で、フィールドから「計算フィールドの追加」をクリックします。
replace
関数を入力します。フォーマットは下記です。
replace(expression, substring, replacement)
今回はインスタンスARNをインスタンス名に置換したい為、以下関数を入力します。
replace('インスタンスARN', 'インスタンスARN', 'インスタンス名')
入力できたら右上の保存をクリックします。
これで、"instancearn"を表示したいインスタンス名に置換することができました。
ifelse関数
ifelse関数は、if then式のペアで文字列を置き換える関数です。
今回はAmazon Connectでユーザーが2名いる場合で、それぞれの表示名を変換してみます。
suzaki = 洲崎、tanaka = 田中に変換します。
先ほどと同様に、「計算フィールドの追加」を開きます。
ifelse
関数を入力します。フォーマットは下記です。
ifelse(if-expression-1, then-expression-1 [, if-expression-n, then-expression-n ...], else-expression)
今回のケースをフォーマットに当てはめると下記になります。
ifelse({username} = 'suzaki','洲崎',ifelse({username} = 'tanaka','田中','その他'))
入力できたら右上の保存をクリックします。
問題なく、suzakiとtanakaを置換することができました。
ちなみに、複数条件で利用する際に使われるSQLのCASE
関数はドキュメントで見当たりませんでした。
その為、2パターン以上の場合はifelse
をネストして利用する形になります。
最後に
今回はQuickSightでフィールド名を置換する方法を紹介しました。
その他にもQuickSightには様々な関数を計算フィールドで利用できます。
もしQuickSightの表示に困ることがあれば計算フィールドを利用してみてください。
ではまた!コンサルティング部の洲崎でした。