Milvus(3):數據庫、Collections說明

1?數據庫

????????Milvus 在集合之上引入了數據庫層,為管理和組織數據提供了更有效的方式,同時支持多租戶。

1.1?什么是數據庫

????????在 Milvus 中,數據庫是組織和管理數據的邏輯單元。為了提高數據安全性并實現多租戶,你可以創建多個數據庫,為不同的應用程序或租戶從邏輯上隔離數據。例如,創建一個數據庫用于存儲用戶 A 的數據,另一個數據庫用于存儲用戶 B 的數據。

1.2?創建數據庫

????????可以使用 Milvus RESTful API 或 SDK 以編程方式創建數據。

from pymilvus import MilvusClientclient = MilvusClient(uri="http://localhost:19530",token="root:Milvus" # 用戶名:密碼
)client.create_database(db_name="my_database_1"
)

????????還可以在創建數據庫時為其設置屬性。下面的示例設置了數據庫的副本數量。

client.create_database(db_name="my_database_2",properties={"database.replica.number": 3}
)

1.3 查看數據庫

????????您可以使用 Milvus RESTful API 或 SDK 列出所有現有數據庫并查看其詳細信息。

# 列出所有現有數據庫
client.list_databases()# 輸出
# ['default', 'my_database_1', 'my_database_2']# 檢查數據庫詳細信息
client.describe_database(db_name="default"
)# 輸出
# {"name": "default"}

1.4?管理數據庫屬性

????????每個數據庫都有自己的屬性,您可以在創建數據庫時設置數據庫屬性,也可以更改和刪除任何現有數據庫的屬性。下表列出了可能的數據庫屬性。

屬性名稱

類型

屬性描述

database.replica.number

整數

指定數據庫的副本數量。

database.resource_groups

字符串

與指定數據庫關聯的資源組名稱,以通用分隔列表形式顯示。

database.diskQuota.mb

整數

指定數據庫的最大磁盤空間大小(MB)。

database.max.collections

整數

指定數據庫中允許的最大 Collections 數量。

database.force.deny.writing

布爾

是否強制指定的數據庫拒絕寫操作。

database.force.deny.reading

布爾

是否強制指定的數據庫拒絕讀取操作。

1.4.1 更改數據庫屬性

????????可以通過以下方式更改現有數據庫的屬性。下面的示例限制了可以在數據庫中創建的 Collections 數量。

client.alter_database_properties(db_name: "my_database_1",properties: {"database.max.collections": 10}
)

1.4.2?刪除數據庫屬性

????????還可以通過如下方式刪除數據庫屬性來重置該屬性。下面的示例刪除了可以在數據庫中創建的 Collection 數量限制。

client.drop_database_properties(db_name: "my_database_1",property_keys: ["database.max.collections"]
)

1.5?使用數據庫

????????可以在不斷開與 Milvus 連接的情況下從一個數據庫切換到另一個數據庫。RESTful API 不支持此操作符。

client.use_database(db_name="my_database_2"
)

1.6?刪除數據庫

????????一旦不再需要數據庫,就可以刪除數據庫。請注意

  • 不能丟棄默認數據庫。
  • 在丟棄數據庫之前,需要先丟棄數據庫中的所有 Collections。
client.drop_database(db_name="my_database_2"
)

????????你可以使用 Milvus RESTful API 或 SDK 以編程方式創建數據。

2?Collections 說明

????????在 Milvus 中,您可以創建多個 Collections 來管理數據,并將數據作為實體插入到 Collections 中。Collections 和實體類似于關系數據庫中的表和記錄。本頁將幫助你了解集合和相關概念。

????????Collection 是一個二維表,具有固定的列和變化的行。每列代表一個字段,每行代表一個實體。下圖顯示了一個有 8 列和 6 個實體的 Collection。

2.1?Schema 和字段

????????在描述一個對象時,我們通常會提到它的屬性,如大小、重量和位置。您可以將這些屬性用作 Collection 中的字段。每個字段都有各種約束屬性,例如向量字段的數據類型和維度。通過創建字段并定義其順序,可以形成一個 Collections Schema。應在要插入的實體中包含所有 Schema 定義的字段。

2.2?主鍵和 AutoId

????????與關系數據庫中的主字段類似,Collection 也有一個主字段,用于將實體與其他實體區分開來。主字段中的每個值都是全局唯一的,并與一個特定實體相對應。

????????如上圖所示,名為id的字段是主字段,第一個 ID0對應一個名為 "冠狀病毒的死亡率并不重要"的實體。不會有其他實體的主字段是 0。

????????主字段只接受整數或字符串。插入實體時,默認情況下應包含主字段值。但是,如果在創建 Collections 時啟用了AutoId,Milvus 將在插入數據時生成這些值。在這種情況下,請從要插入的實體中排除主字段值。

2.3 索引

????????為特定字段創建索引可提高搜索效率。建議您為服務所依賴的所有字段創建索引,其中向量字段的索引是強制性的。

2.4?實體

????????實體是指在 Collections 中共享同一組字段的數據記錄。同一行中所有字段的值構成一個實體。您可以根據需要在 Collections 中插入任意數量的實體。但是,隨著實體數量的增加,所占用的內存大小也會增加,從而影響搜索性能。

2.5?加載和釋放

????????加載集合是在集合中進行相似性搜索和查詢的前提。加載 Collections 時,Milvus 會將所有索引文件和每個字段中的原始數據加載到內存中,以便快速響應搜索和查詢。搜索和查詢是內存密集型操作。為節約成本,建議您釋放當前不使用的 Collections。

2.6?搜索和查詢

????????創建索引并加載 Collections 后,就可以通過輸入一個或多個查詢向量開始相似性搜索。例如,當接收到搜索請求中攜帶的查詢向量表示時,Milvus 會使用指定的度量類型來衡量查詢向量與目標 Collections 中的向量之間的相似性,然后再返回與查詢語義相似的向量。

????????還可以在搜索和查詢中加入元數據過濾功能,以提高搜索結果的相關性。請注意,元數據過濾條件在查詢中是必須的,但在搜索中是可選的。

  • 基本 ANN 搜索
  • 過濾搜索
  • 范圍搜索
  • 分組搜索
  • 混合搜索
  • 搜索迭代器
  • 查詢
  • 全文搜索
  • 文本匹配

????????此外,Milvus 還提供了提高搜索性能和效率的增強功能。這些增強功能默認為禁用,您可以根據自己的服務要求啟用和使用它們。它們是

  • 使用 Partition Key
  • 使用 mmap
  • 集群壓縮

2.7?分區

????????分區是集合的子集,與其父集合共享相同的字段集,每個分區包含一個實體子集。通過將實體分配到不同的分區,可以創建實體組。你可以在特定分區中進行搜索和查詢,讓 Milvus 忽略其他分區中的實體,提高搜索效率。

2.8 分片

分片是 Collections 的水平切片。每個分片對應一個數據輸入通道。每個 Collections 默認都有一個分片。創建 Collections 時,可以根據預期吞吐量和要插入 Collections 的數據量設置適當的分片數量。

2.9?別名

????????可以為您的集合創建別名。一個集合可以有多個別名,但集合不能共享一個別名。收到針對某個 Collection 的請求后,Milvus 會根據所提供的名稱定位該 Collection。如果所提供名稱的 Collection 不存在,Milvus 會繼續定位所提供名稱的別名。你可以使用 Collections 別名來調整代碼以適應不同的情況。

2.10?函數

????????您可以為 Milvus 設置函數,以便在創建 Collections 時派生字段。例如,全文搜索功能使用用戶定義函數從特定 varchar 字段推導出稀疏向量字段。

2.11?一致性級別

????????分布式數據庫系統通常使用一致性級別來定義跨數據節點和副本的數據相同性。在創建 Collections 或在 Collections 中進行相似性搜索時,可以分別設置不同的一致性級別。適用的一致性級別有強有限制的不穩定性會話最終

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76776.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76776.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76776.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【質量管理】“武藏曲線”和“微笑曲線”的差異

什么是“微笑曲線” 在電子制造領域,“微笑曲線”(Smiling Curve)是由宏碁集團創始人施振榮于1992年提出的一個理論模型,用于描述產業鏈中不同環節的附加價值分布。該曲線因形狀類似“微笑”而得名,核心觀點是&#xf…

【html】a標簽target屬性以及擴展應用

進行頁面新窗口打開跳轉&#xff0c;我們使用 <a> 標簽即可實現。 <a>標簽可以通過設置target的值來控制此鏈接的打開方式&#xff0c;一般可取以下值&#xff1a; _self&#xff1a;默認值&#xff0c;鏈接在當前窗口打開 _blank&#xff1a;鏈接在新窗口打開 …

一文讀懂什么是 MCP、A2A、ANP

在人工智能快速發展的今天&#xff0c;智能體&#xff08;Agent&#xff09;正逐步成為互聯網交互的新主體。它們不僅能替代人類完成復雜任務&#xff0c;還能通過協作形成更高效的網絡生態。然而&#xff0c;這一切的實現離不開通信協議的支持。本文將解析智能體領域的三大核心…

Python3網絡爬蟲開發--爬蟲基礎

網絡爬蟲基礎 1.1 HTTP基本原理 1.1.1 URI和URL URI即統一資源標志符,URL即統一資源定位符。 有這樣一個鏈接,http://test.com/test.txt,在這個鏈接中,包含了訪問協議https,訪問目錄(即根目錄),資源名稱(test.txt)。通過這樣的鏈接,可以在互聯網上找到這個資源,這…

OpenCV顏色變換cvtColor

OpenCV計算機視覺開發實踐&#xff1a;基于Qt C - 商品搜索 - 京東 顏色變換是imgproc模塊中一個常用的功能。我們生活中看到的大多數彩色圖片都是RGB類型的&#xff0c;但是在進行圖像處理時需要用到灰度圖、二值圖、HSV&#xff08;六角錐體模型&#xff0c;這個模型中顏色的…

Hadoop----高可用搭建

目錄標題 **什么是高可用&#xff1f;****?搭建的步驟**一.jdk**安裝配置**- **要點**: 二.zookeeper**集群配置**- **要點** 三.Hadoop高可用的搭建- **要點**①環境變量的配置②配置文件的修改 ③內容分發④集群任務的初次啟動 什么是高可用&#xff1f; 通過冗余設計 自動…

【Rust 精進之路之第15篇-枚舉 Enum】定義、變體與數據關聯:表達多種可能性

系列: Rust 精進之路:構建可靠、高效軟件的底層邏輯 作者: 碼覺客 發布日期: 2025年4月20日 引言:當值擁有“選項”——超越結構體的表達力 在上一篇【結構體 Struct】中,我們學習了如何使用結構體將多個相關的數據字段組合成一個有意義的整體。結構體非常適合表示那些…

模擬實現strncat、qsort、atoi

目錄 前言 一、模擬實現strncat 參數 代碼演示&#xff1a; 二、模擬實現qsort 參數 代碼演示&#xff1a; 前言 本文主要是對strncat&#xff0c;qsort&#xff0c;atoi的模擬實現 一、模擬實現strncat C 庫函數 char *strncat(char *dest, const char *src, size_t n…

Ubuntu 系統中修改 MySQL 的 sql_mode

在 Ubuntu 系統中修改 MySQL 的 sql_mode 需要編輯 MySQL 的配置文件并重啟服務。以下是詳細步驟&#xff1a; 步驟 1&#xff1a;定位 MySQL 配置文件 MySQL 配置文件通常位于以下路徑之一&#xff08;具體取決于安裝方式&#xff09;&#xff1a; /etc/mysql/my.cnf /etc/m…

進階算法 第一課:貪心

本文遵循 CC BY-NC-ND 4.0 協議&#xff0c;作者&#xff1a; U?ェ?*U \texttt{U?ェ?*U} U?ェ?*U&#xff0c;轉載請獲得作者授權。 歡迎大家來到進階算法第一課&#xff1a;貪心&#xff1b;我會分為以下幾點為大家講解貪心&#xff1a; 什么是貪心。貪心的性質與分類。…

AI領域:MCP 與 A2A 協議的關系

一、為何會出現MCP和A2A 協議是非常重要的東西&#xff0c;只有大家都遵循統一的協議&#xff0c;整體生態才好發展&#xff0c;正如有了HTML&#xff0c;互聯網才快速發展&#xff0c;有了OpenAPI&#xff0c; API才會快速發展。 Agent目前是發展最快的領域&#xff0c;從最初…

深度學習訓練中的顯存溢出問題分析與優化:以UNet圖像去噪為例

最近在訓練一個基于 Tiny-UNet 的圖像去噪模型時&#xff0c;我遇到了經典但棘手的錯誤&#xff1a; RuntimeError: CUDA out of memory。本文記錄了我如何從復現、分析&#xff0c;到逐步優化并成功解決該問題的全過程&#xff0c;希望對深度學習開發者有所借鑒。 訓練數據&am…

FramePack V2版 - 支持首尾幀生成,支持LoRA,支持批量,支持50系顯卡,一個強大的AI視頻生成軟件 本地一鍵整合包下載

FramePack 是斯坦福大學主導開發的視頻生成框架&#xff0c;是一種用于視頻生成的下一幀&#xff08;下一幀部分&#xff09;預測神經網絡結構&#xff0c;可以逐步生成視頻。FramePack 主要開發者之一&#xff0c;就是業內大名鼎鼎的張呂敏大佬&#xff0c;AI領域的“賽博佛祖…

STM32 HAL 通用定時器延時函數

使用通用定時器TIM3&#xff0c;實現ms、us延時。 delay.c #include "delay.h" #include "stm32f1xx_hal.h"TIM_HandleTypeDef htim3;/*** brief 初始化定時器3用于延時* param 無* retval 無*/ void Delay_Init(void) {TIM_ClockConfigTypeDef sClock…

軟件功能測試和非功能測試有什么區別和聯系?

軟件測試是保障軟件質量的核心環節&#xff0c;而軟件功能測試和非功能測試作為測試領域的兩大重要組成部分&#xff0c;承擔著不同但又相互關聯的職責。 軟件功能測試指的是通過驗證軟件系統的各項功能是否按照需求規格說明書來正確實現&#xff0c;確保軟件的功能和業務流程…

使用Java調用TensorFlow與PyTorch模型:DJL框架的應用探索

在現代機器學習的應用場景中&#xff0c;Python早已成為廣泛使用的語言&#xff0c;尤其是在深度學習框架TensorFlow和PyTorch的開發和應用中。盡管Java在許多企業級應用中占據一席之地&#xff0c;但因為缺乏直接使用深度學習框架的能力&#xff0c;往往使得Java開發者對機器學…

Docker安裝beef-xss

新版的kali系統中安裝了beef-xss會因為環境問題而無法啟動&#xff0c;可以使用Docker來安裝beef-xss&#xff0c;節省很多時間。 安裝步驟 1.啟動kali虛擬機&#xff0c;打開終端&#xff0c;切換到root用戶&#xff0c;然后執行下面的命令下載beef的docker鏡像 wget https:…

metasploit(2)生成dll木馬

聲明&#xff01;本文章所有的工具分享僅僅只是供大家學習交流為主&#xff0c;切勿用于非法用途&#xff0c;如有任何觸犯法律的行為&#xff0c;均與本人及團隊無關&#xff01;&#xff01;&#xff01; 一、dll文件基本概念 DLL 是一種包含可由多個程序同時使用的代碼和數…

5V 1A充電標準的由來與技術演進——從USB誕生到智能手機時代的電力革命

點擊下面圖片帶您領略全新的嵌入式學習路線 &#x1f525;爆款熱榜 88萬閱讀 1.6萬收藏 一、起源&#xff1a;USB標準與早期電力傳輸需求 1. USB的誕生背景 1996年&#xff0c;由英特爾、微軟、IBM等公司組成的USB-IF&#xff08;USB Implementers Forum&#xff09;發布了…

使用Python設置excel單元格的字體(font值)

一、前言 通過使用Python的openpyxl庫&#xff0c;來操作excel單元格&#xff0c;設置單元格的字體&#xff0c;也就是font值。 把學習的過程分享給大家。大佬勿噴&#xff01; 二、程序展示 1、新建excel import openpyxl from openpyxl.styles import Font wb openpyxl.…