VTS:基於Apache SeaTunnel的開源向量資料遷移工具

ApacheSeaTunnel發表於2024-11-26

引言

VTS(Vector Transport Service),全稱向量傳輸服務,是一個由Zilliz開發的專注於向量和非結構化資料遷移的開源工具。VTS的核心特點在於其基於Apache SeaTunnel開發,這一事實使其在資料處理和遷移方面具有顯著的優勢。Apache SeaTunnel作為一個分散式資料整合平臺,以其豐富的聯結器系統和多引擎支援而聞名,VTS正是在此基礎上,進一步擴充套件了其在向量資料庫遷移和非結構化資料處理的能力。

VTS:基於Apache SeaTunnel的開源向量資料遷移工具

什麼是向量資料庫

向量資料庫是一種專門用於儲存和檢索向量資料的
資料庫系統:
• 它能夠高效處理高維向量資料,支援相似性搜尋
• 支援KNN(K-近鄰)搜尋
• 計算向量間的距離(歐氏距離、餘弦相似度等)
• 快速檢索最相似的向量
• 主要用於AI和機器學習應用場景
• 影像檢索系統
• 推薦系統
• 自然語言處理
• 人臉識別
• 相似商品搜尋

file

開發動力和背景

作為領先的向量資料庫服務提供商,Zilliz 深知開發出色的 AI 應用離不開資料本身。然而,在有效處理 AI 應用中的非結構化資料時,我們常常會面臨以下挑戰:

  • 資料碎片化:使用者資料分散在多個平臺中,如 S3、HDFS、Kafka、數倉和資料湖。

  • 多樣的資料格式:非結構化資料以各種格式存在,包括 JSON、CSV、Parquet、JPEG 等。

  • 缺乏完整的解決方案:目前沒有一款產品能夠完全滿足跨系統高效傳輸非結構化資料和向量資料的複雜需求。

file

在上述這些挑戰中,最突出的就是,如何將轉化來自各種資料來源和以各種格式存在的非結構化資料,並匯入向量資料庫中。這一過程比處理傳統的 SQL 關係型資料要複雜得多,大部分公司或組織都低估了這一點。

因此,許多公司或組織在搭建自定義的非結構化資料流水線(Pipeline)時,通常會面臨效能、可擴充套件性和維護成本的問題。這些問題可能會影響資料質量和準確性,從而可能削弱應用的資料分析能力。

更糟糕的是,許多公司在選擇向量資料庫時都忽視或者低估了供應商鎖定和資料容災等因素。

供應商鎖定帶來的影響

供應商鎖定是指一個組織過度依賴單一供應商的專有技術。在這種情況下,該組織會難以切換到另一種解決方案,或者切換方案的成本十分高昂。這個問題在向量資料庫領域尤為重要,由於向量資料的特性和缺乏標準化資料格式可能使得跨系統資料遷移變得極具挑戰性。

供應商鎖定的影響遠不止於此。它還限制了組織在面對業務需求變化時的靈活性,甚至可能隨著時間的推移會進一步增加組織運營成本。此外,鎖定單一供應商的生態系統還會限制技術創新。如果所選解決方案無法很好地隨著組織需求的增長而擴充套件,還會影響應用系統的效能。

在選擇向量資料庫時,組織應優先考慮開放標準(open standards)和互通性,從而降低上述風險。在制定清晰的資料治理策略過程中,規劃資料的可移植性至關重要。定期評估對供應商特定功能的依賴程度,可以幫助組織保持系統靈活性。

非結構化資料遷移的挑戰

然而,即使有了上述預防措施,組織也必須準備好面對向量資料庫帶來的獨特挑戰。我們發現,向量資料庫之間的資料遷移比傳統的關係型資料庫之間的資料遷移要複雜得多。這種複雜性凸顯了選擇合適的向量資料庫的重要性,並解釋了為什麼需要注意避免供應商鎖定。向量資料庫遷移的主要挑戰包括:

  • 缺乏面向向量資料庫的 ETL 工具:像 Airbyte 和 Seatunnel 之類的主流工具僅面向傳統的關係型資料庫,無法有效滿足向量資料庫之間的資料遷移需求。

  • 向量資料庫之間能力差異:

    • 許多向量資料庫不支援資料匯出。

    • 部分向量資料庫的增量資料實時處理能力有限。

    • 向量資料庫之間的資料 Schema 不匹配。

為應對這些挑戰,組織需要構建更具彈性、靈活性和與時俱進的 AI 應用,充分利用非結構化資料的力量,並保持適應未來技術的靈活性。

為向量資料而生的資料遷移工具

Zilliz 推出全新遷移服務(Migration Services)並將其開源,以幫助使用者應對上述種種挑戰。Zilliz 遷移服務是一款基於 Apache SeaTunnel,專為向量資料遷移設計的工具。

file
遷移服務工作原理

  • GitHub地址:https://github.com/zilliztech/vts

得到驗證測試後,這項服務將會merge到SeaTunnel官方分支中。

總的來說,推動Zilliz開發這款工具的背後原因包括:

  1. 滿足日益增長的資料遷移需求:使用者的需求不斷擴充套件,演變為將資料從不同的向量資料庫、傳統的搜尋引擎(如 Elasticsearch 和 Solr)、關係型資料庫、數倉、文件資料庫,甚至 S3 和資料湖進行遷移。

  2. 支援實時流資料流和離線匯入:隨著向量資料庫能力的不斷擴充套件,使用者需要對實時流資料的支援和離線批次匯入的能力。

  3. 簡化非結構化資料轉換流程:與傳統 ETL 不同,轉換非結構化資料需要藉助 AI 模型的力量。遷移服務結合了 Zilliz Cloud Pipelines,能夠將非結構化資料轉換為 Embedding 向量並完成資料標記等任務,顯著降低資料清洗成本和操作難度。

  4. 確保端到端的資料質量:資料整合和同步過程中容易出現資料丟失和不一致的問題。遷移服務透過強大的監控和告警機制解決了這些可能影響資料質量的問題。

VTS的核心能力

基於Apache SeaTunnel

VTS繼承了Apache SeaTunnel的高吞吐量和低延遲特性,同時增加了對向量資料和非結構化資料的支援。這使得VTS能夠作為一個強大的工具,用於構建AI應用資料Pipeline,實現向量資料的實時同步,以及非結構化資料的轉換與載入。

file

VTS的核心能力包括:

  • 向量資料庫遷移
  • AI應用資料Pipeline構建
  • 向量資料實時同步
  • 非結構化資料轉換與載入
  • 跨平臺資料整合

向量資料庫遷移

VTS的核心能力之一是向量資料庫遷移。它能夠處理向量資料的遷移,這對於AI和機器學習應用來說至關重要,因為這些應用常常需要處理大量的高維向量資料。

跨平臺資料整合

VTS支援跨平臺資料整合,這意味著它可以將資料從一個系統無縫遷移到另一個系統,無論是傳統的關係型資料庫還是現代的向量資料庫。

VTS支援的Connector和Transform

支援的Connector

VTS支援多種Connector,包括但不限於Milvus、Pinecone、Qdrant、Postgres SQL、ElasticSearch、Tencent Vector DB等,這使得VTS能夠與多種資料來源和儲存系統相容。

支援的Transform

VTS還支援多種資料轉換操作,如TablePathMapper(更改表名)、FieldMapper(增刪列)、Embedding(文字向量化)等,這些轉換操作使得VTS在資料處理上更加靈活。

支援的資料型別

VTS支援包括Float Vector、Sparse Float Vector、多向量列、動態列、資料插入,包括Upsert和Bulk Insert(離線,大批次)等多種資料型別,這進一步增強了其在處理複雜資料遷移任務時的能力。

效能演示

VTS在效能上也表現出色,例如在Pinecone到Milvus的遷移Demo中,同步1億向量的速率為2961/s,大約需要9個半小時(4核/8GB記憶體)

Demo見頂部影片。

非結構化資料支援

此外,VTS還支援非結構化資料的處理,目前支援Shopify資料型別,之後將逐步支援包括PDF、Google Doc、Slack、Image/Text在內的非結構化資料型別,不斷加強其在極其重要的非結構化資料方面的支援力度。

應用場景

VTS的使用場景廣泛,比如在商品推薦場景中,可以從Shopify同步產品和庫存資料,呼叫嵌入服務,將資料存入Milvus,並進行相似度搜尋,最終返回最相似的商品,極大地最佳化商品推薦的效果。

未來規劃

展望未來,遷移服務將不斷髮展。透過VTS開源遷移服務工具,不僅僅能夠解決當前向量資料管理中的問題和挑戰,還在為創新型 AI 應用開發鋪平道路。

VTS的未來規劃包括支援更多的資料來源,如Chroma DB、DataStax(Astra DB)、DataLake、Mongo DB、Kafka(實時AI)、物件儲存匯入等。

file

據悉,VTS直接插入原始資料和使用原始資料進行搜尋的功能,預計在Milvus 2.5版本中實現。

另外,在針對GenAI的ETL pipeline方面,VTS也將嘗試支援任務流編排、Embedding service,外部API,以及對開源大資料工作流排程平臺Apache DolphinScheduler的支援。

file

結語

VTS作為一個基於Apache SeaTunnel開發的向量資料遷移工具,不僅繼承了SeaTunnel的強大資料處理能力,還擴充套件了對向量資料和非結構化資料的支援,使其成為AI和機器學習領域中不可或缺的資料遷移工具。更多關於VTS的資訊和資源可以在其GitHub頁面找到。

本文由 白鯨開源 提供釋出支援!

相關文章