我们先来回答一个问题:当企业准备构建RAG(检索增强生成)应用,手里攒了一堆非结构化数据,却发现它们散落在S3、Kafka、本地文件系统、甚至不同向量数据库里——这堆"素材"究竟该怎么搬来搬去,才能高效地投喂给AI模型?
答案,或许就藏在VTS(Vector Transport Service)这个工具里。
引言
VTS,全称向量传输服务,由Zilliz开发并开源,它的身世比较特别——基于Apache SeaTunnel打造。SeaTunnel是分布式数据集成平台的老将,以丰富的连接器系统和多引擎支持闻名。VTS在这个基础上,进一步把能力圈扩展到了向量数据库迁移和非结构化数据处理,算得上是"站在巨人肩膀上"的解决方案。
什么是向量数据库
在深入VTS之前,先快速过一下向量数据库。它是一类专门用于存储和检索向量数据的数据库系统,核心能力包括:
- 高效处理高维向量数据,支持相似性搜索
- 支持KNN(K-近邻)搜索
- 计算向量间的距离(欧氏距离、余弦相似度等)
- 快速检索最相似的向量
- 主要用在AI和机器学习应用场景,比如图像检索系统、推荐系统、自然语言处理、人脸识别、相似商品搜索
开发动力和背景
作为向量数据库领域的领先服务商,Zilliz很清楚一个道理:出色的AI应用,离不开数据本身。但在处理非结构化数据时,通常要面对几个现实难题:
- 数据碎片化。用户数据分散在S3、HDFS、Kafka、数据仓库、数据湖等多个平台,东西南北各放一摊。
- 多样的数据格式。JSON、CSV、Parquet、JPEG……非结构化数据五花八门,格式杂得很。
- 缺乏完整的解决方案。目前还没有一款产品能一站式搞定跨系统高效传输非结构化数据和向量数据的复杂需求。
在这些挑战中,最突出的莫过于——怎么把散落在各处、以各种格式存在的非结构化数据,转化成向量,再导入向量数据库。这个过程比处理传统的SQL关系型数据要复杂得多,很多公司都低估了它的难度。结果就是,不少团队在搭建自定义的非结构化数据流水线时,会面临性能瓶颈、扩展难、维护成本高等问题。这些最终会影响数据质量和准确性,削弱应用的分析能力。更糟的是,很多公司在选择向量数据库时,往往忽视或低估了供应商锁定和数据容灾等因素。
供应商锁定带来的影响
供应商锁定,简单说就是过度依赖一家供应商的专有技术,结果想换别的方案时发现成本高得吓人,甚至根本换不了。在向量数据库领域,这个问题尤其棘手——向量数据的特性和缺乏标准化数据格式,可能让跨系统的数据迁移变成一场噩梦。
供应商锁定的影响不止于此。它还会限制组织面对业务变化时的灵活性,时间一长,运营成本可能越来越高。更不用说,锁定在单一供应商的生态里,会限制技术创新的空间。如果所选方案无法随着业务增长而灵活扩展,性能迟早要出问题。因此,选择向量数据库时,优先考虑开放标准和互通性,是降低风险的关键。在制定数据治理策略时,提前规划好数据的可移植性,定期评估对供应商特定功能的依赖程度,这能帮组织保持系统弹性。
非结构化数据迁移的挑战
就算有了上述预防措施,组织还是得直面向量数据库迁移的独特挑战。说实话,向量数据库之间的数据迁移,比传统关系型数据库之间要复杂好几个量级。这恰恰说明为什么选对向量数据库很重要,也解释了为什么要注意避免供应商锁定。
向量数据库迁移的主要挑战包括:
- 缺乏面向向量数据库的ETL工具。像Airbyte、Seatunnel这样的主流工具,主要还是面向传统关系型数据库,应对向量数据库间的迁移需求,力不从心。
- 向量数据库之间的能力差异。
- 很多向量数据库不支持数据导出
- 部分向量数据库的增量数据处理能力有限
- 不同库之间的数据Schema不匹配
为了应对这些,组织需要构建更具弹性、更灵活的AI应用,充分利用非结构化数据的力量,同时保持适应未来技术的余地。
为向量数据而生的数据迁移工具
针对上述挑战,Zilliz推出了全新迁移服务(Migration Services)并把它开源。这个工具基于Apache SeaTunnel,专为向量数据迁移设计。
迁移服务的工作原理可以看看GitHub仓库,地址:https://github.com/zilliztech/vts。经过测试验证后,这项服务会merge到SeaTunnel官方分支中。
总结一下,推动Zilliz开发这款工具的背后原因有四点:
- 满足日益增长的数据迁移需求。用户的需求不断扩展,要从不同的向量数据库、传统搜索引擎(如Elasticsearch、Solr)、关系型数据库、数据仓库、文档数据库,甚至S3和数据湖迁移数据。
- 支持实时流数据和离线导入。随着向量数据库能力扩展,用户既需要实时流数据的支持,也需要离线批量导入的能力。
- 简化非结构化数据转换流程。不同于传统ETL,转换非结构化数据需要借助AI模型。迁移服务结合了Zilliz Cloud Pipelines,能够把非结构化数据转化为Embedding向量并完成数据标记等任务,降低数据清洗成本和操作难度。
- 确保端到端的数据质量。数据集成和同步过程中容易丢数据或不一致,迁移服务通过强大的监控和告警机制解决了这些问题。
VTS核心能力
基于Apache SeaTunnel
VTS继承了Apache SeaTunnel的高吞吐量和低延迟特性,同时增加了对向量数据和非结构化数据的支持。这意味着它能作为一个强力的工具,用于构建AI应用数据Pipeline,实现向量数据的实时同步,以及非结构化数据的转换与加载。
VTS的核心能力包括:
- 向量数据库迁移
- AI应用数据Pipeline构建
- 向量数据实时同步
- 非结构化数据转换与加载
- 跨平台数据集成
向量数据库迁移
向量数据库迁移是VTS的核心能力之一。它能处理向量数据的迁移,对AI和机器学习应用来说,这至关重要——毕竟这些应用常常要处理大量高维向量数据。
跨平台数据集成
VTS支持跨平台数据集成,可以把数据从一个系统无缝迁移到另一个系统,无论是传统的关系型数据库还是现代的向量数据库,都能搞定。
VTS支持的Connector和Transform
支持的Connector
VTS支持多种Connector,包括但不限于Milvus、Pinecone、Qdrant、Postgres SQL、ElasticSearch、腾讯云向量数据库等,能跟多种数据源和存储系统兼容。
支持的Transform
VTS还支持多种数据转换操作,比如TablePathMapper(更改表名)、FieldMapper(增删列)、Embedding(文本向量化)等,这些操作让数据处理更灵活。
支持的数据类型
VTS支持的数据类型包括Float Vector、Sparse Float Vector、多向量列、动态列,以及数据插入操作如Upsert和Bulk Insert(离线批量),这进一步增强了它在处理复杂迁移任务时的能力。
性能演示
从性能上看,VTS也相当能打。在Pinecone到Milvus的迁移Demo中,同步1亿向量的速率能达到2961/s,大约9个半小时就能完成(4核/8GB内存配置)。详细演示见顶部视频。
非结构化数据支持
此外,VTS还支持非结构化数据处理。目前已支持Shopify数据类型,后续会逐步支持PDF、Google Doc、Slack、图片/文本等更多类型,不断强化在非结构化数据方面的能力。
应用场景
VTS的应用场景相当广泛。以商品推荐为例,可以从Shopify同步产品和库存数据,调用嵌入服务,将数据存入Milvus,然后基于相似度搜索,最终返回最相似的商品。整个过程下来,商品推荐效果能得到显著优化。
未来规划
展望未来,迁移服务会持续进化。通过VTS这个开源工具,解决的不只是当前向量数据管理中的挑战,还在为创新型AI应用开发铺平道路。VTS的未来规划包括支持更多数据源,如Chroma DB、DataStax(Astra DB)、DataLake、Mongo DB、Kafka(实时AI)、对象存储导入等。
据了解,VTS直接插入原始数据和使用原始数据进行搜索的功能,预计会在Milvus 2.5版本中落地。另外,针对GenAI的ETL pipeline方面,VTS还计划支持任务流编排、Embedding service、外部API,以及对开源大数据工作流调度平台Apache DolphinScheduler的支持。
结语
VTS作为一款基于Apache SeaTunnel开发的向量数据迁移工具,既继承了SeaTunnel强大的数据处理能力,又扩展了对向量数据和非结构化数据的支持。在AI和机器学习领域,它正在成为一个越来越不可或缺的数据迁移工具。
