Kho dữ liệu - Chiến lược phân vùng
Phân vùng được thực hiện để nâng cao hiệu suất và tạo điều kiện dễ dàng quản lý dữ liệu. Phân vùng cũng giúp cân bằng các yêu cầu khác nhau của hệ thống. Nó tối ưu hóa hiệu suất phần cứng và đơn giản hóa việc quản lý kho dữ liệu bằng cách phân chia mỗi bảng dữ liệu thành nhiều phân vùng riêng biệt. Trong chương này, chúng ta sẽ thảo luận về các chiến lược phân vùng khác nhau.
Tại sao nó là cần thiết để phân vùng?
Việc phân vùng là quan trọng vì những lý do sau:
- Để quản lý dễ dàng,
- Để hỗ trợ sao lưu / phục hồi,
- Để nâng cao hiệu suất.
Để quản lý dễ dàng
Bảng dữ liệu trong kho dữ liệu có thể có kích thước lên đến hàng trăm gigabyte. Kích thước khổng lồ của bảng dữ kiện này rất khó quản lý như một thực thể duy nhất. Do đó nó cần phân vùng.
Để hỗ trợ sao lưu / phục hồi
Nếu chúng ta không phân vùng bảng dữ kiện, thì chúng ta phải tải bảng dữ liệu hoàn chỉnh với tất cả dữ liệu. Phân vùng cho phép chúng tôi chỉ tải lượng dữ liệu cần thiết một cách thường xuyên. Nó làm giảm thời gian tải và cũng nâng cao hiệu suất của hệ thống.
Note- Để cắt giảm kích thước sao lưu, tất cả các phân vùng khác với phân vùng hiện tại có thể được đánh dấu là chỉ đọc. Sau đó, chúng tôi có thể đặt các phân vùng này vào trạng thái không thể sửa đổi chúng. Sau đó, chúng có thể được sao lưu. Nó có nghĩa là chỉ phân vùng hiện tại được sao lưu.
Để nâng cao hiệu suất
Bằng cách phân chia bảng dữ kiện thành các tập dữ liệu, các thủ tục truy vấn có thể được nâng cao. Hiệu suất truy vấn được nâng cao vì bây giờ truy vấn chỉ quét những phân vùng có liên quan. Nó không phải quét toàn bộ dữ liệu.
Phân vùng ngang
Có nhiều cách khác nhau để phân vùng bảng dữ kiện. Trong phân vùng theo chiều ngang, chúng ta phải lưu ý các yêu cầu về khả năng quản lý của kho dữ liệu.
Phân vùng theo thời gian thành các phân đoạn bằng nhau
Trong chiến lược phân vùng này, bảng dữ kiện được phân vùng trên cơ sở khoảng thời gian. Ở đây mỗi khoảng thời gian đại diện cho một khoảng thời gian lưu giữ đáng kể trong doanh nghiệp. Ví dụ: nếu người dùng truy vấnmonth to date datathì việc phân vùng dữ liệu thành các phân đoạn hàng tháng là thích hợp. Chúng ta có thể sử dụng lại các bảng đã phân vùng bằng cách loại bỏ dữ liệu trong chúng.
Phân chia theo thời gian thành các phân đoạn có kích thước khác nhau
Loại phân vùng này được thực hiện khi dữ liệu cũ được truy cập không thường xuyên. Nó được thực hiện như một tập hợp các phân vùng nhỏ cho dữ liệu tương đối hiện tại, phân vùng lớn hơn cho dữ liệu không hoạt động.
Điểm cần lưu ý
Thông tin chi tiết vẫn có sẵn trực tuyến.
Số lượng bàn vật lý được giữ tương đối ít, giúp giảm chi phí vận hành.
Kỹ thuật này phù hợp khi yêu cầu kết hợp giữa dữ liệu nhúng lịch sử gần đây và khai thác dữ liệu trong toàn bộ lịch sử.
Kỹ thuật này không hữu ích khi cấu hình phân vùng thay đổi thường xuyên, bởi vì việc phân vùng lại sẽ làm tăng chi phí hoạt động của kho dữ liệu.
Phân vùng trên một thứ nguyên khác
Bảng dữ kiện cũng có thể được phân vùng trên cơ sở các thứ nguyên khác với thời gian, chẳng hạn như nhóm sản phẩm, khu vực, nhà cung cấp hoặc bất kỳ thứ nguyên nào khác. Hãy lấy một ví dụ.
Giả sử một chức năng thị trường đã được cấu trúc thành các bộ phận khu vực riêng biệt như trên state by statenền tảng. Nếu mỗi khu vực muốn truy vấn thông tin được thu thập trong khu vực của mình, thì việc phân chia bảng dữ kiện thành các phân vùng khu vực sẽ hiệu quả hơn. Điều này sẽ làm cho các truy vấn tăng tốc vì nó không yêu cầu quét thông tin không liên quan.
Điểm cần lưu ý
Truy vấn không phải quét dữ liệu không liên quan để tăng tốc quá trình truy vấn.
Kỹ thuật này không thích hợp khi các kích thước không thể thay đổi trong tương lai. Vì vậy, cần xác định rằng thứ nguyên không thay đổi trong tương lai.
Nếu thứ nguyên thay đổi, thì toàn bộ bảng dữ kiện sẽ phải được phân vùng lại.
Note - Chúng tôi khuyên bạn chỉ nên thực hiện phân vùng trên cơ sở thứ nguyên thời gian, trừ khi bạn chắc chắn rằng nhóm thứ nguyên được đề xuất sẽ không thay đổi trong vòng đời của kho dữ liệu.
Phân vùng theo kích thước của bảng
Khi không có cơ sở rõ ràng để phân chia bảng dữ kiện theo bất kỳ thứ nguyên nào, thì chúng ta nên partition the fact table on the basis of their size.Chúng ta có thể đặt kích thước định trước làm điểm tới hạn. Khi bảng vượt quá kích thước định trước, một phân vùng bảng mới được tạo.
Điểm cần lưu ý
Việc phân vùng này rất phức tạp để quản lý.
Nó yêu cầu siêu dữ liệu để xác định dữ liệu nào được lưu trữ trong mỗi phân vùng.
Kích thước phân vùng
Nếu một thứ nguyên chứa số lượng lớn các mục nhập, thì cần phải phân vùng các thứ nguyên. Ở đây chúng ta phải kiểm tra kích thước của một thứ nguyên.
Hãy xem xét một thiết kế lớn thay đổi theo thời gian. Nếu chúng ta cần lưu trữ tất cả các biến thể để áp dụng so sánh, thứ nguyên đó có thể rất lớn. Điều này chắc chắn sẽ ảnh hưởng đến thời gian phản hồi.
Phần thi đấu vòng tròn
Trong kỹ thuật round robin, khi cần phân vùng mới, phân vùng cũ sẽ được lưu trữ. Nó sử dụng siêu dữ liệu để cho phép công cụ truy cập người dùng tham chiếu đến phân vùng bảng chính xác.
Kỹ thuật này giúp dễ dàng tự động hóa các phương tiện quản lý bảng trong kho dữ liệu.
Phân vùng dọc
Phân vùng theo chiều dọc, chia nhỏ dữ liệu theo chiều dọc. Các hình ảnh sau đây mô tả cách phân vùng dọc được thực hiện.
Phân vùng dọc có thể được thực hiện theo hai cách sau:
- Normalization
- Tách hàng
Bình thường hóa
Chuẩn hóa là phương pháp quan hệ tiêu chuẩn của tổ chức cơ sở dữ liệu. Trong phương pháp này, các hàng được thu gọn thành một hàng, do đó nó làm giảm không gian. Hãy xem các bảng sau đây cho biết cách chuẩn hóa được thực hiện.
Bảng trước khi chuẩn hóa
ID sản phẩm | Qty | Giá trị | sales_date | Store_id | Tên cửa hàng | Vị trí | Khu vực |
---|---|---|---|---|---|---|---|
30 | 5 | 3,67 | 3 tháng 8-13 | 16 | nắng | Bangalore | S |
35 | 4 | 5.33 | 3-9-13 | 16 | nắng | Bangalore | S |
40 | 5 | 2,50 | 3-9-13 | 64 | san | Mumbai | W |
45 | 7 | 5,66 | 3-9-13 | 16 | nắng | Bangalore | S |
Bảng sau khi chuẩn hóa
Store_id | Tên cửa hàng | Vị trí | Khu vực |
---|---|---|---|
16 | nắng | Bangalore | W |
64 | san | Mumbai | S |
ID sản phẩm | Định lượng | Giá trị | sales_date | Store_id |
---|---|---|---|---|
30 | 5 | 3,67 | 3 tháng 8-13 | 16 |
35 | 4 | 5.33 | 3-9-13 | 16 |
40 | 5 | 2,50 | 3-9-13 | 64 |
45 | 7 | 5,66 | 3-9-13 | 16 |
Tách hàng
Tách hàng có xu hướng để lại một bản đồ 1-1 giữa các phân vùng. Động cơ của việc tách hàng là để tăng tốc độ truy cập vào bảng lớn bằng cách giảm kích thước của nó.
Note - Trong khi sử dụng phân vùng dọc, hãy đảm bảo rằng không có yêu cầu thực hiện thao tác nối chính giữa hai phân vùng.
Xác định chìa khóa để phân vùng
Điều rất quan trọng là chọn đúng khóa phân vùng. Chọn một khóa phân vùng sai sẽ dẫn đến việc tổ chức lại bảng dữ kiện. Hãy lấy một ví dụ. Giả sử chúng ta muốn phân vùng bảng sau.
Account_Txn_Table
transaction_id
account_id
transaction_type
value
transaction_date
region
branch_name
Chúng ta có thể chọn phân vùng trên bất kỳ khóa nào. Hai chìa khóa khả thi có thể là
- region
- transaction_date
Giả sử doanh nghiệp được tổ chức ở 30 vùng địa lý và mỗi vùng có số lượng chi nhánh khác nhau. Điều đó sẽ cung cấp cho chúng tôi 30 phân vùng, đó là hợp lý. Việc phân vùng này là đủ tốt vì việc nắm bắt các yêu cầu của chúng tôi đã chỉ ra rằng phần lớn các truy vấn bị giới hạn trong khu vực kinh doanh của chính người dùng.
Nếu chúng tôi phân vùng theo ngày giao dịch thay vì khu vực, thì giao dịch mới nhất từ mọi khu vực sẽ nằm trong một phân vùng. Giờ đây, người dùng muốn xem dữ liệu trong khu vực của mình phải truy vấn trên nhiều phân vùng.
Do đó, cần xác định đúng khóa phân vùng.