Bạn đã bao giờ thắc mắc rằng Power BI Desktop kết nối tới các nguồn dữ liệu (datasource), lấy data về và lưu trữ dữ liệu như thế nào chưa? Những người mới tiếp cận với Power BI thường chưa quan tâm nhiều về vấn đề này mà chỉ quan tâm tới việc có thể kết nối và trực quan hóa được dữ liệu.
Tuy nhiên, sau một thời gian làm việc, bạn sẽ nhận thấy rằng, tùy vào nhu cầu theo dõi report của doanh nghiệp mà chúng ta cần phải có các lựa chọn kết nối, lưu trữ khác nhau. Nếu không chọn đúng chế độ phù hợp, nhu cầu của doanh nghiệp có thể không được đáp ứng hoặc hiệu suất báo cáo của bạn sẽ bị giảm đáng kể.
Trong bài viết này, chúng ta sẽ cùng nhau đi tìm hiểu kỹ hơn về các chế độ lưu trữ dữ liệu (hay còn gọi là storage mode) trong Power BI nhé.
Mục lục
Tổng quan chế độ lưu trữ dữ liệu (Storage mode)
Storage mode là gì?
Storage mode được hiểu đơn giản là kiểu lưu trữ data của Power BI. Khi chọn datasource trong mục “Get Data”, bạn có thể quyết định nơi mình sẽ lưu trữ data và cách Power BI lấy data về. Về cơ bản thì data chỉ có thể lưu trữ trực tiếp trên Power BI hoặc trên datasource chúng ta kết nối tới.
Các kiểu Storage mode trong Power BI
Trong Power BI có 4 Storage mode, đó là:
- Import.
- DirectQuery.
- Dual (Thực chất chỉ là sự kết hợp của Import và DirectQuery).
- LiveConnection (Không được dùng phổ biến).
Không phải datasource nào cũng có thể dùng được tất cả các kiểu lưu trữ có sẵn trong Power BI Desktop, vì thế mọi người cần lưu ý khi lựa chọn storage mode cho datasource của mình.
Một vài ví dụ về các datasource và storage mode có sẵn:
SQL Server database có thể dùng 3 Storage mode (Do dùng được cả Import và DirectQuery nên mode Dual cũng có thể dùng)

Excel chỉ có thể dùng được chế độ Import

Ngoài ra, bạn vẫn có thể chọn lại storage mode cho dataset của mình theo cách sau:
- Trong Tab “Model” => chọn bảng bạn muốn config lại.
- Trong mục “Properties”, các bạn kéo xuống dưới và tìm phần “Advanced”.
- Chọn lại đúng storage mode mình mong muốn.

Phân biệt và so sánh các chế độ lưu trữ dữ liệu (Storage mode)
Điểm khác nhau cơ bản giữa mode Import và DirectQuery đó chính là nơi lưu trữ. Với mode Import, data được Power BI lấy về và lưu trữ trực tiếp trên file Power BI. Còn đối với mode DirectQuery, data vẫn được lưu trữ trên datasource gốc, chỉ khi có request từ Power BI (Ví dụ như khi User click vào các Chart hoặc refresh lại report) thì data mới được kéo về Power BI để visualize. Còn về mode Dual, tùy thuộc vào từng trường hợp mà Power BI sẽ thực hiện theo mode Import hoặc DirectQuery (Chúng ta sẽ làm rõ trong phần sau).
So sánh Import và DirectQuery
Chúng ta cùng so sánh chi tiết sự khác biệt giữa Import và DirectQuery thông qua một số khía cạnh sau:
Import | Direct Query | |
Lưu trữ | Lưu trữ data ở phía Power BI. | Lưu trữ data ở phía datasource. |
Dung lương | Có thể lưu trữ tối đa 1 GB dữ liệu. | Không giới hạn. |
Tương thích với Datasource | Tương thích với mọi loại nguồn dữ liệu. Import gần như là mode mặc định khi connect với datasource. | Chỉ hỗ trợ cho một số loại datasource (Azure, Oracle, SAP…). |
Hiệu năng load data | Một khi data đã được load hết vào trong Power BI thì hiệu năng sẽ không bị ảnh hưởng bởi các yếu tố như Internet, Connect với datasource. | Hiệu năng bị ảnh hưởng bởi tốc độ Internet và sự phức tạp của các câu queries do data vẫn lưu trữ ở bên datasource và chỉ lấy về khi có request từ Power BI. |
DAX & Transform | Hỗ trợ tất cả các chức năng Transform trong Power Query & DAX | Chỉ hỗ trợ các Transform & DAX mà Power BI có thể tạo Truy vấn SQL tương ứng |
Làm mới dữ liệu | Người dùng có tùy chọn đặt tự động làm mới dữ liệu theo khoảng thời gian đã lên lịch | Dữ liệu mới nhất sẽ được cập nhật khi người dùng mở report. Có thể coi là gần như real-time. |
Dữ liệu để tạo các visual | Nếu làm mới dữ liệu không thành công do không có sẵn nguồn dữ liệu, thì dữ liệu cuối cùng tồn tại trong model sẽ được sử dụng để tạo các visual | Nếu làm mới dữ liệu không thành công do không có sẵn nguồn dữ liệu thì toàn bộ báo cáo sẽ trống vì dữ liệu không được lưu trữ trong model. |
Row-level security (RLS) | Hỗ trợ RLS. | Hỗ trợ RLS. Nhưng cần phải cẩn thận vì người khác có thể sử dụng Tài khoản dịch vụ để kết nối với cơ sở dữ liệu thực tế mạo danh danh tính của người dùng Power BI |
Quy mô data phù hợp | Import phù hợp cho các bài toán có quy mô data vừa và nhỏ, hoặc các bài toán cần xây dựng data model phức tạp. | DirectQuery sẽ giải quyết các bài toán có dataset lớn (>1GB), các bài toán về nhu cầu data real-time. Có một điểm cần lưu ý là mode DirectQuery sẽ khá hạn chế trong việc transform và xây dựng data model phức tạp. |
Sự khác nhau của 2 mode này ta có thể nhìn rõ ở tag “Dataview”. Đối với mode Import, do data được lưu trữ trên Power BI nên ta có thể khảo sát data ở mục Dataview. Ngược lại, đối với mode DirectQuery, data được lưu trên datasource gốc nên tag Dataview sẽ không khả dụng.
Table dùng mode Import có thể sử dụng tab Dataview:

Table dùng mode DirectQuery không sử dụng được tab Dataview:

Dual mode
Dual mode sẽ có các ràng buộc chức năng giống với bảng DirectQuery (Chủ yếu liên quan đến việc bị giới hạn trong xây dựng model, một số thao tác transform data, tạo calculated column). Vì vậy, chúng ta chỉ có thể chuyển đổi từ mode DirectQuery sang Dual (Import sẽ không chuyển được).
Dual mode sẽ hoạt động như Import hoặc DirectQuery tùy vào từng trường hợp cụ thể. Chính đặc điểm này sẽ giúp cho Dual mode tối ưu được performance trong data model mà vẫn giữ được những ưu điểm của DirectQuery. Nếu trong data model của bạn có relationship giữa 1 table dùng Dual mode (table A) và 1 table dùng Import (table B), thì table A sẽ được sử dụng như mode Import. Đối với relationship giữa table Dual mode và DirectQuery cũng tương tự như vậy.
LiveConnection
LiveConnection cũng có phần giống với DirectQuery, đó là data sẽ được lưu trên datasource chứ không phải Power BI, và khi có request từ Power thì data mới được query và trả về để visualize. Tuy nhiên, LiveConnection khác với DirectQuery ở chỗ đó là LiveConnection lưu trữ cả data model trên datasource, và phần việc của Power BI chỉ là Visualize các metric hoặc tính toán thêm một số metric khác (Sử dụng DAX). Do data model không nằm trên Power BI nên hiệu năng tính toán của LiveConnection là tốt hơn DirectQuery khá nhiều. Tuy nhiên, mode này có sự hạn chế về các Datasource tương thích. Chỉ có Power BI Dataset, SQL Server Analytics Services, Azure Analytics Services mới sử dụng được mode này.
TỔNG KẾT
Qua bài viết này Datapot mong bạn có thể hiểu hơn về các chế độ lưu trữ dữ liệu của Power BI để có thể chọn chế độ lưu trữ phù hợp và thiết kế report một cách tối ưu nhất. Ngoài ra, mọi người có thể tìm hiểu sâu hơn về chế độ DirectQuery và chế độ Dual tại các bài viết sau:
- Chế độ DirectQuery: https://datapot.vn/directquery-che-do-truy-van-du-lieu-tren-power-bi/
- Chế độ Dual (Hay còn gọi là Composite): https://datapot.vn/power-bi-che-do-composite-dual/