QuickSightでAmazon Connectの問い合わせレコードデータモデル(CTR)にある日付情報をJSTで表示させる

QuickSightをJSTで見たい時に。Amazon ConnectのCTRをベースにしてますが、他のログでも考え方のベースになると思います。
2023.01.12

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

こんにちは、洲崎です。
QuickSightでAmazon Connectの問い合わせレコードデータモデル(CTR)のタイムスタンプを見る際、デフォルトだとタイムゾーンがUTCで表示されます。
今回は日本時間のJSTで表示してみたかった為、実装方法を記載します。

いきなりまとめ

  • CTRのタイプスタンプは文字列(String)型のUTCで表示される
  • 文字列(String)型を日付(Data)型に変換した上で、+9時間することでJSTの時間で見ることが可能

見え方としては、これを

こうします。

やってみる

文字列(String)型から日付(Data)型の変換

Amazon Connectの通話開始時間(ConnectedToSystemTimestamp)や、通話終了時間(DisconnectTimestamp)は、文字列型としてQuickSightに表示されます。
型について、データセットで確認することができます。

デフォルトの形式は'yyyy-MM-dd''T''HH:mm:ss''Z'です。
QuickSightのデータセットから、”データタイプの変更”→”日付”というやり方もありますが、'yyyy-MM-dd''T''HH:mm:ss''Z'の形式だと「既知の日付形式は検出されませんでした」と表示されます。

ドキュメントにあるSupported date formatsであれば自動で変換してくれそうですが、今回は当てはまらない為、別のやり方で文字列型→日付型に変換する必要があります。

parseDate関数

parseDateは文字列を解析し、日付型に変換する関数です。
構文はparseDate(expression, ['format'])を利用します。
expressionは対象のデータ、formatはexpressionと一致する形式パターンを入力します。

データセットの画面から”計算フィールドを追加”をクリックします。

関数の対象はConnectedToSystemTimestamp、日付タイプも一致する形式パターンを記載します。
できたら右上の保存をクリックします。

parseDate({ConnectedToSystemTimestamp},"yyyy-MM-dd'T'HH:mm:ss'Z'")

DisconnectTimestampも同じように作成します。

parseDate({DisconnectTimestamp},"yyyy-MM-dd'T'HH:mm:ss'Z'")

データセットでみると、文字列型ではなく日付型に変換することができました。

日付(Data)型に+9時間

日付型ができたら、次に+9時間足してJSTの時間に合わせます。
+9時間足すには、addDateTime関数を利用します。

構文はaddDateTime(amount, period, datetime)です。
amountには足したい数、periodは日時フィールド(時間の場合はHH)、datetimeには対象のデータを指定します。
作成したparseDateStartに9時間足す形で関数を入力します。
記載できたら、保存をクリックします。

addDateTime(9, "HH", {parseDateStart})

parseDateEndも同じように作成します。

addDateTime(9, "HH", {parseDateEnd})

これで、日付型に+9時間で表示することができました。

注意点

ここで注意点があります。
最後に作成した+9時間のデータを見てもらいたいのですが、2023-01-11T17:53:28.000ZとTとZが含まれています。
TとZは「ISO8601」で定義されている国際規格に則った時刻表記であり、ZはタイムゾーンがUTCということです。
+9時間したことで、JSTの時間として表示していますが、QuickSightはタイムゾーンをUTCと認識している為、あくまで見かけの数字が足されただけというところを覚えておきましょう。

ビジュアルの見え方

全てのフィールドを作成できたので、それぞれビジュアルで並べてみます。今回ビジュアルタイプはテーブルで表示します。

デフォルトの「ConnectedToSystemTimestamp」と「DisconnectTimestamp」は文字列型のため、文字をそのまま表示しています。
「parseDateStart」と「parseDateEnd」は日付型に変換した為、日付型でデフォルト表示の”1月11,2023 8:53午前”と表示されています。
「AddTime9hStart」と「AddTime9hEnd」はparseDateで作成した時刻に対して、それぞれ9時間足して表示しています。
日付型の表示は対象のデータをクリックして、「形式」→「その他のフォーマットオプション」で表示を変更することができます。

日付のフォーマット一覧


時間のフォーマット一覧


フォーマットを変更すると、このような比較になりました。

最後に

QuickSightでAmazon ConnectのCTRにある日付情報をJSTで表示してみました。
QuickSightはUTC基準ですが、今回のやり方は「日本のデータだけの環境で日本時間を参照したい」場合などに有効です。
一方、データ自体はタイムゾーンがUTCのままで、見かけ上だけ変わっているという点に注意しましょう。

ではまた!コンサルティング部の洲崎でした。

参考