Giới thiệu

Trong bài viết Cách phân vùng SSAS Cube trong Dịch vụ Phân tích Đa chiều, chúng tôi đã giải thích cách bạn có thể phân vùng các nhóm đo lường của mình trong một khối SSAS. Trong bài viết này, chúng ta sẽ xem xét những lợi ích mong đợi của chiến lược phân vùng. Thời gian để gặt hái những lợi ích từ công việc khó khăn của chúng tôi.

Lợi ích phân vùng

Lợi ích đầu tiên trở nên rõ ràng sau khi chúng tôi triển khai khối lập phương, trong quá trình xử lý:

Tất cả các phân vùng có thể được đọc và xử lý song song, điều này tối đa hóa thông lượng (đặc biệt nếu bạn lưu chúng trên các đĩa riêng biệt) và có thể giảm thời gian xử lý nhóm đo lường của bạn. Số lượng xử lý giảm phụ thuộc vào số lượng bộ xử lý mà SSAS có sẵn.

Có những lợi ích khác liên quan đến quá trình xử lý:

  • Nếu các phân vùng không được cập nhật nữa, bạn không cần thực hiện Quy trình đầy đủ về họ. Ví dụ: nếu bạn phân vùng theo thứ nguyên thời gian và bạn chỉ thêm các hàng mới (bạn không cập nhật các hàng cũ hơn), bạn chỉ cần thực hiện Quy trình đầy đủ trên phân vùng mới nhất của mình. Tất cả các phân vùng khác cần một Chỉ mục quy trình để cập nhật các chỉ mục và tổng hợp với những thay đổi mới nhất về thứ nguyên. Điều này cũng có thể làm giảm đáng kể thời gian xử lý, vì bạn không cần phải đọc dữ liệu từ đĩa cho tất cả các phân vùng cũ hơn. Hãy nhớ rằng nếu bạn thực hiện Quy trình đầy đủ trên một thứ nguyên, các phân vùng từ các nhóm đo lường được liên kết sẽ không được xử lý. Để thiết lập này hoạt động, tất cả các thứ nguyên phải được xử lý với Process Update.

  • Bạn có thể chọn lưu trữ các phân vùng cũ hơn – ít được truy cập hơn – bằng ROLAP và các phân vùng được truy cập thường xuyên, gần đây nhất của bạn bằng MOLAP. Trong trường hợp đó, bạn chỉ cần xử lý các phân vùng gần đây nhất của mình. Có một tác động về hiệu suất đối với các phân vùng cũ hơn, nhưng vì chúng ít được đọc hơn nên điều này có thể chấp nhận được.

Bạn cũng có thể lưu trữ các phân vùng cũ hơn trên các đĩa rẻ hơn, ít nhanh hơn và các phân vùng gần đây nhất của bạn trên các đĩa nhanh hơn đắt tiền hơn (chẳng hạn như SSD). Quá trình xử lý sẽ không được lợi từ điều này, nhưng nó có thể giúp bạn tiết kiệm chi phí trên các đĩa đắt tiền nếu bạn có một khối rất lớn.

Tuy nhiên, một trong những lợi ích quan trọng nhất không liên quan đến thời gian xử lý, mà là hiệu suất truy vấn. Khi bạn đã xác định phân vùng và truy vấn MDX của bạn chỉ chọn dữ liệu từ một phân vùng nhất định, tất cả các phân vùng khác sẽ không được đọc. Điều này có thể làm giảm đáng kể thời gian phản hồi truy vấn của bạn. Cái này được gọi là partition elimination. Hãy xem một ví dụ.

Đầu tiên, chúng tôi khởi động trình biên dịch để có thể theo dõi các truy vấn được gửi đến khối lập phương, nhưng cũng tìm ra phân vùng nào đang được đọc từ đĩa. Tạo một dấu vết mới.

Kết nối với phiên bản SSAS của bạn.

Trong tab Lựa chọn sự kiện, chỉ giữ lại các sự kiện từ các phần Báo cáo tiến độ, Sự kiện truy vấnKhối con truy vấn đã chọn.

Nhấp chuột Chạy để bắt đầu theo dõi. Trong Management Studio, chúng ta sẽ duyệt khối lập phương để tạo một số truy vấn MDX.

Hãy kéo trong Hệ thống phân cấp lịch và thước đo Tổng số không bao gồm thuế.

Khi chúng ta xem xét dấu vết, chúng ta có thể thấy tất cả các phân vùng đã được đọc:

Mặc dù không có loại bỏ phân vùng cho truy vấn cụ thể này, nhưng nó có thể được hưởng lợi từ việc thực thi song song trên các phân vùng khác nhau.

Hãy tạo bộ lọc bằng cách sử dụng thuộc tính Lãnh thổ bán hàng.

Khi chúng ta nhìn vào dấu vết của Hồ sơ, bây giờ chúng ta có thể thấy chỉ một phân vùng duy nhất đã được đọc:

Nếu chúng ta có một khối lập phương rất lớn với dữ liệu được phân bổ đồng đều trên tất cả 7 phân vùng của chúng ta, chi phí đọc dữ liệu sẽ là 1/7thứ tự của truy vấn ban đầu!

Lát phân vùng

Nhưng làm thế nào SSAS biết được phân vùng nào cần loại bỏ? Điều này được thực hiện bằng cách sử dụng partition slicemột thuộc tính của phân vùng.

Bạn có thể đặt thuộc tính này theo cách thủ công. Đối với phân vùng Viễn Tây, đây sẽ là [City].[Sales Territory]. &[Far West]. Bạn có thể kéo và thả thành viên thích hợp vào trình chỉnh sửa biểu thức:

Bây giờ SSAS biết phân vùng chỉ bao gồm dữ liệu cho Lãnh thổ bán hàng cụ thể này. Đối với lưu trữ MOLAP, SSAS tự động phát hiện dữ liệu nào được tải vào một phân vùng và nó sẽ thiết lập lát cắt cho phù hợp (trong nội bộ, bạn sẽ không thấy sự thay đổi trong thuộc tính lát cắt). Tuy nhiên, đây không phải là 100% chống thấm nước. Để có cấu hình tối ưu, bạn nên đặt các lát theo cách thủ công.

Có thể chẳng hạn như SSAS không thể phát hiện ra phần nào để đặt cho Others, vì nó bao gồm nhiều thành viên. Trong trường hợp đó, SSAS có thể đặt lát cắt lên cấp cao hơn của hệ thống phân cấp – trong trường hợp này là TẤT CẢ thành viên – thay vì sử dụng HOẶC để nối các thành viên lại với nhau trong một lát. Điều này có nghĩa là phân vùng có thể được quét để tìm các truy vấn, trong khi dữ liệu không cần thiết.

Hãy minh họa bằng một ví dụ khác: nếu bạn có một phần vào Q1 và Q2 năm 2016, SSAS có thể tạo phần trên thành viên phổ biến thấp nhất: năm. Nếu bạn truy vấn quý đầu tiên, dữ liệu của cả năm có thể được đọc.

Cho Otherschúng ta có thể đặt lát cắt bằng cách sử dụng set expression:

Chúng tôi có thể xác minh rằng nó hoạt động khi chúng tôi đặt bộ lọc thành Rocky Mountain và bên ngoài:

Có một số lý do tại sao loại bỏ phân vùng có thể không phải lúc nào cũng hoạt động như bạn mong đợi. Ví dụ, mối quan hệ nhiều-nhiều có thể ngăn không cho phân vùng bị loại bỏ nếu phân vùng được xác định trên thứ nguyên trung gian. Chris Webb giải thích điều này trong bài đăng trên blog Mối quan hệ nhiều-nhiều và các lát cắt phân vùng.

Một vấn đề khác có thể phát sinh nếu bạn sử dụng thuộc tính có nhiều cột làm thuộc tính khóa của nó. Giả sử bạn có một Năm tháng , trong đó các cột chính được xác định bằng thuộc tính Năm và thuộc tính Tháng. Thứ tự mà bạn chỉ định các cột chính có thể có tác động đến cách dữ liệu được cấu trúc bên trong. Nếu bạn chỉ định tháng trước và sau đó là năm, dữ liệu có thể được cấu trúc như sau:

Tháng 1 Năm 1, Tháng 1 Năm 2, Tháng 1 Năm 3, Tháng 2 Năm 1, Tháng 2 Năm 2…

Trên thực tế, trước tiên chúng ta sẽ phân chia theo Năm và sau đó là Tháng. Bạn có thể tìm thêm thông tin về loại hành vi này trong phần Liên kết Tham khảo.

Sự kết luận

Có nhiều lợi ích rõ ràng của các nhóm biện pháp phân vùng:

  • Thời gian xử lý nhanh hơn do xử lý song song các phân vùng

  • Bạn cũng có thể xử lý các phân vùng được chọn chỉ chứa dữ liệu gần đây, giảm thêm thời gian xử lý.

  • Bạn có thể giảm chi phí bằng cách đặt các phân vùng có dữ liệu cũ hơn trên các đĩa chậm hơn và rẻ hơn. Bạn cũng có thể lưu trữ các phân vùng cũ bằng chế độ lưu trữ ROLAP.

  • Do loại bỏ phân vùng, thời gian phản hồi truy vấn có thể giảm đáng kể nếu chỉ cần đọc một tập con nhỏ của các phân vùng. Đặt lát phân vùng theo cách thủ công để có trải nghiệm tối ưu.

Bài trước trong loạt bài này:

Bài tiếp theo trong loạt bài này: