如需创建数据存储区并注入数据以用于自定义推荐,请前往您计划使用的来源对应的部分:
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 页面。
前往数据存储区页面。
点击
创建数据存储区。在来源页面上,选择 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 到数据存储区的增量数据刷新。此方法会执行 upsert 操作,即添加新文档,并将现有文档替换为具有相同 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 Applications C# API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Go
如需了解详情,请参阅 AI Applications Go API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Java
如需了解详情,请参阅 AI Applications Java API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Node.js
如需了解详情,请参阅 AI Applications Node.js API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Python
如需了解详情,请参阅 AI Applications Python API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Ruby
如需了解详情,请参阅 AI Applications 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 页面。
前往数据存储区页面。
点击
创建数据存储区。在来源页面上,选择 Cloud Storage。
在选择您要导入的文件夹或文件部分,选择文件夹或文件。
点击浏览,然后选择您已准备好要提取的数据,再点击选择。 或者,直接在
gs://
字段中输入位置。选择要导入的数据类型。
点击继续。
如果您要一次性导入结构化数据,请执行以下操作:
将字段映射到关键属性。
如果架构中缺少重要字段,请使用添加新字段来添加这些字段。
如需了解详情,请参阅自动检测和修改简介。
点击继续。
为数据存储区选择一个区域。
为数据存储区输入名称。
可选:如果您选择了非结构化文档,则可以选择文档的解析和分块选项。如需比较解析器,请参阅解析文档。如需了解有关分块的信息,请参阅为 RAG 分块文档。
OCR 解析器和布局解析器可能会产生额外费用。请参阅 Document 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 下,您需要为服务账号授予 Cloud Storage 存储桶的service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com
“Storage Object Viewer”权限。例如,如果您要将 Cloud Storage 存储桶从源项目“123”导入到目标项目“456”,请授予项目“123”下 Cloud Storage 存储桶的service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com
权限。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 Applications C# API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Go
如需了解详情,请参阅 AI Applications Go API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Java
如需了解详情,请参阅 AI Applications Java API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Node.js
如需了解详情,请参阅 AI Applications Node.js API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Python
如需了解详情,请参阅 AI Applications Python API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
Ruby
如需了解详情,请参阅 AI Applications Ruby API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建数据存储区
导入文档
通过定期同步连接到 Cloud Storage
在导入数据之前,请查看准备数据以便提取。
以下过程介绍了如何创建将 Cloud Storage 位置与 Vertex AI Search 数据连接器相关联的数据连接器,以及如何为要创建的数据存储区指定该位置中的文件夹或文件。数据连接器的子数据存储区称为实体数据存储区。
数据会定期同步到实体数据存储区。您可以指定每天、每三天或每五天同步一次。
控制台
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击创建数据存储区。
在来源页面上,选择 Cloud Storage。
选择要导入的数据类型。
点击周期性。
选择同步频率,即您希望 Vertex AI Search 连接器与 Cloud Storage 位置同步的频率。您可以稍后更改频次。
在选择您要导入的文件夹或文件部分,选择文件夹或文件。
点击浏览,然后选择您已准备好要提取的数据,再点击选择。 或者,直接在
gs://
字段中输入位置。点击继续。
为您的数据连接器选择区域。
为数据连接器输入名称。
可选:如果您选择了非结构化文档,则可以选择文档的解析和分块选项。如需比较解析器,请参阅解析文档。如需了解有关分块的信息,请参阅为 RAG 分块文档。
OCR 解析器和布局解析器可能会产生额外费用。请参阅 Document 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
。