跳到主要内容

从 OpenSearch 迁移至 Zilliz Cloud

OpenSearch 是一个分布式的搜索与分析引擎,支持多种应用场景,从在网站上实现搜索框,到用于分析安全数据进行威胁检测。本文将介绍如何将 OpenSearch 数据迁移到 Zilliz Cloud。

迁移过程分为以下步骤:

  1. 连接数据源:输入您的 OpenSearch 集群 Endpoint 和用户名密码来建立连接。

  2. 选择迁移源和目标集群

    • 选择一个或多个待迁移的源表。

    • 选择一个现有的 Zilliz Cloud 集群作为目标集群。

  3. 配置 Schema:确保 OpenSearch 与 Zilliz Cloud 之间的字段类型正确映射。有关具体的数据映射规则,请参阅映射规则

VvN4wnpcMhpZj9b28r7ctMmZnpg

映射规则

下表总结了 OpenSearch 字段类型如何映射到 Zilliz Cloud 字段类型,并对各类型做了详细说明。

OpenSearch 字段类型

Zilliz Cloud 字段类型

描述

主键(_id

主键

OpenSearch 的 ID 字段将自动映射为 Zilliz Cloud 的主键字段。

k-NN vector

FLOAT_VECTOR

OpenSearch 中的 float 向量类型映射到 Zilliz Cloud 上的 FLOAT_VECTOR。OpenSearch 的 Byte/Binary 向量不支持迁移。 向量维度保持不变。

Alias

Not supported

暂不支持映射该字段。

Binary

VARCHAR

Binary 数据在 Zilliz Cloud 中以字符串形式存储。

Numeric

byte

INT8

直接映射。

double

DOUBLE

直接映射。

float

FLOAT

直接映射。

half_float

FLOAT

映射为 FLOAT 数据类型。

integer

INT32

直接映射。

long

INT64

直接映射。

short

INT16

直接映射。

unsigned_long

Not supported

暂不支持映射该字段。

scaled_float

Not supported

暂不支持映射该字段。

Boolean

BOOL

存储 truefalse

Date

VARCHAR

存储为字符串。

IP address

VARCHAR

存储为字符串。

Range

VARCHAR

存储为字符串。

Object

JSON

序列化为 JSON 格式。

String

keyword

VARCHAR

存储为字符串。

text

VARCHAR

映射到 Milvus 2.5 或更早版本中的 VARCHAR。

match_only_text

VARCHAR

存储为字符串。

token_count

VARCHAR

存储为字符串。

wildcard

Not supported

暂不支持映射该字段。

Autocomplete

VARCHAR

存储为字符串。

Geographic

VARCHAR

存储为字符串。

Rank

VARCHAR

存储为字符串。

Percolator

VARCHAR

存储为字符串。

Derived

Not supported

暂不支持映射该字段。

Star-tree

Not supported

暂不支持映射该字段。

开始前

  • 源 OpenSearch 集群可以从公网访问。

  • 如果您的网络环境配置了白名单列表,请确保将 Zilliz Cloud 的 IP 地址添加到其中。要了解更多信息,请参考 Zilliz Cloud IP

  • 已在 Zilliz Cloud 中获得组织管理员或项目管理员权限。如果您没有相关权限,请联系您的 Zilliz Cloud 管理员。

从 OpenSearch 迁移至 Zilliz Cloud

  1. 登录 Zilliz Cloud 控制台

  2. 进入目标项目,选择数据迁移 > OpenSearch

    N2JkbQ9ZFoKyEaxocz6cdLgQnGe

  3. 连接至数据源步骤中,提供 OpenSearch 集群连接信息,包括 Cluster Endpoint(AWS OpenSearch: https://<ID>.<region>.es.amazonaws.com,OpenSearch 社区版: https://<ip>:<port>)、用户名和密码。然后,单击下一步

    📘说明

    有关如何获取集群的连接信息,请参阅 Communicate with OpenSearch

  4. 选择迁移来源和目标步骤中,配置源 OpenSearch 集群和目标 Zilliz Cloud 集群的设置。然后,单击下一步

    📘说明

    您选择从 OpenSearch 迁移的每个源索引必须包含一个向量字段。

  5. 配置 Schema 步骤中,设置 Zilliz Cloud 与 OpenSearch 之间的字段映射:

    VSzSbvpC0o7wxnxBMzPczrX9nH0

    1. 确认字段映射:

      • Zilliz Cloud 会自动检测并显示您的 OpenSearch 字段及其对应的目标字段。有关字段映射的详细信息,请参阅映射规则

      • 请确认各 OpenSearch 字段是否与相应的目标字段正确匹配。您可以根据需要重命名字段,但字段的数据类型不支持修改。

    2. 处理标量字段:

      对于标量字段,请配置以下属性:

      • 支持 Null 值: 决定该字段是否可以包含 null 值,此功能默认启用。详情请参阅 Nullable 和默认值

      • 默认值: 为该字段指定一个默认值。详情请参阅 Nullable 和默认值

      • Partition key: 可选择将 INT64 或 VARCHAR 字段指定为 Partition Key。注意:每个 Collection 仅支持一个 Partition Key,并且所选字段不能包含 null 值。详情请参阅使用 Partition Key

    3. 启动 Dynamic Field:

      • 默认情况下,Dynamic Field 处于启用状态,这允许您插入 Collection Schema 中未定义的任意标量字段。

      • 如果禁用该功能,则需要在插入数据前显式定义每个 Entity 包含的所有字段。更多信息请参阅 Dynamic Field

    4. (可选)调整 Shard:

      • 点击高级设置以配置目标 Collection 的 Shard 数量。

      • 对于大约 1 亿行数据来说,通常只需一个 Shard 即可。

      • 如果您的数据集超过 10 亿行,请联系我们以获取最佳 Shard 配置方案。

  6. 点击迁移

查看迁移进度

生成迁移任务后,您可前往任务中心查看任务状态和进度。如果迁移任务的状态从进行中变更为成功,则代表迁移成功。

ONSXbpLgJoWuBpxEycQcEjk7nfe

迁移后

迁移任务完成后,请注意以下事项:

  • 索引创建:在从外部数据源进行迁移时,系统不会自动为向量字段创建索引。您需要手动为每个向量字段创建索引。详细信息请参阅创建 Vector Index

  • 手动 Load Collection:创建必要的向量索引后,请手动 Load Collection,使其可用于搜索和查询操作。详细信息请参阅 Load 和 Release

📘说明

完成索引创建和 Load 后,请检查目标集群中的 Collection 数量及 Entity 数是否与数据源保持一致。如果发现不符,请删除 Collection 并重新进行迁移任务。

取消迁移任务

如果迁移过程遇到任何问题,您可以采取以下步骤进行故障排除并恢复迁移:

  1. 任务中心页面,取消失败的迁移任务。

  2. 操作列点击查看详情以访问日志信息。