Amazon Web Services ブログ
Amazon AthenaとAmazon QuickSightでAmazon Connectの問い合わせ追跡レコードを分析する Part1
イントロダクション
多くの組織は、コンタクトセンターデータの分析を長期間にわたって実行し、さまざまなビジネスニーズに合わせてカスタムレポートを作成する機能を求めています。Amazon Connect はオープンプラットフォームであり、サードパーティのレポートアプリケーションと統合するための API とメカニズムを提供するため、組織は問い合わせ追跡レコードを Amazon Kinesis にストリーミングして、保持期間を延長し、高度な分析を行うことができます。限定的な API または統合機能を提供するコンタクトセンタープラットフォームは、コンタクトセンターのデータを利用して高度な分析を実行することが困難です。Amazon Connect は、問い合わせ追跡レコード (CTR) で問い合わせに関するデータをキャプチャします。CTR は、保留時間、待機時間、エージェントとの対話時間などのトランザクションメトリクスを JSON フォーマットでキャプチャします。Amazon Connect のほとんどの履歴メトリクスおよびリアルタイムメトリクスの基本は CTR のデータであり、Amazon Connect 内のメトリクスは過去 24 か月間利用可能です。
このブログでは、 CTR を Amazon Connect からストリーミングし、Amazon QuickSight を活用したデータ分析ソリューションを開発する方法を学びます。
概要
図 1 – ハイレベルなアーキテクチャ図
このアーキテクチャでは、Amazon Kinesis Streams を使用して、Amazon Connect の CTR を生データとしてキャプチャし、Amazon Simple Storage Service (S3) バケットに保存します。ストリーミングには 2 つの選択肢があります。1つは、Amazon Kinesis Data Firehose で、CTR を S3 にストリーミングするように Amazon Connect を設定できます。2 つ目のオプションは、最初に Amazon Kinesis Data Streams を使用して Amazon Connect のデータをストリーミングし、次に Amazon Kinesis Data Firehose を使用してデータを S3 に転送する方法です。途中にデータストリームをはさむと、他のプロセスやソリューションで同時に CTR を使用できるという利点があります。例えば、このデータストリームを使用して CTR を Amazon DynamoDB データベースに転送できます。
CTR のスキーマを使用して AWS Glue データベース定義と AWS Glue テーブル定義を作成します。Firehose はこのテーブル定義を使用して、ファイルを Parquet ファイル形式で圧縮します。この圧縮により、ストレージとクエリのコストを削減します。
Amazon Athena と Amazon QuickSight の両方でクエリのパフォーマンスを最適化するには、パーティションプロジェクションを設定します。この機能は、日単位のパーティションを自動的に作成することで、日付ベースのクエリーパフォーマンスを向上させます。
前提
このブログ投稿で紹介したソリューションに従うには、以下の AWS のサービスと機能に慣れている必要があります。
- Amazon Connect
- AWS Lambda
- Amazon Simple Notification Service (SNS)
- Amazon Simple Storage Service (S3)
- AWS CloudFormation
- Amazon Kinesis
- Amazon Athena
- AWS Glue
- Amazon QuickSight
- AWS Identity and Access Management (IAM)
- また、AWS IAM ロールを作成および変更する権限を持つアクティブな AWS アカウントも必要です。
ウォークスルー
サンプルの AWS CloudFormation テンプレートから始めることができます。このテンプレートは、Amazon Kinesis Data Stream、S3 バケット、および AWS Glue クローラーを作成します。テンプレートをデプロイするには、次の手順に従います。
- 米国東部 (バージニア北部) リージョンの AWS マネジメントコンソールにサインインします。
- CloudFormation テンプレートを S3 からローカルにダウンロードします。
- 希望するリージョンで、ステップ 2 でダウンロードしたテンプレートファイルを使用して CloudFormation スタックを作成します。
- 一意のスタック名を入力します (例: ctrAthenaQuickSight)。
- 各ヘッダーに記載されている指示に従って、CloudFormation テンプレートに詳細を入力し、次へ をクリックします。
- AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します を選択し、最後のステップのチェックボックスをオンにして、スタックを作成 をクリックします。
- 概要セクションで説明したように、CTR データを S3 にストリーミングする 2 つのオプションを以下に示します。ユースケースごとに適切なオプションを選択してください。このブログでは、次のオプションのいずれかが機能します。Amazon Connect に移動して、データストリーミングを有効にします。
- オプション 1: Amazon Kinesis Streams を通じて CTR データをストリーミング
-
- オプション 2: Amazon Kinesis Firehose を介して CTR データをストリーミング
- 以下の手順に従って、既存の CTR をこのソリューションに組み込みます(既存の CTR がなく、このソリューションを導入した後など、将来の CTR のみの分析が必要な場合は、このステップをスキップしてください)
- S3 バケット (プロジェクト名と同じ) に「Old-Ctr-Data」という名前のフォルダを作成します
- バケットのルートパスで、上部のプロパティタブをクリックして Amazon EventBridge を設定します
- Amazon EventBridge セクションで、編集をクリックして EventBridge をオンにします
- 手順 8.1 で作成した「Old-Ctr-Data」フォルダーにある古い CTR ファイルをコピーします(訳注:ファイルを選択し、アクションからコピーするを選択します)
検証
それでは、Amazon Connect を使用して電話をかけたり受けたりしてデータを生成します。Amazon Connect コンタクトコントロールパネル(CCP)にアクセスして、ソフトフォンまたはデスクフォンを使用して電話をかけたり受けたりすることができます。数分以内に、CTR データが「.parquet」ファイルで見えるはずです。
- AWS Glue にログインし、作成された「ctrvisualization」データベースを検証します。データベース名は、CloudFormation スタックの実行中に指定したプロジェクト名になります。
- Amazon Athena でデータをクエリするには、「connect_ctr」テーブルを選択し、アクション で データの確認 を選択します。
- Athena で S3 クエリ結果の場所を設定します。設定、管理 の順にクリックし、新しい S3 バケットを関連付けます。
- Athena は、実行されたクエリの結果を表示します。
Amazon QuickSight で可視化する
Athena を使用してデータをクエリする場合、Amazon QuickSight を使用してデータを視覚化できます。Amazon QuickSight を Athena に接続する前に、Amazon QuickSight に Athena およびアカウント内の関連付けられた S3 バケットへのアクセス権を付与する必要があります。これを行う方法の詳細については、「AWS リソースへのアクセス」を参照してください。必要なアクセス権限を付与したら、作成された Athena テーブルに基づいて Amazon QuickSight で新しいデータセットを作成できます。
次に、Amazon QuickSight で新しい分析を作成できます。
- Amazon QuickSight に移動し、新しい分析 を選択します。
- 新しいデータセット をクリックし、Athena をクリックしてデータソースに名前を付けます。
- データベースとテーブルの名前を選択し、選択 をクリックします (QuickSight インスタンスが CloudFormation テンプレートを実行したリージョンと同じリージョンにあることを確認してください)
- 最後に、Visualize をクリックしてデータセットの作成を完了します。
- 次の画面で CTR が表示されます。
- 下のスクリーンショットは、問い合わせが開始された方法の内訳を示しています。
-
- 下のスクリーンショットは、さまざまなチャネルでの問い合わせの開始を示しています。
上記の手順を実行した後、Amazon QuickSight を使用して通話レコードからさまざまなカラムを追加し、視覚化を実行できます。Amazon Athena 内でビューを作成して、強化されたビジュアライゼーションを構築することもできます。さらに詳しく知りたい場合は、このブログ投稿を確認してください。最後に、Amazon Connect インスタンスを継続的に監視し、そのダッシュボードを組織内の他のユーザーと共有するダッシュボードを構築することもできます。
後片付け
スタックによって作成されたリソースを削除するには、以下を実行します。
- CloudFormation テンプレートを削除します。
- CloudFormation テンプレートの実行中に作成された S3 バケットを空にして削除します。
- CloudFormation テンプレートの実行中に作成された Glue データベースを削除します。
まとめ
この投稿では、AWS Lambda、AWS Glue、Amazon Athena などのサービスを使用して Amazon Connect の通話レコードを処理する方法を学習しました。また、CTR データが Kinesis Streams 経由でストリーミングされ、AWS Glue を活用して Amazon Athena によってクエリされる方法も示しました。最後に、Amazon QuickSight を使用してそれらを視覚化する方法を確認しました。
注: Elasticsearch などの他のレポートソリューションにデータをストリーミングすることもできます。Elasticsearchへのストリーミングについてもっと知りたい場合は、このブログを読んでください。
原文: https://thinkwithwp.com/jp/blogs/contact-center/analyze-amazon-connect-contact-trace-record-with-amazon-athena-and-amazon-quicksight-part-1/
翻訳: ソリューションアーキテクト 松本 和久