Blog

Các phương pháp giản lược dữ liệu trong Power BI

Bạn khó chịu khi dữ liệu trong Power BI của bạn quá lớn khiến phải đợi các câu truy vấn cập nhật hay thậm chí chờ để chạy những tính toán trong báo cáo? Nếu vây, bài viết này là dành cho bạn. Khi bạn xây dựng báo cáo, trải nghiệm người dùng là một điều quan trọng và để tối ưu điều này, đôi khi chúng ta cần các phương pháp để giản lược dữ liệu có trong mô hình. Hôm nay mình sẽ cung cấp cho các bạn nhiều cách khác nhau để giúp giảm dữ liệu được tải vào các mô hình nhập dữ liệu.

Sau khi chúng ta thực hiện các quy trình trong Power Query, dữ liệu này khi được tải vào Power BI đã được nén và tối ưu hóa, sau đó sẽ lưu trữ vào ổ đĩa lưu trữ bởi VertiPaq. Khi dữ liệu nguồn được tải vào bộ nhớ, mức nén dữ liêu là 10x, tức là với 10 GB dữ liệu có thể nén ở kích thước khoảng 1 GB là hợp lý. Hơn nữa, nếu tiếp tục duy trì ổ đĩa thì ta có thể giảm thêm 20%.

Mặc dù sự hiệu quả của công cụ lưu trữ VertiPaq rất tốt nhưng bạn vẫn cần cố gắng giảm thiểu dữ liệu sẽ được tải vào các mô hình của mình. Điều này đặc biệt đúng đối với các mô hình lớn hoặc các mô hình mà bạn dự đoán sẽ phát triển trở nên lớn hơn theo thời gian. Có 4 nguyên nhân sau:

  • Sự hỗ trợ về dung lượng dữ liệu của bạn có giới hạn. Dung lượng chia sẻ có thể lưu trữ các model có kích thước lên đến 1 GB, trong khi dung lượng Premium sẽ lưu lên đến 13 GB. Để biết thêm thông tin, hãy đọc bài viết Power BI Premium support for large datasets
  • Kích thước mô hình nhỏ hơn thì bộ nhớ lưu trữ sẽ cho phép nhiều mô hình được tải vào cùng lúc trong thời gian dài hơn nên tỷ lệ loại bỏ mô hình sẽ thấp hơn. Để biết thêm thông tin, hãy xem Managing Premium capacities.
  • Các model nhỏ sẽ đạt tốc độ làm mới dữ liệu nhanh hơn nên mức độ xử lý các báo cáo sẽ nhanh hơn. Mức độ làm mới tập dữ liệu càng cao thì hệ thống nguồn dữ liệu và bộ nhớ sẽ hoạt động rất tốt.
  • Số lượng hàng trong bảng không quá nhiều thì việc đánh giá tính toán nhanh hơn. Nên nó sẽ mang lại hiệu suất truy vấn thống kể tổng thể tốt hơn.

Có 8 phương pháp để điều chỉnh giản lược dữ liệu, bao gồm:

  • Loại bỏ cột không cần thiết
  • Loại bỏ các hàng không cần thiết
  • Tạo thành nhóm và tóm tắt
  • Tối ưu hóa các kiểu dữ liệu cột
  • Tùy chỉnh cho các cột
  • Dừng tải truy vấn Power Query
  • Dừng cập nhật ngày/ giờ tự động
  • Chuyển sang chế độ Mixed

Loại Bỏ Cột Không Cần Thiết

Cột bảng thực hiện 2 mục đích chính đó là:

  • Báo cáo: các cột bổ giúp đạt được các thiết kế báo cáo phù hợp với bộ lọc, nhóm và tóm tắt dữ liệu model
  • Định hình cấu trúc model qua sự hỗ trợ các relationships, các phép tính, vai trò bảo mật và thậm chí cả định dạng màu dữ liệu.

Những cột nào không có vai trò trên cũng sẽ bị loại bỏ. Hoạt động này còn được gọi là lọc dọc (vertical filtering)

Bạn nên thiết kế với chính xác số cột phù hợp dựa trên các yêu cầu báo cáo đề ra. Các yêu cầu của bạn có thể thay đổi theo thời gian, nhưng lưu ý rằng việc thêm cột sau này sẽ dễ dàng hơn là xóa chúng vì khi bạn bỏ các cột sau khi hoàn thành báo cáo thì nó có thể sẽ phá vỡ báo cáo hoặc cấu trúc model của bạn.

Loại Bỏ Hàng Không Cần Thiết

Các bảng nên được tải với càng ít hàng càng tốt vì thông qua các tập hợp hàng đã lọc vào các bảng mô hình vì có hai lý do sau: lọc theo thực thể hoặc theo thời gian. Loại bỏ hàng được gọi là lọc ngang.

Lọc theo thực thể bao gồm việc tải một tập hợp con dữ liệu nguồn vào model. Ví dụ: thay vì tải dữ kiện bán hàng cho tất cả các khu vực bán hàng thì ta chỉ cần tải dữ liệu cho một khu vực. Cách tiếp cận thiết kế này sẽ tạo ra nhiều model nhỏ hơn. Ngoài ra bộ lọc này loại bỏ xác định bảo mật row-level security nhưng sẽ yêu cầu cấp quyền cho tập dữ liệu cụ thể trong Power BI Service và tạo báo cáo “trùng lặp” kết nối với từng tập dữ liệu. Bạn có thể tận dụng việc sử dụng các tham số Power Query và các mẫu template trên Power BI để đơn giản hóa việc quản lý và xuất báo cáo. Để biết thêm thông tin, hãy đọc mục Deep Dive into Query Parameters and Power BI Templates

Lọc theo thời gian liên quan đến việc giới hạn lịch sử dữ liệu được tải vào các bảng dữ kiện fact table và giới hạn các hàng về date được tải vào bảng date. Bạn không nên tự động tải tất cả lịch sử có sẵn, trừ khi đó là một yêu cầu báo cáo đã cho. Chúng ta sẽ thấy rất hữu ích nếu biết bộ lọc Power Query dựa trên thời gian có thể được tham số hóa và thậm chí được đặt để sử dụng khoảng thời gian tương đối (liên quan đến làm mới date, ví dụ: trong thời gian 5 năm qua). Ngoài ra, các thay đổi đối với bộ lọc thời gian sẽ không ảnh hưởng đến mô hình các báo cáo mà nó sẽ chỉ dẫn đến ít hơn (hoặc nhiều hơn) lịch sử dữ liệu có sẵn trong báo cáo.

Tạo Thành Nhóm Hoặc Tóm Tắt

Đây là phương pháp hiệu quả nhất để giảm kích thước model đó là tải dữ liệu tóm tắt trước. Phương pháp này có thể được sử dụng để nâng cao tổng thể của các bảng fact table. Tuy nhiên, phương pháp này có thể dẫn đến mất các thông tin chi tiết trong bảng dữ liệu.

Ví dụ: bảng thông tin bán hàng sẽ hiển thị mỗi hàng tương ứng với một đơn order. Ta có thể giảm dữ liệu đáng kể bằng cách tổng hợp tất cả các chỉ số bán hàng, phân nhóm theo ngày, khách hàng và sản phẩm. Sau đó bạn có thể tiếp tục giảm dữ liệu đáng kể hơn bằng cách nhóm theo ngày ở cấp tháng. Nó có thể giúp giảm kích thước model lên đến 99%, nhưng báo cáo ở cấp độ ngày hoặc cấp độ đơn đặt hàng riêng lẻ sẽ không còn khả thi nữa. Quyết định tóm tắt dữ liệu fact table luôn liên quan đến mức độ nhất định và còn có thể dùng phương thức thiết kế mô hình Mixed để thực hiện thao tác tóm tắt dữ liệu. Thủ thuật Mixed được mô tả sau hơn trong bài Switch to Mixed mode

Tối Ưu Hoá Dạng Cột Dữ Liệu

Công cụ lưu trữ VertiPaq sử dụng cấu trúc dữ liệu riêng biệt cho mỗi cột. Các cấu trúc dữ liệu này được tối ưu hóa cao nhất cho dữ liệu cột về giá trị số như là sử dụng mã hóa giá trị. Tuy nhiên, một số dữ liệu cột định dạng văn bản (text) không phải là giá trị số nên nó yêu cầu công cụ lưu trữ chỉ định một số nhận dạng cho mỗi giá trị văn bản duy nhất có trong cột. Sau đó, quá trình này sẽ lưu các giá trị số trong cấu trúc dữ liệu và sử dụng cho các yêu cầu tra cứu hàm trong quá trình lưu trữ và truy vấn.

Trong một số trường hợp cụ thể, bạn có thể chuyển đổi dữ liệu văn bản thành giá trị số. Ví dụ: số đơn đặt hàng có thể luôn được đặt trước bằng một kí tự văn bản (ví dụ: “SO123456”). Vì vậy ta có thể xoá kí tự văn bản để giá trị số đơn đặt hàng chuyển đổi thành số nguyên. Đối với các bảng có quy mô dữ liệu lớn có thể làm giảm dữ liệu đáng kể, đặc biệt khi cột chứa các giá trị số lượng đặc biệt.

Trong ví dụ này, chúng tôi khuyên bạn nên cài đặt Default Summarization của cột thành “Do Not Summarize” nó sẽ hạn chế việc tóm tắt không phù hợp các giá trị số đơn hàng.

Tuỳ Chỉnh Các Cột

Công cụ VertiPaq lưu trữ các cột được tính toán trong hàm DAX giống như Power Query của các cột ban đầu thông thường. Tuy nhiên, cấu trúc dữ liệu được lưu trữ hơi khác và thường đạt được độ nén kém hiệu quả hơn. Ngoài ra, chúng được tạo sau khi tất cả các bảng Power Query được tải, điều này có thể kéo dài thời gian làm mới dữ liệu. Do đó, việc thêm các cột trong bảng dưới dạng các cột đã thực hiện tính toán sẽ kém hiệu quả hơn các cột được tính toán trong Power Query trong ngôn ngữ M.

Tạo các cột tùy chỉnh trong Power Query là khi các nguồn là cơ sở dữ liệu thì sẽ đạt hiệu quả tải cao hơn theo hai cách. Các phép tính được xác định trong câu lệnh SQL (sử dụng ngôn ngữ truy vấn gốc từ nguồn cung cấp) hoặc nó có thể được thực hiện dưới dạng một cột trong nguồn dữ liệu.

Tuy nhiên, trong một số trường hợp model sẽ tính toán các cột có thể là lựa chọn tốt hơn vì khi công thức liên quan đến các measure hoặc nó yêu cầu chức năng cụ thể chỉ hỗ trợ trong các hàm DAX. Để biết thông tin về một ví dụ như vậy, hãy tham khảo phần Understanding functions for parent-child hierarchies in DAX

Ngừng Truyền Tải Truy Vấn Power Query

Truy vấn Power Query hỗ trợ tích hợp dữ liệu với các truy vấn khác vào trong báo cáo. Khi muốn tránh tải truy vấn (có thể sử dụng ở Power Query nhưng không tải vào Power BI) thì hãy đảm bảo rằng bạn đã tắt tải query trong một số trường hợp nhất định.

Ngừng Cập Nhật Tự Động Ngày/Thời Gian

Power BI Desktop bao gồm một tùy chọn như cập nhật Ngày / giờ tự động (Auto date/time) . Khi chức năng này được bật, nó sẽ tạo bảng ngày / giờ tự động ẩn cho các cột date để hỗ trợ người làm báo cáo khi định hình bộ lọc, tạo nhóm và xem chi tiết các khoảng thời gian trên lịch. Các bảng ẩn trên thực tế là các bảng được tính toán sẽ làm tăng kích thước của báo cáo. Để biết hướng dẫn về cách sử dụng tùy chọn này, hãy tham khảo bài viết Auto date/time guidance in Power BI Desktop

Chuyển Sang Chế Độ Mixed

Trong Power BI Desktop, chế độ Mixed tạo ra một Composite model. Thực ra nó cho phép bạn lưu giữ dữ liệu cho mỗi bảng. Vì thế, mỗi bảng sẽ có chế độ Storage như Import hoặc DirectQuery.

Một thủ thuật hiệu quả để giảm kích thước model là cài đặt ở Chế độ lưu trữ (Storage Mode) cho các bảng fact table lớn hơn thành DirectQuery. Lưu ý khi tiếp cận thiết kế này thì nó có thể hoạt động tốt khi kết hợp với phương pháp Tạo thành nhóm hoặc tóm tắt được giới thiệu trước đó. Ví dụ: dữ liệu bán hàng tóm tắt có thể được sử dụng để cho ra 1 bản báo cáo “tóm tắt” chất lượng. Nhưng một trang xem chi tiết có thể hiển thị doanh số bán hàng đầy đủ thông qua bộ lọc cụ thể, hiển thị tất cả các đơn hàng bán hàng theo từng mục tiêu. Trong ví dụ này, trang xem chi tiết sẽ bao gồm hình ảnh dựa trên bảng DirectQuery để truy xuất dữ liệu đơn đặt hàng bán hàng.

Tuy nhiên, có sự liên quan về bảo mật và chất lượng đến Composite model. Để biết thêm thông tin, hãy đọc bài viết Use composite models in Power BI Desktop

Nguồn: Internet

Bài viết được sưu tầm trên mạng với mục đích chia sẻ kiến thức tới mọi người

Leave a Reply

Your email address will not be published. Required fields are marked *