Đừng vội “đổ lỗi” cho server khi báo cáo chạy chậm.
Theo kinh nghiệm của mình, 80% nguyên nhân nằm ngay trong data model.
Bộ checklist chi tiết dưới đây tập trung vào Data Sources & Refresh – giúp bạn “giảm cân” mô hình và rút gọn thời gian làm mới dữ liệu.
1. Data Source Hygiene – Nền móng quyết định tốc độ
- Chuyển XLSX → CSV (hoặc Parquet): Excel chứa metadata, sheet ẩn và định dạng dư thừa khiến mỗi lần refresh bị “nặng”. CSV tải nhanh, ít lỗi; Parquet lý tưởng cho tập > 1 GB vì nén tốt và giữ nguyên kiểu dữ liệu.
- Kết nối trực tiếp SQL/Data Warehouse: Để View (tránh Stored Procedure nếu cần folding) xử lý lọc – tính toán, Power BI chỉ “kéo” đúng cột, đúng bản ghi.
- Đặt Privacy Level chính xác: Organizational cho nguồn nội bộ, Public cho API mở. Sai level → mất query folding, tụt hiệu suất.
2. Transformations – “Làm sạch” nhưng không “làm nặng”
- Xoá cột & dòng thừa ngay bước đầu: Chỉ giữ trường thật sự trả lời câu hỏi kinh doanh; bỏ hết phần “cho chắc”.
- Filter sớm bằng parameter: Thêm StartDate, EndDate để cắt bớt dữ liệu lịch sử. Mô hình đa-tenant? TenantID giúp chỉ tải đúng khách hàng.
- Hạn chế Merge & Append toàn bảng: Tốt nhất hợp nhất sẵn bằng View/Hàm SQL; tránh để Power BI tải hai bảng full rồi mới ghép.
- Tối ưu thao tác Find & Replace: Tránh tạo nhiều bước Replace Values riêng lẻ (vừa nặng, vừa khó kiểm soát). Thay vào đó, dùng Conditional Column với logic rõ ràng, Mapping Table để tra ánh xạ từ bảng phụ – dễ mở rộng và bảo trì.
- Tắt load bảng trung gian: Những bảng chỉ dùng để xử lý tạm thời (ví dụ: bảng merge, bảng staging) thì nên Disable Load. Giúp giảm RAM, tránh rối mô hình.
- Liên tục kiểm tra Query Folding: Mỗi bước cần còn nút View Native Query. Nếu mất, quay lại bước trước và đẩy logic xuống nguồn.
3. Refresh Strategy – Giảm thời gian chờ đợi
- Incremental Refresh: Áp dụng khi bảng dữ liệu lớn (thường hơn vài triệu rows) hoặc refresh hàng ngày. Partition theo DateKey, dùng cột ModifiedDate để chỉ cập nhật phần thay đổi.
- Hybrid Table: Cần dữ liệu “gần thời gian thực” (<30s): lịch sử để Import, hôm nay để DirectQuery.
- Tránh tham số trùng lặp: Gói logic vào hàm Power Query (fnGetData) để Power BI không tạo truy vấn rời rạc.
4. Reliability & Governance – Hiệu suất phải đi kèm ổn định
- Chuẩn hoá kiểu dữ liệu: Number → Whole/Decimal, Date → Date/DateTime. Tránh “Number stored as Text” phá hỏng time intelligence.
- Dùng try … otherwise ở bước nhạy cảm: try Number.FromText([Sales]) otherwise 0. Ngăn refresh fail chỉ vì một ký tự lạ.
- Theo dõi CPU/RAM & thời gian refresh: Performance Analyzer đo thời gian render visual; Refresh History/Diagnostics xem thời gian refresh.
- Bám sát best practice Microsoft: Dataflows cho ETL dùng chung, Fabric/OneLake cho lưu trữ tập trung.
5. Checklist “dán lên màn hình”
☑ CSV thay XLSX
☑ Đẩy tính toán về SQL/View
☑ Bỏ cột, filter sớm
☑ Giảm Merge/Append
☑ Tối ưu Find & Replace
☑ Disable Load bảng trung gian
☑ Giữ biểu tượng Query Folding
☑ Incremental Refresh khi đủ điều kiện
☑ Tránh lặp parameter
☑ Kiểu dữ liệu chuẩn
☑ Theo dõi Refresh Logs
☑ Dùng try…otherwise
☑ Đặt đúng Privacy Level
☑ Bám sát best practice
Bạn sẽ bắt đầu từ đâu? Hãy đo lại thời gian refresh trước và sau khi áp dụng vài bước trên, kết quả thường bất ngờ hơn bạn nghĩ.
🔔+170.000 người đăng ký theo dõi chúng tôi trên các nền tảng: https://mastering-da.kit.com/
📌Thúc đẩy doanh nghiệp Việt đưa ra quyết định dựa trên dữ liệu qua chương trình đào tạo Analytics Top 1 Việt Nam từ 2020 @ Zalo: 0961 48 66 48 & https://mastering-da.com/business-intelligence-program/
#PhuongThaoAnalytics #AI #Analytics #DataDriven #MasteringDataAnalytics
Until next time, keep turning data into decisions!