Pracuj z relacjami i kardynalnością

Ukończone

W przeciwieństwie do innych systemów zarządzania bazami danych, Power BI pojęcie kierunkowości jest w relacji. Kierunkowość pełni ważną rolę w filtrowaniu danych między wieloma tabelami. Podczas ładowania danych automatycznie Power BI wyszukuje relacje istniejące w danych, pasujące nazwy kolumn. Te opcje można również edytować ręcznie, za pomocą funkcji Zarządzanie relacjami.

Na przykład z bazy danych sprzedaży pobrano wiele tabel, a przykładem modelu semantycznego jest poniższy obraz. Power BI Użytkownik ma kilka relacji z automatycznymi powiązaniami, ale nie można określić, co to znaczy. Chcesz mieć pewność, że relacje dokładnie odzwierciedlają te, które istnieją w danych.

Relacje

Są to różne typy relacji, które można znaleźć w Power BI.

Relacja typu „wiele do jednego (*:1) ” lub „jeden do wielu (1: *)

  • Opisuje relację, w której w jednej kolumnie znajduje się wiele wystąpień wartości, które są powiązane tylko z jednym unikatowym odpowiednim wystąpieniem w innej kolumnie.

  • Opisuje kierunkowość między tabelami faktów i wymiarów.

  • Jest najczęstszym typem kierunkowości i jest domyślnym Power BI typem podczas automatycznego tworzenia relacji.

Przykładem relacji jeden-do-wielu mogą być tabele CountryName i Terytorium, w których można skojarzyć wiele obszarów z jednym unikatowym krajem.

Relacja jeden-do-jednego (1:1):

  • Opisuje relację, w której tylko jedno wystąpienie wartości jest wspólne między dwiema tabelami.

  • Wymaga unikatowych wartości w obu tabelach.

  • Nie jest zalecane, ponieważ ta relacja przechowuje nadmiarowe informacje i sugeruje, że model nie został poprawnie zaprojektowany. Najlepiej połączyć tabele.

Przykładem relacji jeden-do-jednego może być, gdyby produkty i identyfikatory produktów były dostępne w dwóch różnych tabelach. Tworzenie relacji jeden-do-jednego jest nadmiarowe i należy połączyć te dwie tabele.

Relacja typu „wiele do wielu”:

  • Opisuje relację, w której wiele wartości jest wspólnych między dwiema tabelami.

  • Nie wymaga unikatowych wartości w tabeli w relacji.

  • Nie jest zalecane; brak unikatowych wartości wprowadza niejednoznaczność, a użytkownicy mogą nie wiedzieć, do której kolumny wartości się odwołuje.

Na przykład poniższy rysunek przedstawia relację typu „wiele do wielu ” między tabelami Sprzedaż i Zamówienie w kolumnie OrderDate , ponieważ z wieloma zamówieniami może być skojarzonych wiele zamówień. Wprowadzono niejednoznaczność, ponieważ obie tabele mogą mieć tę samą datę zamówienia.

Kierunek filtru krzyżowego

Dane można filtrować po jednej lub obu stronach relacji.

Z jednym kierunkiem filtru krzyżowego:

  • Do filtrowania danych można użyć tylko jednej tabeli w relacji. Na przykład tabela 1 może być filtrowana według tabeli 2, ale tabela 2 nie może być filtrowana według tabeli 1.

    Napiwek

    Postępuj zgodnie ze strzałką w relacji między tabelami, aby wiedzieć, w którym kierunku będzie przepływ filtru. Zazwyczaj strzałki mają wskazujeć tabelę factów.

  • W przypadku relacji jeden-do-wielu lub wielu-jeden kierunek filtru krzyżowego będzie pochodził od strony „jeden”, co oznacza, że filtrowanie będzie się pojawiać w tabeli o wielu wartościach.

W przypadku obu kierunków filtrowania krzyżowego i dwukierunkowego filtrowania krzyżowego:

  • Jedna tabela w relacji może być używana do filtrowania drugiej. Na przykład tabela wymiarów może być filtrowana przez tabelę faktów, a tabele faktów mogą być filtrowane przez tabelę wymiarów.

  • W przypadku filtrowania odsyłaczy dwukierunkowych z relacjami typu „wiele do wielu” może być niższa wydajność.

W przypadku dwukierunkowego filtrowania krzyżowego należy zachować szczególną ostrożność: nie należy włączać relacji filtrowania odsyłacza dwukierunkowego, chyba że w pełni zrozumieć konsekwencje tego działania. Włączenie tej funkcji może prowadzić do niejednoznaczności, przekroczenie kontroli wyrywkowej, nieoczekiwanych wyników i potencjalnego spadku wydajności.

Liczebność i kierunek filtru krzyżowego

W przypadku relacji jeden-do-jednego jedyną dostępną opcją jest filtrowanie odsyłaczy dwukierunkowych. Dane można filtrować po obu stronach tej relacji, co pozwala uzyskać jedną odrębną, jednoznaczną wartość. Na przykład można odfiltrować jeden identyfikator produktu i zwrócić jeden produkt, a następnie można odfiltrować produkt i zwrócić jeden identyfikator produktu.

W przypadku relacji typu „wiele do wielu” można wybrać filtrowanie w jednym lub w obu kierunkach za pomocą dwukierunkowego filtrowania krzyżowego. Niejednoznaczność skojarzona z dwukierunkowym filtrowaniem krzyżowym jest amplifikowana w relacji typu „wiele do wielu”, ponieważ między różnymi tabelami będzie istnieć wiele ścieżek. W przypadku tworzenia miary, Power BI obliczania lub filtrowania mogą wystąpić nieprzewidywane skutki filtrowania danych, a w zależności od relacji wybranej przez aparat podczas stosowania filtru wynik końcowy może być inny. Ta sytuacja dotyczy także relacji dwukierunkowych i przyczyny, dla której należy używać.

Z tego względu relacje typu „wiele do wielu” i/lub relacje dwukierunkowe są skomplikowane. Jeśli nie ma pewności, jak dane są agregowane, te typy relacji zakończonej z wieloma kierunkami filtrowania mogą wprowadzać wiele ścieżek przez dane.

Tworzenie relacji typu „wiele do wielu”

Rozważmy scenariusz, w którym trzeba budować budżety odbiorców i kont. Na tym samym koncie może mieć wielu odbiorców oraz wiele kont z tym samym klientem, więc wiadomo, że trzeba utworzyć relację typu „wiele do wielu”.

Aby utworzyć tę relację, przejdź do tematu Zarządzanie relacjami nowe>. W wynikowym oknie utwórz relację między kolumnami Identyfikator odbiorcy w tabeli odbiorcy i w tabeli kont Relacja ma wartość „wiele do wielu”, a typ filtru jest w obu kierunkach. Natychmiast pojawi się ostrzeżenie, że tego typu relacja powinna być dostępna tylko wtedy, gdy oczekiwano, że żadna z kolumn nie będzie mieć unikatowych wartości, ponieważ mogą wystąpić nieoczekiwane wartości. Ponieważ filtrowanie ma być w obu kierunkach, należy wybrać filtrowanie dwukierunkowe.

Wybierz przycisk OK. Utworzono relację typu „wiele do wielu”.

Aby uzyskać więcej informacji, zobacz temat Wiele do wielu relacji w Power BI.