User-defined aggregations trong PBI

 User-defined aggregations: Ánh xạ truy vấn

Ví Dụ Cụ Thể

Giả sử bạn có một bảng dữ liệu bán hàng Sales chứa 400 triệu hàng, với các cột như OrderDate, ProductID, Quantity, và TotalAmount. Bạn muốn tạo báo cáo tổng doanh thu theo tháng.

Bảng Chi Tiết (Detail Table)

•  Sales (400 triệu hàng)

•  OrderDate

•  ProductID

•  Quantity

•  TotalAmount

Bảng Tổng Hợp (Aggregation Table)

•  Sales_Agg (tổng hợp theo tháng)

•  Month

•  TotalSales

Bạn tạo bảng tổng hợp Sales_Agg chứa tổng doanh thu theo tháng:

Sales_Agg = SUMMARIZE(Sales, Sales[Month], "TotalSales", SUM(Sales[TotalAmount]))


Ánh Xạ Truy Vấn

Khi bạn tạo báo cáo trong Power BI để hiển thị tổng doanh thu theo tháng, Power BI sẽ tự động kiểm tra xem liệu có bảng tổng hợp nào có thể sử dụng để trả lời truy vấn này hay không. Nếu có, Power BI sẽ chuyển hướng truy vấn từ bảng chi tiết Sales sang bảng tổng hợp Sales_Agg.


Cải Thiện Hiệu Suất:

•  Không Ánh Xạ: Nếu không có ánh xạ, Power BI sẽ phải quét toàn bộ 400 triệu hàng trong bảng Sales để tính tổng doanh thu theo tháng, điều này rất tốn thời gian và tài nguyên.

•  Có Ánh Xạ: Với ánh xạ, Power BI chỉ cần truy vấn bảng Sales_Agg đã được tổng hợp, giúp giảm đáng kể thời gian xử lý và tăng tốc độ phản hồi.


Tối Ưu Hóa Tài Nguyên:

•  Giảm tải cho hệ thống bằng cách xử lý ít dữ liệu hơn.

•  Tăng hiệu quả sử dụng bộ nhớ và CPU, đặc biệt quan trọng khi làm việc với các tập dữ liệu lớn.


•  Không Ánh Xạ: Truy vấn tổng doanh thu theo tháng phải quét toàn bộ bảng Sales (400 triệu hàng).

•  Có Ánh Xạ: Truy vấn tổng doanh thu theo tháng chỉ cần quét bảng Sales_Agg (chỉ vài chục hàng, mỗi hàng đại diện cho một tháng).


Kết Luận

Ánh xạ truy vấn tới dữ liệu tổng hợp giúp Power BI tối ưu hóa hiệu suất và tài nguyên, đặc biệt khi làm việc với các tập dữ liệu lớn. Điều này đảm bảo rằng các báo cáo và phân tích của bạn nhanh chóng và hiệu quả hơn.


Để sử dụng hiệu quả "ánh xạ" truy vấn trong Power BI, bạn cần có một tầm nhìn chiến lược về cách tổ chức và quản lý dữ liệu. Dưới đây là một số yếu tố quan trọng cần xem xét:


Tầm Nhìn Chiến Lược

Hiểu Rõ Yêu Cầu Phân Tích:

•  Xác định các truy vấn và báo cáo thường xuyên được sử dụng.

•  Hiểu rõ các chỉ số và thước đo quan trọng đối với doanh nghiệp.


Thiết Kế Mô Hình Dữ Liệu:

•  Tạo các bảng chi tiết và bảng tổng hợp phù hợp với yêu cầu phân tích.

•  Đảm bảo rằng các bảng tổng hợp chứa các dữ liệu cần thiết để trả lời các truy vấn thường xuyên.

Thiết Lập Tổng Hợp:

•  Sử dụng tính năng Manage aggregations trong Power BI Desktop để định nghĩa các tổng hợp.

•  Xác định các thuộc tính như Summarization, Detail Table, và Detail Column.


Kiểm Tra và Tối Ưu Hóa:

•  Kiểm tra rằng các truy vấn được ánh xạ đúng tới các bảng tổng hợp.

•  Tối ưu hóa các bảng tổng hợp để đảm bảo hiệu suất tốt nhất.


Ví Dụ Cụ Thể

Giả sử bạn quản lý một hệ thống bán hàng lớn và cần tạo báo cáo tổng doanh thu theo tháng:

1. Hiểu Yêu Cầu:

•  Báo cáo tổng doanh thu theo tháng là một yêu cầu thường xuyên.

2. Thiết Kế Mô Hình:

•  Bảng chi tiết Sales chứa dữ liệu bán hàng hàng ngày.

•  Bảng tổng hợp Sales_Agg chứa tổng doanh thu theo tháng.


1. Thiết Lập Tổng Hợp:

•  Sử dụng Manage aggregations để định nghĩa tổng hợp cho cột TotalSales trong bảng Sales_Agg.

2. Kiểm Tra:

•  Kiểm tra rằng các truy vấn tổng doanh thu theo tháng được chuyển hướng tới bảng Sales_Agg.


User-defined aggregations trong PBI vs SQL

Để làm rõ hơn về khái niệm ánh xạ truy vấn tới dữ liệu tổng hợp trong Power BI, hãy so sánh với một lệnh SQL tương đương.

Ví Dụ Cụ Thể
Giả sử bạn có một bảng Sales trong cơ sở dữ liệu SQL với cấu trúc tương tự như trong Power BI:

Bảng Chi Tiết (Detail Table)
CREATE TABLE Sales (
OrderDate DATE,
ProductID INT,
Quantity INT,
TotalAmount DECIMAL(18, 2)
);

Bảng Tổng Hợp (Aggregation Table)
CREATE TABLE Sales_Agg (
Month DATE,
TotalSales DECIMAL(18, 2)
);

Bạn tạo bảng tổng hợp Sales_Agg chứa tổng doanh thu theo tháng:

INSERT INTO Sales_Agg (Month, TotalSales)
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, OrderDate), 0) AS Month,
SUM(TotalAmount) AS TotalSales
FROM Sales
GROUP BY DATEADD(MONTH, DATEDIFF(MONTH, 0, OrderDate), 0);

Truy Vấn SQL
Không Ánh Xạ (Truy Vấn Trực Tiếp Bảng Chi Tiết)
Nếu không có bảng tổng hợp, bạn sẽ phải truy vấn trực tiếp bảng Sales để tính tổng doanh thu theo tháng:

SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, OrderDate), 0) AS Month,
SUM(TotalAmount) AS TotalSales
FROM Sales
GROUP BY DATEADD(MONTH, DATEDIFF(MONTH, 0, OrderDate), 0);

•  Nhược điểm: Truy vấn này phải quét toàn bộ bảng Sales với 400 triệu hàng, rất tốn thời gian và tài nguyên.

Có Ánh Xạ (Truy Vấn Bảng Tổng Hợp)
Nếu có bảng tổng hợp, bạn có thể truy vấn trực tiếp bảng Sales_Agg:

SELECT Month, TotalSales
FROM Sales_Agg;

•  Ưu điểm: Truy vấn này chỉ cần quét bảng Sales_Agg với số lượng hàng ít hơn nhiều, giúp tăng tốc độ truy vấn và giảm tải cho hệ thống.

So Sánh Với Power BI
Trong Power BI, khi bạn thiết lập user-defined aggregations, Power BI sẽ tự động ánh xạ các truy vấn từ bảng chi tiết Sales sang bảng tổng hợp Sales_Agg nếu có thể. Điều này tương tự như việc bạn viết truy vấn SQL để truy vấn trực tiếp bảng tổng hợp thay vì bảng chi tiết.

Nhận xét