Kiến thức
34 phút đọc

Làm Việc Với Các Mối Quan Hệ – Kết Nối Giữa Các Bảng

Power BI có khái niệm về tính định hướng của mối quan hệ, khác với các hệ thống quản lý CSDL khác. Tính định hướng này rất quan trọng trong việc lọc dữ liệu giữa nhiều bảng. Khi tải dữ liệu, Power BI tự động tìm mối quan hệ bằng cách khớp tên cột. Cũng có thể chỉnh sửa tùy chọn này bằng Quản lý mối quan hệ.

Ví dụ: có nhiều bảng từ CSDL Bán hàng và hình ảnh là ví dụ mô hình dữ liệu. Power BI tự động phát hiện mối quan hệ, nhưng không hiểu ý nghĩa của chúng. Muốn đảm bảo mối quan hệ chính xác theo dữ liệu.

1. Mục đích của việc kết nối các bảng

Mối quan hệ giữa các mô hình trên bảng mô hình được áp dụng và lan truyền thông qua các bộ lọc đến bảng mô hình khác. Nếu có đường dẫn mối quan hệ để theo dõi, các bộ lọc sẽ lan truyền đến nhiều bảng.

Các đường dẫn mối quan hệ được xác định, nghĩa là lan truyền theo cùng một cách không biến thể ngẫu nhiên. Nhưng, các mối quan hệ có thể bị vô hiệu hoặc thay đổi bằng các hàm DAX cụ thể.

Hướng dẫn lan truyền mối quan hệ qua các bộ lọc:

Trong ví dụ này, mô hình bao gồm bốn bảng: Category, Product, Year và Sales. Bảng Category table liên quan đến bảng Product table và bảng Product table liên quan đến bảng Sales table. Bảng Year Table cũng liên quan đến bảng Sales Table.

Một truy vấn tạo bởi Power BI yêu cầu tổng số bán cho đơn hàng trong danh mục Cat-A và năm CY2018. Để thực hiện, có bộ lọc trên bảng Category và Year. Bộ lọc Category chuyển sang Product để tách biệt hai sản phẩm trong Cat-A. Sau đó bộ lọc Product chuyển sang Sale để tách hai hàng doanh số cho các sản phẩm này. Tổng số lượng bán cho các sản phẩm này là 14. Bộ lọc Year cũng áp dụng cho Sale, dẫn đến chỉ một hàng doanh số trong năm CY2018, tổng số lượng bán là 11. Nhiều bộ lọc áp dụng cho một bảng luôn là AND, yêu cầu tất cả các điều kiện phải đúng.

2. Bảng bị ngắt kết nối (Disconnected table)

Một bảng mô hình không liên quan đến bảng khác là “bị ngắt kết nối” trong thiết kế hợp lệ. Nó không truyền bộ lọc sang bảng khác nhưng chấp nhận “đầu vào người dùng” để tính toán sử dụng giá trị có ý nghĩa.

Ví dụ: bảng ngắt kết nối với giá trị tỷ giá hối đoái có thể chuyển đổi giá trị bán hàng với bộ lọc theo tỷ lệ duy nhất.

3. Các mối quan hệ

Mô hình quan hệ xác định bởi loại cardinality. Tồn tại 4 loại quan hệ, biểu diễn đặc điểm dữ liệu của các cột “từ” và “đến”.

“Một” có nghĩa là cột chứa giá trị duy nhất; “nhiều” là cột có thể chứa giá trị trùng lặp.

Trong Power BI, có nhiều loại mối quan hệ khác nhau:

3.1. Mối quan hệ nhiều – một (*:1) hoặc một – nhiều(1: *)

  • Mô tả khi nhiều giá trị trong một cột được liên kết với một giá trị duy nhất trong cột khác.
  • Mối quan hệ hướng giữa các bảng thực tế và bảng thứ nguyên.
  • Là loại định hướng phổ biến nhất và là mặc định của Power BI khi tạo mối quan hệ tự động.

Một ví dụ về mối quan hệ một – nhiều là giữa bảng CountryName và Territory. Trong đó một quốc gia duy nhất có thể có nhiều lãnh thổ được liên kết.

3.2. Mối quan hệ một – một (1:1)

  • Mô tả mối quan hệ trong đó chỉ thể hiện một giá trị phổ biến giữa hai bảng.
  • Các giá trị là duy nhất trong cả hai bảng.
  • Không được khuyến nghị vì mối quan hệ này lưu trữ thông tin dư thừa. Và nó có thể mô hình không được thiết kế chính xác.

Mối quan hệ một-một là ví dụ với các cột Product và Product ID trong hai bảng khác nhau. Không cần tạo mối quan hệ một đối một, hai bảng nên được kết hợp.

3.3. Mối quan hệ nhiều-nhiều ( . )

  • Mô tả mối quan hệ có nhiều giá trị chung giữa hai bảng.
  • Không yêu cầu các giá trị duy nhất trong một trong hai bảng trong một mối quan hệ.
  • Không được khuyến khích sử dụng bởi vì việc thiếu các giá trị duy nhất dẫn đến sự mơ hồ. Và người dùng của bạn có thể không biết cột giá trị nào đang đề cập đến cái gì.

Hình minh họa dưới đây cho thấy sự liên kết giữa bảng Sales và Order tables qua cột Ngày đặt hàng (OrderDate). Nhiều đơn hàng có thể liên kết với nhiều lần bán hàng. Cả hai bảng có thể có cùng ngày đặt hàng.

4. Điều hướng lọc chéo (Cross-filter direction)

Dữ liệu có thể lọc theo 1 hoặc 2 hướng trong mối quan hệ.

  • Bộ lọc chéo 1 chiều: chỉ 1 bảng trong mối quan hệ được dùng để lọc. Ví dụ, Bảng 1 có thể lọc Bảng 2, nhưng Bảng 2 không lọc Bảng 1. Xem hướng mũi tên trên mối quan hệ các bảng để biết lọc chéo sẽ chảy theo hướng nào. Thường muốn mũi tên này trỏ đến bảng sự kiện. Mối quan hệ 1-nhiều hoặc nhiều-1, hướng lọc chéo từ bảng “1”, nghĩa là lọc diễn ra trong bảng có nhiều giá trị.
  • Bộ lọc chéo hai chiều hoặc lọc chéo 2 hướng: cả 2 bảng trong mối quan hệ đều có thể lọc. Ví dụ, bảng nguyên có thể lọc bảng thực tế và bảng thực tế cũng có thể lọc bảng nguyên. Hiệu suất tốt hơn khi dùng tính năng lọc chéo 2 hướng cho mối quan hệ nhiều-nhiều.

Lưu ý: Không nên kích hoạt mối quan hệ lọc chéo hai chiều trừ khi hiểu đầy đủ về phân nhánh của việc làm như vậy. Có thể dẫn đến mơ hồ, lấy mẫu quá mức, kết quả không mong muốn và suy giảm hiệu suất tiềm năng. Trong Power BI Desktop, diễn giải hướng lọc chéo qua đầu mũi tên dọc theo đường mối quan hệ. Một đầu mũi tên duy nhất đại diện cho bộ lọc một hướng; một đầu mũi tên kép cho mối quan hệ hai chiều.

4.1. Cardinality và hướng lọc chéo

Đối với mối quan hệ một – một, lọc chéo hai chiều là lựa chọn duy nhất. Dữ liệu có thể được lọc từ hai bên và kết quả là giá trị riêng. Ví dụ: lọc ID sản phẩm sẽ trả về sản phẩm duy nhất và lọc sản phẩm sẽ trả về ID duy nhất. Cho mối quan hệ nhiều-nhiều, lọc 1 hoặc 2 chiều bằng lọc chéo hai chiều. \

Trong mối quan hệ nhiều-nhiều, lọc chéo hai chiều không đồng nhất vì có nhiều liên kết giữa bảng khác nhau. Nếu dùng thước đo, phép tính, hoặc bộ lọc, kết quả có thể không mong muốn do Power BI lựa chọn mối quan hệ khác nhau để áp dụng bộ lọc. Cũng có trong mối quan hệ hai chiều và cần cẩn thận khi sử dụng. Do đó, mối quan hệ nhiều-nhiều và/hoặc mối quan hệ hai chiều rất phức tạp. Trừ khi hiểu rõ cách áp dụng, không nên dùng.

Loại Cardinality Điều hướng bộ lọc chéo
Một-nhiều (hoặc Nhiều-một) Một chiềuHai chiều
Một – một Hai chiều
Nhiều – nhiều Một chiều (bảng 1 đến bảng 2)Một chiều (bảng 2 đến bảng 1)Hai chiều

4.2. Kích hoạt tính năng lọc chéo hai chiều trong DirectQuery

Tính năng lọc chéo hai chiều cho phép áp dụng bộ lọc hai phía cho các bảng liên quan. Bật tính năng lọc chéo trong hộp thoại Edit relationship. Để bật tính năng lọc chéo, đặt Cross filter direction thành Both và chọn Apply security filter in both directions.

5. Kích hoạt các mối quan hệ kết nối giữa các bảng

Chúng ta đã biết có một đường truyền bộ lọc hoạt động giữa 2 bảng mô hình. Nhưng cũng có thể thêm các đường dẫn có mối quan hệ bổ sung với trạng thái là không hoạt động. Các mối quan hệ không hoạt động chỉ có thể kích hoạt qua hàm USERELATIONSHIP của DAX. Nên xác định các mối quan hệ tích cực bất cứ khi nào có thể, giúp mở rộng phạm vi và tiềm năng cho mô hình. Nếu chỉ sử dụng các mối quan hệ hoạt động, bảng thứ nguyên nhập vai sẽ được sao chép trong mô hình. Tuy nhiên, trong các trường hợp cụ thể, có thể xác định một hoặc nhiều mối quan hệ không hoạt động cho bảng thứ nguyên nhập vai.

Bạn có thể cân nhắc thiết kế này khi:

  • Không có yêu cầu đối với hình ảnh báo cáo để lọc đồng thời theo các vai trò khác nhau.
  • Bạn sử dụng USERELATIONSHIP của hàm DAX để kích hoạt một mối quan hệ cụ thể cho các tính toán mô hình có liên quan.

Trong Power BI Desktop, mối quan hệ hoạt động hiển thị dạng đường liền nét, không hoạt động là đường đứt nét.

5.1. Tính toàn vẹn tham chiếu (Assume referential integrity)

Thuộc tính Giả sử toàn vẹn tham chiếu chỉ dùng được với mối quan hệ một-nhiều và một-một trong cùng nhóm nguồn DirectQuery. Chỉ có thể bật khi cột “nhiều” không chứa NULL. Khi được bật, truy vấn gốc nối hai bảng với nhau bằng INNER JOIN thay vì OUTER JOIN. Thường, bật thuộc tính này tăng hiệu suất truy vấn, tuy nhiên phụ thuộc vào chi tiết nguồn dữ liệu.

Khi có ràng buộc khóa ngoài giữa hai bảng, hãy bật thuộc tính này. Dù không có ràng buộc khóa ngoại, hãy xem xét kích hoạt nếu đảm bảo tính toàn vẹn dữ liệu. Liên kết inner join sẽ loại bỏ hàng không khớp giữa các bảng nếu tính toàn vẹn bị lỗi. Ví dụ, nếu ProductID trong bảng Doanh số mô hình không tồn tại trong bảng Sản phẩm, truyền bộ lọc từ bảng Sản phẩm sang bảng Doanh số sẽ loại bỏ hàng bán cho sản phẩm không xác định. Điều này có thể dẫn đến sai sót kết quả bán hàng.

5.2. Một số hàm DAX liên quan

Một số chức năng DAX có liên quan đến mối quan hệ mô hình có thể kể đến như sau:

  • RELATED: Truy xuất giá trị từ phía “một” của mối quan hệ. Nó hữu ích khi liên quan đến các phép tính từ các bảng khác nhau trong bối cảnh hàng .
  • RELATEDTABLE : Truy xuất một bảng các hàng từ phía “nhiều” của một mối quan hệ.
  • USERELATIONSHIP : Cho phép sử dụng mối quan hệ không hoạt động. Nó hữu ích khi mô hình bao gồm một bảng thứ nguyên nhập vai. Và bạn chọn tạo các mối quan hệ không hoạt động từ bảng này. Bạn cũng có thể sử dụng chức năng này để giải quyết sự mơ hồ trong đường dẫn bộ lọc .
  • CROSSFILTER: Sửa đổi hướng bộ lọc chéo của mối quan hệ (thành một hoặc cả hai) hoặc vô hiệu hóa việc truyền bộ lọc (không có). Nó hữu ích khi bạn cần thay đổi hoặc bỏ qua các mối quan hệ của mô hình trong quá trình đánh giá một phép tính cụ thể.
  • COMBINEVALUES : Nối hai hoặc nhiều chuỗi văn bản thành một chuỗi văn bản. Mục đích là hỗ trợ các mối quan hệ nhiều cột trong các mô hình DirectQuery khi các bảng thuộc cùng một nhóm nguồn.
  • TREATAS : Áp dụng kết quả của một biểu thức bảng dưới dạng bộ lọc cho các cột từ một bảng không liên quan. Nó hữu ích trong các tình huống nâng cao khi tạo mối quan hệ ảo trong quá trình đánh giá một phép tính cụ thể.
  • Parent and Child functions: Một nhóm các hàm liên quan mà bạn có thể sử dụng để tạo các cột được tính toán nhằm tự nhiên hóa cấu trúc phân cấp cha-con. Sau đó, bạn có thể sử dụng các cột này để tạo cấu trúc phân cấp ở mức cố định.

6. giá mối quan hệ

Phân loại mối quan hệ mô hình thường xuyên hoặc hạn chế từ góc độ đánh giá. Không thể định cấu hình bằng thuộc tính mối quan hệ. Suy ra từ cardinality và nguồn dữ liệu của hai bảng liên quan. Quan trọng hiểu loại đánh giá vì có thể tác động hiệu suất nếu dữ liệu bị xâm phạm.

Mô hình nhập, mô hình DirectQuery đều lấy dữ liệu từ bộ nhớ đệm Vertipaq hoặc cơ sở dữ liệu. Power BI có thể xác định các mối quan hệ “một” trong cả hai loại. Mô hình tổng hợp có thể bao gồm các bảng với các chế độ lưu trữ khác nhau hoặc nhiều nguồn DirectQuery. Mỗi nguồn, bao gồm dữ liệu đã nhập và bộ đệm Vertipaq, là một nhóm nguồn.

Mối quan hệ mô hình có thể phân thành nhóm nguồn nội bộ hoặc nhóm liên nguồn. Mối quan hệ nhóm nguồn nội bộ liên quan đến hai bảng trong cùng một nhóm, trong khi mối quan hệ nhóm liên nguồn liên quan đến bảng trên hai nhóm khác nhau. Lưu ý rằng mối quan hệ trong “mô hình nhập” hoặc “mô hình DirectQuery” luôn thuộc nhóm nguồn nội bộ.

Đây là một ví dụ về một mô hình tổng hợp (Composite model).

Trong ví dụ, mô hình tổng hợp có hai nhóm nguồn: Vertipaq và DirectQuery. Nhóm Vertipaq có 3 bảng, nhóm DirectQuery có 2 bảng. Liên kết một bảng từ nhóm Vertipaq với một bảng từ nhóm DirectQuery là mô hình tổng hợp.

6.1. Cách sử dụng mô hình tổng hợp (Composite model)

Với các mô hình tổng hợp, bạn có thể kết nối với các loại nguồn dữ liệu khác nhau. Bạn có thể tạo các kết nối dữ liệu đó theo một số cách:

  • Bằng cách nhập dữ liệu vào Power BI, đây là cách phổ biến nhất để lấy dữ liệu.
  • Kết nối trực tiếp với dữ liệu trong kho lưu trữ nguồn ban đầu bằng cách sử dụng DirectQuery. Để tìm hiểu thêm về DirectQuery.

Khi sử dụng DirectQuery, các mô hình tổng hợp có thể tạo một mô hình Power BI. Chẳng hạn như một tệp đơn có đuôi .pbix Power BI Desktop, thực hiện một trong hai hoặc cả hai tác vụ sau:

  • Kết hợp dữ liệu từ một hoặc nhiều nguồn DirectQuery.
  • Kết hợp dữ liệu từ các nguồn DirectQuery và nhập dữ liệu.

Ví dụ: bằng cách sử dụng các mô hình tổng hợp, bạn có thể xây dựng một mô hình kết hợp các loại dữ liệu sau:

  • Dữ liệu bán hàng từ kho dữ liệu doanh nghiệp (enterprise data warehouse).
  • Dữ liệu mục tiêu bán hàng từ cơ sở dữ liệu SQL Server (SQL Server database).
  • Dữ liệu được nhập từ bảng tính.

Mô hình tổng hợp là kết hợp dữ liệu từ nhiều nguồn DirectQuery hoặc kết hợp DirectQuery với dữ liệu nhập. Tạo mối quan hệ giữa các bảng ngay cả khi nguồn khác nhau. Mối quan hệ nguồn chéo nhiều-nhiều, có thể thay đổi thành một đối nhiều, nhiều đối một hoặc một đối một. Mối quan hệ nguồn khác nhau hành vi. Không sử dụng hàm Biểu thức phân tích dữ liệu để truy xuất giá trị từ phía “một” hoặc phía “nhiều”. Cũng có tác động hiệu suất so với mối quan hệ nhiều-nhiều trong cùng nguồn.

6.2. Mối quan hệ thường xuyên (Regular Relationship)

Mối quan hệ thường xuyên là khi công cụ truy vấn có thể xác định phía “một” của mối quan hệ. Cột quan hệ bên “một” chứa các giá trị duy nhất. Mối quan hệ một-nhiều trong nhóm nguồn nội bộ là mối quan hệ thường xuyên.

Có hai mối quan hệ thường xuyên và cả hai được đánh dấu là R. Mối quan hệ thường xuyên bao gồm mối quan hệ một-nhiều trong nhóm nguồn Vertipaq và mối quan hệ một-nhiều trong nguồn DirectQuery.

Khi dùng mô hình nhập, dữ liệu được lưu trong Vertipaq và Power BI tạo các cấu trúc dữ liệu để kết nối các bảng dữ liệu liên quan. Điều này bao gồm các ánh xạ chỉ mục giữa các cột và tăng tốc độ khi truy vấn.

Khi truy vấn, các mối quan hệ cho phép mở rộng bảng bằng cách thêm các cột từ bảng liên quan. Trong truy vấn, bảng nhập được mở rộng trong công cụ truy vấn, còn bảng DirectQuery được mở rộng trong truy vấn gửi đến cơ sở dữ liệu nguồn. Sau đó, công cụ truy vấn sử dụng bảng được mở rộng và áp dụng các bộ lọc và nhóm theo các giá trị trong các cột đó.

Các mối quan hệ không hoạt động cũng được mở rộng, ngay cả khi không được sử dụng bởi phép tính. Mối quan hệ hai chiều không ảnh hưởng đến việc mở rộng bảng. Mở rộng bảng từ phía “nhiều” sang phía “một” bằng cách sử dụng LEFT OUTER JOIN cho mối quan hệ một-nhiều. Nếu không có giá trị từ phía “nhiều” đến “một”, thêm hàng ảo trống vào bảng phía “một”. Áp dụng cho các mối quan hệ thường xuyên, không áp dụng cho các mối quan hệ hạn chế.

Mở rộng bảng cũng xảy ra với mối quan hệ một-một trong nhóm nguồn bằng FULL OUTER JOIN. Thêm hàng ảo trống vào hai bên khi cần thiết. Các hàng ảo trống là các thành viên không xác định, đại diện cho vi phạm tính toàn vẹn tham chiếu. Lý tưởng nhất là không nên có khoảng trống này, có thể loại bỏ bằng cách làm sạch hoặc sửa chữa dữ liệu nguồn.

Đây là ví dụ về cách mở rộng bảng hoạt động:

Trong ví dụ này, có 3 bảng: Category, Product, và Sales. Mối quan hệ giữa bảng Category và Product là một-nhiều, còn mối quan hệ giữa bảng Product và Sales là một-nhiều. Bảng Category có 2 hàng, bảng Product có 3 hàng, và bảng Sales có 5 hàng. Còn bảng mở rộng thời gian truy vấn bao gồm các cột từ 3 bảng. Một hàng mới được thêm vào bảng Sales, nhưng không có giá trị khớp trong bảng Product. Điều này sẽ vi phạm toàn vẹn tham chiếu. Trong bảng mở rộng, hàng mới có giá trị (Trống) cho các cột của bảng Category và Product.

6.3. Mối quan hệ hạn chế (Limited Relationship)

Mối quan hệ kiểu mẫu bị hạn chế khi không có bên “một” nào được đảm bảo. Một mối quan hệ hạn chế có thể xảy ra vì hai lý do:

  • Mối quan hệ sử dụng loại nhiều-nhiều (ngay cả khi một hoặc cả hai cột chứa các giá trị duy nhất).
  • Mối quan hệ là nhóm nguồn chéo (điều này chỉ có thể xảy ra đối với các mô hình tổng hợp).

Trong ví dụ sau, có hai mối quan hệ giới hạn được đánh dấu là L . Hai mối quan hệ bao gồm mối quan hệ nhiều-nhiều có trong nhóm nguồn Vertipaq và mối quan hệ nhóm nguồn chéo một-nhiều.

Đối với các mô hình nhập (Import Model), cấu trúc dữ liệu không bao giờ được tạo cho các mối quan hệ hạn chế. Trong trường hợp đó, Power BI sẽ giải quyết các phép nối bảng tại thời điểm truy vấn.

Mở rộng bảng không bao giờ xảy ra đối với các mối quan hệ hạn chế. Có thể liên kết các bảng bằng cách sử dụng INNER JOIN và các hàng ảo trống không được thêm vào để bù đắp cho các vi phạm tính toàn vẹn tham chiếu.

Có những hạn chế khác liên quan đến các mối quan hệ hạn chế:

  • Không thể sử dụng hàm RELATED của DAX để truy xuất các giá trị cột bên “một”.
  • Thực thi RLS có các hạn chế về cấu trúc liên kết.

Trong dạng xem mô hình Power BI Desktop, bạn có thể xem  một mối quan hệ là bị giới hạn bằng các dấu ngoặc đơn ( ) sau các chỉ số.

6.4. Mức độ ưu tiên và trọng số về đường dẫn của các mối quan hệ

Sử dụng khi có không rõ ràng giữa các đường dẫn qua bộ lọc trong mối quan hệ hai chiều.

Mức độ ưu tiên

Mức ưu tiên xác định một chuỗi các quy tắc mà Power BI sử dụng để giải quyết sự không rõ ràng về đường dẫn mối quan hệ. Nếu quy tắc phù hợp đầu tiên phù hợp thì Power BI sẽ xét đến quy tắc tiếp theo. Mỗi quy tắc bên dưới mô tả cách các bộ lọc chuyển từ bảng nguồn sang bảng đích. (Theo thứ tự ưu tiên)

  • Một đường dẫn bao gồm các mối quan hệ một-nhiều.
  • Một đường dẫn bao gồm các mối quan hệ một-nhiều hoặc nhiều-nhiều.
  • Một đường dẫn bao gồm các mối quan hệ nhiều-một.
  • Đường dẫn bao gồm các mối quan hệ một-nhiều từ bảng nguồn đến bảng trung gian, theo sau là mối quan hệ nhiều-một từ bảng trung gian đến bảng đích.
  • Đường dẫn bao gồm các mối quan hệ một-nhiều hoặc nhiều-nhiều từ bảng nguồn đến bảng trung gian, theo sau là mối quan hệ nhiều-một hoặc nhiều-nhiều từ bảng trung gian đến bảng đích.
  • Bất kỳ con đường nào khác.

Khi một mối quan hệ được bao gồm trong tất cả các đường dẫn có sẵn, thì mối quan hệ đó sẽ bị xóa khỏi mọi đường dẫn.

Trọng số

Trọng số của mỗi mối quan hệ trong đường dẫn đều bằng nhau. Trọng số đường dẫn là giá trị lớn nhất các trọng số quan hệ. Power BI sử dụng trọng số để giải quyết không rõ ràng giữa các đường dẫn cùng một ưu tiên. Trọng số có thể tác động bằng hàm USERELATIONSHIP. Trọng số được xác định bởi mức lồng nhau hàm này. Ví dụ: Thước đo Doanh số sản phẩm (Product Sales) chỉ định trọng số cao hơn cho mối quan hệ giữa Sales[ProductID] và Product[ProductID], theo sau là mối quan hệ giữa Inventory[ProductID] và Product[ProductID].

Lệnh DAX:

Product Sales =

CALCULATE(

    CALCULATE(

        SUM(Sales[SalesAmount]),

        USERELATIONSHIP(Sales[ProductID], Product[ProductID])

    ),

    USERELATIONSHIP(Inventory[ProductID], Product[ProductID])

)

Power BI sẽ trả về lỗi không rõ ràng nếu nhiều đường dẫn có cùng ưu tiên và trọng số. Để giải quyết, bạn có thể sử dụng hàm USERELATIONSHIP hoặc xóa hoặc sửa đổi các mối quan hệ trong mô hình.

6.5. Tùy chọn hiệu suất

Danh sách sau sắp xếp hiệu suất lan truyền của bộ lọc, từ nhanh nhất đến chậm nhất:

  • Mối quan hệ nhóm nội bộ nguồn một-nhiều
  • Các mối quan hệ mô hình nhiều-nhiều đạt được với một bảng trung gian và liên quan đến ít nhất một mối quan hệ hai chiều
  • Mối quan hệ cardinality nhiều-nhiều
  • Mối quan hệ nhóm nguồn chéo

7. Tạo mối quan hệ nhiều-nhiều

7.1. Mối quan hệ nhiều-nhiều dùng để làm gì?

Trước khi có các mối quan hệ nhiều-nhiều, mối quan hệ giữa hai bảng đã được xác định. Có ít nhất một trong các cột của bảng tham gia vào mối quan hệ phải chứa các giá trị duy nhất. Tuy nhiên, thông thường, không có cột nào chứa các giá trị duy nhất.

Ví dụ: hai bảng có thể có một cột có nhãn Country. Tuy nhiên, các giá trị của CountryRegion không phải là duy nhất trong cả hai bảng. Để tham gia các bảng như vậy, bạn phải tạo một giải pháp thay thế. Một giải pháp thay thế là giới thiệu các bảng bổ sung với các giá trị duy nhất cần thiết. Với các mối quan hệ có số lượng nhiều-nhiều, bạn có thể tham gia trực tiếp các bảng như vậy, nếu bạn sử dụng mối quan hệ có số lượng nhiều-nhiều.

7.2. Cách tạo mối quan hệ nhiều nhiều

Xem xét tình huống xây dựng hình ảnh trực quan để kiểm tra ngân sách cho khách hàng và tài khoản. Bạn có thể có nhiều khách hàng trên cùng một tài khoản và nhiều tài khoản với cùng một khách hàng. Vì vậy bạn biết rằng mình cần tạo mối quan hệ nhiều-nhiều.

Để tạo mối quan hệ này, hãy chuyển đến Manage Relationships > New. Trong cửa sổ kết quả, tạo mối quan hệ giữa cột CustomerID trong CustomerTable và AccountTable. Mối quan hệ được đặt thành nhiều-nhiều và loại bộ lọc theo cả hai hướng. Ngay lập tức, sẽ có cảnh báo rằng bạn chỉ nên sử dụng kiểu quan hệ này nếu dự kiến rằng cả hai cột sẽ không có giá trị duy nhất vì bạn có thể nhận được các giá trị không mong muốn. Vì bạn muốn lọc theo cả hai hướng nên chọn lọc chéo hai chiều .

Chọn OK . Bây giờ bạn đã tạo thành công mối quan hệ nhiều-nhiều.

7.3. Cân nhắc và hạn chế

Có một số hạn chế đối với việc phát hành các mối quan hệ nhiều-nhiều. Không thể sử dụng các nguồn Live Connect (đa chiều) sau đây với các mô hình tổng hợp:

  • SAP HANA
  • SAP Business Warehouse
  • SQL Server Analysis Services
  • Bộ dữ liệu Power BI
  • Azure Analysis Services

Khi kết nối với các nguồn đa chiều này bằng cách sử dụng DirectQuery, bạn không thể kết nối với một nguồn DirectQuery khác hoặc kết hợp nó với dữ liệu đã nhập.

DirectQuery hiện có hạn chế khi sử dụng các mối quan hệ nhiều-nhiều. Mỗi bảng có số lượng giới hạn khác nhau tùy chế độ lưu trữ. Cột tính toán trên bảng nhập có thể tham chiếu đến bảng khác nhưng cột tính toán trên bảng DirectQuery chỉ tham chiếu đến cột trên cùng bảng. Hạn chế khác áp dụng cho toàn bộ mô hình nếu có bất kỳ bảng nào có chế độ lưu trữ DirectQuery. Ví dụ: QuickInsights và Q&A không khả dụng trên mô hình có bảng nào dùng DirectQuery.

Trên đây là những thông tin cần thiết để biết Làm Việc Với Các Mối Quan Hệ – Kết Nối Giữa Các Bảng trong Power BI Desktop. Để tìm hiểu thêm về Power BI Desktop, các bạn có thể tham khảo series Power BI Desktop tại Mastering Data Analytics. Cảm ơn các bạn đã đọc bài!

Xem thông tin khai giảng Khóa học Business Intelligence sớm nhất tại Mastering Data Analytics. Với mọi thắc mắc xin liên hệ hotline 0961 48 66 48 hoặc inbox Fanpage Mastering Data Analytics để đăng ký nhanh nhất nhé!