Kiến thức
13 phút đọc

Quản Lý Chế Độ Lưu Trữ

Trong Microsoft Power BI Desktop, bạn có thể thiết đặt chế độ lưu trữ của một bảng. Chế độ lưu trữ cho phép bạn kiểm soát xem Power BI Desktop có lưu dữ liệu bảng vào bộ nhớ cache trong bộ nhớ cho các báo cáo hay không.

Việc thiết đặt các chế độ lưu trữ của bảng cung cấp các lợi ích sau:

  • Hiệu suất truy vấn: Khi sử dụng hình ảnh trong báo cáo Power BI, truy vấn DAX sẽ được gửi tới tập dữ liệu. Cài đặt chế độ lưu trữ đúng cách có thể tăng hiệu suất truy vấn và tính tương tác của báo cáo.
  • Bộ dữ liệu lớn: Không lưu bảng trong bộ nhớ cache sẽ giảm tải bộ nhớ. Kích hoạt phân tích tương tác trong dữ liệu lớn hoặc tải phức tạp để lưu trong cache. Chọn bảng cần lưu trong bộ nhớ đệm và bảng không.
  • Tối ưu hóa làm mới dữ liệu: Không cần làm mới bảng không lưu trong bộ nhớ cache. Giảm thời gian làm mới bằng cách chỉ lưu dữ liệu cần thiết vào bộ đệm để đáp ứng yêu cầu kinh doanh và thỏa thuận cấp độ dịch vụ.
  • Yêu cầu gần thời gian thực: Các bảng có yêu cầu gần thời gian thực có thể được hưởng lợi từ việc không được lưu vào bộ đệm để giảm độ trễ dữ liệu.
  • Ghi lại: Để khám phá tình huống xảy ra khi thay đổi giá trị ô, người dùng doanh nghiệp có thể sử dụng các ứng dụng tùy chỉnh. Chúng áp dụng thay đổi vào nguồn dữ liệu. Bảng không lưu trong bộ nhớ cache có thể hiển thị ngay lập tức thay đổi, hỗ trợ phân tích tức thời hiệu ứng.

Cài đặt chế độ lưu trữ trong Power BI Desktop là một trong ba tính năng liên quan:

  • Mô hình tổng hợp: Cho phép báo cáo có hai hoặc nhiều kết nối dữ liệu. Bao gồm kết nối DirectQuery hoặc Nhập, trong bất kỳ kết hợp nào. Để biết thêm thông tin, hãy xem Sử dụng các mô hình tổng hợp trong Power BI Desktop.
  • Mối quan hệ nhiều-nhiều: Các mô hình tổng hợp cho phép thiết lập mối quan hệ nhiều-nhiều giữa bảng. Mối quan hệ nhiều-nhiều loại bỏ yêu cầu với giá trị duy nhất trong bảng. Loại bỏ các giải pháp cũ, chẳng hạn như chỉ giới thiệu bảng mới. Xem thêm thông tin về Mối quan hệ nhiều-nhiều trong Power BI Desktop.
  • Chế độ lưu trữ: Bây giờ, bạn có thể chỉ định hình ảnh yêu cầu truy vấn cho các nguồn dữ liệu phụ trợ. Hình ảnh không yêu cầu truy vấn có thể nhập trực tiếp, dù dựa trên DirectQuery. Tính năng này giúp hiệu suất tăng và giảm tải back-end. Trước đây, ngay cả hình ảnh đơn giản như máy cắt cũng gửi truy vấn đến các nguồn phụ trợ.

1. Sử dụng chế độ lưu trữ

Chế độ lưu trữ là thuộc tính mà bạn có thể đặt trên từng bảng trong mô hình. Bên cạnh đó, bạn kiểm soát cách Power BI lưu trữ dữ liệu bảng vào bộ nhớ cache.

Để đặt thuộc tính Storage mode hoặc xem cài đặt hiện tại của nó:

  • Trong dạng xem Model, hãy chọn bảng có thuộc tính bạn muốn xem hoặc đặt.
  • Trong ngăn Properties, mở rộng phần Advanced và mở rộng trình đơn thả xuống chế độ lưu trữ.
chế độ lưu trữ

Chế độ lưu trữ là một trong ba giá trị sau:

  • Nhập (Import): Các bảng đã nhập với cài đặt này được lưu vào bộ nhớ cache. Các truy vấn được gửi tới tập dữ liệu Power BI trả về dữ liệu từ các bảng Nhập chỉ có thể được thực hiện từ dữ liệu được lưu trong bộ nhớ cache.
  • DirectQuery: Bảng không được lưu trong cache. Truy vấn DAX và dữ liệu từ DirectQuery chỉ thực hiện bằng cách truy vấn nguồn dữ liệu theo yêu cầu. Truy vấn nguồn dữ liệu sử dụng ngôn ngữ truy vấn như SQL.
  • Dual: Các bảng có cài đặt này có thể hoạt động như được lưu vào bộ đệm ẩn hoặc không được lưu vào bộ đệm ẩn, tùy thuộc vào ngữ cảnh của truy vấn được gửi tới tập dữ liệu Power BI. Trong một số trường hợp, bạn thực hiện các truy vấn từ dữ liệu đã lưu trong bộ nhớ cache. Trong các trường hợp khác, bạn thực hiện các truy vấn bằng cách thực hiện truy vấn theo yêu cầu đối với nguồn dữ liệu.

Thay đổi chế độ Lưu trữ của bảng thành Nhập là một thao tác không thể đảo ngược . Sau khi được đặt, thuộc tính này sau này không thể thay đổi thành DirectQuery hoặc Dual. Bạn có thể sử dụng chế độ Lưu trữ kép (Dual storage mode) trong cả Power BI Desktop và dịch vụ Power BI.

2. Các ràng buộc trên DirectQuery và bảng kép (Dual Tables)

Bảng kép có các ràng buộc chức năng giống như bảng DirectQuery. Các ràng buộc này bao gồm các phép biến đổi M bị hạn chế và các hàm DAX bị hạn chế trong các cột được tính toán.

Xem thêm: Tạo Bảng Thời Gian Trong Power BI Desktop

3. Truyền cài đặt kép

Hãy xem xét mô hình đơn giản sau đây. Trong đó tất cả các bảng đều từ một nguồn duy nhất hỗ trợ Nhập (Import) và DirectQuery.

Giả sử tất cả các bảng trong mô hình này ban đầu được đặt thành DirectQuery. Sau đó, nếu bạn thay đổi Chế độ lưu trữ của bảng SurveyResponse thành Import, cửa sổ cảnh báo sau sẽ hiển thị:

chế độ lưu trữ

Để giảm số lượng mối quan hệ hạn chế và tăng hiệu suất, đặt bảng Customer, Geography, và Date thành Dual. Mối quan hệ hạn chế thường xuất hiện khi có bảng DirectQuery không thể đẩy logic nối vào hệ thống nguồn. Bảng Dual có thể hoạt động như bảng DirectQuery hoặc Nhập để tránh vấn đề này. Logic lan truyền được thiết kế để hỗ trợ mô hình có nhiều bảng. Trong trường hợp có mô hình với 50 bảng và chỉ một số bảng cần lưu vào bộ đệm, Power BI Desktop tính toán tập hợp các bảng thứ nguyên tối thiểu phải được đặt thành Dual. Logic lan truyền chỉ đi qua một phía của mối quan hệ một-nhiều.

4. Ví dụ cách sử dụng chế độ lưu trữ

Theo ví dụ từ phần trước và tưởng tượng việc áp dụng các cài đặt thuộc tính chế độ lưu trữ sau:

Bảng Chế độ lưu trữ
Sales DirectQuery
SurveyResponse  Import
Date Dual
Customer Dual
Geography Dual

Việc đặt các thuộc tính chế độ lưu trữ này dẫn đến các hành vi sau. Giả sử rằng bảng Sales có khối lượng dữ liệu đáng kể:

  • Power BI Desktop lưu vào bộ đệm các bảng thứ nguyên, Date, Customer, and Geography. Vì vậy thời gian tải của các báo cáo ban đầu sẽ nhanh chóng khi chúng truy xuất các giá trị của bộ cắt để hiển thị.
  • Power BI Desktop không lưu vào bộ nhớ đệm bảng Doanh số. Bằng cách không lưu vào bộ đệm bảng này, Power BI Desktop cung cấp các kết quả sau:
  • Thời gian làm mới dữ liệu được cải thiện và mức tiêu thụ bộ nhớ giảm.
  • Truy vấn báo cáo dựa trên bảng Sales chạy ở chế độ DirectQuery. Các truy vấn này có thể mất nhiều thời gian hơn nhưng gần với thời gian thực hơn do không có độ trễ lưu vào bộ nhớ đệm.
  • Các truy vấn báo cáo dựa trên bảng SurveyResponse được trả về từ bộ nhớ cache trong bộ nhớ và do đó tương đối nhanh.

5. Các truy vấn nhấn hoặc bỏ lỡ bộ nhớ cache

Kết nối SQL Profiler với cổng chẩn đoán Power BI Desktop để xem các truy vấn đã chạm hoặc bỏ sót bộ đệm trong bộ nhớ qua theo dõi sự kiện.

  • Truy vấn Sự kiệnTruy vấn Bắt đầu (Queries EventsQuery Begin)
  • Xử lý truy vấnVertipaq SE Bắt đầu truy vấn (Query ProcessingVertipaq SE Query Begin)
  • Xử lý truy vấnDirectQuery bắt đầu 

Kiểm tra các sự kiện khác có cùng ActivityID khi bắt đầu truy vấn. Nếu không có sự kiện Bắt đầu Truy vấn DirectQuery, nhưng có sự kiện Bắt đầu Truy vấn Vertipaq SE. Truy vấn sẽ được trả lời từ bộ nhớ đệm.

Các truy vấn tham chiếu đến bảng kép sẽ trả về dữ liệu từ bộ nhớ cache nếu có thể. Nếu không sẽ trở lại DirectQuery.

Ví dụ, truy vấn chỉ tham chiếu đến một cột trong bảng Date table khi chạy trong chế độ Kép sẽ được lưu trữ trong bộ đệm.

 Các truy vấn nhấn hoặc bỏ lỡ bộ nhớ cache

Truy vấn sau đây chỉ đề cập đến một cột từ bảng Sales table ở chế độ DirectQuery. Do đó, nó không nên nhấn vào bộ đệm:

 Các truy vấn nhấn hoặc bỏ lỡ bộ nhớ cache

Dưới đây là một câu truy vấn thú vị vì nó kết hợp hai cột. Câu truy vấn không sử dụng bộ đệm. Ban đầu, có thể mong đợi nó truy xuất các giá trị CalendarYear từ bộ đệm ẩn và các giá trị SalesAmount từ nguồn rồi kết hợp kết quả. Nhưng cách này không hiệu quả hơn so với gửi thao tác SUM/GROUP BY tới nguồn. Nếu thao tác được đẩy xuống nguồn, số lượng hàng trả về có thể ít hơn nhiều.

 Các truy vấn nhấn hoặc bỏ lỡ bộ nhớ cache

Hành vi này khác với mối quan hệ nhiều-nhiều trong Power BI Desktop khi các bảng được lưu trong bộ nhớ cache. Và nó không được lưu trong bộ nhớ cache được kết hợp.

6. Bộ nhớ cache nên được giữ đồng bộ

Các truy vấn được hiển thị trong phần trước cho thấy rằng Bảng kép (Dual Table) đôi khi chạm vào bộ đệm và đôi khi không. Do đó, nếu bộ nhớ cache đã hết hạn, các giá trị khác có thể được trả về. Ví dụ, việc thực thi truy vấn sẽ không che dấu các vấn đề về dữ liệu bằng cách lọc các kết quả DirectQuery để khớp với các giá trị được lưu trong bộ nhớ cache. 

Chế độ lưu trữ kép là một tối ưu hóa hiệu suất. Nó nên được sử dụng cách không ảnh hưởng đến khả năng đáp ứng các yêu cầu kinh doanh. Đối với hành vi thay thế, cân nhắc sử dụng kỹ thuật được mô tả trong Mối quan hệ nhiều-nhiều.

7. Chế độ xem dữ liệu

Nếu ít nhất một bảng trong tập dữ liệu có chế độ lưu trữ được đặt thành Nhập (Import) hoặc Kép (Dual). Tab Chế độ xem dữ liệu (Data view) có thể hiển thị.

Chế độ xem dữ liệu

Khi chọn Dual và Import trong chế độ Data view, sẽ hiển thị dữ liệu trong cache. Các bảng DirectQuery không hiển thị dữ liệu và có thông báo không thể hiển thị chúng.

Trên đây là những thông tin cần thiết để biết quản lý chế độ lưu trữ trong Power BI Desktop. Để tìm hiểu thêm về Power BI Desktop, các bạn có thể tham khảo series Power BI Desktop tại Mastering Data Analytics. Cảm ơn các bạn đã đọc bài!

Xem thông tin khai giảng Khóa học Business Intelligence sớm nhất tại Mastering Data Analytics. Với mọi thắc mắc xin liên hệ hotline 0961 48 66 48 hoặc inbox Fanpage Mastering Data Analytics để đăng ký nhanh nhất nhé!