当前位置: 首页 > article >正文

Milvus 数据批量导出实战:Python 代码解析

1 引言

由于 Milvus 在单次查询中所能返回的数据量存在固有约束,当处理数据量庞大的 Collection 时,需考虑采用多次查询的策略。本文详细阐述了如何运用多次查询的方式,将 Milvus 中的数据进行分批导出,以有效应对数据量过大带来的挑战 。

2 代码整体概述

我们的目标是从 Milvus 中导出指定集合的数据,并将其保存为 JSON 文件。代码主要分为以下几个部分:

  1. 连接到 Milvus 服务。
  2. 定义数据导出函数,包括数据查询和保存逻辑。
  3. 在主程序中调用导出函数,实现批量导出。
  4. 释放资源并断开连接。

3 关键代码解析

3.1 连接到 Milvus 服务

connections.connect(
    alias="default",
    host='127.0.0.1',  
    port='19530',      
    user='root',
    password='Milvus'
)

通过 connections.connect 方法连接到本地的 Milvus 服务,指定了主机地址、端口号、用户名和密码。

3.2 数据导出函数 export_milvus_colleciton

def export_milvus_colleciton(begin_pos, out_dir):
    expr = f'id>{
     str(begin_pos)}'
    output_fields = [field.name for field in collection.schema.fields]  

    batch_size = 1000
    offset = 0
    all_data = []
    max_pos = 0
    while True:
        results = collection.query(
            expr=expr,
            output_fields=output_fields,
            limit=batch_size,
            offset=offset
        )
        if not results:
            break
        batch_data = []
        for result in results:
            item = {
   }
            for field_name in output_fields:
                item[field_name] = result[field_name

http://www.kler.cn/a/572722.html

相关文章:

  • 【深度剖析】古德-图灵估计:从密码破译到NLP的统计革命
  • react精简面试题
  • 金融术语:Loan origination理解
  • RockyLinux9.5 虚拟机安装、配置及XShell连接
  • GaussianCity:实时生成城市级数字孪生基底的技术突破
  • 报错Non-terminating decimal expansion; no exact representable decimal result
  • 【YOLO V5】目标检测 WSL2 AutoDL VScode SSH
  • MySQL环境搭建
  • 充分必要条件
  • Spring Boot 3 整合 MinIO 实现分布式文件存储
  • 大模型基石——Transformer介绍
  • 蓝桥杯4T平台(频率测量显示)
  • FPGA有关HDMI的一些知识,程序源自bilibi正点原子
  • Ubuntu20.04双系统安装及软件安装(一):系统安装
  • 数字电子技术基础(二十四)——TTL门电路的高、低电平的输出特性曲线
  • 大模型简介
  • 【Linux】磁盘结构 | 文件系统 | inode(二)
  • FastGPT 源码:controller.ts 主要定义
  • Ollama存在安全风险的情况通报及解决方案
  • vue组合式API中prop