CX Insights を使用すると、CX Insights の会話と分析データを BigQuery にエクスポートし、独自の未加工クエリを実行できます。エクスポート プロセスでは、Speech Analysis Framework に似たスキーマが書き込まれます。このガイドでは、エクスポート プロセスについて詳しく説明します。
新しい BigQuery テーブルとデータセットを作成する
CX Insights Exporter では、オペレーションを成功させるために BigQuery テーブルが必要です。ターゲット テーブルがない場合は、このサンプルを使用して bq コマンドライン ツールで新しいテーブルとデータセットを作成します。出力スキーマと列の定義については、BigQuery スキーマのドキュメントをご覧ください。
BigQuery には、データソースのロケーションに関する制限があります。ロケーションに関する留意事項をご覧ください。Cloud Storage バケットに適用される制限は、CX Insights にも適用されます。たとえば、BigQuery データセットが EU マルチリージョン ロケーションにある場合、europe-* ロケーションのいずれかからのみ CX Insights データをエクスポートできます。
bq mk --dataset --location=LOCATION PROJECT:DATASET bq mk --table PROJECT:DATASET.TABLE
会話データを BigQuery にエクスポートする
エクスポート ツールは、顧客管理の暗号鍵(CMEK)で保護されたテーブルへのデータのフィルタリングと書き込みの両方をサポートしています。この機能を有効にしない場合は、スキップして BigQuery にデータをエクスポートできます。
リクエストにフィルタリングを追加する(省略可)
BigQuery へのエクスポートは、会話クエリに適用できるフィルタのすべての組み合わせに対応しています。たとえば、次のサンプルは、2021 年 1 月 1 日から 2021 年 1 月 2 日(太平洋標準時)の間に 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 Insights サービス アカウントに 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 Insights データの書き込み先となる BigQuery テーブル名。
- FILTER_QUERY: CX Insights が特定のプロパティを持つ会話のみをエクスポートするために使用するクエリ。たとえば、「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 Insights で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
CX Insights で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
CX Insights で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
別のプロジェクトにデータをエクスポートする(省略可)
デフォルトでは、CX Insights BigQuery Export は、CX Insights データを所有する同じプロジェクトにデータを書き込みます。ただし、別のプロジェクトの BigQuery にエクスポートすることもできます。
IAM コンソールまたは gcloud を使用して、CX Insights サービス アカウントに受信側プロジェクトへの BigQuery アクセス権があることを確認します。
gcloud projects add-iam-policy-binding RECEIVER_PROJECT \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-contactcenterinsights.iam.gserviceaccount.com \
--role=roles/bigquery.admin
データを特定のプロジェクトにエクスポートするには、BigQueryDestination オブジェクトの project_id フィールドに受信側プロジェクトの ID 番号を入力します。
BigQuery でデータをクエリする
このコマンドを実行して、BigQuery のデータをクエリします。クエリ オプションの詳細については、BigQuery クイックスタートのドキュメントをご覧ください。
gcloud config set project PROJECT bq show DATASET.TABLE
エクスポートされた会話のクエリ:
bq query --use_legacy_sql=false \ "SELECT conversationName FROM DATASET.TABLE"