SAP HANA-Datenbank

Zusammenfassung

Element Beschreibung
Freigabestatus Allgemeine Verfügbarkeit
Produkte Excel
Power BI (Semantikmodelle)
Power BI (Dataflows)
Fabric (Dataflow Gen2)
Power Apps (Dataflows)
Analysis Services
Unterstützte Authentifizierungsarten Grundlegend
Datenbank
Windows
Referenzdokumentation zur Funktion SapHana.Database

Hinweis

Einige Funktionen können in einem Produkt vorhanden sein, in anderen jedoch nicht, was an den Bereitstellungsplänen und hostspezifischen Funktionen liegt.

Voraussetzungen

Sie benötigen ein SAP-Konto, um sich auf der Website anzumelden und die Treiber herunterzuladen. Wenn Sie unsicher sind, wenden Sie sich an den SAP-Administrator in Ihrem Unternehmen.

Um SAP HANA in Power BI Desktop oder Excel verwenden zu können, müssen Sie den SAP HANA ODBC-Treiber auf dem lokalen Client-Computer installiert haben, damit die SAP HANA-Datenverbindung ordnungsgemäß funktioniert. Sie können die SAP HANA-Clienttools, die den erforderlichen ODBC-Treiber enthalten, von SAP-Entwicklungstools herunterladen. Alternativ können Sie ihn aus dem SAP Software-Downloadcenter beziehen. Suchen Sie auf dem Softwareportal nach dem SAP HANA CLIENT für Windows-Computer. Da die Struktur des SAP Software Downloadcenter regelmäßig überarbeitet wird, können wir keine genaueren Angaben zu dieser Website machen. Eine Anleitung zur Installation des SAP HANA ODBC-Treibers finden Sie unter Installation des SAP HANA ODBC-Treibers unter Windows 64 Bits.

Um SAP HANA in Excel verwenden zu können, müssen Sie entweder den 32-Bit- oder den 64-Bit-SAP HANA ODBC-Treiber (je nachdem, ob Sie die 32-Bit- oder die 64-Bit-Version von Excel verwenden) auf dem lokalen Client-Computer installiert haben.

Diese Funktion ist in Excel für Windows nur verfügbar, wenn Sie Office 2019 oder ein Microsoft 365 Abonnement haben. Wenn Sie ein Microsoft 365-Abonnent sind, stellen Sie sicher, dass Sie die neueste Version von Office haben.

HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 und BW/4HANA 2.0 wird unterstützt.

Unterstützte Funktionen

  • Importieren
  • Direct Query (Power BI-Semantikmodelle)
  • Erweitert
    • SQL-Anweisung

Verbinden Sie sich von Power Query Desktop aus mit einer SAP HANA-Datenbank

So stellen Sie von Power Query Desktop aus eine Verbindung zu einer SAP HANA-Datenbank her:

  1. Wählen Sie Daten abrufen> SAP HANA-Datenbank in Power BI Desktop oder Aus Datenbank > aus SAP HANA-Datenbank in der Multifunktionsleiste Daten in Excel.

  2. Geben Sie den Namen und den Port des SAP HANA-Servers ein, mit dem Sie sich verbinden möchten. Das Beispiel in der folgenden Abbildung verwendet SAPHANATestServer auf Port 30015.

    Geben Sie die SAP HANA-Serverinformationen ein.

    Standardmäßig ist die Portnummer so eingestellt, dass eine einzelne Container-Datenbank unterstützt wird. Wenn Ihre SAP HANA-Datenbank mehr als einen mandantenfähigen Datenbankcontainer enthalten kann, wählen Sie Multi-Container-Systemdatenbank (30013). Wenn Sie eine Verbindung zu einer Tenant-Datenbank oder einer Datenbank mit einer nicht standardmäßigen Instanznummer herstellen möchten, wählen Sie Benutzerdefiniert aus dem Dropdown-Menü Port.

    Wenn Sie von Power BI Desktop aus eine Verbindung zu einer SAP HANA-Datenbank herstellen, haben Sie außerdem die Möglichkeit, entweder Import oder DirectQuery zu wählen. Das Beispiel in diesem Artikel verwendet Importieren, was der Standardmodus (und der einzige Modus für Excel) ist. Weitere Informationen über die Verbindung zur Datenbank mithilfe von DirectQuery in Power BI Desktop finden Sie unter Verbindung zu SAP HANA-Datenquellen mithilfe von DirectQuery in Power BI.

    Sie können auch eine SQL-Anweisung eingeben oder die Spaltenbindung in den Erweiterten Optionen aktivieren. Weitere Informationen, Verbinden über erweiterte Optionen

    Wenn Sie alle Ihre Optionen eingegeben haben, wählen Sie OK.

  3. Wenn Sie zum ersten Mal auf eine Datenbank zugreifen, werden Sie aufgefordert, Ihre Anmeldedaten zur Authentifizierung einzugeben. In diesem Beispiel benötigt der SAP HANA-Server die Anmeldedaten des Datenbankbenutzers. Wählen Sie daher Datenbank und geben Sie Ihren Benutzernamen und Ihr Passwort ein. Geben Sie bei Bedarf die Informationen zu Ihrem Serverzertifikat ein.

    Geben Sie die Serveranmeldeinformationen ein.

    Möglicherweise müssen Sie auch das Serverzertifikat validieren. Weitere Informationen über die Verwendung der Auswahl von validierten Serverzertifikaten finden Sie unter Verwendung der SAP HANA-Verschlüsselung. In Power BI Desktop und Excel ist die Auswahl Serverzertifikat validieren standardmäßig aktiviert. Wenn Sie diese Einstellungen bereits in ODBC Data Source Administrator vorgenommen haben, deaktivieren Sie das Kontrollkästchen Serverzertifikat validieren. Um mehr über die Verwendung von ODBC Data Source Administrator zur Einrichtung dieser Auswahlen zu erfahren, gehen Sie zu SSL für ODBC-Client-Zugriff auf SAP HANA konfigurieren.

    Weitere Informationen zur Authentifizierung finden Sie unter Authentifizierung mit einer Datenquelle.

    Sobald Sie alle erforderlichen Informationen eingegeben haben, wählen Sie Verbinden.

  4. Im Dialogfeld Navigator können Sie die Daten entweder im Power Query-Editor umwandeln, indem Sie Daten umwandeln wählen, oder die Daten laden, indem Sie Laden wählen.

Verbindung mit einer SAP HANA-Datenbank von Power Query Online aus

So stellen Sie eine Verbindung zu SAP HANA-Daten aus Power Query Online her:

  1. Wählen Sie auf der Seite Datenquellen die SAP HANA-Datenbank aus.

  2. Geben Sie den Namen und den Port des SAP HANA-Servers ein, mit dem Sie sich verbinden möchten. Das Beispiel in der folgenden Abbildung verwendet SAPHANATestServer auf Port 30015.

  3. Optional können Sie eine SQL-Anweisung aus den Erweiterten Optionen eingeben. Weitere Informationen, Verbinden über erweiterte Optionen

  4. Wählen Sie den Namen des lokalen Daten-Gateways, das für den Zugriff auf die Datenbank verwendet werden soll.

    Hinweis

    Sie müssen einen lokalen Daten-Gateway mit diesem Connector verwenden, unabhängig davon, ob Ihre Daten lokal oder online sind.

  5. Wählen Sie die Art der Authentifizierung, die Sie für den Zugriff auf Ihre Daten verwenden möchten. Außerdem müssen Sie einen Benutzernamen und ein Passwort eingeben.

    Hinweis

    Derzeit unterstützt Power Query Online nur die einfache Authentifizierung.

  6. Wählen Sie Verschlüsselte Verbindung verwenden, wenn Sie eine verschlüsselte Verbindung verwenden, und wählen Sie dann den SSL-Verschlüsselungsanbieter. Wenn Sie keine verschlüsselte Verbindung verwenden, deaktivieren Sie Verschlüsselte Verbindung verwenden. Weitere Informationen: Verschlüsselung für SAP HANA aktivieren

    SAP HANA-Datenbank online anmelden.

  7. Wählen Sie Weiter aus, um fortzufahren.

  8. Im Dialogfeld Navigator können Sie die Daten entweder im Power Query-Editor umwandeln, indem Sie Daten umwandeln wählen, oder die Daten laden, indem Sie Laden wählen.

Verbinden mithilfe erweiterter Optionen

Power Query bietet eine Reihe von erweiterten Optionen, die Sie bei Bedarf zu Ihrer Abfrage hinzufügen können.

Die folgende Tabelle beschreibt alle erweiterten Optionen, die Sie in Power Query einstellen können.

Erweiterte Option Beschreibung
SQL-Anweisung Weitere Informationen, siehe Importieren von Daten aus einer Datenbank mit nativer Datenbankabfrage
Spaltenbindung aktivieren Bindet Variablen an die Spalten einer SAP HANA-Ergebnismenge beim Abrufen von Daten. Kann möglicherweise die Leistung auf Kosten einer etwas höheren Speicherauslastung verbessern. Diese Option ist nur in Power Query Desktop verfügbar. Weitere Informationen, siehe Aktivierung der Spaltenbindung
ConnectionTimeout Eine Dauer, die bestimmt, wie lange gewartet werden soll, bevor der Versuch, eine Verbindung zum Server herzustellen, abgebrochen wird. Der Standardwert ist 15 Sekunden.
CommandTimeout Eine Dauer, die bestimmt, wie lange die serverseitige Abfrage laufen darf, bevor sie abgebrochen wird. Der Standardwert ist zehn Minuten.

Unterstützte Funktionen für SAP HANA

Die folgende Liste zeigt die unterstützten Funktionen für SAP HANA. Nicht alle hier aufgeführten Funktionen werden in allen Implementierungen des SAP HANA Database Connectors unterstützt.

  • Sowohl der Power BI Desktop als auch der Excel Connector für eine SAP HANA-Datenbank verwenden den SAP ODBC-Treiber, um die beste Benutzererfahrung zu bieten.

  • In Power BI Desktop unterstützt SAP HANA sowohl DirectQuery als auch Importoptionen.

  • Power BI Desktop unterstützt HANA-Informationsmodelle, wie Analytic und Calculation Views, und verfügt über eine optimierte Navigation.

  • Mit SAP HANA können Sie auch SQL-Befehle in der SQL-Anweisung für native Datenbankabfragen verwenden, um eine Verbindung zu Zeilen- und Spaltentabellen in HANA-Katalogtabellen herzustellen, die nicht in den Analytic/Calculation Views des Navigator enthalten sind. Sie können auch den ODBC Connector verwenden, um diese Tabellen abzufragen.

  • Power BI Desktop enthält eine optimierte Navigation für HANA-Modelle.

  • Power BI Desktop unterstützt SAP HANA-Variablen und Eingabeparameter.

  • Power BI Desktop unterstützt HDI-Container-basierte Kalkulationsansichten.

  • Die Funktion SapHana.Database unterstützt jetzt Verbindungs- und Befehlszeitüberschreitungen. Weitere Informationen: Herstellen einer Verbindung mithilfe der erweiterten Optionen

    • Um in Power BI auf Ihre HDI-Container-basierten Kalkulationsansichten zuzugreifen, stellen Sie sicher, dass die Benutzer der HANA-Datenbank, die Sie mit Power BI verwenden, die Berechtigung haben, auf den HDI Runtime Container zuzugreifen, in dem die Ansichten gespeichert sind, auf die Sie zugreifen möchten. Um diesen Zugriff zu gewähren, erstellen Sie eine Rolle, die den Zugriff auf Ihren HDI-Container erlaubt. Weisen Sie dann die Rolle dem Benutzer der HANA-Datenbank zu, den Sie mit Power BI verwenden werden. (Diese*r Benutzer*in muss wie üblich auch über die Berechtigung zum Lesen aus den Systemtabellen im Schema _SYS_BI verfügen.) Ausführliche Anweisungen zum Erstellen und Zuweisen von Datenbankrollen finden Sie in der offiziellen SAP-Dokumentation. Dieser SAP-Blogbeitrag könnte ein guter Anfang sein.

    • Derzeit gibt es einige Grenzwerte für HANA-Variablen, die mit HDI-basierten Berechnungsansichten verbunden sind. Der Grund dieser Einschränkungen sind Fehler bei HANA. Erstens ist es nicht möglich, eine HANA-Variable auf eine gemeinsame Spalte einer HDI-Container-basierten Berechnungsansicht anzuwenden. Diese Einschränkung kann mithilfe eines Upgrades auf HANA 2 Version 37.02 oder höher bzw. HANA 2 Version 42 oder höher behoben werden. Zweitens werden Standardwerte mit mehreren Einträgen für Variablen und Parameter derzeit nicht in der Power BI-Benutzeroberfläche angezeigt. Ein Fehler in SAP HANA verursacht diese Einschränkung. SAP hat bisher noch keine Lösung angekündigt.

Spaltenbindung aktivieren

Die von der Datenquelle abgerufenen Daten werden in Variablen an die Anwendung zurückgegeben, die die Anwendung für diesen Zweck zugewiesen hat. Bevor dies geschehen kann, muss die Anwendung diese Variablen mit den Spalten der Ergebnismenge verknüpfen oder binden. Dieser Prozess entspricht konzeptionell der Bindung von Anwendungsvariablen an Anweisungsparameter. Wenn die Anwendung eine Variable an eine Spalte der Ergebnismenge bindet, beschreibt sie diese Variable – Adresse, Datentyp usw. – für den Treiber. Der Treiber speichert diese Informationen in der Struktur, die er für diese Anweisung verwaltet, und verwendet die Informationen, um den Wert der Spalte zurückzugeben, wenn die Zeile abgerufen wird.

Wenn Sie Power Query Desktop verwenden, um eine Verbindung zu einer SAP HANA-Datenbank herzustellen, können Sie derzeit die erweiterte Option Spaltenbindung aktivieren auswählen, um die Spaltenbindung zu aktivieren.

Sie können die Spaltenbindung auch in bestehenden Abfragen oder in Abfragen, die in Power Query Online verwendet werden, aktivieren, indem Sie die EnableColumnBinding Option manuell zur Verbindung in der Power Query-Formelleiste oder im erweiterten Editor hinzufügen. Zum Beispiel:

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

Beim manuellen Hinzufügen der EnableColumnBinding Option gibt es Grenzwerte:

  • Die Aktivierung der Spaltenbindung funktioniert sowohl im Import- als auch im DirectQuery-Modus. Es ist jedoch nicht möglich, eine bestehende DirectQuery-Abfrage so umzurüsten, dass sie diese erweiterte Option verwendet. Stattdessen muss eine neue Abfrage erstellt werden, damit diese Funktion korrekt funktioniert.
  • In SAP HANA Server Version 2.0 oder höher ist die Spaltenbindung alles oder nichts. Wenn einige Spalten nicht gebunden werden können, wird keine gebunden, und der Benutzer erhält eine Ausnahme, z. B. DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384).
  • SAP HANA Version 1.0 Server melden nicht immer die korrekten Längen der Spalten. In diesem Zusammenhang ermöglicht EnableColumnBinding die teilweise Bindung von Spalten. Bei einigen Abfragen kann dies bedeuten, dass keine Spalten gebunden sind. Wenn keine Spalten gebunden sind, ergeben sich keine Leistungsvorteile.

Native Abfrageunterstützung im SAP HANA Datenbank Connector

Der Power Query SAP HANA Database Connector unterstützt native Abfragen. Informationen über die Verwendung nativer Abfragen in Power Query finden Sie unter Importieren von Daten aus einer Datenbank mit nativen Datenbankabfragen.

Abfrage-Folding bei nativen Abfragen

Der Power Query SAP HANA Database Connector unterstützt jetzt Abfrage-Folding bei nativen Abfragen. Weitere Informationen, siehe Abfrage-Folding bei nativen Abfragen

Hinweis

Im Power Query SAP HANA Database Connector unterstützen die nativen Abfragen keine doppelten Spaltennamen, wenn EnableFolding auf true gesetzt ist.

Parameter in nativen Abfragen

Der Power Query SAP HANA Database Connector unterstützt jetzt Parameter in nativen Abfragen. Sie können Parameter in nativen Abfragen angeben, indem Sie die Syntax Value.NativeQuery verwenden.

Im Gegensatz zu anderen Connectoren unterstützt der SAP HANA Datenbank-Connector EnableFolding = True und die gleichzeitige Angabe von Parametern.

Um Parameter in einer Abfrage zu verwenden, setzen Sie Fragezeichen (?) als Platzhalter in Ihren Code. Um den Parameter anzugeben, verwenden Sie den Textwert SqlType und einen Wert für diesen SqlType in Value. Value kann ein beliebiger M-Wert sein, muss aber dem Wert des angegebenen SqlType zugewiesen werden.

Es gibt mehrere Möglichkeiten, Parameter zu spezifizieren:

  • Bereitstellung der Werte als Liste:

    { “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
    
  • Angabe der Werte und des Typs in Form einer Liste:

    { [ SqlType = "CHAR", Value = "M" ], 
       [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], 
       [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
    
  • Kombinieren der beiden:

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

SqlType folgt den von SAP HANA definierten Standard-Typnamen. Die folgende Liste enthält zum Beispiel die am häufigsten verwendeten Typen:

  • BIGINT
  • BINARY
  • BOOLEAN
  • CHAR
  • DATE
  • DECIMAL
  • Double
  • INTEGER
  • NVARCHAR
  • SECONDDATE
  • SHORTTEXT
  • SMALLDECIMAL
  • SMALLINT
  • TIME
  • TIMESTAMP
  • VARBINARY
  • VARCHAR

Das folgende Beispiel zeigt, wie Sie eine Liste von Parameterwerten bereitstellen können.

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

Das folgende Beispiel zeigt, wie Sie eine Liste von Datensätzen (oder eine Mischung aus Werten und Datensätzen) bereitstellen können:

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

Unterstützung für dynamische Attribute

Die Art und Weise, wie der SAP HANA Database Connector berechnete Spalten behandelt, wurde verbessert. Der SAP HANA Datenbank-Connector ist ein „Cube“-Connector und es gibt eine Reihe von Operationen (Elemente hinzufügen, Spalten komprimieren usw.), die im „Cube“-Bereich stattfinden. Dieser Cube-Bereich wird in der Benutzeroberfläche von Power Query Desktop und Power Query Online durch das Symbol „Cube“ angezeigt, das das übliche Symbol „Tabelle“ ersetzt.

Screenshot der linken Seite der aktuellen Ansicht in Power Query, wobei das Cube-Symbol oben in der Zeilennummerspalte hervorgehoben wird.

Wenn Sie früher eine Tabellenspalte (oder eine andere Transformation, die intern eine Spalte hinzufügt) hinzufügten, fiel die Abfrage aus dem Cube-Bereich heraus, und alle Operationen wurden auf Tabellenebene durchgeführt. Zu einem bestimmten Zeitpunkt könnte dieser Ausfall dazu führen, dass die Abfrage nicht mehr gefaltet wird. Die Durchführung von Cube-Operationen nach dem Hinzufügen einer Spalte war nicht mehr möglich.

Mit dieser Änderung werden die hinzugefügten Spalten als dynamische Attribute innerhalb des Cubes behandelt. Dass die Abfrage bei dieser Operation im Cube-Bereich verbleibt, hat den Vorteil, dass Sie Cube-Operationen auch nach dem Hinzufügen von Spalten weiter verwenden können.

Hinweis

Diese neue Funktionalität ist nur verfügbar, wenn Sie sich mit Calculation Views in SAP HANA Server Version 2.0 oder höher verbinden.

Die folgende Beispielabfrage macht sich diese neue Funktion zunutze. In der Vergangenheit erhielten Sie die Ausnahme „Der Wert ist kein Cube“, wenn Sie Cube.CollapseAndRemoveColumns anwendeten.

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"

Nächste Schritte

Die folgenden Artikel enthalten weitere Informationen, die Ihnen bei der Verbindung mit einer SAP HANA-Debase nützlich sein können.