Połączenie do źródeł danych SAP HANA przy użyciu trybu DirectQuery w usłudze Power BI

Możesz nawiązać bezpośrednie połączenie ze źródłami danych sap HANA przy użyciu trybu DirectQuery. Podczas nawiązywania połączenia z platformą SAP HANA dostępne są dwie opcje:

  • 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 przy użyciu tego ustawienia zostanie wybrany pojedynczy widok analityczny lub obliczeniowy, a wszystkie miary, hierarchie i atrybuty tego widoku są dostępne na liście pól. W miarę tworzenia wizualizacji agregowane dane są zawsze pobierane z platformy SAP HANA. Ta technika jest zalecaną metodą i jest domyślna dla nowych raportów trybu 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 relacyjne. Takie podejście zapewnia większą elastyczność. Należy zachować ostrożność przy użyciu tego podejścia, aby upewnić się, że miary są agregowane zgodnie z oczekiwaniami i aby uniknąć problemów z wydajnością.

Metoda połączenia jest określana przez globalną opcję narzędzia, która jest ustawiana, wybierając pozycję Opcje pliku>i ustawienia, a następnie Opcje>zapytania bezpośredniego, a następnie wybierając opcję Traktuj platformę SAP HANA jako źródło relacyjne, jak pokazano na poniższej ilustracji.

Screenshot of the Options dialog, showing the DirectQuery options.

Opcja traktowania platformy SAP HANA jako źródła relacyjnego kontroluje podejście używane 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 niezaznaczone, po dodaniu nowego połączenia z platformą SAP HANA przy użyciu funkcji Pobierz dane połączenie to traktuje platformę SAP HANA jako źródło wielowymiarowe. 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 jego utworzenia. Oznacza to, że wszystkie raporty łączące się z platformą SAP HANA utworzone przed lutym 2018 r. nadal traktują platformę SAP HANA jako źródło relacyjne.

Te dwa podejścia stanowią różne zachowanie i nie można przełączyć istniejącego raportu z jednego podejścia do drugiego.

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. Aby traktować połączenie z platformą SAP HANA jako źródło relacyjne, należy wybrać pozycję Opcje plików>i opcje ustawień>, a następnie zaznaczyć pole wyboru w obszarze Zapytanie>bezpośrednie Traktuj platformę SAP HANA jako źródło relacyjne.

Podczas nawiązywania połączenia z platformą SAP HANA jako źródła wielowymiarowego mają zastosowanie następujące zagadnienia:

  • W oknie Pobieranie nawigatora danych można wybrać jeden 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.

  • Ponieważ miara jest używana w wizualizacji, platforma SAP HANA jest odpytywane w celu pobrania wartości miary na poziomie agregacji niezbędnej dla wizualizacji. 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.

Traktowanie platformy SAP HANA jako źródła wielowymiarowego nie zapewnia większej elastyczności zapewnianej przez alternatywne podejście relacyjne , ale jest prostsze. Takie podejście zapewnia również prawidłowe wartości agregujące podczas pracy z bardziej złożonymi miarami platformy SAP HANA i ogólnie skutkuje wyższą wydajnością.

Lista Pola zawiera wszystkie miary, atrybuty i hierarchie z widoku platformy SAP HANA. Podczas korzystania z tej metody połączenia należy pamiętać o następujących zachowaniach:

  • 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ę Widok ukryty 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 Product z wartościami 1, 2, 3i tak dalej może używać wartości ProductName z wartościami Bike, Shirt, Glovesitd. jako etykietą. W tym przypadku pojedyncze pole Product jest wyświetlane na liście pól, których wartości to etykiety Bike, Shirt, Glovesi tak dalej, ale które jest sortowane według, i z unikatowością określaną przez wartości klucza 1, 2, 3. Utworzono również ukrytą kolumnę Product.Key , umożliwiając 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 pozycję Przekształć dane na wstążce, a następnie z wyświetlonego menu rozwijanego edytuj parametry .

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 wielu dodatków i zmian, w tym definiowania miar, zmieniania 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

Inne podstawowe ograniczenia modelowania podczas nawiązywania połączenia z platformą SAP HANA przy użyciu zapytania bezpośredniego (traktowanego jako źródło wielowymiarowe) są następującymi ograniczeniami:

  • Brak obsługi kolumn obliczeniowych: możliwość tworzenia kolumn obliczeniowych jest wyłączona. Oznacza to również, że grupowanie i klastrowanie, które tworzą kolumny obliczeniowe, 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.
  • 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 danych:Widok danych zwykle wyświetla dane na poziomie szczegółów w tabelach. Ze względu na charakter źródeł OLAP, takich jak SAP HANA, ten widok nie jest dostępny za pośrednictwem platformy SAP HANA.
  • Naprawiono szczegóły kolumn i miar: lista kolumn i miar widocznych na liście pól jest stała przez bazowe źródło i nie można jej modyfikować. Na przykład nie można usunąć kolumny ani zmienić jej typu danych. Można jednak zmienić jego nazwę.
  • Dodatkowe ograniczenia języka DAX: istnieją inne ograniczenia dotyczące języka DAX, które mogą być używane w definicjach miar, aby odzwierciedlać ograniczenia w źródle. Na przykład nie można użyć funkcji agregującej w tabeli.

Dodatkowe ograniczenia wizualizacji

Istnieją ograniczenia dotyczące wizualizacji podczas nawiązywania połączenia z platformą SAP HANA przy użyciu zapytania bezpośredniego (traktują je jako źródło wielowymiarowe):

  • Brak agregacji kolumn: nie można zmienić agregacji kolumny w wizualizacji i zawsze nie sumuj.

Traktuj platformę SAP HANA jako źródło relacyjne

Podczas wybierania połączenia z platformą 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 traktowania platformy 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 i związane z wydajnością zapytań uruchamianych względem platformy SAP HANA.

Warto zacząć od wyjaśnienia zachowania źródła relacyjnego, takiego jak program SQL Server, gdy zapytanie zdefiniowane w sekcji Pobieranie danych lub Edytor Power Query wykonuje agregację. W poniższym przykładzie zapytanie zdefiniowane w Edytor Power Query zwraca średnią cenę według identyfikatora produktu.

Diagram showing a query defined in Power Query Editor that returns the average price by Product ID.

Jeśli dane są importowane do usługi Power BI w porównaniu z użyciem trybu DirectQuery, w wyniku następującej sytuacji:

  • Dane są importowane na poziomie agregacji zdefiniowanej przez zapytanie utworzone w Edytor 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 Suma, Średnia, Min i inne, jest wykonywana względem tych zaimportowanych danych. Na przykład uwzględnienie wartości AveragePrice w wizualizacji domyślnie używa agregacji Sum i zwraca sumę dla każdego identyfikatora ProductID, w tym przykładzie 13,67. To samo dotyczy dowolnej alternatywnej funkcji agregującej, takiej jak Minimalna lub Średnia, używanej w wizualizacji. Na przykład wartość Average of AveragePrice zwraca średnią 6,66, 4 i 3, co odpowiada wartości 4,56, a nie średniej wartości 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 Suma, Średnia i Min, jest ponownie wykonywana na tej tabeli logicznej z zapytania. Ponownie wizualizacja zawierająca wartość Average of 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, które mogą zawierać miary. Jednak obecnie podejście dla platformy SAP HANA jest zgodne z tymi samymi zasadami, co opisane wcześniej w tej sekcji: zapytanie zdefiniowane w sekcji Pobieranie danych lub Edytor Power Query określa dostępne dane, a następnie każda kolejna agregacja w wizualizacji jest ponad tymi danymi, a to samo dotyczy zarówno importu, jak i zapytania bezpośredniego. 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 agregowanym i zwykle obejmuje miary, w których rzeczywista agregacja, która jest używana, jest definiowana przez widok SAP HANA.

Odpowiednikiem poprzedniego przykładu programu SQL Server jest to, że istnieje widok platformy SAP HANA zawierający identyfikator, identyfikator produktu, identyfikator produktu, identyfikator depotID i miary, w tym AveragePrice, zdefiniowane w widoku jako Średnia cena.

Jeśli w środowisku Pobieranie danych wybrane opcje zostały wybrane dla miary ProductID i AveragePrice , to definiuje zapytanie w widoku, żądając tych zagregowanych danych. 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 bezpośredniego zapytanie z pobierania danych lub Edytor Power Query jest używane w podwybór w ramach pojedynczego zapytania wysyłanego do platformy SAP HANA, a zatem w rzeczywistości nie jest tak, że wszystkie dane będą odczytywane 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:

  • Należy zwrócić uwagę na wszelkie dalsze agregacje wykonywane w wizualizacjach, gdy miara na platformie SAP HANA nie jest addytywne, na przykład nie jest prostą sumą, minimalną lub maksymalną.

  • W obszarze Pobieranie danych lub Edytor Power Query należy uwzględnić tylko wymagane kolumny w celu pobrania niezbędnych danych, odzwierciedlając fakt, że wynikiem jest zapytanie, które musi być rozsądnym zapytaniem, które można wysłać do platformy SAP HANA. Jeśli na przykład wybrano dziesiątki kolumn, z myślą, że mogą być potrzebne w kolejnych wizualizacjach, to nawet w przypadku zapytania bezpośredniego prosta wizualizacja oznacza, że zapytanie agregujące używane w podwybór zawiera te dziesiątki kolumn, które zazwyczaj działają źle.

W poniższym przykładzie wybranie pięciu kolumn (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) w oknie dialogowym Pobieranie danych wraz z miarą OrderQuantity oznacza, że późniejsze utworzenie prostej wizualizacji zawierającej wyniki Min OrderQuantity w następującym zapytaniu SQL do platformy SAP HANA. Cieniowany jest podwybór zawierający zapytanie z pozycji Pobierz dane /Edytor Power Query. Jeśli ten podwybór daje wynik wysokiej kardynalności, wynikowa wydajność platformy SAP HANA może być niska.

Screenshot of a query example, showing the SQL query to SAP HANA.

Ze względu na to zachowanie zalecamy, aby elementy wybrane w sekcji Pobierz dane lub Edytor Power Query były ograniczone do tych elementów, które są potrzebne, a jednocześnie w wyniku uzasadnionego zapytania dotyczącego platformy SAP HANA.

Najlepsze rozwiązania

W przypadku obu podejść do nawiązywania połączenia z platformą SAP HANA zalecenia dotyczące korzystania z trybu DirectQuery dotyczą również platformy SAP HANA, szczególnie zaleceń związanych z zapewnieniem dobrej wydajności. Aby uzyskać więcej informacji, zobacz używanie trybu DirectQuery w usłudze Power BI.

Rozważania 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ędnych podrzędnych: hierarchie nadrzędnych podrzędnych nie są widoczne w usłudze Power BI. Dzieje się tak dlatego, że 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 niewyrównanych hierarchii, nie mają wpływu. Ponownie ten fakt wynika z ograniczeń narzuconych przez interfejs SQL.
  • Połączenie ion przy użyciu protokołu SSL: Możesz nawiązać połączenie przy użyciu opcji Importuj i wielowymiarowe za pomocą 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 łącznika 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.
  • Zmień na Zmienne po opublikowaniu: po opublikowaniu raportu nie można zmienić wartości żadnych zmiennych sap HANA bezpośrednio w usługa Power BI.

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ń dotyczących liczników i innych miar: Nieprawidłowe dane są zwracane z platformy SAP HANA w przypadku nawiązywania połączenia z widokiem analitycznym, a miara Counter i inna miara współczynnika są uwzględniane 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 jednej kolumny platformy 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.

Aby uzyskać więcej informacji na temat trybu DirectQuery, zapoznaj się z następującymi zasobami: