借助 Customer Experience Insights (CX Insights),您可以将 CX Insights 对话和分析数据导出到 BigQuery,以便执行自己的原始查询。导出过程会写入类似于语音分析框架的架构。本指南详细介绍了导出过程。
创建新的 BigQuery 表和数据集
CX Insights 导出器需要 BigQuery 表才能成功运行。如果您没有目标表,请使用此示例来 使用 bq 命令行工具创建新表和数据集。
您无需为表指定架构,因为导出过程会写入架构。但是,如果您指定了架构,则必须明确定义版本。EXPORT_VERSION_LATEST_AVAILABLE 命令无法可靠地提供最新版本,并且可能会从表中移除列。发送带有架构但没有版本的查询会默认提供早期版本。如需了解输出架构和列定义,请参阅 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 与可应用于 对话查询的所有过滤条件组合兼容。例如,以下示例将导出由 agent_id“007”在太平洋时间
2021 年 1 月 1 日至 2021 年 1 月 2 日期间处理的所有轮次为 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 Encrypter/Decrypter 角色。 如需了解服务帐号格式,请参阅已知问题文档 。为服务帐号提供正确的角色后,将保护表的 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 方法和网址:
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 导出功能会将数据写入拥有 CX Insights 数据的同一项目。不过,您也可以导出到其他项目中的 BigQuery。
确保您的 CX Insights 服务帐号可以使用 Identity and Access Management (IAM) 控制台或 gcloud 访问接收方项目中的
BigQuery:
gcloud projects add-iam-policy-binding RECEIVER_PROJECT \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-contactcenterinsights.iam.gserviceaccount.com \
--role=roles/bigquery.admin
如需将数据导出到特定项目,请在 project_id 字段中输入接收方项目的
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"