top of page

Thêm cột vào mô hình dữ liệu nên sử dụng cách nào?

Updated: Jul 3, 2023

Một điều gây ra nhiều bối rối cho nhiều người khi mới làm quen với Power Pivot / Power BI là ta có thể có 3 cách để thêm cột vào dữ liệu. (1) thêm cột bằng Power Query hoặc (2) thêm cột được tính toán bằng DAX và (2) thêm dữ liệu vào cơ sở dữ liệu nguồn. Bất kể sử dụng phương pháp nào, quyết định có thêm cột (hay không) và nội dung nào nên có trong cột là một quyết định của mô hình hóa dữ liệu. Vậy nên sử dụng cách nào trong 3 cách trên?

Câu trả lời là nó phụ thuộc vào mục đích cuối cùng của việc đó là gì. Lời khuyên chung của các chuyên gia về việc thêm cột vào bảng là thực hiện thay đổi càng gần dữ liệu nguồn càng tốt. Vì vậy, theo thứ tự ưu tiên, nên:

• 𝑇ℎ𝑒̂𝑚 𝑐𝑜̣̂𝑡 𝑣𝑎̀𝑜 𝑑𝑢̛̃ 𝑙𝑖𝑒̣̂𝑢 𝑛𝑔𝑢𝑜̂̀𝑛 𝑐𝑢̉𝑎 𝑏𝑎̣𝑛 𝑣𝑜̛́𝑖 𝑠𝑢̛̣ 𝑡𝑟𝑜̛̣ 𝑔𝑖𝑢́𝑝 𝑐𝑢̉𝑎 𝑏𝑜̣̂ 𝑝ℎ𝑎̣̂𝑛 𝐼𝑇 (𝑛𝑒̂́𝑢 𝑐𝑎̂̀𝑛). • 𝑇ℎ𝑒̂𝑚 𝑐𝑜̣̂𝑡 𝑏𝑎̆̀𝑛𝑔 𝑃𝑜𝑤𝑒𝑟 𝑄𝑢𝑒𝑟𝑦 𝑘ℎ𝑖 𝑡𝑎̉𝑖 𝑑𝑢̛̃ 𝑙𝑖𝑒̣̂𝑢. • 𝑇ℎ𝑒̂𝑚 𝑐𝑜̣̂𝑡 𝑏𝑎̆̀𝑛𝑔 𝘤𝘢𝘭𝘤𝘶𝘭𝘢𝘵𝘦𝘥 𝘤𝘰𝘭𝘶𝘮𝘯.

𝑵𝒉𝒖̛̃𝒏𝒈 𝒍𝒚́ 𝒅𝒐 𝒄𝒉𝒐 𝒏𝒉𝒖̛̃𝒏𝒈 𝒌𝒉𝒖𝒚𝒆̂́𝒏 𝒏𝒈𝒉𝒊̣ 𝒏𝒂̀𝒚 𝒍𝒂̀: Nếu thêm cột vào nguồn, thì mình có quyền truy cập cột đó cho các nhu cầu báo cáo hiện tại cũng như cho các nhu cầu báo cáo trong tương lai và những người dùng khác. Việc thêm cột vào dữ liệu nguồn mang lại khả năng sử dụng lại nhiều nhất và nếu cần thực hiện thay đổi trong quá trình xử lý, thì thời gian bảo trì sẽ ngắn nhất. Tuy nhiên, thực tế thường là không thể thêm (hoặc thay đổi) nó tại dữ liệu nguồn vì nhiều lý do hoặc không thể làm nhanh được.

Nếu thêm cột bên trong Power Query (hoặc tại nguồn), cột này sẽ được tải và nén cùng với tất cả các cột khác trong khi tải dữ liệu. Điều này có nghĩa là nén bảng tổng thể tốt hơn và cho kết quả tốt cho mô hình tổng thể. Nó cũng giữ tất cả các tác vụ shaping lại với nhau, điều này có thể giúp việc tìm kiếm mọi thứ trở nên trực quan hơn và dễ bảo trì hơn.

Thông thường, chỉ nên sử dụng calculated column nếu hai cách tiếp cận trên không phải là lựa chọn tốt vì bất kỳ lý do gì. Lý do phổ biến nhất nên chọn thêm calculated column (sử dụng DAX) là nếu cần tận dụng các phần hiện có của mô hình để tạo ra dữ liệu mới. Ví dụ, hãy tưởng tượng bạn muốn phân loại khách hàng của mình theo các nhóm, doanh số cao, doanh số trung bình và doanh số thấp. Bạn cần một cột mới trong bảng khách hàng của mình (modelling decision) để bạn có thể sử dụng cột đó ở slicers trong báo cáo của mình. Nếu bạn cố gắng thực hiện tác vụ này bên trong Power Query, thì nó sẽ phát sinh một số công việc bổ sung. Bạn sẽ phải tính tổng doanh số cho từng khách hàng trong Power Query và điều đó sẽ yêu cầu bạn phải các bước sau:

• 𝐽𝑜𝑖𝑛 𝑔𝑖𝑢̛̃𝑎 𝑏𝑎̉𝑛𝑔 𝑘ℎ𝑎́𝑐ℎ ℎ𝑎̀𝑛𝑔 𝑣𝑎̀ 𝑏𝑎̉𝑛𝑔 𝑏𝑎́𝑛 ℎ𝑎̀𝑛𝑔 • 𝑇𝑖́𝑛ℎ 𝑡𝑜̂̉𝑛𝑔 𝑑𝑜𝑎𝑛ℎ 𝑠𝑜̂́ 𝑏𝑎́𝑛 ℎ𝑎̀𝑛𝑔 𝑐ℎ𝑜 𝑡𝑢̛̀𝑛𝑔 𝑘ℎ𝑎́𝑐ℎ ℎ𝑎̀𝑛𝑔 • 𝑁ℎ𝑜́𝑚 / 𝑝ℎ𝑎̂𝑛 𝑙𝑜𝑎̣𝑖 𝑘ℎ𝑎́𝑐ℎ ℎ𝑎̀𝑛𝑔 𝑡ℎ𝑎̀𝑛ℎ 𝑐𝑎́𝑐 𝑛ℎ𝑜́𝑚 𝑡ℎ𝑒𝑜 𝑦𝑒̂𝑢 𝑐𝑎̂̀𝑢 𝑝ℎ𝑎̂𝑛 𝑙𝑜𝑎̣𝑖. • 𝑇ℎ𝑒̂𝑚 𝑐𝑜̣̂𝑡 (𝑐𝑎𝑜, 𝑡𝑟𝑢𝑛𝑔 𝑏𝑖̀𝑛ℎ, 𝑡ℎ𝑎̂́𝑝).

Điểm quan trọng là bước 1 và 2 ở trên có thể đã tồn tại trong chính mô hình dữ liệu rồi. Và sau đó nó có thể dễ dàng sử dụng bằng cách thêm calculated column mới bằng DAX. Vì vậy, tóm lại, nên ưu tiên calculated column khi nó tận dụng được logic của mô hình (measures và mối quan hệ) để không phải lặp lại logic này trong Power Query. Tuy nhiên, hãy nhớ rằng việc thêm nhiều calculated column là không được khuyến nghị và nên thay thế nó bằng measure nếu có thể. Bài viết tiếp theo Ad sẽ trình bày lợi ích của việc dùng measure thay cho calculated columns

Comments


VR Goggles

Practice makes perfect

Sign up for our newsletter

Thanks for subscribing!

Contact Us

Thu Duc, HCM city

  • Slack
  • Twitter
  • Linkedin
  • Facebook

© 2023 by Finclvr. Powered and secured by Microsoft

bottom of page