Tous les produits
Search
Centre de documentation

DataWorks:Milvus

Dernière mise à jour :Aug 10, 2026

DataWorks se connecte à Milvus en tant que source de données, ce qui vous permet de lire et d'écrire dans une base de données vectorielle Milvus via des tâches de synchronisation par lots.

Versions de Milvus prises en charge

  • Milvus 2.4.x

  • Milvus 2.5.x

Types de champs pris en charge

Le tableau suivant présente les correspondances entre les types de données natifs de Milvus et les classifications de types internes de DataWorks utilisées par Milvus Writer.

Type de données Milvus Classification du type DataWorks
Int8 LONG
Int16 LONG
Int32 LONG
Int64 LONG
Float DOUBLE
Double DOUBLE
FloatVector DOUBLE
String STRING
VarChar STRING
SparseFloatVector STRING
JSON STRING
Array STRING
Bool BOOLEAN
BFloat16Vector BYTES
Float16Vector BYTES
BinaryVector BYTES

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance Milvus en cours d'exécution et son URL d'endpoint, par exemple http://xxxx.milvus.aliyuncs.com:19530

  • Les identifiants d'authentification Milvus (nom d'utilisateur et mot de passe)

  • Un espace de travail DataWorks disposant des autorisations nécessaires pour gérer les sources de données et créer des tâches de synchronisation

Ajouter une source de données

Ajoutez une source de données Milvus à DataWorks avant de développer une tâche de synchronisation. Suivez les instructions disponibles dans la rubrique Gestion des sources de données. Les descriptions des paramètres sont directement accessibles dans la console DataWorks lors de l'ajout de la source de données.

Développer une tâche de synchronisation

DataWorks prend en charge les tâches de synchronisation hors ligne qui lisent ou écrivent dans des collections Milvus. Le flux de données est le suivant : le lecteur extrait les enregistrements de la source → mappage des types de champs → le writer regroupe les enregistrements par lots dans la collection Milvus de destination.

Configurer une tâche de synchronisation hors ligne pour une table unique

Utilisez l'une des approches suivantes :

Annexe : Démonstration de script et paramètres

Les scripts et tableaux de paramètres suivants s'appliquent aux tâches de synchronisation par lots configurées via l'éditeur de code. Pour le format général du script, consultez la rubrique Configurer une tâche dans l'éditeur de code.

Reader

Démonstration de script

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "milvusreader",
          "parameter": {
            "endpoint": "http://xxxx.milvus.aliyuncs.com:19530",
            "database": "default",
            "username": "root",
            "password": "xxxxxxx",
            "collection": "testColection",
            "column": [
              {
                "name": "id",
                "type": "Int64",
                "primaryKey": "true"
              },
              {
                "name": "int8col",
                "type": "Int8"
              },
              {
                "name": "int16col",
                "type": "Int16"
              }
            ]
          }
        },
        "writer": {
          "name": "Writer",
          "category": "writer",
          "stepType": "stream",
          "parameter": {}
        }
      }
    ],
    "setting": {
      "errorLimit": {
        "record": "0"
      },
      "speed": {
        "throttle": false,
        "concurrent": 1,
        "channel": 1
      }
    }
  }
}

Paramètres du reader

Paramètre Description Obligatoire Valeur par défaut
collection La collection à partir de laquelle lire les données. Oui Aucune
column Les champs à lire. Configurez-les sous forme de tableau d'objets de champ, chacun contenant name et type. Pour le champ de clé primaire, définissez également primaryKey sur "true". Pour lire les champs dynamiques, reportez-vous aux options de champ dynamique ci-dessous. Oui Aucune
filter Une condition de filtre équivalente à une clause WHERE. Pour la syntaxe, consultez la documentation sur les expressions booléennes de Milvus. Non Aucune
batchSize Le nombre d'enregistrements à lire par lot. Non 1024

Options de champ dynamique pour column

Pour synchroniser tous les champs dynamiques en tant qu'un seul champ JSON :

"column": [
  {
    "name": "dynamicName",
    "type": "json",
    "dynamicFileType": "allDynamicField"
  }
]

Pour synchroniser un seul champ dynamique, où {singleDynamicName} représente le nom du champ dans la collection :

"column": [
  {
    "name": "{singleDynamicName}",
    "type": "int",
    "dynamicFileType": "singleDynamicField"
  }
]

Writer

Démonstration de script

{
  "transform": false,
  "type": "job",
  "version": "2.0",
  "steps": [
    {
      "name": "Reader",
      "category": "reader",
      "stepType": "stream",
      "parameter": {}
    },
    {
      "name": "Writer",
      "category": "writer",
      "stepType": "milvus",
      "parameter": {
        "datasource": "zm_test",
        "collection": "test",
        "schemaCreateMode": "createIfNotExist",
        "enableDynamicSchema": true,
        "envType": 1,
        "column": [
          {
            "name": "floatv1",
            "type": "FloatVector",
            "dimension": "3"
          },
          {
            "name": "incol",
            "type": "Int16"
          }
        ],
        "writeMode": "insert",
        "batchSize": 1024
      }
    }
  ],
  "setting": {
    "errorLimit": {
      "record": "0"
    },
    "speed": {
      "concurrent": 2,
      "throttle": false
    }
  }
}

Paramètres du writer

Paramètre Description Obligatoire Valeur par défaut
datasource Le nom de la source de données tel que configuré dans DataWorks. Oui Aucune
collection La collection de destination dans Milvus. Oui Aucune
schemaCreateMode La manière dont DataWorks gère la collection avant la synchronisation. Consultez les Modes de création de collection. Oui createIfNotExist
column Les champs de destination. Configurez-les sous forme de tableau d'objets de champ. Chaque champ nécessite name et type. Les champs vectoriels nécessitent également dimension, par exemple "dimension": "3". Oui Aucune
writeMode Le comportement d'écriture. Consultez les Modes d'écriture. Non upsert
partition La partition de destination. Laissez vide pour écrire dans la partition _default. Non _default
batchSize Le nombre d'enregistrements à écrire par lot. Non 1024
enableDynamicSchema Active le schéma dynamique lorsque DataWorks crée la collection. Non true

Modes d'écriture

Mode Comportement
upsert Pour les collections sans clés primaires auto-incrémentées : met à jour une entité en fonction de sa clé primaire. Pour les collections avec clés primaires auto-incrémentées : remplace la clé primaire par une valeur générée automatiquement et insère les données.
insert Insère les données sans vérifier l'existence des clés primaires. À utiliser pour les collections avec clés primaires auto-incrémentées, où Milvus génère automatiquement les clés primaires. Si vous utilisez insert sur une collection sans clés primaires auto-incrémentées, des doublons peuvent apparaître.

Modes de création de collection

Le paramètre schemaCreateMode contrôle l'action entreprise par DataWorks lorsque la collection de destination n'existe pas.

Mode Comportement
createIfNotExist Crée la collection en fonction des paramètres column et autres configurés, puis démarre la synchronisation. Si la collection existe déjà, elle est utilisée telle quelle.
Ignore Signale une erreur si la collection n'existe pas.
recreate Supprime la collection existante et en crée une nouvelle avant chaque exécution de synchronisation.