Sử dụng và quản lý tổng hợp trong Power BI Desktop (Phần 2)

Trong phần trước chúng ta đã tìm hiểu về các tạo một bảng tổng hợp trong Power BI Desktop. Các bạn có thể xem lại ngay dưới đây trước khi đến với nội dung lần này, tổng hợp dựa trên các mối quan hệ.

Tham khảo: Sử dụng và quản lý tổng hợp trong Power BI Desktop (Phần 1)

1. Tổng hợp dựa trên các mối quan hệ

Mô hình thứ nguyên thường sử dụng tổng hợp dựa trên các mối quan hệ. Tập dữ liệu Power BI từ data warehouse và data marts giống như lược đồ hình sao hoặc bông tuyết, với mối quan hệ giữa bảng kích thước và bảng thực tế.

Trong mô hình dưới đây, từ một nguồn dữ liệu, các bảng đang sử dụng chế độ lưu trữ DirectQuery. Bảng Sales thực tế chứa hàng tỷ dòng. Đặt chế độ lưu trữ của Sales thành Import cho bộ nhớ đệm sẽ làm tiêu tốn bộ nhớ và chi phí quản lý.

Thay vào đó, tạo bảng tổng hợp Sales Agg. Trong bảng Sales Agg, số lượng các dòng bằng với tổng của SalesAmount được nhóm bởi CustomerKey, DateKey và ProductSubcategoryKey. Bảng Sales Agg ở mức độ chi tiết cao hơn Sales, vì thế thay vì hàng tỷ dòng, bảng này có thể chứa hàng triệu dòng nên rất dễ quản lý.

Nếu các bảng thứ nguyên dưới đây được dùng phổ biến cho các truy vấn có giá trị kinh doanh cao, chúng có thể lọc Sales Agg, sử dụng các mối quan hệ one-to-many hoặc many-to-one.

  • Geography
  • Customer
  • Date
  • Product Subcategory
  • Product Category

Hình ảnh dưới đây biểu diễn mô hình này.

Bảng dưới đây biểu diễn các tổng hợp cho bảng Sales Agg.

Lưu ý: Bảng Sales Agg giống như các bảng khác, nó có tính linh hoạt khi được tải theo nhiều cách khác nhau. Việc tổng hợp có thể được thực hiện trong cơ sở dữ liệu nguồn bằng các quy trình ETL/ELT hoặc bằng biểu thức M cho bảng.

Bảng tổng hợp có thể sử dụng chế độ lưu trữ Import, có hoặc không làm mới tăng dần trong Power BI Premium, hoặc nó có thể sử dụng DirectQuery và được tối ưu hóa cho các truy vấn nhanh bằng cách dùng chỉ mục columnstore. Tính linh hoạt này cho phép các kiến trúc cân bằng có thể phân tán tải truy vấn để tránh tắt nghẽn.

Thay đổi chế độ lưu trữ của bảng tổng hợp Sales Agg thành Import sẽ mở ra một hộp thoại cho biết các bảng thứ nguyên liên quan có thể được đặt thành chế độ lưu trữ Dual.

Cài đặt các bảng thứ nguyên có liên quan thành Dual cho phép chúng hoạt động như là Import hoặc DirectQuery, tùy thuộc vào truy vấn con. Trong ví dụ:

  • Các truy vấn tổng hợp số liệu từ bảng Sales Agg ở chế độ Import và nhóm theo các thuộc tính từ các bảng Dual có liên quan, có thể trả về từ bộ nhớ đệm trong bộ nhớ.
  • Các truy vấn tổng hợp số liệu từ bảng DirectQuery Sales và nhóm các thuộc tính từ các bảng Dual liên quan, có thể trả về chế độ DirectQuery. Logic truy vấn, bao gồm hoạt động Group By, được chuyển đến cơ sở dữ liệu nguồn.
2. Mối quan hệ regular và limited

Tổng hợp lượt truy cập dựa trên mối quan hệ yêu cầu mối quan hệ regular (thông thường).

Mối quan hệ thông thường bao gồm các kết hợp chế độ lưu trữ dưới đây. Trong đó, cả hai bảng đều từ một nguồn duy nhất:

Trường hợp duy nhất mà mối quan hệ nhiều nguồn được xem là thông thường là nếu cả hai bảng được đặt thành Import. Mối quan hệ Many-to-many luôn luôn được xem là limited.

3. Ví dụ về truy vấn tổng hợp dựa trên mối quan hệ

Truy vấn sau truy cập tổng hợp, bởi vì, các cột trong bảng Date ở mức độ chi tiết có thể đạt được tính tổng hợp. Cột SalesAmount sử dụng tổng hợp Sum.

Truy vấn sau không đạt tới tổng hợp mặc dù, yêu cầu tổng hợp của SalesAmount,  truy vấn đang thực hiện thao tác GroupBy trên một cột trong bảng Product, cột này không ở mức độ chi tiết có thể đạt được tổng hợp.

Nếu bạn quan sát các mối quan hệ trong model (mô hình), một danh mục sản phẩm phụ có thể có nhiều dòng Product (sản phẩm). Truy vấn sẽ không thể xác định sản phẩm nào cần tổng hợp. Trong trường hợp này, truy vấn sẽ hoàn nguyên về DirectQuery và gửi truy vấn SQL tới nguồn dữ liệu.

Tổng hợp không chỉ dành cho các phép tính đơn giản thực hiện một tổng. Các phép tính phức tạp cũng có thể hưởng lợi, về mặt khái niệm, một phép tính phức tạp được chia thành các truy vấn con cho mỗi SUM, MIN, MAX, và COUNT và mỗi truy vấn con được đánh giá để xác định xem nó có thể đạt được tổng hợp hay không. Logic này không đúng trong mọi trường hợp do tối ưu hóa kế hoạch truy vấn nhưng nhìn chung nó nên được áp dụng. Ví dụ dưới đây đạt tới tổng hợp.

Hàm COUNTROWS có thể được hưởng lợi từ các tổng hợp. Truy vấn sau truy cập tập hợp vì có một tổng hợp Count table rows được xác định bằng bảng Sales.

Hàm AVERAGE cũng có thể hưởng lợi từ các tổng hợp. Truy vấn sau đạt tới tổng hợp bởi vì AVERAGE bên trong được gấp lại thành SUM chia cho COUNT. Vì cột UnitPrice có các tổng hợp được xác định cho cả SUM và COUNT, nên đạt được tổng hợp.

Trong một vài trường hợp, hàm DISTINCTCOUNT có thể hưởng lợi từ tổng hợp. Truy vấn dưới đây đạt tổng hợp bởi vì có một GroupBy cho CustomerKey, mục này duy trì tính khác biệt trong bảng tổng hợp. Kỹ thuật này vẫn có thể đạt đến ngưỡng hiệu suất, trong đó, hơn hai đến năm triệu giá trị khác biệt có thể ảnh hưởng đến hiệu suất truy vấn.

Tuy nhiên, nó lại có thể hữu ích trong các trường hợp có hàng tỷ hàng trong bảng chi tiết nhưng có hai đến năm triệu giá trị khác biệt trong cột. Trong trường hợp này, DISTINCTCOUNT có thể hoạt động nhanh hơn so với việc quét bảng  có hàng tỷ hàng, ngay cả khi nó được lưu vào bộ nhớ.

Các hàm thời gian thông minh DAX nhận biêt tổng hợp. Truy vấn sau đạt đến tổng hợp bởi vì hàm DATESYTD tạo bảng các giá trị CalendarDay và bảng tổng hợp ở mức chi tiết được bao phủ cho từng cột trong bảng Date. Đây là một ví dụ về bộ lọc có giá trị bảng đối với hàm CALCULATE, hàm này có thể hoạt động với các tổng hợp.

Kết thúc phần thứ hai của bài viết về quản lý tổng hợp trong Power BI tại đây. Đừng quên theo dõi các phần tiếp theo sẽ được gửi đến bạn đọc tại website bacs.vn. Ngoài ra, các bạn muốn trang bị những kiến thức nền tảng về phân tích dữ liệu và trực quan dữ liệu hãy tham gia ngay khóa học Power BI tại BAC.

Đọc tiếp phần 3 tại đây nhé: Sử dụng và quản lý tổng hợp trong Power BI Desktop (Phần 3)

Nguồn tham khảo:
https://docs.microsoft.com/

Nhu cầu đào tạo doanh nghiệp

BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo: 

 

Previous Post
Next Post
Exit mobile version