如需创建数据存储区并提取通用推荐数据,请前往您计划使用的来源对应的部分:
BigQuery
您可以通过以下两种方式从 BigQuery 表创建数据存储区:
一次性提取:您将 BigQuery 表中的数据导入数据存储区。除非您手动刷新数据,否则数据存储区中的数据不会发生变化。
定期提取:您可以从一个或多个 BigQuery 表导入数据,并设置同步频率,以确定数据存储区使用 BigQuery 数据集中的最新数据进行更新的频率。
下表比较了将 BigQuery 数据导入 Vertex AI Search 数据存储区的两种方式。
一次性提取 | 定期提取 |
---|---|
已正式发布 (GA)。 | 公开预览版。 |
您必须手动刷新数据。 | 数据每 1 天、3 天或 5 天自动更新一次。无法手动刷新数据。 |
Vertex AI Search 会根据 BigQuery 中的某个表创建单个数据存储区。 | Vertex AI Search 会为 BigQuery 数据集创建一个数据连接器,并为指定的每个表创建一个数据存储区(称为实体数据存储区)。对于每个数据连接器,表必须具有相同的数据类型(例如结构化数据),并且位于同一 BigQuery 数据集中。 |
您可以先提取一个表中的数据,然后再提取其他来源或 BigQuery 表中的数据,以便将多个表中的数据合并到一个数据存储区中。 | 由于不支持手动导入数据,因此实体数据存储区中的数据只能来自一个 BigQuery 表。 |
支持数据源访问权限控制。 | 不支持数据源访问控制。导入的数据可以包含访问控制,但系统不会遵循这些控制。 |
您可以使用Google Cloud 控制台或 API 创建数据存储空间。 | 您必须使用控制台创建数据连接器及其实体数据存储区。 |
符合 CMEK 要求。 | 符合 CMEK 要求。 |
从 BigQuery 导入一次
如需从 BigQuery 表中提取数据,请按照以下步骤创建数据存储区,然后使用 Google Cloud 控制台或 API 提取数据。
在导入数据之前,请参阅准备数据以便提取。
控制台
如需使用 Google Cloud 控制台从 BigQuery 提取数据,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击
Create data store(创建数据存储区)。在来源页面上,选择 BigQuery。
从您要导入哪类数据部分选择要导入的数据类型。
在同步频率部分中,选择一次。
在 BigQuery 路径字段中,点击浏览,选择您准备好提取的表,然后点击选择。或者,您也可以直接在 BigQuery 路径字段中输入表位置。
点击继续。
如果您要一次性导入结构化数据,请执行以下操作:
将字段映射到关键属性。
如果架构中缺少重要字段,请使用添加新字段进行添加。
如需了解详情,请参阅自动检测和修改简介。
点击继续。
为数据存储区选择一个区域。
为数据存储区输入名称。
点击创建。
如需查看数据注入状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。当活动标签页上的状态列从进行中更改为导入已完成时,提取操作即告完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
REST
如需使用命令行创建数据存储空间并从 BigQuery 导入数据,请按以下步骤操作。
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_RECOMMENDATION"] }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:您要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME
:您要创建的 Vertex AI Search 数据存储区的显示名称。
从 BigQuery 导入数据。
如果您定义了架构,请确保数据符合该架构。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "bigquerySource": { "projectId": "PROJECT_ID", "datasetId":"DATASET_ID", "tableId": "TABLE_ID", "dataSchema": "DATA_SCHEMA", "aclEnabled": "BOOLEAN" }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:Vertex AI Search 数据存储区的 ID。DATASET_ID
:BigQuery 数据集的 ID。TABLE_ID
:BigQuery 表的 ID。- 如果 BigQuery 表不在 PROJECT_ID 下,您需要向服务账号
service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com
授予 BigQuery 表的“BigQuery Data Viewer”权限。例如,如果您要将 BigQuery 表从源项目“123”导入目标项目“456”,请为项目“123”下的 BigQuery 表授予service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com
权限。
- 如果 BigQuery 表不在 PROJECT_ID 下,您需要向服务账号
DATA_SCHEMA
:可选。值为document
和custom
。默认值为document
。document
:您使用的 BigQuery 表必须符合准备数据以供提取中提供的默认 BigQuery 架构。您可以自行定义每个文档的 ID,同时将所有数据封装在 jsonData 字符串中。custom
:接受任何 BigQuery 表架构,Vertex AI Search 会自动为导入的每份文档生成 ID。
ERROR_DIRECTORY
:可选。存放与导入有关的错误信息的 Cloud Storage 目录,例如gs://<your-gcs-bucket>/directory/import_errors
。Google 建议将此字段留空,以便 Vertex AI Search 自动创建临时目录。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会导致从 BigQuery 到数据存储区的数据增量刷新。这会执行更新/插入操作,该操作会添加新文档,并将现有文档替换为具有相同 ID 的更新文档。指定FULL
会导致数据存储区中的文档完全重新基准。换句话说,系统会将新建和更新的文档添加到您的数据存储区,并将不存在于 BigQuery 中的文档从您的数据存储区中移除。如果您想自动删除不再需要的文档,FULL
模式会很有用。AUTO_GENERATE_IDS
:可选。指定是否自动生成文档 ID。如果设置为true
,则文档 ID 会根据载荷的哈希生成。请注意,在多次导入后,生成的文档 ID 可能不会保持一致。如果您在多次导入时自动生成 ID,Google 强烈建议您将reconciliationMode
设置为FULL
,以保持文档 ID 的一致性。仅当
bigquerySource.dataSchema
设置为custom
时,才指定autoGenerateIds
。否则,系统将返回INVALID_ARGUMENT
错误。如果您未指定autoGenerateIds
或将其设置为false
,则必须指定idField
。否则,文档将无法导入。ID_FIELD
:可选。指定哪些字段是文档 ID。对于 BigQuery 源文件,idField
表示 BigQuery 表中包含文档 ID 的列的名称。仅当满足以下条件时,才应指定
idField
:(1)bigquerySource.dataSchema
设置为custom
,并且 (2)auto_generate_ids
设置为false
或未指定。否则,系统将返回INVALID_ARGUMENT
错误。BigQuery 列名称的值必须为字符串类型,必须介于 1 到 63 个字符之间,并且必须符合 RFC-1034 的要求。否则,文档将无法导入。
C#
如需了解详情,请参阅 AI 应用 C# API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Go
如需了解详情,请参阅 AI 应用 Go API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Java
如需了解详情,请参阅 AI 应用 Java API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Node.js
如需了解详情,请参阅 AI 应用 Node.js API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Python
如需了解详情,请参阅 AI 应用 Python API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Ruby
如需了解详情,请参阅 AI 应用 Ruby API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
通过定期同步连接到 BigQuery
在导入数据之前,请参阅准备数据以便提取。
以下步骤介绍了如何创建用于将 BigQuery 数据集与 Vertex AI Search 数据连接器相关联的数据连接器,以及如何为要创建的每个数据存储区在数据集中指定表。数据连接器的子数据存储区称为实体数据存储区。
数据集中的数据会定期同步到实体数据存储区。您可以指定每天、每三天或每五天同步一次。
控制台
如需使用 Google Cloud 控制台创建一个连接器,以便定期将 BigQuery 数据集中的数据同步到 Vertex AI Search,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
在导航菜单中,点击数据存储空间。
点击创建数据存储区。
在来源页面上,选择 BigQuery。
选择要导入的数据类型。
点击定期。
选择同步频率,即 Vertex AI Search 连接器与 BigQuery 数据集同步的频率。您可以稍后更改频次。
在 BigQuery 数据集路径字段中,点击浏览,选择包含您准备好提取的表的数据集。或者,您也可以直接在 BigQuery 路径字段中输入表位置。路径的格式为
projectname.datasetname
。在要同步的表字段中,点击浏览,然后选择包含要存储到数据存储区中的数据的表。
如果数据集中还有其他要用于数据存储区的表,请点击添加表,并指定这些表。
点击继续。
为数据存储区选择一个区域,输入数据连接器的名称,然后点击创建。
现在,您已创建数据连接器,该连接器会定期将数据与 BigQuery 数据集同步。并且您已创建一个或多个实体数据存储区。数据存储区与 BigQuery 表具有相同的名称。
如需查看数据注入状态,请前往数据存储区页面,然后点击数据连接器名称,在其数据页面 > 数据注入活动标签页中查看相关详细信息。当活动标签页上的状态列从进行中更改为成功时,第一次提取操作即告完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
您首次设置数据源并导入数据后,数据存储区会按照您在设置期间选择的频率同步来自该数据源的数据。在创建数据连接器大约一小时后,系统会进行首次同步。然后,系统会在大约 24 小时、72 小时或 120 小时后进行下一次同步。
后续步骤
Cloud Storage
您可以通过以下两种方式从 Cloud Storage 表创建数据存储区:
一次性提取:您将数据从 Cloud Storage 文件夹或文件导入数据存储区。除非您手动刷新数据,否则数据存储区中的数据不会发生变化。
定期提取:您从 Cloud Storage 文件夹或文件导入数据,并设置同步频率,以确定数据存储区使用来自该 Cloud Storage 位置的最新数据进行更新的频率。
下表比较了将 Cloud Storage 数据导入 Vertex AI Search 数据存储区的两种方式。
一次性提取 | 定期提取 |
---|---|
已正式发布 (GA)。 | 公开预览版。 |
您必须手动刷新数据。 | 数据每 1 天、3 天或 5 天自动更新一次。无法手动刷新数据。 |
Vertex AI Search 会根据 Cloud Storage 中的某个文件夹或文件创建单个数据存储区。 | Vertex AI Search 会创建一个数据连接器,并为指定的文件或文件夹将数据存储区(称为实体数据存储区)与其相关联。每个 Cloud Storage 数据连接器可以有一个实体数据存储区。 |
您可以先从一个 Cloud Storage 位置提取数据,然后再从另一个位置提取更多数据,从而将多个文件、文件夹和存储分区中的数据合并到一个数据存储区中。 | 由于不支持手动导入数据,实体数据存储区中的数据只能来自一个 Cloud Storage 文件或文件夹。 |
支持数据源访问权限控制。如需了解详情,请参阅数据源访问权限控制。 | 不支持数据源访问控制。导入的数据可以包含访问控制,但系统不会遵循这些控制。 |
您可以使用Google Cloud 控制台或 API 创建数据存储空间。 | 您必须使用控制台创建数据连接器及其实体数据存储区。 |
符合 CMEK 要求。 | 符合 CMEK 要求。 |
从 Cloud Storage 导入一次
如需从 Cloud Storage 提取数据,请按照以下步骤创建数据存储区,然后使用 Google Cloud 控制台或 API 提取数据。
在导入数据之前,请参阅准备数据以便提取。
控制台
如需使用控制台从 Cloud Storage 存储分区提取数据,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击
Create data store(创建数据存储区)。在来源页面上,选择 Cloud Storage。
在选择您要导入的文件夹或文件部分,选择文件夹或文件。
点击浏览,选择您准备好提取的数据,然后点击选择。或者,直接在
gs://
字段中输入位置。选择要导入的数据类型。
点击继续。
如果您要一次性导入结构化数据,请执行以下操作:
将字段映射到关键属性。
如果架构中缺少重要字段,请使用添加新字段进行添加。
如需了解详情,请参阅自动检测和修改简介。
点击继续。
为数据存储区选择一个区域。
为数据存储区输入名称。
可选:如果您选择了非结构化文档,则可以为文档选择解析和分块选项。如需比较解析器,请参阅解析文档。如需了解分块,请参阅 RAG 的分块文档。
OCR 解析器和布局解析器可能会产生额外费用。请参阅文档 AI 功能价格。
如需选择解析器,请展开文档处理选项,然后指定要使用的解析器选项。
点击创建。
如需查看数据注入状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。当活动标签页上的状态列从进行中更改为导入已完成时,提取操作即告完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
REST
如需使用命令行创建数据存储区并从 Cloud Storage 提取数据,请按以下步骤操作。
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_RECOMMENDATION"] }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:您要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME
:您要创建的 Vertex AI Search 数据存储区的显示名称。
从 Cloud Storage 导入数据。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "gcsSource": { "inputUris": ["INPUT_FILE_PATTERN_1", "INPUT_FILE_PATTERN_2"], "dataSchema": "DATA_SCHEMA", }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:Vertex AI Search 数据存储区的 ID。INPUT_FILE_PATTERN
:Cloud Storage 中包含文档的文件格式。对于结构化数据或包含元数据的非结构化数据,输入文件模式示例如
gs://<your-gcs-bucket>/directory/object.json
,与一个或多个文件匹配的模式示例如gs://<your-gcs-bucket>/directory/*.json
。对于非结构化文档,示例为
gs://<your-gcs-bucket>/directory/*.pdf
。与模式匹配的每个文件都会成为一个文档。如果
<your-gcs-bucket>
不属于 PROJECT_ID,您需要向服务账号service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com
授予对 Cloud Storage 存储分区的“Storage Object Viewer”权限。例如,如果您要将 Cloud Storage 存储分区从源项目“123”导入目标项目“456”,请向service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com
授予对项目“123”下的 Cloud Storage 存储分区的权限。DATA_SCHEMA
:可选。值为document
、custom
、csv
和content
。默认值为document
。document
:为非结构化文档上传包含元数据的非结构化数据。文件中的每一行都必须采用以下某种格式。您可以定义每个文档的 ID:{ "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
{ "id": "<your-id>", "structData": <JSON object>, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
custom
:为结构化文档上传 JSON。数据会按照架构进行整理。您可以指定架构;否则,系统会自动检测架构。您可以将文档的 JSON 字符串以一致的格式直接放入每行中,Vertex AI Search 会自动为导入的每份文档生成 ID。content
:上传非结构化文档(PDF、HTML、DOC、TXT、PPTX)。每个文档的 ID 会自动生成为 SHA256(GCS_URI) 的前 128 位,编码为十六进制字符串。您可以指定多个输入文件格式,但匹配的文件不得超过 10 万个文件的限制。csv
:在 CSV 文件中添加标题行,并将每个标题映射到文档字段。使用inputUris
字段指定 CSV 文件的路径。
ERROR_DIRECTORY
:可选。存放与导入有关的错误信息的 Cloud Storage 目录,例如gs://<your-gcs-bucket>/directory/import_errors
。Google 建议将此字段留空,以便 Vertex AI Search 自动创建临时目录。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会导致数据从 Cloud Storage 增量刷新到您的数据存储区。这会执行更新/插入操作,该操作会添加新文档,并将现有文档替换为具有相同 ID 的更新文档。指定FULL
会导致数据存储区中的文档完全重新基准。换句话说,系统会将新文档和更新后的文档添加到您的数据存储区,并将 Cloud Storage 中不存在的文档从您的数据存储区中移除。如果您想自动删除不再需要的文档,FULL
模式会很有用。AUTO_GENERATE_IDS
:可选。指定是否自动生成文档 ID。如果设置为true
,文档 ID 将根据载荷的哈希生成。请注意,在多次导入后,生成的文档 ID 可能不会保持一致。如果您在多次导入时自动生成 ID,Google 强烈建议您将reconciliationMode
设置为FULL
,以保持文档 ID 的一致性。仅当
gcsSource.dataSchema
设置为custom
或csv
时,才应指定autoGenerateIds
。否则,系统将返回INVALID_ARGUMENT
错误。如果您未指定autoGenerateIds
或将其设置为false
,则必须指定idField
。否则,文档将无法导入。ID_FIELD
:可选。指定哪些字段是文档 ID。对于 Cloud Storage 来源文档,idField
用于在 JSON 字段(即文档 ID)中指定名称。例如,如果{"my_id":"some_uuid"}
是文档中的一个文档 ID 字段,请指定"idField":"my_id"
。这会将名称为"my_id"
的所有 JSON 字段标识为文档 ID。仅当满足以下条件时,才应指定此字段:(1)
gcsSource.dataSchema
设置为custom
或csv
,并且 (2)auto_generate_ids
设置为false
或未指定。否则,系统将返回INVALID_ARGUMENT
错误。请注意,Cloud Storage JSON 字段的值必须为字符串类型,必须介于 1 到 63 个字符之间,并且必须符合 RFC-1034。否则,文档将无法导入。
请注意,
id_field
指定的 JSON 字段名称必须为字符串类型,长度必须介于 1 到 63 个字符之间,并且必须符合 RFC-1034 的要求。否则,文档将无法导入。
C#
如需了解详情,请参阅 AI 应用 C# API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Go
如需了解详情,请参阅 AI 应用 Go API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Java
如需了解详情,请参阅 AI 应用 Java API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Node.js
如需了解详情,请参阅 AI 应用 Node.js API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Python
如需了解详情,请参阅 AI 应用 Python API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Ruby
如需了解详情,请参阅 AI 应用 Ruby API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
通过定期同步连接到 Cloud Storage
在导入数据之前,请参阅准备数据以便提取。
以下步骤介绍了如何创建用于将 Cloud Storage 位置与 Vertex AI Search 数据连接器相关联的数据连接器,以及如何为要创建的数据存储区在该位置指定文件夹或文件。数据连接器的子数据存储区称为实体数据存储区。
系统会定期将数据同步到实体数据存储区。您可以指定每天、每三天或每五天同步一次。
控制台
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击创建数据存储区。
在来源页面上,选择 Cloud Storage。
选择要导入的数据类型。
点击定期。
选择同步频率,即 Vertex AI Search Connector 与 Cloud Storage 位置同步的频率。您可以稍后更改频次。
在选择您要导入的文件夹或文件部分,选择文件夹或文件。
点击浏览,选择您准备好提取的数据,然后点击选择。或者,直接在
gs://
字段中输入位置。点击继续。
为数据连接器选择一个区域。
为数据连接器输入名称。
可选:如果您选择了非结构化文档,则可以为文档选择解析和分块选项。如需比较解析器,请参阅解析文档。如需了解分块,请参阅 RAG 的分块文档。
OCR 解析器和布局解析器可能会产生额外费用。请参阅文档 AI 功能价格。
如需选择解析器,请展开文档处理选项,然后指定要使用的解析器选项。
点击创建。
现在,您已创建数据连接器,该连接器会定期将数据与 Cloud Storage 位置同步。您还创建了一个名为
gcs_store
的实体数据存储区。如需查看数据注入状态,请前往数据存储区页面,然后点击数据连接器名称,在其数据页面上查看相关详细信息
数据注入活动标签页。当数据提取活动标签页上的状态列从进行中更改为成功时,第一次提取即告完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
首次设置数据源并导入数据后,系统会按照您在设置期间选择的频率从该数据源同步数据。在创建数据连接器大约一小时后,系统会进行首次同步。然后,系统会在大约 24 小时、72 小时或 120 小时后进行下一次同步。
后续步骤
使用 API 上传结构化 JSON 数据
如需使用该 API 直接上传 JSON 文档或对象,请按以下步骤操作。
在导入数据之前,请准备数据以进行提取。
REST
如需使用命令行创建数据存储区并导入结构化 JSON 数据,请按以下步骤操作:
创建数据存储区。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_RECOMMENDATION"] }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:要创建的推荐数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME
:您要创建的推荐数据存储区的显示名称。
可选:提供您自己的架构。提供架构后,您通常会获得更好的结果。如需了解详情,请参阅提供或自动检测架构。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/schemas/default_schema" \ -d '{ "structSchema": JSON_SCHEMA_OBJECT }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:推荐数据存储区的 ID。JSON_SCHEMA_OBJECT
:您的 JSON 架构(作为 JSON 对象)- 例如:{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } }, "uri": { "type": "string", "keyPropertyMapping": "uri" } } }
导入符合定义的架构的结构化数据。
您可以通过多种方式上传数据,包括:
上传 JSON 文档。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents?documentId=DOCUMENT_ID" \ -d '{ "jsonData": "JSON_DOCUMENT_STRING" }'
将
JSON_DOCUMENT_STRING
替换为 JSON 文档(作为单个字符串)。此值必须符合您在上一步中提供的 JSON 架构,例如:```none { \"title\": \"test title\", \"categories\": [\"cat_1\", \"cat_2\"], \"uri\": \"test uri\"} ```
上传 JSON 对象。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents?documentId=DOCUMENT_ID" \ -d '{ "structData": JSON_DOCUMENT_OBJECT }'
将
JSON_DOCUMENT_OBJECT
替换为 JSON 文档作为 JSON 对象。此值必须符合您在上一步中提供的 JSON 架构,例如:```json { "title": "test title", "categories": [ "cat_1", "cat_2" ], "uri": "test uri" } ```
使用 JSON 文档进行更新。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID" \ -d '{ "jsonData": "JSON_DOCUMENT_STRING" }'
使用 JSON 对象进行更新。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID" \ -d '{ "structData": JSON_DOCUMENT_OBJECT }'
后续步骤
使用 Terraform 创建数据存储区
您可以使用 Terraform 创建空数据存储区。创建空数据存储区后,您可以使用 Google Cloud 控制台或 API 命令将数据提取到数据存储区。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需使用 Terraform 创建空数据存储区,请参阅
google_discovery_engine_data_store
。