将数据导出到 BigQuery 中

本页面介绍如何将零售产品和用户事件数据上传到 BigQuery。将数据导出到 BigQuery 后,您就可以将其用于通过 Vertex AI 执行销售预测,以及在预构建的 Looker 信息中心内查看数据。

如果您的零售数据已在 BigQuery 和适用于零售业的 Vertex AI Search 中的产品和用户事件表中,您可以跳过此页面,直接前往获取显示关键绩效指标的信息中心根据零售数据生成销售预测。如需详细了解该格式,请参阅产品架构关于用户事件

准备工作

您必须先完成准备工作中的步骤,才能将零售数据导出到 BigQuery 中。这包括导入清单信息和用户事件。

有关导入的详细信息,请参阅:

在 BigQuery 中创建数据集

您需要在 BigQuery 中创建一两个数据集来保存产品和用户事件数据。您可以使用一个数据集来保存这两种类型的数据,也可以创建两个数据集,每个数据集用于每种类型的数据。

您必须在实现零售版 Vertex AI Search 的同一项目中创建数据集。

  1. 如果您之前未在项目中使用过 BigQuery,请启用 BigQuery API,并确保您具有可以创建数据集和表的 IAM 角色。

    请参阅 BigQuery 文档中的准备工作使用 IAM 进行访问权限控制

  2. 在 BigQuery 中,在 US(美国的多个区域)多区域位置创建数据集。例如,将其命名为 retail_data。如果您在其他区域创建数据集,则数据导出到 BigQuery 会失败。

    如需了解如何创建数据集,请参阅 BigQuery 文档中的创建数据集

    此数据集将用于保存您导出的数据表。以下步骤介绍了如何导出。

  3. 可选:如需将用户事件数据放在与产品数据不同的数据集中,请创建第二个数据集。例如,将其命名为 retail_user_event_data

将 Vertex AI Search for Retail 目录导出到 BigQuery 表

使用 products.export 方法将零售目录导出到 BigQuery 表。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您在其中创建了 BigQuery 数据集的 Vertex AI Search for Retail API 项目的 ID。
  • BRANCH_ID:目录分支的 ID。使用 default_branch 从默认分支获取数据。 如需了解详情,请参阅目录分支
  • DATASET_ID:您在 在 BigQuery 中创建数据集部分创建的数据集的名称。例如,使用 retail_dataretail_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"
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 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_dataretail_product_data
  • TABLE_ID_PREFIX:表 ID 的前缀。此前缀不得为空字符串。添加了 retail_products 的后缀,以补全表名称。例如,如果前缀为 test,则表的名称为 test_retail_products

请求 JSON 正文:

{
  "outputConfig":
  {
    "bigqueryDestination":
    {
      "datasetId": "DATASET_ID",
        "tableIdPrefix": "TABLE_ID_PREFIX",
        "tableType": "view"
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 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 表的零售数据的注意事项:

  • 导出到项目中的 BigQuery 表的数据是已获授权的视图,而非具体化视图

  • 您无法更改或更新这些表中的数据。

  • 商品每小时刷新一次。

  • 用户事件会近乎实时地刷新。

关于导出的用户事件数据

以下是关于导出的用户事件数据中包含的商品信息的一些须知事项。

商品价格信息

userEvents.export 方法返回商品价格信息的方式取决于以下因素:

  • 在提取时,您的用户事件数据中包含价格信息。当您调用 userEvents.export 方法时,随用户事件返回的价格是事件发生时商品的价格。

  • 您未在用户事件数据中添加价格信息,但在提取时,您在商品数据中添加了价格信息。当您调用 userEvents.export 方法时,随用户事件返回的价格并不一定是事件发生时的商品价格。这是提取时商品数据中的价格。

  • 您的用户事件数据中没有价格信息,并且商品数据中没有价格信息。当您调用 userEvents.export 方法时,用户事件不会返回任何价格。

其他商品信息

所有产品信息(价格除外)都会在您调用 userEvents.export 方法时与用户事件信息联接。商品值可以从用户事件发生时更改为调用 userEvents.export 时。因此,用户事件表中返回的非价格产品值可能与用户事件发生时的产品值不同。

可选:确认新表位于 BigQuery 中

将商品数据和用户事件数据导出到 BigQuery 后,请确保存在新表。

  1. 在 BigQuery 中,导航到您在在 BigQuery 中创建数据集中创建的一个或多个数据集。

  2. 打开数据集,确保您能看到导出的两个表。 例如,查找名称以 retail_productsretail_user_events 结尾的表。