Mục lục
Cơ chế Query Folding
Khi chúng ta làm việc với nguồn cơ sở dữ liệu trong Power Query Editor, thao tác clean và transform chúng ta thao tác trên đó, bản chất là Power BI thực thi M query. Power Query kéo dữ liệu nguồn đổ về, và tại đây, Power Query thực thi các lệnh clean, transform.

Các thao tác có thể sử dụng Query Folding
Các phép biến đổi nguồn dữ liệu quan hệ có thể đạt được Query Folding là những phép biến đổi có thể được viết dưới dạng một câu lệnh SELECT đơn lẻ. Câu lệnh SELECT có thể được xây dựng với các mệnh đề WHERE, GROUP BY và JOIN thích hợp. Nó cũng có thể chứa các biểu thức cột (tính toán) sử dụng các hàm dựng sẵn phổ biến được cơ sở dữ liệu SQL hỗ trợ. Các phép biến đổi có thể sử dụng Query Folding:- Xóa cột
- Đổi tên cột (SELECT và dùng As).
- Lọc các hàng, với các giá trị tĩnh hoặc tham số Power Query (vị ngữ mệnh đề WHERE).
- Phân nhóm và tóm tắt (mệnh đề GROUP BY).
- Mở rộng các bản ghi thuộc tính (các cột khóa ngoại nguồn) để đạt được sự kết hợp của hai bảng nguồn (mệnh đề JOIN).
- Merge non-fuzzy các truy vấn có thể fold dựa trên cùng một nguồn (mệnh đề JOIN).
- Append các truy vấn có thể fold dựa trên cùng một nguồn (toán tử UNION ALL).
- Thêm cột tùy chọn với logic đơn giản (biểu thức SELECT cột). Logic đơn giản ngụ ý các hoạt động không phức tạp, có thể bao gồm việc sử dụng M function có các chức năng tương đương trong nguồn dữ liệu SQL, như các hàm thao tác toán học hoặc văn bản. Ví dụ: các biểu thức sau đây trả về thành phần năm của giá trị cột OrderDate (để trả về giá trị số).
- Pivot và unpivot (toán tử PIVOT và UNPIVOT).
Các phép chuyển đổi ngăn chặn Query Folding
Danh sách sau đây mô tả các phép biến đổi ngăn truy vấn gấp. Danh sách này không phải là một danh sách đầy đủ.- Merging các truy vấn dựa trên các nguồn khác nhau.
- Append các truy vấn dựa trên các nguồn khác nhau.
- Thêm các cột tùy chọn với logic phức tạp. Logic phức tạp ngụ ý rằng các hàm M không có hàm tương đương trong nguồn dữ liệu. Ví dụ: các biểu thức sau định dạng giá trị cột OrderDate (để trả về giá trị văn bản).
- Thêm cột chỉ mục.
Xác định khi nào một truy vấn có thể đạt được Query Folding
Trong cửa sổ Power Query Editor, bạn có thể xác định thời điểm có thể xếp lại một truy vấn Power Query. Trong phần Applied Steps, click chuột phải vào 1 step, nếu thông tin View Native Query được bật thì có nghĩa thao tác đó có thể được chuyển hóa thành Query Folding.

Tối ưu việc sử dụng Query Folding
Như ở trên, chúng ta có thể thực hiện Query Folding toàn bộ các thao tác biến đổi nhưng cũng có thể chỉ thực hiện được 1 phần, hoặc chỉ đúng 1 thao tác. Khi gặp 1 step không thể biên dịch thành Native Query, tất cả các step sau đó sẽ không thể chuyển thành Native Query được nữa. Điều này dẫn đến chúng ta chỉ có thể thực hiện được Query Folding 1 phần. Để tối đa các thao tác có thể chuyển thành Native Query từ đó tạo ra Query Folding toàn bộ hoặc Query Folding 1 phần lớn nhất có thể, chúng ta nên thực hiện liền nhau các thao tác có thể chuyển thành Native Query. Ví dụ, chúng ta cần làm các thao tác sau: Xóa cột, Xóa dòng, đổi tên cột, append với 1 bảng khác. Thứ tự chúng ta nên làm sẽ là: 1.Xóa cột 2.Xóa dòng 3.Đổi tên cột 4.Append Vì thao tác Append không thể chuyển thành Native Query do đó chúng ta đặt sau cùng.Tổng kết
Vậy là hôm nay chúng ta đã hiểu hơn về cơ chế Query Folding của Power Query và cách nó giúp cho việc xử lý dữ liệu và load dữ liệu được nhanh hơn. Hãy lưu nhanh kĩ năng này về cẩm nang kiến thức của mình để có thể áp dụng nọ mọi lục mọi nơi nhé!- Tham gia group ôn thi PL-300/DA-100 tại: https://www.facebook.com/groups/da100vn
- Chuỗi Video Hướng dẫn thực hành Lab và sử dụng các tài nguyên của Microsoft: https://www.youtube.com/c/Datapotvn/videos
- Update tài nguyên từ Microsoft, DA-100 exam questions và exam topics tại Fanpage của Datapot: https://www.facebook.com/DatapotAnalytics/