Câu hỏi phỏng vấn Cosmos DB
Câu hỏi

Giải thích thế nào là Point Read trong Cosmos DB?

Câu trả lời

Trong Azure Cosmos DB, Point Read là một hoạt động đọc dữ liệu dựa trên việc truy xuất một mục cụ thể bằng cách sử dụng ID của mục đó và khóa phân vùng của nó. Đây là phương pháp đọc dữ liệu nhanh và hiệu quả nhất trong Cosmos DB, vì nó trực tiếp truy cập vào mục mà không cần thực hiện truy vấn trên chỉ mục hoặc duyệt qua nhiều mục.

Cách Thức Hoạt Động

Khi thực hiện Point Read, bạn cần cung cấp hai thông tin:

  1. ID của mục: Đây là định danh duy nhất của mục trong container.
  2. Partition Key: Giá trị khóa phân vùng mà mục thuộc về.

Dựa trên hai thông tin này, Cosmos DB có thể nhanh chóng xác định vị trí chính xác của mục trong cơ sở dữ liệu và trả về nó mà không cần phải tìm kiếm hoặc lọc qua các mục khác.

Hiệu Quả về Chi Phí

Point Read là hoạt động đọc có chi phí thấp nhất trong Cosmos DB. Đối với một mục có kích thước khoảng 1 KB, chi phí để thực hiện Point Read chỉ là 1 Request Unit (RU). Điều này làm cho Point Read trở thành lựa chọn tối ưu cho các ứng dụng cần truy cập nhanh chóng và hiệu quả về chi phí đến các mục cụ thể.

Ví Dụ Sử Dụng SDK Python

Để thực hiện Point Read trong Python sử dụng SDK của Azure Cosmos DB, bạn có thể làm như sau:

python Copy
from azure.cosmos import CosmosClient, PartitionKey

url = 'your_cosmos_db_account_url'
key = 'your_cosmos_db_account_key'
client = CosmosClient(url, credential=key)

database_name = 'your_database'
container_name = 'your_container'
database = client.get_database_client(database_name)
container = database.get_container_client(container_name)

# Thực hiện Point Read
item_id = 'your_item_id'
partition_key_value = 'your_partition_key_value'
item_response = container.read_item(item=item_id, partition_key=partition_key_value)
print(item_response)

Lưu Ý

  • Point Read yêu cầu bạn phải biết trước ID và khóa phân vùng của mục. Nếu không có thông tin này, bạn sẽ cần phải sử dụng truy vấn để tìm mục.
  • Chi phí RU có thể tăng lên nếu kích thước mục lớn hơn 1 KB.
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Bạn có thể trộn lẫn các loại tài liệu khác nhau trong cùng một container trong Cosmos DB không? Tại sao bạn lại làm điều đó?

expert

Những hạn chế của Phân vùng Vật lý là gì và tại sao việc theo dõi chúng lại quan trọng?

middle

Hãy nêu một số ưu và nhược điểm của việc sử dụng GUID làm Khóa Phân Vùng trong Cosmos DB?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào