Nawiązywanie połączenia ze źródłami danych sap HANA przy użyciu trybu DirectQuery w usłudze Power BI
Możesz połączyć się ze źródłami danych platformy SAP HANA bezpośrednio przy użyciu trybu DirectQuery, co jest często wymagane w przypadku dużych zestawów danych, które przekraczają dostępne zasoby do obsługi modeli importu. Istnieją dwa podejścia do nawiązywania połączenia z platformą SAP HANA w trybie DirectQuery, z których każda ma różne możliwości:
Traktuj platformę SAP HANA jako źródło wielowymiarowe (ustawienie domyślne): W tym przypadku zachowanie jest podobne do tego, gdy usługa Power BI łączy się z innymi wielowymiarowymi źródłami, takimi jak SAP Business Warehouse lub Analysis Services. Po nawiązaniu połączenia z platformą SAP HANA jako źródła wielowymiarowego zostanie wybrany pojedynczy widok analityczny lub obliczeniowy, a wszystkie miary, hierarchie i atrybuty tego widoku są dostępne na liście pól. Nie można dodawać kolumn obliczeniowych ani innych dostosowań danych w modelu semantycznym. Podczas tworzenia wizualizacji agregowane dane są pobierane bezpośrednio z platformy SAP HANA. Traktowanie platformy SAP HANA jako źródła wielowymiarowego jest ustawieniem domyślnym dla nowych raportów DirectQuery za pośrednictwem platformy SAP HANA.
Traktuj platformę SAP HANA jako źródło relacyjne: W tym przypadku usługa Power BI traktuje platformę SAP HANA jako źródło danych relacyjnych. Takie podejście zapewnia większą elastyczność. Między innymi można dodawać kolumny obliczeniowe i uwzględniać dane z innych źródeł, ale należy zadbać o to, aby upewnić się, że miary są agregowane zgodnie z oczekiwaniami. Unikaj miar nie addytywnych. Upewnij się również, że używasz prostych widoków z niewielką liczbą kolumn i połączeń, aby uniknąć problemów z wydajnością. Rozważ ponowne utworzenie miar w modelu semantycznym, ale pamiętaj, że złożone miary mogą nie składać się. Hierarchie platformy SAP HANA są niedostępne w przypadku korzystania z platformy SAP HANA jako źródła relacyjnego.
Metoda połączenia jest określana przez globalną opcję narzędzia, która jest ustawiana przez wybranie opcji Plik>Opcje i ustawienia, a następnie Opcje>DirectQuery, a następnie wybranie opcji Traktuj platformę SAP HANA jako źródło relacyjne, jak pokazano na poniższym obrazku.
Opcja traktowania platformy SAP HANA jako źródła relacyjnego kontroluje metodę połączenia dla każdego nowego raportu przy użyciu trybu DirectQuery za pośrednictwem platformy SAP HANA. Nie ma to wpływu na żadne istniejące połączenia sap HANA w bieżącym raporcie ani na połączenia w żadnych innych otwartych raportach. Jeśli więc opcja jest obecnie niezaznaczona, po dodaniu nowego połączenia z SAP HANA za pomocą Pobierz dane, to połączenie traktuje SAP HANA jako wielowymiarowe źródło. Jeśli jednak zostanie otwarty inny raport, który również łączy się z platformą SAP HANA, ten raport nadal zachowuje się zgodnie z opcją ustawioną w momencie utworzenia. Oznacza to, że wszystkie raporty łączące się z platformą SAP HANA jako źródło relacyjne nadal traktują platformę SAP HANA jako źródło relacyjne, nawet jeśli opcja jest teraz niezaznaczone.
Dwie metody połączenia sap HANA stanowią inne zachowanie i nie można przełączyć istniejącego raportu z jednej metody połączenia na drugą.
Traktuj platformę SAP HANA jako źródło wielowymiarowe (ustawienie domyślne)
Wszystkie nowe połączenia z platformą SAP HANA domyślnie używają tej metody połączenia, traktując platformę SAP HANA jako źródło wielowymiarowe. Podczas nawiązywania połączenia z platformą SAP HANA jako źródła wielowymiarowego mają zastosowanie następujące zagadnienia:
W nawigatorze pobierania danych można wybrać pojedynczy widok SAP HANA. Nie można wybrać poszczególnych miar ani atrybutów. Podczas nawiązywania połączenia nie zdefiniowano zapytania, które różni się od importowania danych lub korzystania z trybu DirectQuery podczas traktowania platformy SAP HANA jako źródła relacyjnego. To zagadnienie oznacza również, że nie można bezpośrednio użyć zapytania SQL SAP HANA podczas wybierania tej metody połączenia.
Wszystkie miary, hierarchie i atrybuty wybranego widoku są wyświetlane na liście pól.
Kiedy miara jest używana w przedstawieniu graficznym, platforma SAP HANA jest odpytywana w celu pobrania wartości miary na odpowiednim poziomie agregacji niezbędnym dla tego przedstawienia. W przypadku miar nie addytywnych, takich jak liczniki i współczynniki, wszystkie agregacje są wykonywane przez platformę SAP HANA i nie są wykonywane żadne dalsze agregacje przez usługę Power BI.
Aby zapewnić, że z platformy SAP HANA można zawsze uzyskać prawidłowe wartości agregacji, należy nałożyć pewne ograniczenia. Na przykład nie można dodać kolumn obliczeniowych ani połączyć danych z wielu widoków platformy SAP HANA w tym samym raporcie. Nie można również usunąć kolumn ani zmienić ich typów danych.
Traktowanie platformy SAP HANA jako źródła wielowymiarowego zapewnia mniejszą elastyczność niż alternatywne podejście relacyjne, ale jest bardziej proste. Ta metoda połączenia zapewnia prawidłowe wartości zagregowane podczas pracy z bardziej złożonymi miarami platformy SAP HANA i ogólnie skutkuje wyższą wydajnością.
Lista pól
Każdy atrybut, który jest uwzględniony w co najmniej jednej hierarchii, jest domyślnie ukryty. Można je jednak zobaczyć, jeśli jest to wymagane, wybierając pozycję Wyświetl ukryte z menu kontekstowego na liście pól. W razie potrzeby można je uwidocznić w tym samym menu kontekstowym.
W oprogramowaniu SAP HANA można zdefiniować atrybut, aby użyć innego atrybutu jako etykiety. Na przykład Productz wartościami
1
,2
,3
itd., może używać ProductName, z wartościamiBike
,Shirt
,Gloves
itd., jako swoją etykietę. W tym przypadku na liście pól jest wyświetlane jedno pole Product, którego wartości to etykietyBike
,Shirt
,Gloves
itd., ale które jest sortowane według i z unikatowością określaną przez wartości klucza1
,2
,3
. Zostanie również utworzona ukryta kolumna Product.Key umożliwiająca dostęp do podstawowych wartości klucza w razie potrzeby.
Wszystkie zmienne zdefiniowane w bazowym widoku platformy SAP HANA są wyświetlane w momencie nawiązywania połączenia i można wprowadzić niezbędne wartości. Te wartości można później zmienić, wybierając Przekształć dane na wstążce, a następnie Edytuj parametry z wyświetlonego menu rozwijanego.
Dozwolone operacje modelowania są bardziej restrykcyjne niż w przypadku korzystania z trybu DirectQuery, biorąc pod uwagę konieczność zapewnienia, że poprawne dane agregujące mogą być zawsze uzyskiwane z platformy SAP HANA. Jednak nadal istnieje możliwość wprowadzenia niektórych dodatków i zmian, w tym definiowania miar, zmiany nazw i ukrywania pól oraz definiowania formatów wyświetlania. Wszystkie takie zmiany są zachowywane podczas odświeżania, a wszystkie zmiany niezwiązane z konfliktem wprowadzone w widoku platformy SAP HANA są stosowane.
Dodatkowe ograniczenia modelowania
Oprócz wyżej wymienionych ograniczeń należy pamiętać o następujących ograniczeniach modelowania podczas nawiązywania połączenia z platformą SAP HANA jako źródła wielowymiarowego:
- Brak obsługi kolumn obliczeniowych: Możliwość tworzenia kolumn obliczeniowych jest wyłączona. Ten fakt oznacza również, że grupowanie i klastrowanie, które opierają się na kolumnach obliczeniowych, nie są dostępne.
- Dodatkowe ograniczenia dotyczące miar: Istnieją inne ograniczenia nałożone na wyrażenia języka DAX, które mogą być używane w miarach, aby odzwierciedlać poziom obsługi oferowany przez platformę SAP HANA. Na przykład nie można użyć funkcji agregującej w tabeli.
- Brak obsługi definiowania relacji: w raporcie można wykonywać zapytania tylko w jednym widoku, a w związku z tym nie ma obsługi definiowania relacji.
- Brak widoku tabeli: Widok tabeli zwykle wyświetla dane szczegółowe w tabelach. Ze względu na charakter źródeł wielowymiarowych ten widok nie jest dostępny w przypadku korzystania z platformy SAP HANA jako źródła wielowymiarowego.
- szczegóły kolumny i miary są stałe: Kolumny i miary na liście pól są określane przez bazowe źródło i nie można ich modyfikować. Na przykład nie można usunąć kolumny ani zmienić jej typu danych. Można jednak zmienić jego nazwę.
Dodatkowe ograniczenia wizualizacji
Istnieją ograniczenia dotyczące wizualizacji podczas nawiązywania połączenia z platformą SAP HANA jako źródła wielowymiarowego:
- Brak agregacji kolumn: Nie można zmienić agregacji kolumny na wizualu i zawsze jest ustawiona na Nie sumuj.
Traktuj platformę SAP HANA jako źródło relacyjne
Aby nawiązać połączenie z platformą SAP HANA jako źródło relacyjne, musisz wybrać pozycję Plik>Opcje i ustawienia, a następnie Opcje>DirectQuery, a potem wybrać opcję Traktuj SAP HANA jako źródło relacyjne.
W przypadku korzystania z platformy SAP HANA jako źródła relacyjnego dostępna jest pewna dodatkowa elastyczność. Można na przykład tworzyć kolumny obliczeniowe, dołączać dane z wielu widoków platformy SAP HANA i tworzyć relacje między tabelami wynikowym. Istnieją jednak różnice w zachowaniu podczas nawiązywania połączenia z platformą SAP HANA jako źródła wielowymiarowego, szczególnie gdy widok platformy SAP HANA zawiera miary inne niż addytywne, na przykład różne liczby lub średnie, a nie proste sumy. Miary nie addytywne mogą generować nieprawidłowe wyniki. Miary mogą również zmniejszyć wydajność optymalizacji planu zapytań na platformie SAP HANA i spowodować niską wydajność zapytań i przekroczenia limitu czasu.
Informacje o oprogramowaniu SAP HANA jako relacyjnym źródle
Warto zacząć od wyjaśnienia zachowania źródła relacyjnego, takiego jak program SQL Server, gdy zapytanie zdefiniowane w Pobieranie danych lub Edytor Power Query wykonuje agregację. W poniższym przykładzie zapytanie zdefiniowane w Edytorze Power Query zwraca średnią cenę przez ProductID.
Jeśli dane zostały zaimportowane do usługi Power BI zamiast użycia trybu DirectQuery, wynik byłby następujący:
- Dane są importowane na poziomie agregacji zdefiniowanym przez zapytanie utworzone w Edytorze Power Query. Na przykład średnia cena według produktu. Ten fakt powoduje utworzenie tabeli z dwiema kolumnami ProductID i AveragePrice, które mogą być używane w wizualizacjach.
- W wizualizacji każda kolejna agregacja, taka jak Sum, Average, Mini inne, jest wykonywana względem tych zaimportowanych danych. Na przykład dołączenie AveragePrice do wizualizacji używa Sum jako agregacji domyślnie i zwraca sumę z AveragePrice dla każdego ProductID. W tym przykładzie zwróci 13,67. To samo dotyczy dowolnej alternatywnej funkcji agregującej, takiej jak Min lub Average, używanej na wizualizacji. Na przykład average z AveragePrice zwraca średnią 6,66, 4 i 3, co odpowiada 4,56, a nie średniej Price na sześciu rekordach w tabeli bazowej, czyli 5,17.
Jeśli zapytanie bezpośrednie w tym samym źródle relacyjnym jest używane zamiast importu, mają zastosowanie te same semantyki, a wyniki będą dokładnie takie same:
Biorąc pod uwagę to samo zapytanie, logicznie dokładnie te same dane są prezentowane warstwie raportowania , mimo że dane nie są rzeczywiście importowane.
W wizualizacji każda kolejna agregacja, taka jak Sum, Averagei Min, jest ponownie wykonywana na tej tabeli logicznej z zapytania. Ponownie wizualizacja zawierająca średnią z AveragePrice zwraca tę samą wartość 4,56.
Rozważ platformę SAP HANA, gdy połączenie jest traktowane jako źródło relacyjne. Usługa Power BI może pracować zarówno z widokami analitycznymi , jak i widokami obliczeń w oprogramowaniu SAP HANA, z których oba mogą zawierać miary. Obecnie podejście do SAP HANA opiera się na tych samych zasadach, które opisano wcześniej w tej sekcji: zapytanie zdefiniowane w Pobieranie danych lub w Edytorze Power Query określa dostępne dane, a następnie każda kolejna agregacja w wizualizacji opiera się na tych danych. To samo dotyczy zarówno Importu, jak i DirectQuery. Jednak biorąc pod uwagę charakter platformy SAP HANA, zapytanie zdefiniowane w początkowym oknie dialogowym Pobieranie danych lub Edytor Power Query jest zawsze zapytaniem agregacji i zwykle obejmuje miary, w których rzeczywiste agregacje, które są używane, są definiowane przez widok SAP HANA.
Odpowiednikiem poprzedniego przykładu z SQL Server jest widok SAP HANA zawierający identyfikator, ID produktu, ID magazynuoraz miary, w tym ŚredniaCena, zdefiniowane w widoku jako Średnia cena.
Jeśli w środowisku Pobierz dane wybrane opcje zostały wykonane dla productID i miary AveragePrice, oznacza to definiowanie zapytania w widoku, żądając tych danych agregujących. W poprzednim przykładzie dla uproszczenia użyto pseudo-SQL, który nie jest zgodny z dokładną składnią oprogramowania SAP HANA SQL. Następnie wszelkie dalsze agregacje zdefiniowane w wizualizacji są dalej agregujące wyniki takiego zapytania. Ponownie, zgodnie z opisem wcześniej dla programu SQL Server, ten wynik dotyczy zarówno przypadku importu, jak i zapytania bezpośredniego. W przypadku zapytania DirectQuery, zapytanie z Pobierz dane lub Edytora Power Query jest używane jako podzapytanie w ramach jednego zapytania wysyłanego do SAP HANA. W związku z tym dane nie są w rzeczywistości odczytywane w całości przed dalszym agregowaniem.
Wszystkie te zagadnienia i zachowania wymagają następujących ważnych zagadnień podczas korzystania z trybu DirectQuery za pośrednictwem platformy SAP HANA jako źródła relacyjnego:
Należy zwrócić uwagę na wszelkie dalsze agregacje wykonywane w wizualizacjach, gdy miara na platformie SAP HANA jest nieaddytywna, na przykład nie jest to prosta Sum, Minlub Max.
W Pobierz dane lub Edytorze Power Query należy uwzględnić tylko wymagane kolumny w celu pobrania niezbędnych danych, co odzwierciedla to, że wynikiem jest zapytanie, które musi być rozsądne i które można wysłać do SAP HANA. Na przykład, jeśli wybrano dziesiątki kolumn z myślą, że mogą one być potrzebne w kolejnych wizualizacjach, to nawet przy użyciu DirectQuery, prosta wizualizacja oznacza, że zapytanie agregujące używane w podzapytaniu zawiera te dziesiątki kolumn, które zazwyczaj działają słabo i mogą napotkać przekroczenia czasu.
W poniższym przykładzie wybranie pięciu kolumn (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) w oknie dialogowym Pobieranie danych, wraz z miarą OrderQuantityoznacza, że później utworzenie prostej wizualizacji zawierającej Min OrderQuantity powoduje wykonanie następującego zapytania SQL na platformie SAP HANA. Cieniowany jest podwybór zawierający zapytanie z Pobierz dane / Edytor Power Query. Jeśli ten podwybór daje wysoki wynik kardynalności, wynikowa wydajność platformy SAP HANA może być niska lub napotkać przekroczenia limitu czasu. Wpływ na wydajność nie wynika z tego, że Power BI żąda wszystkich pól w podzapytaniu; większość tych pól zostanie pominięta przez zapytanie zewnętrzne. Wpływ jest spowodowany raczej działaniami w podzestawieniu, które wymuszają jego zmaterializowanie na serwerze HANA.
W związku z tym zachowaniem zalecamy ograniczenie elementów wybranych w Pobierz dane lub Edytorze Power Query do tych, które są niezbędne, co zapewnia uzyskanie odpowiedniego zapytania do bazy danych SAP HANA. Jeśli to możliwe, rozważ ponowne utworzenie wszystkich wymaganych miar w modelu semantycznym i użycie platformy SAP HANA bardziej jak tradycyjne źródło relacyjne.
Najlepsze rozwiązania
W przypadku obu metod nawiązywania połączenia z platformą SAP HANA postępuj zgodnie z ogólnymi zaleceniami dotyczącymi korzystania z trybu DirectQuery, szczególnie zalecenia związane z zapewnieniem dobrej wydajności zapytań. Aby uzyskać więcej informacji, zobacz using DirectQuery in Power BI.
Zagadnienia i ograniczenia
Na poniższej liście opisano wszystkie funkcje platformy SAP HANA, które nie są w pełni obsługiwane, lub funkcje, które zachowują się inaczej podczas korzystania z usługi Power BI.
- Hierarchie nadrzędno-podrzędne: Hierarchie nadrzędno-podrzędne nie są widoczne w Power BI. Dzieje się tak, ponieważ usługa Power BI uzyskuje dostęp do platformy SAP HANA przy użyciu interfejsu SQL, a nadrzędne hierarchie podrzędne nie mogą być w pełni dostępne przy użyciu języka SQL.
- Inne metadane hierarchii: Podstawowa struktura hierarchii jest wyświetlana w usłudze Power BI, jednak niektóre metadane hierarchii, takie jak kontrolowanie zachowania poszarpanych hierarchii, nie mają wpływu. Ponownie jest to spowodowane ograniczeniami narzuconymi przez interfejs SQL.
- Połączenie przy użyciu protokołu SSL: Możesz nawiązać połączenie przy użyciu importowania i wielowymiarowego protokołu TLS, ale nie można nawiązać połączenia z wystąpieniami platformy SAP HANA skonfigurowanymi do używania protokołu TLS dla metody połączenia relacyjnego.
- Obsługa widoków atrybutów: usługa Power BI może łączyć się z widokami analizy i obliczeń, ale nie może łączyć się bezpośrednio z widokami atrybutów.
- Obsługa obiektów wykazu: usługa Power BI nie może nawiązać połączenia z obiektami wykazu.
- Zmiana zmiennych po opublikowaniu: Nie można zmieniać wartości żadnych zmiennych SAP HANA bezpośrednio w usłudze Power BI po opublikowaniu raportu.
Znane problemy
Na poniższej liście opisano wszystkie znane problemy występujące podczas nawiązywania połączenia z platformą SAP HANA (DirectQuery) przy użyciu usługi Power BI.
problem z platformą SAP HANA podczas wykonywania zapytań o liczniki i inne miary: Niepoprawne dane są zwracane z platformy SAP HANA w przypadku nawiązywania połączenia z widokiem analitycznym oraz miarą Counter i inną miarą współczynnika, są uwzględnione w tej samej wizualizacji. Ten problem jest objęty 2128928 SAP Note (Nieoczekiwane wyniki podczas wykonywania zapytania względem kolumny obliczeniowej i licznika). Miara współczynnika jest niepoprawna w tym przypadku.
wiele kolumn usługi Power BI z pojedynczej kolumny SAP HANA: W przypadku niektórych widoków obliczeń, w których kolumna SAP HANA jest używana w więcej niż jednej hierarchii, platforma SAP HANA uwidacznia kolumnę jako dwa oddzielne atrybuty. Takie podejście powoduje utworzenie dwóch kolumn w usłudze Power BI. Te kolumny są jednak domyślnie ukryte, a wszystkie zapytania obejmujące hierarchie lub kolumny działają prawidłowo.
Powiązana zawartość
Aby uzyskać więcej informacji na temat trybu DirectQuery, zapoznaj się z następującymi zasobami: