开源之夏 2025-05-15 19:18 上海
在干中学
同学们,想好这个暑假要怎样度过了吗?想和Zilliz在内一众数据库企业大佬面对面吗?想要提升技术实力,参与实际软件项目开发?
欢迎加入开源之夏 Milvus 社区的挑战吧!这个暑假,与顶尖技术专家并肩作战,深度参与开源数据库开发,向着技术大牛的行列迈进!
开源之夏——开启技术成长的奇妙旅程
开源之夏是中国科学院软件研究所于 2020 年发起的“开源软件供应链点亮计划”系列暑期活动,旨在鼓励高校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。
活动联合各大开源社区,针对重要开源软件的开发与维护提供项目开发任务,并向全球高校学生开放报名。学生可自主选择感兴趣的项目进行申请,中选后在项目开发者(社区导师)的指导下进行开发。根据项目的难易程度和完成情况,结项者将获取开源之夏劳务报酬和结项证书。
今年,已经是开源之夏的第六届啦,它已帮助无数同学实现了技术飞跃,你还在等什么呢?
Milvus社区——三大超酷项目等你来战
项目一:milvus-storage自适应encoder & compressor
项目难度:基础/Basic
支持语言:中文&English
项目热度:
导师:黄少廷
导师联系邮箱:shaoting.huang@zilliz.com
技术领域:Database、AI、Vector Database
编程语言:C++
开源协议:Apache-2.0 license
项目简述:
背景:Milvus Storage 是一个基于 Apache Arrow Parquet 的高性能存储引擎,它通过将数据列分组打包的方式来优化读写性能。这个项目支持分别控制读写内存、减少存储文件数量,并支持部分数据读取。它兼容多种主流云存储服务(如 AWS S3、Google Cloud Storage、阿里云 OSS、腾讯云 COS)Milvus Storage 是一个基于 Apache Arrow Parquet 的高性能存储引擎,它通过将数据列分组打包的方式来优化读写性能。这个项目支持分别控制读写内存、减少存储文件数量,并支持部分数据读取。并兼容多种主流云存储服务(如 AWS S3、Google Cloud Storage、阿里云 OSS、腾讯云 COS)。
需求为根据数据统计或写入schema对于每个field选择合适的encoding/compression算法,并在读取时根据对应的算法进行decode/decompress,以优化存储成本与性能。
项目产出要求:1. 基于数据特征(如分布、范围、重复度等)自动选择最优的编码和压缩算法,为每个字段配置最适合的存储策略。 2. 不同压缩策略结果性能对比 3. 提交代码并合入主分支
项目技术要求:熟悉Go,C++
项目成果仓库:https://github.com/milvus-io/milvus
期望完成时间 & 支持架构:期望完成时间:100小时、支持架构:x86_64。
项目二:Milvus支持 timestamptz 数据类型
项目难度:进阶/Advanced
支持语言:中文&English
项目热度:
导师:曹镇山
导师联系邮箱:zhenshan.cao@zilliz.com
技术领域:AI、Database、VectorDatabase
编程语言:C++,Go,Python
开源协议:Apache-2.0 license
项目简述:
背景:timestamptz(全称 timestamp with time zone)是 PostgreSQL 中用于存储日期和时间的数据类型,同时包含时区信息。其底层以 UTC 格式存储时间值,但插入或查询时会根据客户端或会话的时区设置自动转换为本地时间。例如,输入 2023-10-01 12:00:00+08(东八区时间)会转换为 UTC 时间存储,查询时再按客户端时区(如 UTC-5)显示为对应本地时间。
适用于全球化系统(如电商、协作平台),确保用户在不同时区看到统一且正确的时间。
时间计算方面,自动处理夏令时和时区偏移,适合航班调度、跨国会议等需精准时间对齐的场景。
日志记录方面,在分布式系统中统一存储 UTC 时间,便于跨区域日志分析。
项目要求:milvus可以存储 timestamptz数据。进行增删改查。
项目产出要求
1)用户可以通过pymilvus客户端在建表时指定数据类型为Timestamptz;
2)用户可以使用pymilvus 插入和取回 timestamptz 类型的数据,可以在请求中指定时区,输入格式形如 '2025-05-01 23:259:59+08'
3)用户可以通过alterdatabase, altercollection等指定database和collection级别的时区
4)用户可以在取回数据时,指定extract(field ,timestamp field) 函数,只取回Year, Month, Day, Hour, DOW (day of week)等;
5)用户基于timstamptz列进行标量过滤(比较算子,相等,不等,大于,小于,大于等于,小于等于),在比较年算子中,可以同时和interval 进行运算, 比如 timestamptz + inerval < timestamptz const value;其中 Interval 的输入格式为(P1Y2M3DT4H5M6S 格式);
6) 针对 timestamptz列构建索引加速相应查询
7)提交代码并合并进 milvus主分支
项目技术要求
1. 熟悉milvus数据库
项目成果仓库 https://github.com/milvus-io/milvus
期望完成时间 & 支持架构:期望完成时间:100小时;支持架构:x86_64
项目三:file stats 透传 skip index,更丰富的 skip index
项目难度:进阶/Advanced
支持语言:中文&English
项目热度:
导师:郑卜千
导师联系邮箱:buqian.zheng@zilliz.com
技术领域:AI 、VectorDatabase
编程语言:C++
开源协议:Apache-2.0 license
项目简述:
背景:Milvus当前支持简单的标量数据Skip Index,保存了一些数据的统计信息,允许在过滤查找的时候快速跳过大块数据而无需遍历所有行。其实现有两个主要的问题:Skip Index总是在数据加载的时候动态构建,会消耗一定的查询节点的计算资源;当前Skip Index仅包含minmax信息。
需求:
当Milvus中负责构建索引的IndexNode为segment构建索引时,提前构建Segment的SkipIndex并持久化。当查询节点加载数据时,直接加载预先构建好的Skip Index,节省查询节点的计算资源。
为Skip Index增加更多的统计信息,以提供更丰富的查询时跳过能力,优化更多类型查询的性能。如:set,ngrambf,tokenbf等。
项目产出要求
1. 基于数据特征(如基数、重复度、范围)等或基于用户配置(从SDK端动态配置或配置文件处静态配置),选择合适的Skip Index类型,并进行索引构建和持久化
2. 不同查询场景下不同类型的SkipIndex类型性能对比
3. 提交代码并合并到主分支
项目技术要求1. 熟悉c++;2. 熟悉数据库
项目成果仓库
https://github.com/milvus-io/milvus
期望完成时间 & 支持架构:期望完成时间:100小时;支持架构:x86_64
超级福利——奖金等你拿
成功完成项目并结项的同学们,将根据项目难度和完成情况,获得 8000 元或 12000 元的奖金!
项目申报流程——轻松几步,开启挑战之旅
从4月30日起,同学们就可以在系统注册账号并填写个人资料提交审核啦。资料审核通过后,从5月9日起,即可在系统提交项目申请书。6月9日18:00(UTC+8)是报名活动和提交申请书的截止时间。在这期间,你可以尽情挑选心仪的项目,与导师积极沟通,精心准备项目申请材料并提交。每位同学可以申请一个项目,所以一定要慎重选择,全力以赴哦!
有问题?小助手随时为你答疑解惑
关于milvus、zilliz项目的更多问题,你可以添加小助手进一步沟通。小助手会耐心为你解答每一个疑问,确保你在申报和参与项目的过程中毫无后顾之忧。