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

Quy tắc chung để chọn Partition Key lý tưởng trong CosmosDB là gì?

Câu trả lời

Khóa phân vùng lý tưởng trong CosmosDB nên được chọn dựa trên các tiêu chí sau:

  1. Cardinality cao: Khóa phân vùng nên có số lượng giá trị duy nhất cao để đảm bảo sự phân phối đều dữ liệu qua các phân vùng. Điều này giúp tránh tình trạng phân vùng nóng, nơi một phân vùng nhận nhiều yêu cầu hơn các phân vùng khác, dẫn đến sự mất cân đối về hiệu suất và chi phí
  2. Sử dụng trong các truy vấn thường xuyên: Khóa phân vùng nên là một trường mà thường xuyên được sử dụng trong các điều kiện lọc của truy vấn, giúp tối ưu hóa hiệu suất đọc và giảm chi phí RU (Request Units)
  3. Không thay đổi: Giá trị của khóa phân vùng không nên thay đổi sau khi đã được thiết lập vì việc thay đổi khóa phân vùng có thể yêu cầu tạo lại container và di chuyển dữ liệu, làm tăng độ phức tạp và chi phí
  4. Phân phối đều: Khóa phân vùng nên đảm bảo rằng dữ liệu được phân phối đều qua các phân vùng để tận dụng tối đa khả năng mở rộng ngang của CosmosDB và tránh tình trạng quá tải trên một số phân vùng cụ thể
  5. Phù hợp với mô hình truy cập dữ liệu: Khóa phân vùng nên phản ánh mô hình truy cập dữ liệu của ứng dụng, đảm bảo rằng các yêu cầu đọc và ghi có thể được thực hiện một cách hiệu quả nhất
  6. Tránh phân vùng lớn: Nên tránh chọn khóa phân vùng dẫn đến việc tạo ra các phân vùng lớn vượt quá giới hạn kích thước, vì điều này có thể ảnh hưởng đến hiệu suất và chi phí

Những nguyên tắc này giúp đảm bảo rằng CosmosDB có thể mở rộng hiệu quả, duy trì hiệu suất cao và chi phí hợp lý khi xử lý và lưu trữ dữ liệu.

middle

middle

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

middle

Giải thích cách hỗ trợ giao dịch trong Cosmos DB?

senior

Tính năng của thuộc tính ETag trong Cosmos DB là gì?

middle

Việc có cùng Partition Key trong nhiều containers có phải là một ý tưởng tốt không?

Bình luận

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

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