Customer Experience Insights(CX インサイト)を使用すると、CX インサイトの会話と分析データを BigQuery にエクスポートし、独自の未加工クエリを実行できます。エクスポート プロセスでは、スキーマが書き込まれます。これは、音声分析フレームワークに似ています。このガイドでは、エクスポート プロセスについて詳しく説明します。
新しい BigQuery テーブルとデータセットを作成する
CX インサイト エクスポータが正常に動作するには、BigQuery テーブルが必要です。ターゲット テーブルがない場合は、このサンプルを使用して bq コマンドライン ツールで新しいテーブルとデータセットを作成します。
エクスポート プロセスでスキーマが書き込まれるため、テーブルのスキーマを指定する必要はありません。ただし、スキーマを指定する場合は、バージョンを明示的に定義する必要があります。EXPORT_VERSION_LATEST_AVAILABLE
コマンドは、最新バージョンを確実に提供するものではなく、テーブルから列を削除する可能性があります。スキーマは指定してもバージョンを指定しないクエリを送信すると、デフォルトで初期バージョンが提供されます。出力スキーマと列の定義については、BigQuery スキーマのドキュメントをご覧ください。
BigQuery には、データソースの場所に関する制限があります。
ロケーションに関する考慮事項をご覧ください。
Cloud
Storage バケットに適用される制限は、CX インサイトにも適用されます。たとえば、BigQuery データセットが EU
マルチリージョン ロケーションにある場合、europe-* ロケーションのいずれかからのみ CX インサイト データをエクスポートできます。
bq mk --dataset --location=LOCATION PROJECT:DATASET bq mk --table PROJECT:DATASET.TABLE
会話データを BigQuery にエクスポートする
エクスポート ツールは、フィルタリングと、 顧客管理の暗号鍵(CMEK)で保護された テーブルへのデータの書き込みの両方をサポートしています。この機能を有効にしない場合は、スキップして データを BigQuery にエクスポートできます。
リクエストにフィルタを追加する(省略可)
BigQuery へのエクスポートは、
会話クエリに適用できるフィルタのすべての組み合わせと互換性があります。
たとえば、次のサンプルでは、2021
年 1 月 1 日から 2021 年 1 月 2 日(PST)の間に agent_id「007」によって処理された 10 ターン以上の会話をすべてエクスポートします。
FILTER='create_time>"2021-01-01T00:00:00-08:00" create_time<"2021-01-02T00:00:00-08:00" agent_id="007" turn_count>="10"'
CMEK で保護されたテーブルにデータをエクスポートする(省略可)
CX インサイト サービス アカウントに Cloud KMS CryptoKey の暗号化/復号のロールを付与します。 サービスアカウントの形式については、既知の問題のドキュメント をご覧ください。サービス アカウントに正しいロールを付与したら、テーブルを保護する KMS 鍵の完全修飾名をエクスポート リクエストに追加します。
KMS_KEY='projects/<project>/locations/<location>/keyRings/<key_ring>/cryptoKeys/<key_name>'
リクエストで書き込み処理オプションを指定する(省略可)
CCAI Insights エクスポートは、BigQuery の次の 書き込み処理オプションをサポートしています。
WRITE_TRUNCATE: テーブルがすでに存在する場合、BigQuery はテーブルデータを上書きし、クエリ結果のスキーマを使用します。これはデフォルトのオプションです。WRITE_APPEND: テーブルがすでに存在する場合、BigQuery はデータをテーブルに追加します。
たとえば、次のサンプルでは、エクスポートされたデータを既存の宛先テーブルに追加します。
WRITE_DISPOSITION='WRITE_APPEND'
データを BigQuery へエクスポートする
次のコードサンプルは、データをエクスポートする方法を示しています。詳細については、 エクスポートのリファレンス ドキュメント をご覧ください。
エクスポートにより、長時間実行の Operation オブジェクトが作成されます。オペレーションを
ポーリング
してステータスを確認できます。
REST
リクエストのデータを使用する前に、 次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクト ID。
- DATASET: データのエクスポート先となる BigQuery データセットの名前。
- TABLE: CX インサイト データの書き込み先となる BigQuery テーブル名。
- FILTER_QUERY: 特定のプロパティを持つ会話のみをエクスポートするために CX インサイトで使用されるクエリ。たとえば、「agent_id=\"007\"」と入力すると、エージェント 007 に関連付けられた会話のみがエクスポートされます。
HTTP メソッドと URL:
POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/insightsdata:export
リクエストの本文(JSON):
{
"bigQueryDestination": {
"projectId": "PROJECT_ID",
"dataset": "DATASET",
"table": "TABLE",
},
"filter": "FILTER_QUERY"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
}
Python
CX インサイトに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。
Java
CX インサイトに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。
Node.js
CX インサイトに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。
別のプロジェクトにデータをエクスポートする(省略可)
デフォルトでは、CX インサイト BigQuery エクスポートは、CX インサイト データを所有するのと同じプロジェクトにデータを書き込みます。ただし、別のプロジェクトの BigQuery にエクスポートすることもできます。
Identity and Access Management(IAM)コンソールまたは gcloud を使用して、CX インサイト サービス
アカウントに受信者プロジェクトへの BigQuery アクセス権があることを確認します。
gcloud projects add-iam-policy-binding RECEIVER_PROJECT \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-contactcenterinsights.iam.gserviceaccount.com \
--role=roles/bigquery.admin
データを特定のプロジェクトにエクスポートするには、受信者プロジェクトの
ID 番号をproject_idフィールドのBigQueryDestination
オブジェクトに入力します。
BigQuery でデータをクエリする
このコマンドを実行して、BigQuery でデータをクエリします。その他のクエリ オプションについては、 BigQuery クイックスタート のドキュメントをご覧ください。
gcloud config set project PROJECT bq show DATASET.TABLE
エクスポートされた会話のクエリ:
bq query --use_legacy_sql=false \ "SELECT conversationName FROM DATASET.TABLE"