Sự khác nhau giữa Shaping và Modelling trong Power BI

Mục tiêu của bài viết này là giúp bạn đọc hiểu được sự khác biệt giữa Shaping (định hình – sử dụng Power Query) và Modelling (mô hình hóa –  sử dụng công cụ mô hình hóa bên trong Power BI) dữ liệu. Tuy có sự khác biệt nhưng trong thực tế, bạn sẽ cần cả hai để xây dựng một báo cáo Power BI mạnh mẽ.

1. 4 giai đoạn của một Self Service BI Project

Hình ảnh trên cho thấy luồng dữ liệu hợp lý từ nguồn đến việc phân phối các báo cáo cuối cùng. Mặc dù, hình ảnh cho thấy dữ liệu chảy từ trái sang phải, thực tế là khi bạn xây dựng giải pháp, bạn có thể sẽ nhảy qua lại tất cả các giai đoạn khác nhau lặp đi lặp lại cho đến khi hoàn thành công việc. Hai trong số các giai đoạn trên là một phần của chủ đề ngày hôm nay, Data Acquisition (Shaping) và Data Modelling. Đây là cả hai điều khoản IT BI mà người dùng doanh nghiệp có thể đã hoặc chưa nghe trước đây.

2. Shaping và Modelling dữ liệu của bạn

Thu thập dữ liệu bằng cách sử dụng Power Query là nơi “shaping” được thực hiện và mô hình hóa dữ liệu bằng cách sử dụng công cụ Power BI Analysis là nơi “modelling” được thực hiện. Bạn cần làm cả hai để xây dựng một báo cáo Power BI tốt.

  • Định nghĩa của Shaping

Shaping là quá trình trích xuất dữ liệu của bạn từ nguồn, chuyển đổi dữ liệu thành hình dạng bạn cần và sau đó tải nó vào Power BI. Quá trình này thường được gọi là ETL (extract, transform và load). Quá trình shaping bao gồm:

  • Cấu trúc lại dữ liệu đến từ các bảng nguồn thành các bảng mới đáp ứng các yêu cầu đối với cơ sở dữ liệu báo cáo. Cấu trúc bảng trong cơ sở dữ liệu quan hệ hiếm khi (nếu có) thích hợp cho Power BI, đừng chỉ tải những gì có trong dữ liệu nguồn của bạn.

  • Chỉ chọn các cột và hàng cần thiết. Tải mọi thứ bạn cần và không có những gì bạn không cần. Có thể dễ dàng thực hiện các thay đổi sau này nếu cần.

  • Tổng hợp trước dữ liệu (nếu muốn/ cần thiết), mặc dù điều này không khuyến khích trong hầu hết trường hợp (dù có ngoại lệ).

  • Đặt tên/ đổi tên các cột và bảng để thân thiện với người dùng doanh nghiệp.

  • Tải mọi thứ vào cơ sở dữ liệu Power BI (mô hình dữ liệu).

Nếu có thể, bạn tốt hơn nên thực hiện shaping trong các view trong cơ sở dữ liệu quan hệ (nếu bạn có). Nếu điều này không thể thực hiện vì bất kỳ lý do gì, Power Query luôn sẵn sàng thực hiện công việc này cho bạn.

  • Định nghĩa của Modelling

Modelling là quá trình thiết kế cấu trúc của các bảng dữ liệu, xây dựng mối quan hệ giữa các bảng và viết các measure để trích xuất thông tin chi tiết về doanh nghiệp mà bạn cần trong các báo cáo của mình.

Data modelling bao gồm:

  • Quyết định dữ liệu nào của bạn tải và không tải.

  • Quyết định một lược đồ bảng, nó là một bảng, hai bảng, nhiều bảng? Bạn nên dùng một giản đồ hình sao nếu có thể.

  • Quyết định tên bạn đặt cho các cột và bảng.

  • Quyết định xem bảng của bạn rộng và ngắn (nhiều cột) hay dài và hẹp (ít cột).

  • Nối (join) các bảng bằng các mối quan hệ (relationship), nếu cần.

  • Viết logic kinh doanh trong các measure để trích xuất giá trị bổ sung thông tin chi tiết vào dữ liệu thô của bạn.

  • Định dạng chính xác các measure và cột để đáp ứng các yêu cầu kinh doanh (ví dụ: đơn vị tiền tệ, tỷ lệ phần trăm, số thập phân thích hợp).

  • Chỉ định tên doanh nghiệp tốt cho các measure mô tả chính xác những gì đang được tính toán.

Quyết định về những gì sẽ tải là một phần của modelling nhưng quá trình cấu trúc dữ liệu là một phần của shaping. Rõ ràng 2 khái niệm này có mối liên hệ chặt chẽ và phụ thuộc lẫn nhau.

3. Mọi thứ không phải lúc nào cũng rõ ràng

Một điều gây ra nhiều nhầm lẫn cho người dùng Power BI mới là có ít nhất 2 cách để thêm cột vào dữ liệu của bạn. Bạn có thể thêm một cột bằng Power Query hoặc bạn có thể thêm một calculated bằng DAX. Tất nhiên, có thể có cahs thứ ba, thay vào đó hãy thêm dữ liệu trở lại cơ sở dữ liệu nguồn. Bất kể bạn sử dụng phương pháp nào, quyết định có thêm cột (hay không) và những gì nên có trong cột là một quyết định lập mô hình dữ liệu.

4. Bạn nên dùng phương pháp thêm cột nào?

Vì vậy, có 3 nơi mà bạn có thể thêm một cột, bạn nên chọn cái nào? Nó phụ thuộc vào những gì bạn đang cố gắn làm. Lời khuyên chung về việc thêm cột vào bảng của bạn là thực hiện thay đổi càng gần với nguồn tốt. Vì thế, theo thứ tự ưu tiên, bạn nên:

  • Thêm cột vào nguồn dữ liệu của bạn (ví dụ: Kho dữ liệu của bạn) với sự trợ giúp của bạn bè IT nếu cần.

  • Thêm cột bằng cách dùng Power Query khi tải dữ liệu.

  • Thêm cột bên trong Power BI bằng cách sử dụng một calculated column.

Nguyên nhân là vì:

Nếu bạn thêm cột tại nguồn thì bạn có quyền truy cập vào cột đó cho nhu cầu BI hiện tại và trong tương lai. Thêm cột tại nguồn cung cấp khả năng tái sử dụng nhiều nhất và nếu bạn cần thực hiện thay đổi theo dõi, thì đó sẽ là lần bảo trì ít nhất. Tuy nhiên, thực tế là bạn không thể thêm (hoặc thay đổi) nó tại nguồn vì nhiều lý do khác nhau hoặc ít nhất là bạn không thể làm cho nó diễn ra nhanh chóng. Vì vậy, thường đây không phải là tùy chọn dành riêng cho self service BI.

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

Thông thường, bạn chỉ nên dùng một calculated column nếu hai cách tiếp cận còn lại 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 mà bạn nên chọn một calculated column (dùng DAX) là nếu bạn cần tận dụng các phần hiện có của mô hình để tạo dữ liệu mới.

Một ví dụ về Adventure Works sẽ giúp bạn dễ hình dung. Giả sử, bạn muốn phân loại khách hàng của mình theo các nhóm, doanh số bán hàng cao, doanh số trung bình hoặc doanh số bán hàng thấp. Bạn cần một cột mới trong bảng khách hàng của mình (một quyết định lập mô hình) để bạn có thể sử dụng cột đó trên máy cắt lát trong một trong các 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ì đó sẽ là một số công việc bổ sung. Bạn sẽ phải tính ra tổng doanh số cho mỗi khách hàng trong Power Query và điều đó sẽ yêu cầu bạn.

  • Tạo liên kết (join) giữa bảng khách hàng và bảng bán hàng.
  • Tổng hợp trước dữ liệu bán hàng cho từng khách hàng.
  • Nhóm khách hàng thành các phạm vi quy mô bằng cách sử dụng logic kinh doanh mà bạn cần.
  • Thêm cột (cao, trung bình, thấp).

Điểm quan trọng là 1 và 2 ở trên rất có thể tồn tại trong chính mô hình dữ liệu. Trong trường hợp của Adventure Works, mô hình đã có bảng khách hàng, mối quan hệ với bảng bán hàng và thước đo tổng hợp doanh số bán hàng. Các tính năng này của mô hình có thể được sử dụng để dễ dàng thêm calculated column mới bằng DAX. Vì vậy, tóm lại, bạn nên dùng một calculated column hơn khi nó tận dụng logic của mô hình của bạn (các phép đo và mối quan hệ) để bạn không phải lặp lại logic này bên trong Power Query.

Tuy nhiên, bạn không nên quá làm dụng calculated column, chỉ nên dùng trong những trường hợp thực sự cần thiết. Mong rằng bài viết đã mang đến cho bạn đọc những thông tin hữu ích, đừng quên đón xem các nội dung mới nhất sẽ được cập nhật thường xuyên tại BAC’s Blog.

Nguồn tham khảo:

https://exceleratorbi.com.au/

Nhu cầu đào tạo doanh nghiệp

BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo: 

Các bài viết liên quan Power BI: 

Các bài viết liên quan: 

  • TABLEAU – Giải pháp BUSINESS INTELLIGENCE (BI) – click vào đây
  • Hướng dẫn cài đặt và Sử dụng TABLEAU – click vào đây
  • Tính năng mới trên tableau – verion 2019.1 – click vào đây

BAC – Biên soạn và tổng hợp nội dung

 

Previous Post
Next Post