milvus-logo
LFAI
首页
  • Milvus 迁移

从 Milvus 1.x

本指南为从 Milvus 1.x(包括 0.9.x 及以上版本)向 Milvus 2.x 迁移数据提供了一个全面的、逐步的过程。

前提条件

导出源 Milvus 安装的元数据

要为 Milvus 0.9.x 至 1.x 准备迁移数据,请停止源 Milvus 或至少停止在源 Milvus 中执行任何 DML 操作。

  1. 将源 Milvus 安装的元数据导出到meta.json

    • 对于使用 MySQL 作为后端的安装,运行
    ./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
    
    • 对于使用 SQLite 作为后端的安装,运行
    ./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
    
  2. 复制 Milvus 安装的tables 文件夹,然后将meta.jsontables 文件夹移动到一个空文件夹。

    完成此步骤后,空文件夹的结构应如下所示:

    migration_data
    ├── meta.json
    └── tables
    
  3. 将上一步准备好的文件夹上传到 S3 块存储桶,或在下一节中直接使用该本地文件夹。

配置迁移文件

将示例迁移配置文件保存为migration.yaml ,然后根据实际情况修改配置。您可以将配置文件放在任何本地目录中。

dumper:
  worker:
    limit: 2
    workMode: milvus1x
    reader:
      bufferSize: 1024
    writer:
      bufferSize: 1024
loader:
  worker:
    limit: 16
meta:
  mode: local
  localFile: /outputDir/test/meta.json
source:
  mode: local
  local:
    tablesDir: /db/tables/
target:
  mode: remote
  remote:
    outputDir: "migration/test/xx"
    ak: xxxx
    sk: xxxx
    cloud: aws
    region: us-west-2
    bucket: xxxxx
    useIAM: true
    checkBucket: false
  milvus2x:
    endpoint: "{yourMilvus2_xServerAddress}:{port}"
    username: xxxx
    password: xxxx

下表描述了示例配置文件中的参数。有关配置的完整列表,请参阅Milvus 迁移:Milvus1.x 到 Milvus 2.x

  • dumper

    参数参数
    dumper.worker.limit转存线程的并发量。
    dumper.worker.workMode迁移任务的运行模式。从 Milvus 1.x 迁移时设置为milvus1x
    dumper.worker.reader.bufferSize每批从 Milvus 1.x 读取的缓冲区大小。单位:KB:单位:KB。
    dumper.worker.writer.bufferSize每批写入 Milvus 2.x 的缓冲区大小。单位:KB:单位:KB。
  • loader

    参数说明
    loader.worker.limit加载器线程的并发量。
  • meta

    参数说明
    meta.mode指定从何处读取元文件 meta.json。有效值:local,remote,mysql,sqlite
    meta.localFilemeta.json 文件所在的本地目录路径。此配置仅在meta.mode 设置为local 时使用。有关其他元配置,请参阅README_1X
  • source

    参数说明
    source.mode指定读取源文件的位置。有效值:
    -local: 从本地磁盘读取文件。
    -remote: 从远程存储器读取文件。
    source.local.tablesDir源文件所在目录路径。例如:/db/tables/
  • target

    参数说明
    target.mode转储文件的存储位置。有效值:
    -local: 将转储文件存储在本地磁盘上。
    -remote: 将转储文件存储在对象存储上。
    target.remote.outputDir云存储桶中的输出目录路径。
    target.remote.akMilvus 2.x 存储的访问密钥。
    target.remote.skMilvus 2.x 存储的密钥。
    target.remote.cloud云存储服务提供商。示例值:aws,gcp,azure
    target.remote.region云存储区域。如果使用本地 MinIO,它可以是任何值。
    target.remote.bucket用于存储数据的存储桶名称。该值必须与 Milvus 2.x 中的配置相同。更多信息,请参阅系统配置
    target.remote.useIAM是否使用 IAM 角色进行连接。
    target.remote.checkBucket是否检查对象存储中是否存在指定的存储桶。
    target.milvus2x.endpoint目标 Milvus 服务器地址。
    target.milvus2x.usernameMilvus 2.x 服务器的用户名。如果 Milvus 服务器启用了用户身份验证,则需要使用此参数。有关详细信息,请参阅启用身份验证
    target.milvus2x.passwordMilvus 2.x 服务器的密码。如果 Milvus 服务器启用了用户身份验证,则需要使用此参数。有关详细信息,请参阅启用身份验证

启动迁移任务

  1. 使用以下命令启动迁移任务。将{YourConfigFilePath} 替换为配置文件migration.yaml 所在的本地目录。

    ./milvus-migration  dump  --config=/{YourConfigFilePath}/migration.yaml
    

    上述命令将 Milvus 1.x 中的源数据转换为 NumPy 文件,然后使用bulkInsert操作将数据写入目标数据桶。

  2. 生成 NumPy 文件后,使用以下命令将这些文件导入 Milvus 2.x。将{YourConfigFilePath} 替换为配置文件migration.yaml 所在的本地目录。

    ./milvus-migration  load  --config=/{YourConfigFilePath}/migration.yaml
    

验证结果

迁移任务执行后,你可以调用 API 或使用 Attu 查看已迁移实体的数量。有关详细信息,请参阅Attuget_collection_stats()

翻译自DeepLogo

反馈

此页对您是否有帮助?