Quản trị viên SAP HANA - Phân vùng bảng
Sử dụng Phân vùng, bạn có thể chia các bảng lưu trữ cột thành các bảng nhỏ hơn trong một hệ thống nhiều máy chủ. Bạn thậm chí có thể chia bảng thành các phần nhỏ dễ quản lý hơn bằng cách sử dụng phân vùng. Việc phân vùng có thể được thực hiện bằng cách sử dụng các câu lệnh SQL DML.
Khi một bảng được phân vùng, nó chứa tập hợp các hàng khác nhau cho từng phần và Phân vùng có thể được thực hiện dựa trên các thuật toán khác nhau - Phân vùng băm, Phân vùng đơn cấp hoặc phân vùng đa cấp.
Sau đây là những ưu điểm của việc sử dụng Phân vùng bảng:
Cắt tỉa phân vùng
Bạn có thể xác định xem một truy vấn có thể được phân tích trong một phân vùng cụ thể hay không. Sử dụng phương pháp này, bạn có thể giảm tải cho hệ thống và do đó cải thiện thời gian phản hồi.
Example- Khi bạn phân vùng một bảng dựa trên năm, một truy vấn sẽ được thực hiện để phân tích dữ liệu cho một năm cụ thể. Bạn có thể sử dụng phân vùng cụ thể và do đó hiệu suất truy vấn được cải thiện.
Cân bằng tải
Bạn có thể chia các phân vùng riêng lẻ trên nhiều máy chủ và do đó truy vấn không được xử lý bởi một máy chủ duy nhất, dẫn đến việc cân bằng tải tốt hơn trên tất cả các máy chủ lưu trữ các phân vùng bảng.
Giới hạn kích thước
Trong bảng lưu trữ cột, số hàng tối đa có thể được nhập là khoảng 2 tỷ. Bạn có thể khắc phục điều này bằng cách phân phối các hàng của bảng cột trên nhiều phân vùng và do đó giới hạn kích thước được tăng lên 2 tỷ cho mỗi phân vùng.
Cải thiện hoạt động hợp nhất Delta
Trong quá trình hợp nhất đồng bằng, nếu dữ liệu chỉ được sửa đổi cho một số phân vùng, bạn cần phải hợp nhất ít phân vùng hơn trong hợp nhất đồng bằng.
Xử lý song song các truy vấn
Sử dụng phân vùng, bạn có thể chạy song song nhiều truy vấn và do đó cải thiện thời gian phản hồi.
Bây giờ chúng ta hãy thảo luận về các loại partionining.
Phân vùng đơn cấp
Có nhiều kiểu phân vùng đơn cấp khác nhau trong hệ thống SAP HANA -
- Phân vùng băm
- Phân vùng Round Robin
- Phân vùng phạm vi
Trong phân vùng băm, các hàng được phân bổ đều để thực hiện cân bằng tải. Bạn không cần thông tin chi tiết về nội dung bảng trong kiểu Phân vùng này.
So với Hash Partitioning, trong Round Robin Phân vùng các hàng được phân bổ đều cho mỗi phân vùng và các hàng mới được phân bổ đều cho mỗi phân vùng.
Để tạo 4 phân vùng của bảng bằng Round Robin, bạn có thể sử dụng các truy vấn SQL sau. Không có khóa chính nào nên được xác định.
CREATE COLUMN TABLE TABLENAME (a INT, b INT, c INT)
PARTITION BY ROUNDROBIN PARTITIONS 4
Lệnh này sẽ tạo 4 phân vùng của một bảng.
CREATE COLUMN TABLE Table_Name (a INT, b INT, c INT, PRIMARY KEY (a,b))
PARTITION BY HASH (a, b) PARTITIONS 4
Điều này sẽ tạo ra 4 phân vùng trên cột a và bvà bạn cần chỉ định ít nhất một cột.
Phân vùng phạm vi
Trong Phân vùng theo phạm vi, bạn tạo các phân vùng dành riêng cho các giá trị nhất định và bạn phải có kiến thức chuyên sâu về nội dung bảng để phân vùng cột.
Example - Tạo một phân vùng cho mỗi tháng theo lịch.
CREATE COLUMN TABLE TABLE_NAME (a INT, b INT, c INT, PRIMARY KEY (a,b))
PARTITION BY RANGE (a)
(PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20,
PARTITION VALUE = 50, PARTITION OTHERS)
Thao tác này sẽ tạo 4 phân vùng, một phân vùng cho phạm vi phân vùng từ 1 đến 10, thứ 2 từ 10 đến 20, thứ 3 cho giá trị 50 và thứ 4 cho tất cả các giá trị khác.
Phân vùng đa cấp
Trong phân vùng đa cấp, bạn có thể khắc phục hạn chế của phân vùng đơn cấp HASH và RANGE để sử dụng các cột chính làm cột phân vùng. Sử dụng phân vùng đa cấp, bạn có thể phân vùng một cột không phải là khóa chính. Loại phân vùng đa cấp phổ biến nhất làHASH-Range Partitioning.
Trong phân vùng đa cấp Hash-Range, bạn triển khai phân vùng Hash ở cấp đầu tiên để thực hiện cân bằng tải và phân vùng theo phạm vi ở cấp thứ hai để thực hiện phân vùng theo thời gian.
CREATE COLUMN TABLE Table_name (a INT, b INT, c INT, PRIMARY KEY (a,b))
PARTITION BY HASH (a, b) PARTITIONS 4,
RANGE (c) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20)
Thay vì sử dụng phân vùng băm ở cấp độ đầu tiên, bạn cũng có thể sử dụng phân vùng Round Robin và nó được gọi là Round Robin-Range multilevel partitioning.
CREATE COLUMN TABLE Table_name (a INT, b INT, c INT)
PARTITION BY ROUNDROBIN PARTITIONS 4,
RANGE (c) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20)