Amazon ConnectのCTRデータをPythonで1600万件作ってみた

はじめに

こんにちは!株式会社ギークフィードのエンジニアのダマルです。

この記事は、Amazon Connect Advent Calendar 2023の20日目の記事となります。

ギークフィードとクラスメソッドさんの有志が著者となっているアドベントカレンダーです。

ゴール

電話関連のヒストリカルレポートテストのため、5年分の1600万件CTRデータをプログラムで作ってみました。今回はPythonでソースコードを書きました。ローカルのデータベースに一日1万、一ヶ月28日の月ごとのファイルを保存して、s3バケットにアップロードしました。

10,000件 x 28日 x 12月 x 5年 = 16,800,000件データーを作成しました。

前提条件

  • Amazon Connectアカウント
  • Kinesis Data Streams
  • Kinesis Data Firehose
  • Amazon S3
  • Athena
  • Python

利用するサービス

  • Amazon Connectアカウント
  • Amazon S3
  • Athena

実際にやってみた

まず、Amazon Connectアカウントに電話して着信のJSON形式のコールログをコピーペーストしました。CTRデーターにカスタム変数(祝日休みフラグ、など)がある場合には、同じようなデーターを作成するためにをサンプルデーターを取得しました。

Pythonコードはこちらになります


時間があまりなかったですので、日付と電話の時刻をfor loopで書きました。まず、取得したサンプルコードのJSONデーターをjson.loadsでパースして、電話時刻、ACWデーター、切断時刻をデーターから取得して、月ごと、日ごと、時間ごとでデーターを作ってみました。アウトプットファイルもs3のデーターのファイルに合わせてopen() writeで作成しました。

CTRのサンプルコードを設定した後に、プログラムを実行すると15分ぐらい時間がかかります。終わったら12月x5年=60のファイルがローカルに作りました。作り終わったらs3にファイルを直接にアップロードしました。アップロードする時間は1年分のファイルは30分ほどかかりました。

アップロード完了しましたらAmazon Athenaのクエリーで確認しました。

まとめ

ヒストリカルレポートをテストするためにpythonプログラムでAmazon ConnectのCTRデーターを作成してみました。s3のアップロードは、まだ手作業が必要ですので、今度はAWS Lambdaで全てプログラムで作ってみたいかと思います。

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
アバター
Damar Hadisumarto
インドネシアから来日し、東洋大学情報連携学科最優等で卒業し、最優秀卒業論文賞を受賞しました。元々プログラミングとイノベーションに興味をもち、大学時代に、チームと一緒に2020 Infinity Blockathon国際大会と2020三菱FUSO Case Challengeを優勝しました。趣味はスポーツ、特に野球。高校時代にインドネシア代表としてアメリカのU-18 CWS野球大会に参加しました。教育にも興味をもち、2022年にIEEE Education SocietyのIEEE EDUCONに”A Tangible-Tool-Based Lesson Plan on Cypher Key Exchange Protocol for Early-Stage Learners”の大学卒業論文を出版しました。

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ