Stosowanie ustawienia Przyjmij integralność referencyjną w programie Power BI Desktop
Podczas nawiązywania połączenia ze źródłem danych przy użyciu trybu DirectQuery możesz użyć wyboru Przyjmij integralność referencyjną , aby umożliwić uruchamianie bardziej wydajnych zapytań względem źródła danych. Ta funkcja ma kilka wymagań dotyczących danych bazowych i jest dostępna tylko w przypadku korzystania z trybu DirectQuery.
Ustawienie Przyjmij integralność referencyjną umożliwia wykonywanie zapytań względem źródła danych w celu używania instrukcji INNER JOIN, a nie OUTER JOIN, co zwiększa wydajność zapytań.
Wymagania dotyczące używania opcji Przyjmij integralność referencyjną
To ustawienie jest ustawieniem zaawansowanym i jest włączone tylko podczas nawiązywania połączenia z danymi przy użyciu trybu DirectQuery. Aby prawidłowo działać integralność referencyjna, należy spełnić następujące wymagania:
- Dane w kolumnie Od w relacji nigdy nie mają wartości null ani nie są puste
- Dla każdej wartości w kolumnie Od znajduje się odpowiadająca jej wartość w kolumnie Do
W tym kontekście kolumna Od jest relacją Wiele w relacji jeden do wielu lub kolumną w pierwszej tabeli w relacji jeden do jednego.
Przykład użycia opcji Przyjmij integralność referencyjną
W poniższym przykładzie pokazano, jak działa przyjmij integralność referencyjną w przypadku użycia w połączeniach danych. Przykład łączy się ze źródłem danych zawierającym tabelę Orders , tabelę Products i tabelę Depots .
Na poniższej ilustracji przedstawiającej tabelę Orders (Zamówienia) i Tabelę Products (Produkty) istnieje integralność referencyjna między kolumnami Orders[ProductID] i Products[ProductID]. Kolumna [ProductID] w tabeli Orders nigdy nie ma wartości Null, a każda wartość jest również wyświetlana w tabeli Products . W związku z tym należy ustawić opcję Przyjmij integralność referencyjną w celu uzyskania bardziej wydajnych zapytań. Użycie tego ustawienia nie zmienia wartości wyświetlanych w wizualizacjach.
Na następnej ilustracji zwróć uwagę, że między kolumnami Orders[DepotID] i Depots[DepotID] nie istnieje integralność referencyjna, ponieważ identyfikator DepotID ma wartość Null dla niektórych zamówień. W związku z tym nie należy ustawiać opcji Przyjmij integralność referencyjną.
Na koniec w poniższych tabelach nie istnieje integralność referencyjna między kolumnami Orders[CustomerID] i Customers[CustID]. Identyfikator CustomerID zawiera wartość CustX, która nie istnieje w tabeli Customers . W związku z tym nie należy ustawiać opcji Przyjmij integralność referencyjną.
Ustawienie Przyjmij integralność referencyjną
Aby włączyć tę funkcję, wybierz pozycję Przyjmij integralność referencyjną , jak pokazano na poniższej ilustracji.
Po wybraniu tego ustawienia jest weryfikowane względem danych, aby upewnić się, że nie ma wierszy o wartości null lub niedopasowanych. Jednak w przypadku bardzo dużej liczby wartości walidacja nie gwarantuje, że nie ma żadnych problemów z integralnością referencyjną.
Ponadto walidacja odbywa się w momencie edytowania relacji i nie odzwierciedla żadnych kolejnych zmian w danych.
Co się stanie, jeśli niepoprawnie ustawisz opcję Przyjmij integralność referencyjną?
Jeśli ustawisz ustawienie Przyjmij integralność referencyjną, gdy występują problemy z integralnością referencyjną w danych, to ustawienie nie powoduje błędów. Jednak powoduje to pozorne niespójności w danych. Na przykład w przypadku relacji z tabelą Depots opisanej tutaj spowoduje to następujące kwestie:
- Wizualizacja przedstawiająca łączną liczbę order qty pokazuje wartość 40.
- Wizualizacja przedstawiająca łączną liczbę order qty by Depot City pokazuje łączną wartość tylko 30, ponieważ nie zawierałaby identyfikatora zamówienia 1, gdzie DepotID ma wartość Null.
Powiązana zawartość
- Dowiedz się więcej o trybie DirectQuery.
- Uzyskaj więcej informacji na temat relacji w usłudze Power BI.
- Dowiedz się więcej o widoku modelu w programie Power BI Desktop.