Tạo phân vùng

Milvus cho phép bạn phân chia dữ liệu vector thành một số phân vùng. Các tìm kiếm và các hoạt động khác có thể được giới hạn trong một phân vùng duy nhất để cải thiện hiệu suất.

Một bộ sưu tập bao gồm một hoặc nhiều phân vùng. Khi tạo một bộ sưu tập mới, Milvus sẽ tạo một phân vùng mặc định _default.

Ví dụ sau đây thiết lập một phân vùng có tên novel trong bộ sưu tập book.

from pymilvus import Collection
collection = Collection("book")      # Lấy một bộ sưu tập hiện có
collection.create_partition("novel")
Tham số Mô tả
partition_name Tên của phân vùng cần tạo.
description (tùy chọn) Mô tả về phân vùng cần tạo.

Giới hạn

Tính năng Giới hạn tối đa
Số lượng phân vùng trong một bộ sưu tập 4.096

Xác minh sự tồn tại của một phân vùng

Xác minh xem một phân vùng cụ thể có tồn tại trong bộ sưu tập đã chỉ định hay không.

from pymilvus import Collection
collection = Collection("book")      # Lấy một bộ sưu tập hiện có
collection.has_partition("novel")

Liệt kê tất cả các phân vùng

from pymilvus import Collection
collection = Collection("book")      # Lấy một bộ sưu tập hiện có
collection.partitions

Xóa một phân vùng

from pymilvus import Collection
collection.drop_partition("novel")

Tải một phân vùng

Tải một phân vùng vào bộ nhớ thay vì tải toàn bộ bộ sưu tập có thể giảm thiểu đáng kể việc sử dụng bộ nhớ. Tất cả các hoạt động tìm kiếm và truy vấn trong Milvus đều được thực hiện trong bộ nhớ.

Bắt đầu từ phiên bản 2.3.0, Milvus đã nâng cao các hoạt động phân vùng của mình và hỗ trợ các hoạt động tải và giải phóng có tác dụng lan truyền. Điều này có nghĩa là bạn có thể thực hiện bất kỳ kết hợp nào của các hoạt động sau:

  • Tải một bộ sưu tập đã tải.
  • Tải một bộ sưu tập, sau đó tải các phân vùng cụ thể trong bộ sưu tập.
  • Tải một phân vùng, sau đó tải bộ sưu tập mà phân vùng thuộc về.
  • Tải một phân vùng và tải lại nó trước khi giải phóng.

Milvus cho phép người dùng tải các phân vùng dưới dạng nhiều bản sao để tận dụng tài nguyên CPU và bộ nhớ của các nút truy vấn bổ sung. Tính năng này được hỗ trợ trong phiên bản hiện tại thông qua PyMilvus.

from pymilvus import Collection
collection = Collection("book")      # Lấy một bộ sưu tập hiện có
collection.load(["novel"], replica_number=2)

from pymilvus import Partition
partition = Partition("novel")       # Lấy một phân vùng hiện có
partition.load(replica_number=2)

Lấy thông tin bản sao

Bạn có thể xem thông tin về các bản sao đã tải.

from pymilvus import Partition
partition = Partition("novel")       # Lấy một phân vùng hiện có
partition.load(replica_number=2)     # Tải phân vùng với 2 bản sao
result = partition.get_replicas()
print(result)

Giải phóng một phân vùng

Cách giải phóng một phân vùng khỏi bộ nhớ sau khi tìm kiếm hoặc truy vấn để giảm việc sử dụng bộ nhớ.

Bắt đầu từ phiên bản 2.3.0, Milvus đã nâng cao các hoạt động phân vùng của mình và hỗ trợ các hoạt động tải và giải phóng có tác dụng lan truyền. Điều này có nghĩa là bạn có thể thực hiện bất kỳ kết hợp nào của các hoạt động sau:

  • Giải phóng một bộ sưu tập đã tải.
  • Giải phóng các phân vùng cụ thể trong một bộ sưu tập đã tải.
  • Giải phóng một phân vùng đã tải.
  • Giải phóng một số phần của các phân vùng đã tải trong một bộ sưu tập.
from pymilvus import Partition
partition = Partition("novel")       # Lấy một phân vùng hiện có
partition.release()