Milvus数据源

更新时间:2025-03-28 02:01:09

Milvus数据源为您提供写入Milvus向量数据库的通道,本文为您介绍DataWorksMilvus数据同步的能力支持情况。

支持的Milvus版本

  • Milvus: 2.4.x

  • Milvus:2.5.x

支持的字段类型

Milvus Writer针对Milvus的类型转换列表,如下所示。

类型分类

Milvus数据类型

类型分类

Milvus数据类型

LONG

Int8、Int16、Int32、Int64

DOUBLE

Float、Double,FloatVector

STRING

String、VarChar、SparseFloatVector、JSON、Array

BOOLEAN

Bool

BYTES

BFloat16Vector、Float16Vector、BinaryVector

创建数据源

在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建并管理数据源详细的配置参数解释可在配置界面查看对应参数的文案提示

数据同步任务开发

数据同步任务的配置入口和通用配置流程可参见下文的配置指导。

单表离线同步任务配置指导

附录:脚本Demo与参数说明

离线任务脚本配置方式

如果您配置离线任务时使用脚本模式的方式进行配置,您需要按照统一的脚本格式要求,在任务脚本中编写相应的参数,详情请参见通过脚本模式配置离线同步任务,以下为您介绍脚本模式下数据源的参数配置详情。

Writer脚本Demo

{
    "transform": false,
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType": "milvus",
            "parameter": {
                "schemaCreateMode": "createIfNotExist",     //集合创建模式
                "enableDynamicSchema": true,            //集合创建时是否开启动态字段
                "envType": 1,
                "datasource": "zm_test",
                "column": [  //同步字段
                    {
                        "name": "floatv1",
                        "type": "FloatVector",
                        "dimension": "3"
                    },
                    {
                        "name": "incol",
                        "type": "Int16"
                    }
                ],
                "writeMode": "insert",  //写入方式
                "collection": "test",  //写入集合
                "batchSize": 1024      // 单次写入批量大小
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "concurrent": 2,
            "throttle": false
        }
    }
}

Writer脚本参数

脚本参数名

描述

是否必选

默认值

脚本参数名

描述

是否必选

默认值

datasource

数据源名称,脚本模式支持添加数据源,该配置项输入的内容必须和添加的数据源名称保持一致。

collection

写入Milvus的集合名。

partition

写入Milvus集合的分区,不填写入_default默认分区。

_default

column

Milvus 同步写入Field字段,配置为数组形式,单字段信息配置为JSON格式,内容包含:

  • name: Field字段名

  • type: Field字段类型

  • 字段属性:如向量字段的维度"dimension":3

writeMode

Milvus数据库支持upsertinsert两种写入方式:

  • upsert: 在非autoid表下根据主键更新 Collection 中的某个 Entity;autoidMilvus 会将 Entity 中的主键替换为自动生成的主键,并插入数据。

  • insert: 多用于autoid表插入数据milvus自动生成主键, 非autoid表下使用insert会导致数据重复。

upsert

batchSize

单次写入Milvus的批量大小。

1024

schemaCreateMode

在同步前进行集合检查,根据配置的模式进行集合操作,支持如下三种模式:

  • createIfNotExist:检查集合不存时,根据配置的column等信息,创建对应集合进行同步。

  • Ignore: 检查集合不存时,报错集合不存在

  • recreate: 每一次同步,先删除原集合,然后根据column等信息重新创建集合进行同步。

createIfNotExist

enableDynamicSchema

创建集合是否启用动态schema。

true

  • 本页导读 (1)
  • 支持的Milvus版本
  • 支持的字段类型
  • 创建数据源
  • 数据同步任务开发
  • 单表离线同步任务配置指导
  • 附录:脚本Demo与参数说明
  • 离线任务脚本配置方式
  • Writer脚本Demo
  • Writer脚本参数