从 Cloud SQL 导入

如需从 Cloud SQL 中注入数据,请按以下步骤操作,设置 Cloud SQL 访问权限、创建数据存储区并注入数据。

为 Cloud SQL 实例设置暂存存储桶访问权限

从 Cloud SQL 注入数据时,数据会先暂存到 Cloud Storage 存储桶。请按照以下步骤授予 Cloud SQL 实例对 Cloud Storage 存储桶的访问权限。

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

    SQL

  2. 点击您计划从中导入数据的 Cloud SQL 实例。

  3. 复制实例的服务账号的标识符,类似于邮箱,例如 p9876-abcd33f@gcp-sa-cloud-sql.iam.gserviceaccount.com

  4. 前往 IAM 和管理页面。

    IAM 和管理

  5. 点击授予访问权限

  6. 对于新的主账号,输入实例的服务帐号标识符,然后 依次选择 Cloud Storage > Storage Admin 角色。

  7. 点击保存

下一步:

设置从其他项目访问 Cloud SQL

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

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

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
    
  2. 前往 IAM 和管理页面。

    IAM 和管理

  3. IAM 和管理 页面上切换到 Cloud SQL 项目,然后点击授予访问权限

  4. 对于新的主账号,输入服务帐号的标识符,然后 依次选择 Cloud SQL > Cloud SQL Viewer 角色。

  5. 点击保存

接下来,请参阅从 Cloud SQL 导入数据

从 Cloud SQL 导入数据

控制台

如需使用控制台从 Cloud SQL 中注入数据,请按照以下步骤操作:

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

    Gemini Enterprise

  2. 前往数据存储区页面。

  3. 点击创建数据存储区

  4. 选择数据源页面上,选择 Cloud SQL

  5. 指定您打算导入的数据的项目 ID、实例 ID、数据库 ID 和表 ID。

  6. 点击浏览 ,选择要将数据导出到的中间 Cloud Storage 位置,然后点击选择 。或者,直接在 gs:// 字段中输入该位置。

  7. 选择是否开启无服务器导出。无服务器导出操作会产生额外费用。如需了解无服务器导出,请参阅 最大限度减少导出对 性能的影响(请参阅 Cloud SQL 文档)。

  8. 点击继续

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

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

  11. 点击创建

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

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

REST

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

  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/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 控制台中。
  2. 从 Cloud SQL 导入数据。

      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 '{
        "cloudSqlSource": {
          "projectId": "SQL_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "databaseId": "DATABASE_ID",
          "tableId": "TABLE_ID",
          "gcsStagingDir": "STAGING_DIRECTORY"
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    替换以下内容:

    • PROJECT_ID:您的 Gemini Enterprise 项目的 ID。
    • DATA_STORE_ID:数据存储区的 ID。该 ID 只能包含小写字母、数字、下划线和连字符。
    • SQL_PROJECT_ID:Cloud SQL 项目的 ID。
    • INSTANCE_ID:Cloud SQL 实例的 ID。
    • DATABASE_ID:Cloud SQL 数据库的 ID。
    • TABLE_ID:Cloud SQL 表的 ID。
    • STAGING_DIRECTORY:可选。Cloud Storage 目录,例如 gs://<your-gcs-bucket>/directory/import_errors
    • RECONCILIATION_MODE:可选。值为 FULLINCREMENTAL。默认值为 INCREMENTAL。 指定 INCREMENTAL 会将 Cloud SQL 中的数据增量刷新到数据存储区。这会执行一个 upsert(插入/更新)操作,即添加新文档并用具有相同 ID 的更新文档替换现有文档。指定 FULL 会使数据存储区中的文档完全重基。换句话说,新文档和更新后的文档会添加到您的数据存储区,而 Cloud SQL 中不存在的文档将从您的数据存储区中移除。如果您想要自动删除不再需要的文档,FULL 模式会很有帮助。

后续步骤

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

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