Power BI Day 21: Data relationships trong Data Model và các hàm DAX liên quan

Ngày đăng: 14/02/2022

Tổng quan về mô hình dữ liệu (data model)

Thiết kế mô hình dữ liệu là một trong những nhiệm vụ quan trọng nhất mà một Data Analyst cần thực hiện. Nếu chúng ta làm tốt công việc này, chúng ta sẽ dễ dàng xây dựng một báo cáo có giá trị và qua đó người dùng sẽ hiểu rõ hơn về dữ liệu mà chúng ta muốn truyền tải .  

Đối với các bạn mới tiếp cận Power BI nói chung, cũng như Data Model nói riêng, hẳn sẽ thấy công việc này khá trừu tượng và không biết bắt đầu từ đâu. Bạn cũng không cần quá lo lắng, chúng ta sẽ cùng nhau tìm hiểu những thông tin tổng quan cũng như một số nguyên tắc khi thiết kế Data Model nhé. 

Mô hình dữ liệu (Data Model) là gì? 

Data model (mô hình dữ liệu) là sơ đồ về cách thức tổ chức, lưu trữ dữ liệu trong doanh nghiệp và các mối liên kết giữa các thông tin đó. Các mô hình dữ liệu được xây dựng đựa trên nhu cầu của doanh nghiệp và sẽ thay đổi tùy theo những biến động kinh doanh cũng như cách quản lý vận hành. 

Ví dụ về mô hình dữ liệu của một công ty bán lẻ 

  • Thông tin về Khách hàng (Customer Table): Tuổi, giới tính, thu nhập, học vấn.. 
  • Thông tin về khu vực địa lý (Geography Table): Quốc gia, thành phố, tỉnh… 
  • Thông về sản phẩm (Product Table): Tên sản phẩm, loại sản phẩm, nhóm sản phẩm, màu sắc… 
  • Thiết lập lập mối quan hệ với dữ liệu bán hàng (Internet Sales): Số lượng bán, thành tiền, ngày bán,… 

Tại sao Mô hình dữ liệu lại quan trọng? 

Mô hình dữ liệu có ảnh hưởng rất lớn đến các chiều phân tích trong báo cáo. Nếu chúng ta xây dựng một mô hình dữ liệu tốt sẽ mang lại nhiều lợi ích: 

  • Khám phá, tập hợp dữ liệu nhanh hơn 
  • Dữ liệu được thể hiện chính xác hơn 
  • Performance của báo cáo được cải thiện rõ rệt 
  • Dễ dàng duy trì báo cáo hơn. 

Các đối tượng trong mô hình dữ liệu 

Một mô hình dữ liệu sẽ bao gồm các đối tượng: bảng (tables), cột (column), mối quan hệ (relationship), công thức (measures), phân cấp dữ liệu (row level security). Các đối tượng này khi được kết hợp với nhau sẽ mô tả được một quy trình kinh doanh (business process). 

1/ Tables: bao gồm 02 loại 

a. Fact Table 

– Chứa các dữ liệu liên quan đến các “sự kiện”  hay “giao dịch phát sinh” trong quá trình kinh doanh 

– Có thể chứa nhiều giá trị lặp lại 

– Bao gồm các cột khóa ngoại (Foreign key) và các cột dùng để tính toán 

b. Dimension Tables (Dim Table) 

– Mô tả chi tiết cho các dữ liệu trong Fact Table 

– Kết nối với Fact Table thông qua cột khóa chính (Primary key) 

– Dùng để tra cứu hoặc lọc các nhóm dữ liệu trong Fact Table 

2/ Columns 

a. Primary keys (Khóa chính): Được sử dụng để định danh duy nhất mỗi bản ghi (record) trong một table. 

b. Foreign key (FK) (Khóa ngoại): Được sử dụng để thiết lập và thực thi liên kết giữa dữ liệu trong hai bảng, nói một cách dễ hiểu thì FK được xem như con trỏ tới khóa chính của một bảng khác. 

Trong ví dụ bên dưới, bảng Fact Sales có 6 cột thì cột SalesOrderNumberkhóa chínhProductKeykhóa ngoại của bảng này. Còn trong bảng Dim Product, cột ProductKeykhóa chính của bảng này. 

3/ Relationships 

Mối quan hệ được xác định giữa các bảng thông qua các cột Key (Khóa chính) và cột Dimension key (Khóa ngoại). 
Hình ảnh bên dưới cho thấy mối quan hệ giữa bảng Product và Sales thông qua cột ProductKey 

Các loại thiết kế mô hình 

Trong Power BI, chúng ta sẽ có 03 loại mô hình chính là Star schema (mô hình sao), Snow Flake schema (mô hình bông tuyết), Galaxy schema (mô hình ngân hà). Tuy nhiên, mô hình được áp dụng rộng rãi và được khuyến nghị bởi Power BI là mô hình Star schema. Vì vậy, chúng ta sẽ tập trung đề cập đến mô hình này trong nội dung bên dưới.

Có hai lợi ích chính của việc sử dụng mô hình Star schema: 
– Giúp mô hình dữ liệu của bạn gọn gàng và có tổ chức hơn, đồng thời báo cáo của bạn sẽ dễ sử dụng hơn. 
– Dễ dàng chia tỷ lệ báo cáo của mình thành khối lượng dữ liệu rất lớn. Các hàm DAX cũng tính toán nhanh hơn và báo cáo Power BI làm mới tổng thể nhanh hơn. 

Star schema là một mô hình dữ liệu, trong đó một bảng Fact được giải thích chi tiết bởi các bảng Dim thông qua các mối quan hệ (relationship). Thông thường khi thiết kế mô hình này, chúng ta sẽ đặt bảng Fact tại trung tâm và các bảng Dim tỏa ra từ đó, giống như hình dáng của một ngôi sao. Lý tưởng nhất là chỉ có một bảng Fact trong một mô hình dữ liệu. Tuy nhiên, có thể bao gồm nhiều bảng Fact trong Power BI. 

Một bảng Fact được hình thành từ các giá trị đã được tổng hợp và từ một hoặc nhiều cột khóa liên kết với các bảng Dim. Nếu bạn có mô hình dữ liệu phức tạp hoặc khối lượng dữ liệu lớn, bạn nên sử dụng cột khóa ở dạng giá trị số thay vì chuỗi văn bản vì điều này có thể cải thiện hiệu suất của mô hình.  

Các bảng Fact cần được thiết kế càng ít cột càng tốt. Bất kỳ cột nào mô tả các tính năng của tập dữ liệu, chẳng hạn như Tên sản phẩm hoặc Danh mục sản phẩm, phải được tách ra khỏi bảng Fact thành các bảng Dim tương ứng của chúng. Quá trình này được gọi là chuẩn hóa dữ liệu để tránh dữ liệu bị lặp lại nhiều lần. 

Bảng Dim dùng để mô tả các tính năng của tập dữ liệu, trong đó các tính năng phải được nhóm hợp lý với nhau trong các bảng riêng biệt để tránh làm đầy một bảng hoặc gây khó khăn cho việc tạo mối quan hệ. Các bảng Dim phải chứa các giá trị duy nhất cho các tính năng mà chúng đang mô tả vì các cột của chúng sẽ chịu trách nhiệm lọc hoặc nhóm dữ liệu trong báo cáo Power BI. 

Cách tạo mối quan hệ giữa các bảng trong mô hình Power BI 

Có 02 cách có thể tạo mối quan hệ trong Power BI: 

  • Chọn một trường từ bảng A (ví dụ) và kéo trường đó vào trường phù hợp trong bảng B (ví dụ) 
  • Sử dụng tab Manage Relationship: 

Trong giao diện Model View, chọn tab Home\Mange relationship   

Khi cửa sổ mới xuất hiện, chọn New 

Tạo relationship giữa Date Table và FactSales ( minh họa) như hình bên dưới: 

Kết quả: 

Tối ưu hóa Data Model trong Power BI 

Thông thường, một Data Model tốt có thể cho phép báo cáo Power BI mở rộng quy mô thành hàng triệu và hàng tỷ hàng dữ liệu trong khi vẫn duy trì mức hiệu suất tốt. Các bạn có thể tham khảo một số cách bên dưới: 

1/ Tắt thông tin về thời gian

Tính năng này trong Power BI sẽ tự động tạo phân cấp ngày/giờ mỗi khi trường ngày được thêm vào visual. Mỗi khi hệ thống phân cấp này được tạo, nó sẽ thêm một bảng bổ sung vào mô hình dữ liệu. Như bạn có thể tưởng tượng, điều này có thể làm tăng đáng kể báo cáo Power BI, làm chậm quá trình hiển thị visual và tăng thời gian làm mới. Bạn nên tắt tính năng này và thay vào đó sử dụng bảng ngày dành riêng cho tất cả các hệ thống phân cấp ngày/giờ. 

Files\Options & Settting\Options\Data Load, bỏ tick Auto date/time 

2/ Chỉ tải các cột bạn thực sự cần

Ở bước chuẩn hóa dữ liệu, bạn nên xóa bất kỳ cột nào mà bạn không cần hoặc không sử dụng trong báo cáo của mình. 

3/ Chỉ tải những hàng bạn cần

Đừng suy nghĩ rằng bạn cần nhập tất cả dữ liệu kinh doanh của mình vào báo cáo Power BI. Đặc biệt nếu bạn đã kinh doanh trong một thời gian dài, điều này có nghĩa là báo cáo của bạn sẽ chứa một lượng lớn dữ liệu mà không ai thực sự chú ý đến. Nếu user cần xem dữ liệu cũ hơn, thì bạn có thể cân nhắc chỉ load các dữ liệu đã được summarized thay vì từng giao dịch đơn lẻ. 

Datapot vừa giới thiệu đến bạn các thông tin tổng quan về Data Model như các đối tượng trong Data Model, giới thiệu về mô hình dữ liệu phổ biến nhất là Star schema và một số nguyên tắc khi thiết kế Data Model đúng chuẩn. Mời các bạn đón xem các nội dung chi tiết hơn liên quan đến phần này nhé. 

Tham khảo các bài viết có chủ đề liên quan

https://datapot.vn/tao-quan-he-many-to-many-model-data-in-power-bi/

https://datapot.vn/relationship-va-cac-thuoc-tinh-cua-no-tren-power-bi/

Chia sẻ bài viết này

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *