本页介绍了如何创建媒体数据存储区并将数据导入其中。
准备工作
请确保您执行了以下操作:
查看与媒体数据和架构相关的概念:
如果您使用的是自己的架构,请确保您的架构具有可很好地映射到自定义架构的媒体属性的字段:
title
、url
、category
等。将媒体文档放入 JSON 架构中,并将数据上传到 BigQuery 或 Cloud Storage。
查看媒体用户事件简介,并准备要导入的用户事件。所有媒体应用都需要用户事件。
根据数据源选择相应程序
如需创建媒体数据存储区并导入文档,请前往您计划使用的来源对应的部分:
从 BigQuery 导入
控制台
如需使用 Google Cloud 控制台创建媒体数据存储区并从 BigQuery 导入文档和用户事件,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击创建数据存储区。
在来源页面上,选择 BigQuery。
选择媒体 - 包含结构化媒体数据的 BigQuery 表作为要导入的数据类型。
在 BigQuery 路径字段中,点击浏览,选择您已准备好要提取的 BigQuery 数据,然后点击选择。 或者,您也可以直接在 BigQuery 路径字段中输入位置。
如果您的数据采用的是预定义的 Google 架构,请选择 Google 预定义架构,点击继续,然后跳至第 11 步。
如果您的数据采用的是自己的架构,请选择自定义架构,然后点击继续。
检查检测到的架构,然后使用关键属性菜单为架构字段分配属性。
点击继续。
在映射完所有必需的键属性之前,您无法继续操作。必需的键属性会显示绿色对勾标记
,而不是橙色警告标记 。输入数据存储区的名称,然后点击创建。
从 Cloud Storage 导入
控制台
如需使用 Google Cloud 控制台创建媒体数据存储区并从 Cloud Storage 导入文档,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
前往数据存储区页面。
点击创建数据存储区。
在来源页面上,选择 Cloud Storage。
选择结构化媒体数据(包含媒体文件的 JSONL)作为要导入的数据类型。
在选择您要导入的文件夹或文件部分,选择文件夹或文件。
点击浏览,然后选择您已准备好要提取的数据,再点击选择。 或者,直接在
gs://
字段中输入位置。如果您的数据采用的是预定义的 Google 架构,请选择 Google 预定义架构,点击继续,然后跳至第 11 步。
如果您的数据采用的是自己的架构,请选择自定义架构,然后点击继续。
检查检测到的架构,然后使用关键属性菜单为架构字段分配属性。
点击继续。
在映射完所有必需的键属性之前,您无法继续操作。必需的键属性会显示绿色对勾标记
,而不是橙色警告标记 。输入数据存储区的名称,然后点击创建。
使用 API 导入文档
如果您使用的是 Google 预定义架构,则可以通过以下方式导入文档:向 Documents:import
REST 方法发出 POST
请求,并使用 InlineSource
对象指定数据。
如需查看 JSON 文档格式的示例,请参阅 JSON 文档格式。
导入要求
以下是使用 API 导入媒体文档的要求:
每个文档都必须单独占一行。
单次导入的文档数量上限为 100。
过程
如需使用 API 导入媒体文档,请执行以下操作:
创建数据存储区。
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": "MEDIA" }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。DATA_STORE_ID
:要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。DATA_STORE_DISPLAY_NAME
:您要创建的 Vertex AI Search 数据存储区的显示名称。
为您的文档创建 JSON 文件,并将其命名为
./data.json
:{ "inlineSource": { "documents": [ { DOCUMENT_1 }, { DOCUMENT_2 } ] } }
调用 POST 方法:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @./data.json \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/branches/0/documents:import"
替换以下内容:
PROJECT_ID
:您的项目的 ID。DATA_STORE_ID
:数据存储区的 ID。
JSON 文档格式
以下示例展示了 JSON 格式的 Document
条目。
在单行中提供整个文档。每个文档都应单独占一行。
至少填充以下必填字段:
{ "id": "sample-01", "schemaId": "default_schema", "jsonData": "{\"title\":\"Test document title\",\"categories\":[\"sports > clip\",\"sports > highlight\"],\"uri\":\"http://www.example.com\",\"media_type\":\"sports-game\",\"available_time\":\"2022-08-26T23:00:17Z\"}" }
完成对象:
{ "id": "child-sample-0", "schemaId": "default_schema", "jsonData": "{\"title\":\"Test document title\",\"description\":\"Test document description\",\"language_code\":\"en-US\",\"categories\":[\"sports > clip\",\"sports > highlight\"],\"uri\":\"http://www.example.com\",\"images\":[{\"uri\":\"http://example.com/img1\",\"name\":\"image_1\"}],\"media_type\":\"sports-game\",\"in_languages\":[\"en-US\"],\"country_of_origin\":\"US\",\"content_index\":0,\"persons\":[{\"name\":\"sports person\",\"role\":\"player\",\"rank\":0,\"uri\":\"http://example.com/person\"},],\"organizations \":[{\"name\":\"sports team\",\"role\":\"team\",\"rank\":0,\"uri\":\"http://example.com/team\"},],\"hash_tags\":[\"tag1\"],\"filter_tags\":[\"filter_tag\"],\"production_year\":1900,\"duration\":\"100s\",\"content_rating\":[\"PG-13\"],\"aggregate_ratings\":[{\"rating_source\":\"imdb\",\"rating_score\":4.5,\"rating_count\":1250}],\"available_time\":\"2022-08-26T23:00:17Z\"}" }
监控导入过程并查看数据
如需查看数据注入状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详情。
点击活动标签页。
当活动标签页上的“状态”列从正在进行更改为导入已完成时,表示提取已完成。
注入过程可能需要几分钟或几小时才能完成,具体取决于数据的大小。
点击文档以查看您导入的数据。
导入用户事件
如需将用户事件导入媒体数据存储区,请执行以下操作:
- 按照导入历史用户事件中的说明操作。
后续步骤
确保文档数据始终是最新的。
理想情况下,您应每天通过导入新数据来更新数据存储区。 安排定期导入可防止模型质量逐渐降低。您可以使用 Google Cloud Scheduler 自动执行导入。
您可以只更新新文档或发生更改的文档,也可以导入整个数据存储区。如果您导入数据存储区中已有的文档,系统不会再次添加这些文档。系统会更新所有发生更改的文档。
确保用户事件数据始终是最新的。
请务必及时更新用户事件。如果没有足够的新鲜用户事件来满足数据要求,推荐应用就会停止工作。
如需了解如何实时导入用户事件数据,请参阅记录实时用户事件。
如需了解如何监控用户事件要求,请参阅检查媒体推荐的数据质量。