Phân vùng bảng

Một phần của tài liệu Nghiên cứu nguyên lý, kiến thức điện toán đám mây và xây dựng phần mềm quản lý nguồn lực trên nền tảng microsoft azure (Trang 54 - 56)

Azure Table cho phép các nhà phát triển mở rộng kích cỡ lưu trữ nên tới nhiều terabyte dữ liệu nếu cần thiết. Nó cho phép các bảng mở rộng đến hàng ngàn nút lưu trữ bằng cách phân phối các thực thể trong bảng bằng cách phân phối các entity trong table. Khi phân phối các entity, nó đảm bảo một tập hợp các entity luôn cùng nằm trên

Khoa Công Nghệ Thông Tin – Đại học Công nghệ Hà Nội Trang 56

một nút lưu trữ. Tất cả các thực thể (entity) có cùng khóa phân vùng (partition key) sẽ chia sẻ trong cùng một phân vùng. Mỗi một phân vùng được lưu trữ tại các nút riêng rẽ.

Hệ thống sẽ tự động thực hiện cân bằng phân vùng, quá trình này được dựa trên kích cỡ, lưu lượng và các nhân tố khác. Quá trình điều chỉnh, thiết lập các phân vùng được thực hiện bằng cách chọn giá trị thích hợp cho PartitionKey trong mỗi thực thể.

Hình số 2.16: Minh họa sự phân vùng

Quá trình thực hiện phân vùng cuả Azure table làm tăng tính hiệu quả của quá trình truy vấn dữ liệu lưu trữ trong Azure table. Trong quá trình truy vấn, các PartitionKey được sử dụng như một điều kiện lọc truy vấn. Sử dụng ParititionKey trong bộ lọc truy vấn hạn chế thực thi truy vấn đến một phân vùng đơn hoặc thành phần con của phân cùng (tùy thuộc vào điều kiện sử dụng), do đó cải thiện được hiệu suất truy vấn.

Nếu PartitionKey không phải là một phần của truy vấn, thì truy vấn phải đi qua tất cả các phân vùng trong bảng để tìm ra thực thể cần tìm, điều này thực sự không mang lại hiệu quả.

Ví dụ dữ liệu được lưu trữ trong bảng Superhero như sau [25]:

PartitionKey RowKey

(Character name)

Property 3 (Superpower)

Property N

Marvel Cyclops Heat Ray The X-Men (#1) Marvel Wolverine Healing + Adamantium

Skeleton

The Incredible Hulk (#180)

DC Superman Flight, super-strength, and so on

Action Comics (#1)

DC Batman None Detective Comics (#2) DC Lex Luthor None Action Comics (#24) DC Flash Super speed Flash Comics (#1)

Khoa Công Nghệ Thông Tin – Đại học Công nghệ Hà Nội Trang 57

Câu lệnh truy vấn thứ nhất.

 PartitionKey partition = "DC" and RowKey="Flash" Câu lệnh truy vấn thứ hai.

 PartitionKey="DC" and SuperPower=None

Câu lệnh truy vấn thứ ba.

 SuperPower=None

Với câu lệnh thứ nhất thì quá trình truy vấn được thực hiện tốc độ nhanh nhất vì

partitionkeyrowkey là hai thuộc tính khóa. Câu lệnh thứ hai chỉ có partitionkey là được xác định, câu lệnh truy vấn này được thực hiện tốc độ cao tuy nhiên không thể nhanh bằng câu lệnh truy vấn thứ nhất. Câu lệnh truy vấn thứ ba là thực hiện chậm nhất trong loại câu lênh truy vấn đã đề cập.

Một phần của tài liệu Nghiên cứu nguyên lý, kiến thức điện toán đám mây và xây dựng phần mềm quản lý nguồn lực trên nền tảng microsoft azure (Trang 54 - 56)

Tải bản đầy đủ (PDF)

(146 trang)