【Milvus】Milvus批量导入所有数据
·
目前attu不支持一次性导出所有数据。可以采用脚本daochujson,然后再通过attu导入。
import json
from pymilvus import connections, utility, Collection
def export_milvus_data(export_dir='./milvus_data', uri="", user="", password="", db_name="", collection_name="", output_fields=[]):
try:
connections.connect(uri=uri, user=user, password=password, timeout=10, db_name=db_name)
print(f"Connected to Milvus")
import os
os.makedirs(export_dir, exist_ok=True)
collection = Collection(collection_name)
iterator = collection.query_iterator(
batch_size=5000,
expr="",
output_fields=output_fields,
)
# 计数器用于生成唯一文件名
file_count = 0
total = 0
while True:
result = iterator.next()
if not result:
iterator.close()
break
# 将当前批次的结果保存到JSON文件
filename = f"{export_dir}/{db_name}_{collection_name}_{file_count}.json"
with open(filename, 'w', encoding='utf-8') as f:
json.dump(result, f, ensure_ascii=False, indent=2)
total += len(result)
print(f"Saved batch {file_count} to {filename}, records count: {len(result)} {total}")
file_count += 1
except Exception as e:
print(f"Fatal error: {str(e)}")
if __name__ == "__main__":
export_milvus_data(
export_dir="./milvus_backup",
uri="http://127.0.0.1:19530",
user="",
password="",
db_name="",
collection_name="",
output_fields=[]
)
更多推荐




所有评论(0)