本页介绍了如何将零售产品和用户事件数据上传到 BigQuery。将数据导入 BigQuery 后,您就可以使用这些数据通过 Vertex AI 进行销售预测,并在预构建的 Looker 信息中心内查看数据。
如果您的零售数据已位于 BigQuery 中的产品和用户事件表中,则在 Vertex AI Search for Retail 格式中,您可以跳过此页面,直接前往获取显示关键绩效指标的信息中心和根据零售数据生成销售预测。如需详细了解该格式,请参阅商品架构和用户事件简介。
准备工作
在将零售数据导出到 BigQuery 之前,您必须完成开始前须知中的步骤。这包括导入目录信息和用户事件。
如需详细了解导入,请参阅:
在 BigQuery 中创建数据集
您需要在 BigQuery 中创建一个或两个数据集来存储产品和用户事件数据。您可以使用一个数据集来存储这两种类型的数据,也可以创建两个数据集,分别存储这两种类型的数据。
您必须在实现 Vertex AI Search for Retail 的项目中创建数据集。
如果您之前未在项目中使用过 BigQuery,请启用 BigQuery API,并确保您拥有允许您创建数据集和表的 IAM 角色。
请参阅 BigQuery 文档中的开始前须知和使用 IAM 进行访问权限控制。
在 BigQuery 中,在 US(美国的多个区域)多区域中创建一个数据集。例如,将其命名为
retail_data
。如果您在其他区域创建数据集,则将数据导出到 BigQuery 会失败。如需了解如何创建数据集,请参阅 BigQuery 文档中的创建数据集。
此数据集将用于存储您导出的数据表。以下步骤介绍了如何导出。
可选:如需将用户事件数据放置在与产品数据分开的数据集中,请创建第二个数据集。例如,将其命名为
retail_user_event_data
。
将 Vertex AI Search for Retail 目录导出到 BigQuery 表
使用 ExportProducts
方法将零售清单导出到 BigQuery 表。
在使用任何请求数据之前,请先进行以下替换:
-
PROJECT_ID :您创建 BigQuery 数据集的 Vertex AI Search for Retail API 项目的 ID。 -
BRANCH_ID :目录分支的 ID。使用default_branch
从默认分支获取数据。 如需了解详情,请参阅目录分支。 -
DATASET_ID :您在 在 BigQuery 中创建数据集中创建的数据集的名称。例如,使用retail_data
或retail_product_data
。数据集必须位于同一项目中。 请勿在此处将项目 ID 添加到datasetId
字段。 -
TABLE_ID_PREFIX :表 ID 的前缀。此前缀不能为空字符串。系统会添加retail_products
后缀以完成表名称。例如,如果前缀为test
,则表格名为test_retail_products
。
请求 JSON 正文:
{ "outputConfig": { "bigqueryDestination": { "datasetId": "DATASET_ID ", "tableIdPrefix": "TABLE_ID_PREFIX ", "tableType": "view" } } }
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
cat > request.json << 'EOF' { "outputConfig": { "bigqueryDestination": { "datasetId": "DATASET_ID ", "tableIdPrefix": "TABLE_ID_PREFIX ", "tableType": "view" } } } EOF
然后,执行以下命令以发送 REST 请求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://retail.googleapis.com/v2alpha/projects/PROJECT_ID /locations/global/catalogs/default_catalog/branches/BRANCH_ID /products:export"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
@' { "outputConfig": { "bigqueryDestination": { "datasetId": "DATASET_ID ", "tableIdPrefix": "TABLE_ID_PREFIX ", "tableType": "view" } } } '@ | Out-File -FilePath request.json -Encoding utf8
然后,执行以下命令以发送 REST 请求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID /locations/global/catalogs/default_catalog/branches/BRANCH_ID /products:export" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER /locations/global/catalogs/default_catalog/branches/0/operations/17986570020347019923", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.retail.v2alpha.ExportProductsResponse", "outputResult": { "bigqueryResult": [ { "datasetId": "DATASET_ID ", "tableId": "TABLE_ID_PREFIX _retail_products" } ] } } }
将用户事件导出到 BigQuery 表
使用 userEvents.export
方法将零售用户事件导出到 BigQuery 表:
在使用任何请求数据之前,请先进行以下替换:
-
PROJECT_ID :您创建 BigQuery 数据集的 Vertex AI Search for Retail API 项目的 ID。 -
DATASET_ID :您在在 BigQuery 中创建数据集中创建的数据集的名称。例如,使用retail_data
或retail_product_data
。 -
TABLE_ID_PREFIX :表 ID 的前缀。此前缀不能为空字符串。系统会添加retail_products
后缀以完成表名称。例如,如果前缀为test
,则表格名为test_retail_products
。
请求 JSON 正文:
{ "outputConfig": { "bigqueryDestination": { "datasetId": "DATASET_ID ", "tableIdPrefix": "TABLE_ID_PREFIX ", "tableType": "view" } } }
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
cat > request.json << 'EOF' { "outputConfig": { "bigqueryDestination": { "datasetId": "DATASET_ID ", "tableIdPrefix": "TABLE_ID_PREFIX ", "tableType": "view" } } } EOF
然后,执行以下命令以发送 REST 请求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://retail.googleapis.com/v2alpha/projects/PROJECT_ID /locations/global/catalogs/default_catalog/userEvents:export"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
@' { "outputConfig": { "bigqueryDestination": { "datasetId": "DATASET_ID ", "tableIdPrefix": "TABLE_ID_PREFIX ", "tableType": "view" } } } '@ | Out-File -FilePath request.json -Encoding utf8
然后,执行以下命令以发送 REST 请求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID /locations/global/catalogs/default_catalog/userEvents:export" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER /locations/global/catalogs/default_catalog/operations/17203443067109586170", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.retail.v2alpha.ExportUserEventsResponse", "outputResult": { "bigqueryResult": [ { "datasetId": "DATASET_ID ", "tableId": "TABLE_ID_PREFIX _retail_user_events" } ] } } }
导出的数据简介
以下是有关您导出到 BigQuery 表的零售数据的注意事项:
导出的用户事件数据简介
下面介绍了导出的用户事件数据中包含的产品信息的相关知识。
商品价格信息
userEvents.export
方法返回商品价格信息的方式取决于以下因素:
您在提取用户事件数据时在其中添加了价格信息。调用
userEvents.export
方法时,随用户事件返回的价格为事件发生时商品的价格。您未在用户事件数据中添加价格信息,但在提取商品数据时添加了价格信息。调用
userEvents.export
方法时,随用户事件返回的价格不一定是事件发生时商品的价格。这是提取商品数据时在商品数据中找到的价格。您未在用户事件数据中添加价格信息,并且商品数据中也没有价格信息。调用
userEvents.export
方法时,系统不会在用户事件中返回任何价格。
其他产品信息
在您调用 userEvents.export
方法时,系统会将所有商品信息(价格除外)与用户事件信息联接起来。在用户事件发生时刻到您调用 userEvents.export
时刻之间,商品价值可能会发生变化。因此,用户事件表中返回的非价格产品值可能会与用户事件发生时的产品值不同。
可选:确认新表是否已在 BigQuery 中
将商品数据和用户事件数据导出到 BigQuery 后,请确保存在新表。
在 BigQuery 中,前往您在在 BigQuery 中创建数据集中创建的数据集。
打开数据集,确保您看到自己导出的两个表。 例如,查找名称以
retail_products
和retail_user_events
结尾的表。