Baza danych usługi SAP HANA

Podsumowanie

Element opis
Stan wydania Ogólna dostępność
Produkty Excel
Power BI (modele semantyczne)
Power BI (przepływy danych)
Sieć szkieletowa (Dataflow Gen2)
Power Apps (przepływy danych)
Analysis Services
Obsługiwane typy uwierzytelniania Podstawowy
baza danych
Windows
Dokumentacja referencyjna funkcji SapHana.Database

Uwaga

Niektóre funkcje mogą być obecne w jednym produkcie, ale nie w innych ze względu na harmonogramy wdrażania i możliwości specyficzne dla hosta.

Wymagania wstępne

Aby zalogować się do witryny internetowej i pobrać sterowniki, musisz mieć konto SAP. Jeśli nie masz pewności, skontaktuj się z administratorem SAP w organizacji.

Aby używać oprogramowania SAP HANA w programie Power BI Desktop lub Excel, musisz mieć zainstalowany sterownik SAP HANA ODBC na lokalnym komputerze klienckim, aby połączenie danych SAP HANA działało prawidłowo. Narzędzia klienckie SAP HANA można pobrać z narzędzi programistycznych SAP, który zawiera niezbędny sterownik ODBC. Możesz też pobrać go z Centrum pobierania oprogramowania SAP. W portalu oprogramowania wyszukaj klienta SAP HANA dla komputerów z systemem Windows. Ponieważ centrum pobierania oprogramowania SAP często zmienia strukturę, bardziej szczegółowe wskazówki dotyczące nawigowania po tej witrynie nie są dostępne. Aby uzyskać instrukcje dotyczące instalowania sterownika SAP HANA ODBC, przejdź do tematu Instalowanie sterownika SAP HANA ODBC w systemie Windows 64 Bity.

Aby używać oprogramowania SAP HANA w programie Excel, na komputerze klienckim lokalnym musi być zainstalowany 32-bitowy lub 64-bitowy sterownik SAP HANA ODBC (w zależności od tego, czy używasz 32-bitowej, czy 64-bitowej wersji programu Excel).

Ta funkcja jest dostępna tylko w programie Excel dla systemu Windows, jeśli masz subskrypcję pakietu Office 2019 lub platformy Microsoft 365. Jeśli jesteś subskrybentem platformy Microsoft 365, upewnij się, że masz najnowszą wersję pakietu Office.

Obsługiwane są wersje HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 i BW/4HANA 2.0.

Obsługiwane możliwości

  • Importuj
  • Zapytanie bezpośrednie (modele semantyczne usługi Power BI)
  • Zaawansowane
    • Instrukcja SQL

Połączenie do bazy danych SAP HANA z programu Power Query Desktop

Aby nawiązać połączenie z bazą danych SAP HANA z poziomu programu Power Query Desktop:

  1. Wybierz pozycję Pobierz dane > bazy danych SAP HANA w programie Power BI Desktop lub Z bazy danych z bazy danych> sap HANA Na wstążce Dane w programie Excel.

  2. Wprowadź nazwę i port serwera SAP HANA, z którym chcesz nawiązać połączenie. W przykładzie na poniższej ilustracji użyto SAPHANATestServer portu 30015.

    Wprowadź informacje o serwerze SAP HANA.

    Domyślnie numer portu jest ustawiony na obsługę pojedynczej bazy danych kontenerów. Jeśli baza danych SAP HANA może zawierać więcej niż jeden wielodostępny kontener bazy danych, wybierz pozycję Wielokontenerowa baza danych systemu (30013). Jeśli chcesz nawiązać połączenie z bazą danych dzierżawy lub bazą danych z innym niż domyślnym numerem wystąpienia, wybierz pozycję Niestandardowy z menu rozwijanego Port .

    Jeśli łączysz się z bazą danych SAP HANA z poziomu programu Power BI Desktop, możesz również wybrać opcję Importuj lub DirectQuery. W przykładzie w tym artykule użyto opcji Importuj, która jest domyślna (i jedynym trybem dla programu Excel). Aby uzyskać więcej informacji na temat nawiązywania połączenia z bazą danych przy użyciu trybu DirectQuery w programie Power BI Desktop, przejdź do Połączenie do źródeł danych SAP HANA przy użyciu trybu DirectQuery w usłudze Power BI.

    Możesz również wprowadzić instrukcję SQL lub włączyć powiązanie kolumn w obszarze Opcje zaawansowane. Więcej informacji, Połączenie przy użyciu opcji zaawansowanych

    Po wprowadzeniu wszystkich opcji wybierz przycisk OK.

  3. Jeśli po raz pierwszy uzyskujesz dostęp do bazy danych, zostanie wyświetlony monit o wprowadzenie poświadczeń na potrzeby uwierzytelniania. W tym przykładzie serwer SAP HANA wymaga poświadczeń użytkownika bazy danych, dlatego wybierz pozycję Baza danych i wprowadź nazwę użytkownika i hasło. W razie potrzeby wprowadź informacje o certyfikacie serwera.

    Wprowadź poświadczenia serwera.

    Ponadto może być konieczne zweryfikowanie certyfikatu serwera. Aby uzyskać więcej informacji na temat używania wyboru certyfikatów serwera, zobacz Using SAP HANA encryption (Używanie szyfrowania SAP HANA). W programach Power BI Desktop i Excel wybór certyfikatu serwera sprawdzania poprawności jest domyślnie włączony. Jeśli te opcje zostały już skonfigurowane w Administracja istratorze źródła danych ODBC, wyczyść pole wyboru Weryfikuj certyfikat serwera. Aby dowiedzieć się więcej na temat konfigurowania tych opcji przy użyciu źródła danych ODBC Administracja istrator, przejdź do tematu Konfigurowanie protokołu SSL dla dostępu klienta ODBC do platformy SAP HANA.

    Aby uzyskać więcej informacji na temat uwierzytelniania, zobacz Uwierzytelnianie za pomocą źródła danych.

    Po wypełnieniu wszystkich wymaganych informacji wybierz pozycję Połączenie.

  4. W oknie dialogowym Nawigator możesz przekształcić dane w edytorze Power Query, wybierając pozycję Przekształć dane lub załadować dane, wybierając pozycję Załaduj.

Połączenie do bazy danych SAP HANA z usługi Power Query Online

Aby nawiązać połączenie z danymi platformy SAP HANA z usługi Power Query Online:

  1. Na stronie Źródła danych wybierz pozycję Baza danych SAP HANA.

  2. Wprowadź nazwę i port serwera SAP HANA, z którym chcesz nawiązać połączenie. W przykładzie na poniższej ilustracji użyto SAPHANATestServer portu 30015.

  3. Opcjonalnie wprowadź instrukcję SQL z pozycji Opcje zaawansowane. Więcej informacji, Połączenie przy użyciu opcji zaawansowanych

  4. Wybierz nazwę lokalnej bramy danych, która ma być używana do uzyskiwania dostępu do bazy danych.

    Uwaga

    Musisz użyć lokalnej bramy danych z tym łącznikiem, niezależnie od tego, czy dane są lokalne, czy w trybie online.

  5. Wybierz rodzaj uwierzytelniania, którego chcesz użyć, aby uzyskać dostęp do danych. Musisz również wprowadzić nazwę użytkownika i hasło.

    Uwaga

    Obecnie usługa Power Query Online obsługuje tylko uwierzytelnianie podstawowe.

  6. Wybierz pozycję Użyj zaszyfrowanego Połączenie ion, jeśli używasz dowolnego zaszyfrowanego połączenia, a następnie wybierz dostawcę kryptograficznego SSL. Jeśli nie używasz szyfrowanego połączenia, wyczyść pole Użyj szyfrowanego Połączenie ion. Więcej informacji: Włączanie szyfrowania dla platformy SAP HANA

    Logowanie w trybie online bazy danych SAP HANA.

  7. Wybierz przycisk Dalej, aby kontynuować.

  8. W oknie dialogowym Nawigator możesz przekształcić dane w edytorze Power Query, wybierając pozycję Przekształć dane lub załadować dane, wybierając pozycję Załaduj.

Połączenie przy użyciu opcji zaawansowanych

Dodatek Power Query udostępnia zestaw zaawansowanych opcji, które można dodać do zapytania w razie potrzeby.

W poniższej tabeli opisano wszystkie zaawansowane opcje, które można ustawić w dodatku Power Query.

Opcja zaawansowana opis
Instrukcja SQL Więcej informacji: Importowanie danych z bazy danych przy użyciu natywnego zapytania bazy danych
Włączanie powiązania kolumny Wiąże zmienne z kolumnami zestawu wyników SAP HANA podczas pobierania danych. Może potencjalnie zwiększyć wydajność kosztem nieco wyższego wykorzystania pamięci. Ta opcja jest dostępna tylko w programie Power Query Desktop. Więcej informacji: Włączanie powiązania kolumny
Połączenie ionTimeout Czas trwania, który kontroluje czas oczekiwania przed porzuceniem próby nawiązania połączenia z serwerem. Wartość domyślna to 15 sekund.
Commandtimeout Czas trwania, który określa, jak długo zapytanie po stronie serwera może być uruchamiane przed jego anulowaniem. Wartość domyślna to dziesięć minut.

Obsługiwane funkcje platformy SAP HANA

Na poniższej liście przedstawiono obsługiwane funkcje platformy SAP HANA. Nie wszystkie wymienione tutaj funkcje są obsługiwane we wszystkich implementacjach łącznika bazy danych SAP HANA.

  • Zarówno program Power BI Desktop, jak i łącznik programu Excel dla bazy danych SAP HANA używają sterownika SAP ODBC, aby zapewnić najlepsze środowisko użytkownika.

  • W programie Power BI Desktop platforma SAP HANA obsługuje zarówno opcje DirectQuery, jak i Import.

  • Program Power BI Desktop obsługuje modele informacji platformy HANA, takie jak widoki analityczne i obliczeniowe, i ma zoptymalizowaną nawigację.

  • Za pomocą platformy SAP HANA można również używać poleceń SQL w natywnej instrukcji SQL zapytań bazy danych w celu nawiązania połączenia z tabelami wierszy i kolumn w tabelach wykazu HANA, które nie są uwzględnione w widokach analitycznych/obliczeniowych udostępnianych przez środowisko Nawigator. Możesz również użyć łącznika ODBC do wykonywania zapytań dotyczących tych tabel.

  • Program Power BI Desktop zawiera zoptymalizowaną nawigację dla modeli HANA.

  • Program Power BI Desktop obsługuje zmienne SAP HANA i parametry wejściowe.

  • Program Power BI Desktop obsługuje widoki obliczeń oparte na kontenerach HDI.

  • Funkcja SapHana.Database obsługuje teraz limity czasu połączenia i poleceń. Więcej informacji: Połączenie przy użyciu opcji zaawansowanych

    • Aby uzyskać dostęp do widoków obliczeń opartych na kontenerach usługi HDI w usłudze Power BI, upewnij się, że użytkownicy bazy danych HANA, których używasz z usługą Power BI, mają uprawnienia dostępu do kontenera środowiska uruchomieniowego usługi HDI, który przechowuje widoki, do których chcesz uzyskać dostęp. Aby przyznać ten dostęp, utwórz rolę, która umożliwia dostęp do kontenera usługi HDI. Następnie przypisz rolę do użytkownika bazy danych HANA, którego będziesz używać z usługą Power BI. (Ten użytkownik musi mieć również uprawnienia do odczytu z tabel systemowych w schemacie _SYS_BI, jak zwykle). Zapoznaj się z oficjalną dokumentacją systemu SAP, aby uzyskać szczegółowe instrukcje dotyczące tworzenia i przypisywania ról bazy danych. Ten wpis w blogu SAP może być dobrym miejscem do rozpoczęcia.

    • Obecnie istnieją pewne ograniczenia dotyczące zmiennych HANA dołączonych do widoków obliczeń opartych na usłudze HDI. Te ograniczenia są spowodowane błędami po stronie platformy HANA. Po pierwsze nie można zastosować zmiennej HANA do udostępnionej kolumny widoku obliczeń opartego na kontenerze usługi HDI. Aby rozwiązać ten problem, przeprowadź uaktualnienie do wersji HANA 2 w wersji 37.02 lub nowszej lub HANA 2 w wersji 42 lub nowszej. Po drugie, wartości domyślne z wieloma wpisami dla zmiennych i parametrów nie są obecnie wyświetlane w interfejsie użytkownika usługi Power BI. Błąd platformy SAP HANA powoduje to ograniczenie, ale firma SAP nie ogłosiła jeszcze poprawki.

Włączanie powiązania kolumny

Dane pobrane ze źródła danych są zwracane do aplikacji w zmiennych przydzielonych do tego celu przez aplikację. Zanim będzie można to zrobić, aplikacja musi skojarzyć lub powiązać te zmienne z kolumnami zestawu wyników; koncepcyjnie ten proces jest taki sam jak powiązanie zmiennych aplikacji z parametrami instrukcji. Gdy aplikacja powiąże zmienną z kolumną zestawu wyników, opisuje zmienną — adres, typ danych itd. — do sterownika. Sterownik przechowuje te informacje w strukturze przechowywanej dla tej instrukcji i używa informacji do zwracania wartości z kolumny po pobraniu wiersza.

Obecnie, gdy używasz programu Power Query Desktop do nawiązywania połączenia z bazą danych SAP HANA, możesz wybrać zaawansowaną opcję Włącz powiązanie kolumny, aby włączyć powiązanie kolumny.

Można również włączyć powiązanie kolumn w istniejących zapytaniach lub zapytaniach używanych w usłudze Power Query Online, ręcznie dodając EnableColumnBinding opcję do połączenia na pasku formuły Power Query lub edytorze zaawansowanym. Na przykład:

SapHana.Database("myserver:30015", [Implementation = "2.0", EnableColumnBinding = true]),

Istnieją ograniczenia związane z ręcznym dodawaniem EnableColumnBinding opcji:

  • Ustawienie Włącz powiązanie kolumn działa zarówno w trybie Importuj, jak i DirectQuery. Jednak modernizacja istniejącego zapytania DirectQuery w celu korzystania z tej opcji zaawansowanej nie jest możliwa. Zamiast tego należy utworzyć nowe zapytanie, aby ta funkcja działała poprawnie.
  • W programie SAP HANA Server w wersji 2.0 lub nowszej powiązanie kolumny jest wszystkie lub nic. Jeśli nie można powiązać niektórych kolumn, żadna z nich nie zostanie powiązana, a użytkownik otrzyma wyjątek, na przykład DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384).
  • Serwery SAP HANA w wersji 1.0 nie zawsze zgłaszają prawidłowe długości kolumn. W tym kontekście EnableColumnBinding umożliwia częściowe powiązanie kolumn. W przypadku niektórych zapytań może to oznaczać, że żadna kolumna nie jest powiązana. Jeśli żadna kolumna nie jest powiązana, nie są uzyskiwane żadne korzyści z wydajności.

Natywna obsługa zapytań w łączniku bazy danych SAP HANA

Łącznik bazy danych SAP HANA dodatku Power Query obsługuje zapytania natywne. Aby uzyskać informacje na temat używania natywnych zapytań w dodatku Power Query, przejdź do tematu Importowanie danych z bazy danych przy użyciu natywnego zapytania bazy danych.

Składanie zapytań w zapytaniach natywnych

Łącznik bazy danych SAP HANA dodatku Power Query obsługuje teraz składanie zapytań na zapytania natywne. Więcej informacji: Składanie zapytań w zapytaniach natywnych

Uwaga

W łączniku bazy danych SAP HANA dodatku Power Query natywne zapytania nie obsługują zduplikowanych nazw kolumn, gdy EnableFolding jest ustawiona wartość true.

Parametry w zapytaniach natywnych

Łącznik bazy danych SAP HANA dodatku Power Query obsługuje teraz parametry w zapytaniach natywnych. Parametry w zapytaniach natywnych można określić przy użyciu składni Value.NativeQuery .

W przeciwieństwie do innych łączników łącznik bazy danych SAP HANA obsługuje EnableFolding = True i jednocześnie określa parametry.

Aby użyć parametrów w zapytaniu, należy umieścić znaki zapytania (?) w kodzie jako symbole zastępcze. Aby określić parametr, należy użyć wartości tekstowej i wartości dla tego parametru SqlType w pliku Value.SqlType Value może być dowolną wartością języka M, ale musi być przypisana do wartości określonego SqlTypeelementu .

Istnieje wiele sposobów określania parametrów:

  • Podanie tylko wartości jako listy:

    { “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
    
  • Podanie wartości i typu jako listy:

    { [ SqlType = "CHAR", Value = "M" ], 
       [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], 
       [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
    
  • Wymieszaj i dopasuj je do dwóch:

    { “Seattle”, 1, [ SqlType = "SECONDDATE", Value = #datetime(2022, 5, 27, 17, 43, 7) ] }
    

SqlType program jest zgodny ze standardowymi nazwami typów zdefiniowanymi przez platformę SAP HANA. Na przykład poniższa lista zawiera najczęściej używane typy:

  • BIGINT
  • BINARNYM
  • BOOLEAN
  • CHAR
  • DATE
  • DZIESIĘTNYCH
  • PODWÓJNE
  • LICZBA CAŁKOWITA
  • NVARCHAR
  • DRUGI IDENTYFIKATOR
  • KRÓTKI TEKST
  • SMALLDECIMAL
  • SMALLINT
  • TIME
  • TIMESTAMP
  • VARBINARY
  • VARCHAR

W poniższym przykładzie pokazano, jak podać listę wartości parametrów.

let
    Source = Value.NativeQuery(
        SapHana.Database(
            "myhanaserver:30015", 
            [Implementation = "2.0"]
        ), 
        "select ""VARCHAR_VAL"" as ""VARCHAR_VAL""
    from ""_SYS_BIC"".""DEMO/CV_ALL_TYPES""
    where ""VARCHAR_VAL"" = ? and ""DATE_VAL"" = ?
    group by ""VARCHAR_VAL""
    ", 
        {"Seattle", #date(1957, 6, 13)}, 
        [EnableFolding = true]
    )
in
    Source

W poniższym przykładzie pokazano, jak podać listę rekordów (lub mieszać wartości i rekordy):

let
    Source = Value.NativeQuery(
        SapHana.Database(Server, [Implementation="2.0"]), 
    "select
        ""COL_VARCHAR"" as ""COL_VARCHAR"",
        ""ID"" as ""ID"",
        sum(""DECIMAL_MEASURE"") as ""DECIMAL_MEASURE""
    from ""_SYS_BIC"".""DEMO/CV_ALLTYPES""
    where
        ""COL_ALPHANUM"" = ? or
        ""COL_BIGINT"" = ? or
        ""COL_BINARY"" = ? or
        ""COL_BOOLEAN"" = ? or
        ""COL_DATE"" = ?
    group by 
        ""COL_ALPHANUM"",
        ""COL_BIGINT"",
        ""COL_BINARY"",
        ""COL_BOOLEAN"",
        ""COL_DATE"",
       {
            [ SqlType = "CHAR", Value = "M" ],                                                // COL_ALPHANUM - CHAR
            [ SqlType = "BIGINT", Value = 4 ],                                                // COL_BIGINT - BIGINT
            [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ],   // COL_BINARY - BINARY
            [ SqlType = "BOOLEAN", Value = true ],                                            // COL_BOOLEAN - BOOLEAN
            [ SqlType = "DATE", Value = #date(2022, 5, 27) ],                                 // COL_DATE - TYPE_DATE
        } ,
        [EnableFolding=false]
    )
in
    Source

Obsługa atrybutów dynamicznych

Ulepszono sposób, w jaki łącznik bazy danych SAP HANA traktuje kolumny obliczeniowe. Łącznik bazy danych SAP HANA jest łącznikiem "modułu" i istnieją pewne zestawy operacji (dodawanie elementów, zwijanie kolumn itd.), które występują w obszarze "cube". To miejsce modułu jest wyświetlane w programie Power Query Desktop i interfejsie użytkownika usługi Power Query Online za pomocą ikony "cube", która zastępuje bardziej typową ikonę "tabela".

Zrzut ekranu przedstawiający lewą stronę bieżącego widoku w dodatku Power Query, podkreślając ikonę modułu w górnej części kolumny numer wiersza.

Wcześniej po dodaniu kolumny tabeli (lub innej transformacji, która wewnętrznie dodaje kolumnę), zapytanie "wypadnie z obszaru modułu", a wszystkie operacje zostaną wykonane na poziomie tabeli. W pewnym momencie ta lista rozwijana może spowodować zatrzymanie składania zapytania. Wykonywanie operacji modułu po dodaniu kolumny nie było już możliwe.

Dzięki tej zmianie dodane kolumny są traktowane jako atrybuty dynamiczne w module. Pozostawienie zapytania w przestrzeni modułu dla tej operacji ma zaletę umożliwienia kontynuowania korzystania z operacji modułu nawet po dodaniu kolumn.

Uwaga

Ta nowa funkcja jest dostępna tylko w przypadku łączenia się z widokami obliczeń w programie SAP HANA Server w wersji 2.0 lub nowszej.

Poniższe przykładowe zapytanie korzysta z tej nowej funkcji. W przeszłości podczas stosowania modułu Cube.CollapseAndRemoveColumns otrzymasz wyjątek "wartość nie jest modułem".

let
    Source = SapHana.Database(“someserver:someport”, [Implementation="2.0"]),
    Contents = Source{[Name="Contents"]}[Data],
    SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models = Contents{[Name="SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models"]}[Data],
    PURCHASE_ORDERS1 = SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models{[Name="PURCHASE_ORDERS"]}[Data],
    #"Added Items" = Cube.Transform(PURCHASE_ORDERS1,
        {
            {Cube.AddAndExpandDimensionColumn, "[PURCHASE_ORDERS]", {"[HISTORY_CREATEDAT].[HISTORY_CREATEDAT].Attribute", "[Product_TypeCode].[Product_TypeCode].Attribute", "[Supplier_Country].[Supplier_Country].Attribute"}, {"HISTORY_CREATEDAT", "Product_TypeCode", "Supplier_Country"}},
            {Cube.AddMeasureColumn, "Product_Price", "[Measures].[Product_Price]"}
        }),
    #"Inserted Year" = Table.AddColumn(#"Added Items", "Year", each Date.Year([HISTORY_CREATEDAT]), Int64.Type),
    #"Filtered Rows" = Table.SelectRows(#"Inserted Year", each ([Product_TypeCode] = "PR")),
    #"Added Conditional Column" = Table.AddColumn(#"Filtered Rows", "Region", each if [Supplier_Country] = "US" then "North America" else if [Supplier_Country] = "CA" then "North America" else if [Supplier_Country] = "MX" then "North America" else "Rest of world"),
    #"Filtered Rows1" = Table.SelectRows(#"Added Conditional Column", each ([Region] = "North America")),
    #"Collapsed and Removed Columns" = Cube.CollapseAndRemoveColumns(#"Filtered Rows1", {"HISTORY_CREATEDAT", "Product_TypeCode"})
in
    #"Collapsed and Removed Columns"

Następne kroki

Poniższe artykuły zawierają więcej informacji, które mogą okazać się przydatne podczas nawiązywania połączenia z debase platformy SAP HANA.