2026-09-04 · Power BI & Dashboard
"Em làm cho anh cái báo cáo tài chính xem được thời gian thực." Câu này nghe rất rõ ràng cho tới lúc hỏi lại một câu: thời gian thực với anh là bao lâu? Năm phút? Một tiếng? Hay là "sáng mở ra thấy số của hôm qua"?
Ba câu trả lời đó dẫn tới ba kiến trúc khác nhau, ba mức chi phí khác nhau, và quan trọng hơn: hai trong ba trường hợp thì nút thắt không nằm ở Power BI mà nằm ở phần mềm kế toán.
Bài này đi qua bốn thứ: cách quy "thời gian thực" về một con số cụ thể, các trần cứng mà Microsoft ghi rõ trong tài liệu, chỗ tắc thật ở phía nguồn dữ liệu, và một kiến trúc đủ dùng cho doanh nghiệp vừa và nhỏ mà không cần dựng kho dữ liệu.
Quy "thời gian thực" về một con số trước khi bàn công nghệ
Câu hỏi đúng không phải "có làm được thời gian thực không" mà là "chỉ tiêu này cũ bao lâu thì bắt đầu ra quyết định sai". Với mỗi chỉ tiêu, câu trả lời khác nhau.
| Độ trễ chấp nhận được | Chỉ tiêu điển hình | Cách làm |
|---|---|---|
| Theo ngày | Doanh thu, chi phí, lãi lỗ quản trị, ngân sách | Import + refresh theo lịch. Đủ cho phần lớn báo cáo tài chính. |
| Vài giờ | Số dư tiền, công nợ đến hạn, tồn kho | Import + refresh 3–8 lần trong giờ hành chính. |
| Vài phút trở xuống | Đơn hàng đang chạy, tồn kho theo lô, cảnh báo hạn mức | DirectQuery, và phải trả tiền gói cao hơn. |
Đa số nhu cầu mà mọi người gọi là "thời gian thực" rơi vào hai hàng đầu. Chỗ này đáng hỏi kỹ, vì bước từ hàng hai xuống hàng ba đổi cả chi phí lẫn cách dựng mô hình.
Trần cứng của Power BI — biết trước khi hứa với sếp
Đây là phần Microsoft ghi thẳng trong tài liệu về refresh dữ liệu, và là phần nhiều người bỏ qua rồi hứa quá tay.
Mô hình Import trên gói Pro
- Tối đa 8 lần refresh theo lịch mỗi ngày. Hạn mức này reset lúc 00:01 theo múi giờ đã chọn trong phần cài đặt.
- Refresh gọi qua REST API cũng tính vào 8 lần đó. Riêng nút "Refresh now" bấm tay trong giao diện thì không tính.
- Mỗi lần refresh phải chạy xong dưới 2 giờ.
- Mô hình trên shared capacity giới hạn 1 GB.
Tám lần một ngày nghe ít, nhưng chia ra là cứ mỗi tiếng một lần trong suốt giờ hành chính. Với báo cáo tài chính quản trị, đó là dư.
Dedicated capacity (Fabric F, Premium P, Premium Per User)
- Tối đa 48 lần refresh mỗi ngày đặt được trong giao diện, tức 30 phút một lần.
- Bật XMLA endpoint ở chế độ đọc-ghi thì gọi refresh bằng script gần như không giới hạn số lần, chỉ bị chặn bởi tài nguyên.
- Giới hạn thời gian mỗi lần refresh là 5 giờ; đi qua XMLA thì không bị chặn thời gian.
Muốn số tự nhảy trên màn hình mà không bấm gì
Tính năng đó tên là automatic page refresh, và nó có hai điều kiện mà rất nhiều người vấp:
- Chỉ chạy với nguồn DirectQuery. Mô hình Import thì mục "Page refresh" không hiện ra trong khung định dạng — không phải bị ẩn, mà là không có.
- Ở workspace thường (shared capacity), khoảng lặp tối thiểu là 30 phút, và kiểu refresh theo phát hiện thay đổi thì không dùng được.
- Ở dedicated capacity, khoảng lặp xuống tới 1 giây, nhưng quản trị viên capacity đặt mức tối thiểu (mặc định 5 phút) và mức đó đè lên cài đặt trong báo cáo.
Nói cách khác: một dashboard Import trên gói Pro không bao giờ tự nhảy số trên màn hình. Người xem phải tải lại trang, và trang sẽ hiện số của lần refresh gần nhất.
Incremental refresh — có trên Pro, nhưng không phải phần thời gian thực
Chỗ này hay bị hiểu nhầm. Incremental refresh có trên Power BI Pro: mô hình chia thành phân vùng theo thời gian, mỗi lần refresh chỉ nạp lại vài ngày gần nhất thay vì cả bảng. Nó làm refresh nhanh hơn và tránh chạm trần 2 giờ.
Nhưng tùy chọn "lấy dữ liệu mới nhất theo thời gian thực bằng DirectQuery" nằm trong cùng hộp thoại đó thì chỉ có ở Premium, PPU và Embedded. Bật được nó thì phần dữ liệu mới hơn kỳ refresh sẽ được đọc thẳng từ nguồn.
Hai cảnh báo đi kèm, cả hai đều không hoàn tác được:
- Sau khi publish mô hình có incremental refresh, không tải file .pbix về lại được.
- Publish đè lại từ Desktop sẽ xóa hết phân vùng và dữ liệu đã có trong mô hình, rồi phải nạp lại từ đầu.
- Mốc thời gian mặc định tính theo giờ UTC. Ở Việt Nam là UTC+7, nên nếu không đặt múi giờ trong phần Refresh thì kỳ tính có thể lệch một ngày. Riêng refresh gọi qua XMLA thì luôn dùng UTC, không đọc cài đặt múi giờ.
Nút thắt thật nằm ở phần mềm kế toán, không ở Power BI
Giả sử đã refresh được 8 lần một ngày. Câu hỏi tiếp theo: số lấy về lúc 10 giờ sáng có đúng không?
Với một phần mềm kế toán, câu trả lời phụ thuộc chỉ tiêu. Có nhóm số được ghi nhận ngay khi phát sinh, và có nhóm số chỉ đúng sau khi kế toán chạy bút toán cuối kỳ.
| Chạy được liên tục | Chỉ đúng sau khi khóa sổ |
|---|---|
| Số dư tiền mặt và tiền gửi | Giá vốn hàng bán có phân bổ |
| Công nợ phải thu, phải trả theo hóa đơn | Lợi nhuận sau khi phân bổ chi phí chung |
| Doanh thu ghi nhận theo hóa đơn đã phát hành | Khấu hao tài sản, phân bổ chi phí trả trước |
| Số lượng tồn kho theo phiếu nhập xuất | Chênh lệch tỷ giá cuối kỳ |
Cột bên phải là lý do một dashboard "lãi lỗ thời gian thực" thường sai. Nó cộng doanh thu tới hôm nay nhưng chi phí thì thiếu phần chưa phân bổ, nên biên lợi nhuận nhìn đẹp hơn thực tế, và càng gần đầu kỳ càng đẹp.
Cách xử không phải là bỏ dashboard, mà là chia trang làm hai vùng và ghi nhãn thời điểm cập nhật cho từng vùng. Vùng vận hành ghi "cập nhật lúc 10:00 hôm nay". Vùng kết quả kinh doanh ghi "số đã khóa sổ đến 31/08". Người xem tự biết dòng nào tin được tới đâu, và không ai phải giải thích lại mỗi lần họp.
Kiến trúc đủ dùng cho doanh nghiệp vừa và nhỏ
Không cần kho dữ liệu. Bốn thành phần dưới đây chạy được với gói Pro.
- Đường lấy dữ liệu. Nếu phần mềm kế toán chạy trên máy chủ trong công ty, cài on-premises data gateway trên một máy luôn bật để Power BI đọc được. Nếu dữ liệu nằm trên cloud hoặc xuất ra file, gộp bằng Power Query như bài Tự động hóa báo cáo Excel cuối tháng.
- Một lớp chuẩn hóa. Đừng nối thẳng bảng gốc vào biểu đồ. Dựng vài query trung gian để đổi tên cột, chuẩn kiểu dữ liệu, và ghi luật nghiệp vụ ở một chỗ. Đổi phần mềm kế toán sau này thì chỉ sửa lớp này.
- Mô hình có bảng lịch. Mọi bảng số liệu phải nối được vào một bảng lịch chung. Bảng nào không nối lịch thì nó không bị lọc theo kỳ, và sẽ nhét toàn bộ lịch sử vào mọi ô thời gian — sai âm thầm, không lỗi.
- Lịch refresh theo nhịp thật. Đặt 3–4 lần trong giờ hành chính, đừng đặt kín 8 lần. Refresh dày hơn nhịp phát sinh chứng từ chỉ tốn tài nguyên, và làm người xem tưởng số mới trong khi nguồn chưa có gì mới.
Muốn xem hình dạng cuối cùng trước khi bắt tay làm, các bạn mở thẳng Quản trị dòng tiền hoặc Phân tích tài chính trong bộ 41 báo cáo mẫu đội ngũ EzTech nhúng sẵn trên site.
Bốn thứ phải chốt trước khi nhận việc
- Độ trễ của từng chỉ tiêu, không phải của cả dashboard. Chốt một con số chung cho cả trang là tự đẩy mình vào mức khắt khe nhất của chỉ tiêu khó nhất.
- Nguồn có chịu được tải đọc liên tục không. Máy chủ kế toán đang phục vụ người nhập liệu; một truy vấn nặng chạy 8 lần một ngày lúc cao điểm là chuyện phải hỏi bộ phận vận hành trước.
- Ai xử lý khi refresh hỏng lúc 3 giờ sáng. Refresh thất bại thì báo cáo vẫn mở được và vẫn hiện số cũ, không có dấu hiệu gì. Phải bật cảnh báo qua email và để nhãn "cập nhật lúc" ngay trên trang.
- Ai được xem gì. Báo cáo tài chính chạy liên tục thì phần phân quyền theo dòng phải làm ngay từ đầu, sửa sau tốn hơn nhiều.
Câu hỏi thường gặp
Gói Pro có đủ cho báo cáo tài chính không?
Đủ, nếu độ trễ chấp nhận được từ một tiếng trở lên và mô hình dưới 1 GB. Phần lớn doanh nghiệp vừa và nhỏ nằm trong khoảng đó. So sánh chi tiết hai gói ở bài Power BI miễn phí và Pro khác gì nhau.
Dùng DirectQuery cho toàn bộ báo cáo có được không?
Được về mặt kỹ thuật, nhưng mỗi thao tác lọc của người xem sẽ thành một truy vấn đẩy về máy chủ kế toán. Cách thường dùng là mô hình hỗn hợp: bảng giao dịch lớn để Import, riêng bảng cần tươi nhất để DirectQuery.
Excel có làm được "thời gian thực" không?
Excel refresh được bằng một nút bấm hoặc theo lịch khi mở file, nhưng nó không tự chạy khi không ai mở. Nếu số cần cập nhật cả lúc không ai ngồi máy thì việc đó thuộc về Power BI hoặc một tác vụ chạy nền.
Bao lâu thì dựng xong?
Phần dựng báo cáo thường không phải phần lâu nhất. Chỗ tốn thời gian là thống nhất định nghĩa chỉ tiêu và mở được đường đọc dữ liệu từ phần mềm kế toán — hai việc phụ thuộc vào người trong công ty chứ không phụ thuộc công cụ.
Bắt đầu từ đâu
Lấy danh sách chỉ tiêu mà ban giám đốc đang xem, rồi viết cạnh mỗi dòng một con số: chỉ tiêu này cũ bao lâu thì bắt đầu ra quyết định sai. Danh sách đó thường tự chia làm hai nhóm rất rõ, và nhóm cần tươi từng phút hóa ra ngắn hơn nhiều so với lúc mới nghe yêu cầu.
Đội ngũ EzTech triển khai hệ thống báo cáo theo hướng này trong dịch vụ giải pháp dữ liệu, và dạy cách tự dựng trong khóa DATA FINANCE. Nếu các bạn đang phải trả lời câu hỏi "bao giờ có báo cáo thời gian thực", để lại thông tin ở trang liên hệ để trao đổi cụ thể theo hệ thống đang dùng.