如需从 Bigtable 中注入数据,请按照以下步骤使用 API 创建数据存储区并注入数据。
设置 Bigtable 访问权限
如需向 Gemini Enterprise 授予对其他项目中 Bigtable 数据的访问权限,请按以下步骤操作:
将以下
PROJECT_NUMBER
变量替换为您的 Gemini Enterprise 项目编号,然后复制此代码块的内容。这是您的 Gemini Enterprise 服务账号标识符:service-PROJECT_NUMBER@gcp-sa-discoveryengine.`
前往 IAM 和管理页面。
在 IAM 和管理页面上切换到 Bigtable 项目,然后点击授予访问权限。
在新的主账号中,输入实例的服务账号标识符,然后选择 Bigtable > Bigtable Reader 角色。
点击保存。
切换回 Gemini Enterprise 项目。
接下来,请参阅从 Bigtable 导入数据。
从 Bigtable 导入数据
REST
如需使用命令行创建数据存储区并从 Bigtable 中注入数据,请按以下步骤操作:
创建数据存储区。
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": "DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], }'
替换以下内容:
PROJECT_ID
:您的项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 只能包含小写字母、数字、下划线和连字符。DISPLAY_NAME
:数据存储区的显示名称。此信息可能会显示在 Google Cloud 控制台中。
从 Bigtable 导入数据。
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 '{ "bigtableSource ": { "projectId": "BIGTABLE_PROJECT_ID", "instanceId": "INSTANCE_ID", "tableId": "TABLE_ID", "bigtableOptions": { "keyFieldName": "KEY_FIELD_NAME", "families": { "key": "KEY", "value": { "fieldName": "FIELD_NAME", "encoding": "ENCODING", "type": "TYPE", "columns": [ { "qualifier": "QUALIFIER", "fieldName": "FIELD_NAME", "encoding": "COLUMN_ENCODING", "type": "COLUMN_VALUES_TYPE" } ] } } ... } }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", }'
替换以下内容:
PROJECT_ID
:Gemini Enterprise 项目的 ID。DATA_STORE_ID
:数据存储区的 ID。ID 只能包含小写字母、数字、下划线和连字符。BIGTABLE_PROJECT_ID
:您的 Bigtable 项目的 ID。INSTANCE_ID
:您的 Bigtable 实例的 ID。TABLE_ID
:Bigtable 表的 ID。KEY_FIELD_NAME
:可选,但建议填写。在将数据提取到 Gemini Enterprise 后,用于行键值的字段名称。KEY
:必填。列族键的字符串值。ENCODING
:可选。当类型不是 STRING 时,值的编码模式。您可以在columns
中列出特定列并为其指定编码,以覆盖此设置。COLUMN_TYPE
:可选。相应列族中的值类型。QUALIFIER
:必填。列的限定符。FIELD_NAME
:可选,但建议填写。将此列提取到 Gemini Enterprise 后要使用的字段名称。COLUMN_ENCODING
:可选。当类型不是 STRING 时,特定列的值的编码模式。RECONCILIATION_MODE
:可选。值为FULL
和INCREMENTAL
。默认值为INCREMENTAL
。 指定INCREMENTAL
会导致从 Bigtable 到数据存储区的数据增量刷新。此方法会执行 upsert 操作,即添加新文档,并将现有文档替换为具有相同 ID 的更新文档。指定FULL
会导致数据存储区中的文档完全重新设置基准。换句话说,系统会将新文档和更新后的文档添加到数据存储区,并从数据存储区中移除 Bigtable 中不存在的文档。如果您想自动删除不再需要的文档,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。