从 AlloyDB for PostgreSQL 导入

如需从 AlloyDB for PostgreSQL 中注入数据,请按照以下步骤使用 Google Cloud 控制台或 API 创建数据存储区并注入数据。

如果您的 AlloyDB for PostgreSQL 数据与 Gemini Enterprise 项目位于同一项目中,请参阅从 AlloyDB for PostgreSQL 导入数据

如果您的 AlloyDB for PostgreSQL 数据与 Gemini Enterprise 项目位于不同的项目中,请参阅设置 AlloyDB for PostgreSQL 访问权限

设置从其他项目访问 AlloyDB for PostgreSQL

如需向 Gemini Enterprise 授予对其他项目中 AlloyDB for PostgreSQL 数据的访问权限,请按以下步骤操作:

  1. 将以下 PROJECT_NUMBER 变量替换为您的 Gemini Enterprise 项目编号,然后复制此代码块的内容。这是您的 Gemini Enterprise 服务账号标识符:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.
    
  2. 切换到 AlloyDB for PostgreSQL 数据所在的 Google Cloud 项目。

  3. 转到 IAM 页面。

    IAM

  4. 点击授予访问权限

  5. 对于新主账号,输入 Gemini Enterprise 服务账号标识符,然后选择 Cloud AlloyDB > Cloud AlloyDB Admin 角色。

  6. 点击保存

  7. 切换回 Gemini Enterprise 项目。

接下来,请参阅从 AlloyDB for PostgreSQL 导入数据

从 AlloyDB for PostgreSQL 导入数据

控制台

如需使用控制台从 AlloyDB for PostgreSQL 中注入数据,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。

    Gemini Enterprise

  2. 在导航菜单中,点击数据存储区

  3. 点击创建数据存储区

  4. 选择数据源页面上,选择 AlloyDB

  5. 指定您计划导入的数据的项目 ID、位置 ID、集群 ID、数据库 ID 和表 ID。

  6. 点击继续

  7. 为数据存储区选择一个区域。

  8. 为数据存储区输入名称。

  9. 点击创建

  10. 如需查看数据注入状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详情。当活动标签页上的“状态”列从正在进行更改为导入已完成时,表示注入已完成。

    注入过程可能需要几分钟或几小时才能完成,具体取决于数据的大小。

REST

如需使用命令行创建数据存储区并从 AlloyDB for PostgreSQL 中注入数据,请按以下步骤操作:

  1. 创建数据存储区。

    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/v1beta/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 控制台中。
  2. 从 AlloyDB for PostgreSQL 导入数据。

      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 '{
        "alloyDbSource": {
          "projectId": "ALLOYDB_PROJECT_ID",
          "locationId": "LOCATION_ID",
          "clusterId": "CLUSTER_ID",
          "databaseId": "DATABASE_ID",
          "tableId": "TABLE_ID",
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    替换以下内容:

    • PROJECT_ID:Gemini Enterprise 项目的 ID。
    • DATA_STORE_ID:数据存储区的 ID。ID 只能包含小写字母、数字、下划线和连字符。
    • ALLOYDB_PROJECT_ID:AlloyDB for PostgreSQL 项目的 ID。
    • LOCATION_ID:AlloyDB for PostgreSQL 位置的 ID。
    • CLUSTER_ID:AlloyDB for PostgreSQL 集群的 ID。
    • DATABASE_ID:AlloyDB for PostgreSQL 数据库的 ID。
    • TABLE_ID:AlloyDB for PostgreSQL 表的 ID。
    • RECONCILIATION_MODE:可选。值为 FULLINCREMENTAL。默认值为 INCREMENTAL。 指定 INCREMENTAL 会导致从 AlloyDB for PostgreSQL 到数据存储区的增量数据刷新。此方法会执行 upsert 操作,即添加新文档,并将现有文档替换为具有相同 ID 的更新文档。 指定 FULL 会导致数据存储区中的文档完全重新定位。换句话说,系统会将新文档和更新后的文档添加到数据存储区,并从数据存储区中移除 AlloyDB for PostgreSQL 中不存在的文档。如果您想自动删除不再需要的文档,FULL 模式会很有帮助。
    • AUTO_GENERATE_IDS:可选。指定是否自动生成文档 ID。如果设置为 true,则文档 ID 将根据载荷的哈希值生成。请注意,生成的文档 ID 在多次导入时可能不会保持一致。如果您在多次导入时自动生成 ID,Google 强烈建议您将 reconciliationMode 设置为 FULL,以保持文档 ID 的一致性。
    • ID_FIELD:可选。指定哪些字段是文档 ID。

后续步骤

  • 如需将数据存储区挂接到应用,请按照创建搜索应用中的步骤创建应用并选择数据存储区。

  • 如需在设置应用和数据存储区后预览搜索结果以了解其显示方式,请参阅预览搜索结果