-
Faiss to Milvus: Import uncompressed Faiss files into Milvus -
HDF5 to Milvus: Import HDF5 formatted files into Milvus -
Milvus to Milvus: Support data migration between Milvus instances -
Milvus to HDF5: Batch backup Milvus data to local files in HDF5 format

Features Introduction
๐Usage Example
$ wget https://raw.githubusercontent.com/milvus-io/milvus-tools/main/yamls/F2M.yaml
F2M: milvus_version: 0.10.5 data_path: '/home/data/faiss.index' dest_host: '127.0.0.1' dest_port: 19530 mode: 'append' dest_collection_name: 'test' dest_partition_name: '' collection_parameter: dimension: 256 index_file_size: 1024 metric_type: 'L2'
$ milvusdm --yaml F2M.yaml
โถ๏ธImplementation
ids, vectors = faiss_data.read_faiss_data()insert_milvus.insert_data(vectors, self.dest_collection_name, self.collection_parameter, self.mode, ids, self.dest_partition_name)
$ wget https://raw.githubusercontent.com/milvus-io/milvus-tools/main/yamls/H2M.yaml
data_path parameter can specify multiple file paths, and data_dir parameter specifies the directory of the files. Only one of the two parameters can be configured.
H2M: milvus-version: 0.10.5 data_path: - /Users/zilliz/float_1.h5 - /Users/zilliz/float_2.h5 data_dir: dest_host: '127.0.0.1' dest_port: 19530 mode: 'overwrite' # 'skip/append/overwrite' dest_collection_name: 'test_float' dest_partition_name: 'partition_1' collection_parameter: dimension: 128 index_file_size: 1024 metric_type: 'L2'
$ milvusdm --yaml H2M.yaml
โถ๏ธImplementation
embeddings, ids = self.file.read_hdf5_data()ids = insert_milvus.insert_data(embeddings, self.c_name, self.c_param, self.mode, ids,self.p_name)
$ wget https://raw.githubusercontent.com/milvus-io/milvus-tools/main/yamls/M2M.yaml
If the source Milvus does not use MySQL for metadata management, the mysql_parameter parameter should be empty.
M2M: milvus_version: 0.10.5 source_milvus_path: '/home/user/milvus' mysql_parameter: host: '127.0.0.1' user: 'root' port: 3306 password: '123456' database: 'milvus' source_collection: test: - 'partition_1' - 'partition_2' dest_host: '127.0.0.1' dest_port: 19530 mode: 'skip' # 'skip/append/overwrite'
$ milvusdm --yaml M2M.yaml
โถ๏ธImplementation
collection_parameter, _ = milvus_meta.get_collection_info(collection_name)r_vectors, r_ids, r_rows = milvusdb.read_milvus_file(self.milvus_meta, collection_name, partition_tag)milvus_insert.insert_data(r_vectors, collection_name, collection_parameter, self.mode, r_ids, partition_tag)
$ wget https://raw.githubusercontent.com/milvus-io/milvus-tools/main/yamls/M2H.yaml
M2H: milvus_version: 0.10.5 source_milvus_path: '/home/user/milvus' mysql_parameter: host: '127.0.0.1' user: 'root' port: 3306 password: '123456' database: 'milvus' source_collection: # specify the 'partition_1' and 'partition_2' partitions of the 'test' collection. test: - 'partition_1' - 'partition_2' data_dir: '/home/user/data'
$ milvusdm --yaml M2H.yaml
โถ๏ธImplementation
collection_parameter, version = milvus_meta.get_collection_info(collection_name)r_vectors, r_ids, r_rows = milvusdb.read_milvus_file(self.milvus_meta, collection_name, partition_tag)data_save.save_yaml(collection_name, partition_tag, collection_parameter, version, save_hdf5_name)
Milvusdm Code Structure


-
pymilvusdm -
Core -
milvus_client.py, operations related to the Milvus client
-
read_data.py, read local HDF5 formatted data files (if there is a need to read other file formats, code can be added here)
-
read_faiss_data.py, read data files from Faiss
-
read_milvus_data.py, read data files from Milvus
-
read_milvus_meta.py, read Milvus meta information
-
data_to_milvus.py, based on yaml file configuration parameters, create collections or partitions, and import vectors and ids into Milvus
-
save_data.py, save the read data as HDF5 formatted files
-
write_logs.py, write debug/info/error logs during operations
-
faiss_to_milvus.py, implements importing Faiss file data into Milvus -
hdf5_to_milvus.py, implements importing HDF5 formatted file data into Milvus -
milvus_to_milvus.py, implements copying data from one Milvus to another -
milvus_to_hdf5.py, implements exporting data from Milvus to HDF5 formatted files -
main.py, executes related tasks based on the yaml file -
setting.py, configuration parameters related to executing the code -
setup.py, packages pymilvusdm and uploads it to PyPI
-
Support importing binary data files from Faiss into Milvus -
Support specifying black and white lists during Milvus to Milvus -
Support merging data from multiple collections or partitions into one collection during Milvus to Milvus -
Support Milvus data backup and recovery
Welcome to Join the Milvus Community
