SAP HANA-Datenbank
Zusammenfassung
Element | BESCHREIBUNG |
---|---|
Freigabestatus | Allgemeine Verfügbarkeit |
Produkte | Power BI (Datasets) Power BI (Dataflows) Power Apps (Dataflows) Excel Analysis Services |
Unterstützte Authentifizierungstypen | Basic Datenbank Windows |
Funktionsreferenzdokumentation | SapHana.Database |
Hinweis
Einige Funktionen sind möglicherweise in einem Produkt vorhanden, andere jedoch nicht aufgrund von Bereitstellungszeitplänen und hostspezifischen Funktionen.
Voraussetzungen
Sie benötigen ein SAP-Konto, um sich bei der Website anzumelden und die Treiber herunterzuladen. Wenn Sie unsicher sind, wenden Sie sich an den SAP-Administrator in Ihrer Organisation.
Um SAP HANA in Power BI Desktop oder Excel verwenden zu können, muss der SAP HANA ODBC-Treiber auf dem lokalen Clientcomputer installiert sein, 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. Anweisungen zum Installieren des SAP HANA ODBC-Treibers finden Sie unter Installieren des SAP HANA ODBC-Treibers unter Windows 64 Bits.
Um SAP HANA in Excel verwenden zu können, muss entweder der 32-Bit- oder 64-Bit-SAP HANA-ODBC-Treiber (je nachdem, ob Sie die 32-Bit- oder 64-Bit-Version von Excel verwenden) auf dem lokalen Clientcomputer installiert sein.
Dieses Feature ist nur in Excel für Windows verfügbar, wenn Sie über Office 2019 oder ein Microsoft 365-Abonnement verfügen. Wenn Sie ein Microsoft 365-Abonnent sind, stellen Sie sicher, dass Sie über die neueste Version von Office verfügen.
HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 und BW/4HANA 2.0 werden unterstützt.
Unterstützte Funktionen
- Import
- Direkte Abfrage
- Fortgeschrittene
- SQL-Anweisung
Herstellen einer Verbindung mit einer SAP HANA-Datenbank über Power Query Desktop
So stellen Sie über Power Query Desktop eine Verbindung mit einer SAP HANA-Datenbank her:
Wählen Sie daten abrufen > SAP HANA-Datenbank in Power BI Desktop oder Aus Datenbank > aus SAP HANA-Datenbank im Menüband Daten in Excel aus.
Geben Sie den Namen und port des SAP HANA-Servers ein, mit dem Sie eine Verbindung herstellen möchten. Das Beispiel in der folgenden Abbildung verwendet
SAPHANATestServer
am Port30015
.Standardmäßig ist die Portnummer so festgelegt, dass eine einzelne Containerdatenbank unterstützt wird. Wenn Ihre SAP HANA-Datenbank mehr als einen mehrinstanzenfähigen Datenbankcontainer enthalten kann, wählen Sie Systemdatenbank für mehrere Container (30013) aus. Wenn Sie eine Verbindung mit einer Mandantendatenbank oder einer Datenbank mit einer nicht standardmäßigen Instanznummer herstellen möchten, wählen Sie im Dropdownmenü Port die Option Benutzerdefiniert aus.
Wenn Sie über Power BI Desktop eine Verbindung mit einer SAP HANA-Datenbank herstellen, haben Sie auch die Möglichkeit, import oder DirectQuery auszuwählen. Im Beispiel in diesem Artikel wird Import verwendet, der Standard (und der einzige Modus für Excel). Weitere Informationen zum Herstellen einer Verbindung mit der Datenbank mithilfe von DirectQuery in Power BI Desktop finden Sie unter Herstellen einer Verbindung mit SAP HANA-Datenquellen mithilfe von DirectQuery in Power BI.
Sie können auch eine SQL-Anweisung eingeben oder die Spaltenbindung über erweiterte Optionen aktivieren. Weitere Informationen : Herstellen einer Verbindung mit erweiterten Optionen
Nachdem Sie alle Ihre Optionen eingegeben haben, wählen Sie OK aus.
Wenn Sie zum ersten Mal auf eine Datenbank zugreifen, werden Sie aufgefordert, Ihre Anmeldeinformationen für die Authentifizierung einzugeben. In diesem Beispiel erfordert der SAP HANA-Server Datenbankbenutzeranmeldeinformationen. Wählen Sie daher Datenbank aus, und geben Sie Ihren Benutzernamen und Ihr Kennwort ein. Geben Sie bei Bedarf Die Informationen zum Serverzertifikat ein.
Außerdem müssen Sie möglicherweise das Serverzertifikat überprüfen. Weitere Informationen zur Verwendung der Auswahl von Validierungsserverzertifikaten finden Sie unter Verwenden der SAP HANA-Verschlüsselung. In Power BI Desktop und Excel ist die Auswahl des Zertifikats überprüfen des Servers standardmäßig aktiviert. Wenn Sie diese Auswahl bereits im ODBC-Datenquellenadministrator eingerichtet haben, deaktivieren Sie das Kontrollkästchen Serverzertifikat überprüfen . Weitere Informationen zur Verwendung des ODBC-Datenquellenadministrators zum Einrichten dieser Auswahl finden Sie unter Konfigurieren von SSL für den ODBC-Clientzugriff auf SAP HANA.
Weitere Informationen zur Authentifizierung findest du unter Authentifizierung mit einer Datenquelle.
Nachdem Sie alle erforderlichen Informationen eingegeben haben, wählen Sie Verbinden aus.
Im Dialogfeld Navigator können Sie die Daten entweder im Power Query-Editor transformieren, indem Sie Daten transformieren auswählen oder die Daten laden, indem Sie Laden auswählen.
Herstellen einer Verbindung mit einer SAP HANA-Datenbank über Power Query Online
So stellen Sie über Power Query Online eine Verbindung mit SAP HANA-Daten her:
Wählen Sie auf der Seite Datenquellendie Option SAP HANA-Datenbank aus.
Geben Sie den Namen und port des SAP HANA-Servers ein, mit dem Sie eine Verbindung herstellen möchten. Das Beispiel in der folgenden Abbildung verwendet
SAPHANATestServer
am Port30015
.Geben Sie optional eine SQL-Anweisung aus erweiterten Optionen ein. Weitere Informationen : Herstellen einer Verbindung mit erweiterten Optionen
Wählen Sie den Namen des lokalen Datengateways aus, das für den Zugriff auf die Datenbank verwendet werden soll.
Hinweis
Sie müssen mit diesem Connector ein lokales Datengateway verwenden, unabhängig davon, ob ihre Daten lokal oder online sind.
Wählen Sie die Authentifizierungsart aus, die Sie für den Zugriff auf Ihre Daten verwenden möchten. Sie müssen auch einen Benutzernamen und ein Kennwort eingeben.
Hinweis
Derzeit unterstützt Power Query Online nur die Standardauthentifizierung.
Wählen Sie Verschlüsselte Verbindung verwenden aus, wenn Sie eine verschlüsselte Verbindung verwenden, und wählen Sie dann den SSL-Kryptoanbieter aus. Wenn Sie keine verschlüsselte Verbindung verwenden, deaktivieren Sie Verschlüsselte Verbindung verwenden. Weitere Informationen: Aktivieren der Verschlüsselung für SAP HANA
Klicken Sie auf Weiter, um fortzufahren.
Im Dialogfeld Navigator können Sie die Daten entweder im Power Query-Editor transformieren, indem Sie Daten transformieren auswählen oder die Daten laden, indem Sie Laden auswählen.
Verbinden mithilfe erweiterter Optionen
Power Query bietet eine Reihe erweiterter Optionen, die Sie ihrer Abfrage bei Bedarf hinzufügen können.
In der folgenden Tabelle werden alle erweiterten Optionen beschrieben, die Sie in Power Query festlegen können.
Erweiterte Option | BESCHREIBUNG |
---|---|
SQL-Anweisung | Weitere Informationen : Importieren von Daten aus einer Datenbank mithilfe einer nativen Datenbankabfrage |
Aktivieren der Spaltenbindung | Bindet Variablen an die Spalten eines SAP HANA-Resultsets 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: Aktivieren der Spaltenbindung |
ConnectionTimeout | Eine Dauer, die steuert, wie lange gewartet werden muss, bevor ein Versuch, eine Verbindung mit dem Server herzustellen, abgebrochen wird. Der Standardwert ist 15 Sekunden. |
CommandTimeout | Eine Dauer, die steuert, wie lange die serverseitige Abfrage ausgeführt werden darf, bevor sie abgebrochen wird. Der Standardwert ist zehn Minuten. |
Unterstützte Funktionen für SAP HANA
Die folgende Liste zeigt die unterstützten Features für SAP HANA. Nicht alle hier aufgeführten Features werden in allen Implementierungen des SAP HANA-Datenbankconnectors 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, z. B. Analyse- und Berechnungsansichten, und verfügt über eine optimierte Navigation.
Mit SAP HANA können Sie auch SQL-Befehle in der SQL-Anweisung der nativen Datenbankabfrage verwenden, um eine Verbindung mit Zeilen- und Spaltentabellen in HANA-Katalogtabellen herzustellen, die nicht in den Analyse-/Berechnungssichten enthalten sind, die von der Navigator-Benutzeroberfläche bereitgestellt werden. Sie können auch den ODBC-Connector verwenden, um diese Tabellen abzufragen.
Power BI Desktop enthält optimierte Navigation für HANA-Modelle.
Power BI Desktop unterstützt SAP HANA-Variablen und Eingabeparameter.
Power BI Desktop unterstützt HDI-containerbasierte Berechnungssichten.
Die SapHana.Database-Funktion unterstützt jetzt Verbindungs- und Befehlstimeouts. Weitere Informationen: Herstellen einer Verbindung mit erweiterten Optionen
Stellen Sie sicher, dass die HANA-Datenbankbenutzer für Power BI über Berechtigungen für den Zugriff auf den HDI-Laufzeitcontainer verfügen, der die Ansichten enthält, auf die Sie zugreifen möchten, um auf Ihre auf HDI-Container basierten Berechnungsansichten in Power BI zuzugreifen. Erstellen Sie eine Rolle, um den Zugriff auf Ihren HDI-Container zu ermöglichen. Weisen Sie anschließend dem HANA-Datenbankbenutzer, den Sie bei Power BI verwenden, die Rolle zu. (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 ist möglicherweise ein guter Ausgangspunkt.
Derzeit liegen einige Einschränkungen für HANA-Variablen vor, die an HDI-basierte Berechnungsansichten angefügt sind. Der Grund dieser Einschränkungen sind Fehler bei HANA. Erstens ist es nicht möglich, eine HANA-Variable auf eine freigegebene 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.
Aktivieren der Spaltenbindung
Aus der Datenquelle abgerufene Daten werden in Variablen, die die Anwendung zu diesem Zweck zugewiesen hat, an die Anwendung zurückgegeben. Bevor dies geschehen kann, muss die Anwendung diese Variablen den Spalten des Resultsets zuordnen oder binden. Konzeptionell ist dieser Prozess identisch mit dem Binden von Anwendungsvariablen an Anweisungsparameter. Wenn die Anwendung eine Variable an eine Resultsetspalte bindet, beschreibt sie diese Variable – Adresse, Datentyp usw. – an den Treiber. Der Treiber speichert diese Informationen in der Struktur, die er für diese Anweisung verwaltet, und verwendet die Informationen, um den Wert aus der Spalte zurückzugeben, wenn die Zeile abgerufen wird.
Wenn Sie derzeit Power Query Desktop verwenden, um eine Verbindung mit einer SAP HANA-Datenbank herzustellen, können Sie die Option Spaltenbindung aktivieren auswählen, um die Spaltenbindung zu aktivieren.
Sie können die Spaltenbindung auch in vorhandenen Abfragen oder in Abfragen aktivieren, die in Power Query Online verwendet werden, indem Sie die EnableColumnBinding
Option manuell zur Verbindung in der Power Query Formelleiste oder im erweiterten Editor hinzufügen. Beispiel:
SapHana.Database("myserver:30015", [Implementation = "2.0", EnableColumnBinding = true]),
Es gibt Einschränkungen beim manuellen Hinzufügen der EnableColumnBinding
Option:
- Das Aktivieren der Spaltenbindung funktioniert sowohl im Import- als auch im DirectQuery-Modus. Das Nachrüsten einer vorhandenen DirectQuery-Abfrage zur Verwendung dieser erweiterten Option ist jedoch nicht möglich. Stattdessen muss eine neue Abfrage erstellt werden, damit dieses Feature ordnungsgemäß funktioniert.
- In SAP HANA Server Version 2.0 oder höher ist die Spaltenbindung ganz oder gar 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)
. . - Server der SAP HANA Version 1.0 melden nicht immer die richtigen Spaltenlängen. In diesem Kontext
EnableColumnBinding
ermöglicht die partielle Spaltenbindung. Bei einigen Abfragen kann dies bedeuten, dass keine Spalten gebunden sind. Wenn keine Spalten gebunden sind, werden keine Leistungsvorteile erzielt.
Unterstützung nativer Abfragen im SAP HANA-Datenbankconnector
Der Power Query SAP HANA-Datenbankconnector unterstützt native Abfragen. Informationen zur Verwendung nativer Abfragen in Power Query finden Sie unter Importieren von Daten aus einer Datenbank mithilfe einer nativen Datenbankabfrage.
Abfragefaltung bei nativen Abfragen
Der Power Query SAP HANA-Datenbankconnector unterstützt jetzt die Abfragefaltung für native Abfragen. Weitere Informationen: Abfragefaltung bei nativen Abfragen
Hinweis
Im Power Query SAP HANA-Datenbankconnector unterstützen native Abfragen keine doppelten Spaltennamen, wenn EnableFolding
auf true festgelegt ist.
Parameter in nativen Abfragen
Der Power Query SAP HANA-Datenbankconnector unterstützt jetzt Parameter in nativen Abfragen. Sie können Parameter in nativen Abfragen mithilfe der Value.NativeQuery-Syntax angeben.
Im Gegensatz zu anderen Connectors unterstützt EnableFolding = True
und gibt der SAP HANA-Datenbankconnector Parameter gleichzeitig an.
Um Parameter in einer Abfrage zu verwenden, platzieren Sie Fragezeichen (?) im Code als Platzhalter. Um den Parameter anzugeben, verwenden Sie den SqlType
Textwert 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 anzugeben:
Geben Sie nur die Werte als Liste an:
{ “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
Geben Sie die Werte und den Typ als Liste an:
{ [ SqlType = "CHAR", Value = "M" ], [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
Mischen und kombinieren Sie die beiden:
{ “Seattle”, 1, [ SqlType = "SECONDDATE", Value = #datetime(2022, 5, 27, 17, 43, 7) ] }
SqlType
folgt den von SAP HANA definierten Standardtypnamen. Die folgende Liste enthält beispielsweise die am häufigsten verwendeten Typen:
- bigint
- BINARY
- BOOLEAN
- CHAR
- DATE
- DECIMAL
- Double
- INTEGER
- NVARCHAR
- SECONDDATE
- SHORTTEXT
- SMALLDECIMAL
- SMALLINT
- TIME
- timestamp
- VARBINARY
- VARCHAR
Im folgenden Beispiel wird veranschaulicht, wie eine Liste mit Parameterwerten bereitgestellt wird.
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 veranschaulicht, wie Sie eine Liste von Datensätzen (oder Mischen von Werten und Datensätzen) bereitstellen:
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-Datenbankconnector berechnete Spalten behandelt, wurde verbessert. Der SAP HANA-Datenbankconnector ist ein "Cube"-Connector, und es gibt einige Gruppen von Vorgängen (Hinzufügen von Elementen, Reduzieren von Spalten usw.), die im Cubebereich ausgeführt werden. Dieser Cubebereich wird in der Power Query Desktop- und Power Query Online-Benutzeroberfläche durch das Cubesymbol angezeigt, das das häufigere Symbol "Tabelle" ersetzt.
Wenn Sie zuvor eine Tabellenspalte hinzugefügt haben (oder eine andere Transformation, die intern eine Spalte hinzufügt), wurde die Abfrage "aus dem Cubebereich gelöscht", und alle Vorgänge wurden auf Tabellenebene ausgeführt. Irgendwann kann dieser Ausfall dazu führen, dass die Abfrage nicht mehr gefaltet wird. Das Ausführen von Cubevorgängen 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. Wenn die Abfrage für diesen Vorgang im Cubebereich verbleibt, hat den Vorteil, dass Sie auch nach dem Hinzufügen von Spalten weiterhin Cubevorgänge verwenden können.
Hinweis
Diese neue Funktionalität ist nur verfügbar, wenn Sie eine Verbindung mit Berechnungssichten in SAP HANA Server Version 2.0 oder höher herstellen.
Die folgende Beispielabfrage nutzt diese neue Funktion. In der Vergangenheit haben Sie beim Anwenden von Cube.CollapseAndRemoveColumns die Ausnahme "Der Wert ist kein Cube" erhalten.
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 Sie möglicherweise hilfreich finden, wenn Sie eine Verbindung mit einer SAP HANA-Basis herstellen.