Datenbank Blog » Data Warehouse & Business Intelligence

PowerPivot auf SAP HANA anwenden

PowerPivot auf SAP HANA anwenden | Datenbank Blog

Vor kurzem wurde in unserem Datenbank Forum eine interessante Frage gestellt: Kann man PowerPivot auf SAP HANA anwenden? Da die Frage bis jetzt noch nicht beantwortet wurde, habe ich mich auf die Suche nach einer Lösung mit einer nativen ODBC-Verbindung gemacht. Während meiner Recherche bin ich auf viele interessante Probleme gestoßen und kann nun eine Lösung zu dieser Frage liefern, die ich euch hier gerne vorstellen werde.

Voraussetzungen für PowerPivot und SAP HANA

SAP HANA mit PowerPivot mittels ODBC verbinden
Damit jeder den Artikel voll und ganz nachvollziehen kann, müssen einige Voraussetzungen erfüllt sein, damit jeder PowerPivot auf SAP HANA anwenden kann. Dabei sind folgende Punkte vorab zu beachten:

  1. Installation der 32-Bit und 64-Bit Client-Treiber für SAP HANA
  2. Erstellung einer ODBC -Verbindung im ODBC-Datenquellen-Administrator
  3. Testdaten in einer SPA HANA Instanz. Falls ihr keine Testdaten in eurer Instanz habt, könnt ihr mit dem folgenden Blogartikel Microsoft SSIS für SAP HANA nutzen lesen und Testdaten in eure SAP HANA Instanz mittels SSIS laden

Direkte ODBC-Verbindung in PowerPivot für SAP HANA erstellen

Mein erster Versuch war eine einfache ODBC-Verbindung direkt in PowerPivot zu erstellen, um damit die SAP HANA Instanz anzusprechen.  Dafür habe ich eine neue Excel Instanz gestartet und das Tool PowerPivot gestartet. Danach klick ich auf den Punkt „Externe Daten abrufen“ und dann auf „Aus anderen Quellen“. Danach öffnet sich ein Dialog, wobei ich folgenden Punkt ausgewählt habe.

OLE DB für SAP HANA mittels PowerPivot

Nach der Auswahl erscheint ein weiterer Dialog, wo die Verbindung genauer spezifiziert werden muss. Dabei sind besonders zwei Verbindungsarten sehr interessant: Microsoft OLE DB Provider for ODBC Drivers und SAP HANA MDX Provider.

ODBC und HANA Treiber

Beide Zugriffskomponenten sind eher ungeeignet, wenn es darum geht eine native ODBC-Lösung zu realisieren. Doch warum ist das so? Sowohl der OLE DB als auch der MDX Provider dienen als Mapper und sind daher keine nativen Lösungen. Im Fall des OLEDB/ODBC-Treibers werden OLE DB-Methoden in ODBC-Funktionsaufrufe konvertiert und aufgerufen.

Jeder Versuch eine saubere Verbindung mit OLE DB bzw. SAP HANA MDX Provider aufzubauen, schlug fehl. Es scheint ein Problem bei der Übersetzung meines ODBC-Connectionstrings in eine PowerPivot-Connection zu geben. Es könnte aber auch ein Fehler im 32-Bit-oder 64-Bit-Treiber von SAP HANA oder Excel sein.

Indirekte ODBC-Verbindung mittels Excel Datenquelle/PowerPivot zu SAP HANA

Mein zweiter Versuch beruht auf der Annahme, dass ein Bug in der Benutzeroberfläche von PowerPivot/Excel in dem oben gezeigten Erstversuch sein muss. Damit eine echte native ODBC-Verbindung erstellt werden kann, muss man sich mit den ODBC-Grundlagen auseinandersetzen. Für die Erstellung einer ODBC-Verbindung starte ich mein Notepad und baue die Datei wie folgt auf:

ODBC Query mit Notepad

Folgende Kommandos müssen in der Textdatei enthalten sein, damit eine saubere ODBC-Verbindung erstellt werden kann:

  • SERVERNODE: Definiert die Adresse des Webservers von SAP HANA und deren Port
  • DSN: Definiert den Namen der Datenquelle aus dem ODBC-Datenquellen-Administrator
  • UID: Definiert den Benutzernamen
  • PWD: Definiert das Passwort
  • SQL Statement: Definiert die SQL-Abfrage auf die SAP HANA Instanz

Die neue Datei speichere ich als .dqy-Datei (Excel-ODBC-Abfrage) auf meinem Desktop ab. Nun öffne ich eine neue Excel-Instanz und gehe auf den Reiter „Daten“ und dann auf „Vorhandene Verbindungen“. Dadurch wird der folgende Dialog aufgerufen:

ODBC für SAP HANA vorbereiten

Sobald ich die Excel ODBC-Abfrage dem Excel Sheet hinzugefügt habe, öffne ich wieder das PowerPivot-Tool.

ODBC Verbindung laden

Nun wähle ich den Punkt „Vorhandene Verbindungen“ aus und es erscheint der folgende Dialog:

ODBC-Verbindung für SAP HANA

Nun liest das PowerPivot-Tool alle Verbindungen des aktuellen Excel-Sheets ein und findet meine selbst erstellte ODBC-Verbindung. Nach der Auswahl der ODBC-Verbindung öffnet sich der Verbindungs-Manager.

ODBC ohne Passwort

Beim Betrachten der Verbindungszeichenfolge fällt auf, dass der Parameter „PWD“ nicht sichtbar ist. Ob das von Excel so gewollt ist oder nicht, spielt erst einmal keine Rolle. Klickt man nun auf den Button Verbindung testen, erscheint folgender Dialog:

ODBC Passwort fehlt

Das Fehlen des Passworts kann im folgenden Dialog behoben werden, in dem man den Hacken bei „Kennwort speichern“ aktiviert.

ODBC Passwort anzeigen

Gehe ich nun wieder in das PowerPivot-Tool und füge die bestehende Verbindung hinzu, erscheint nun folgender Dialog.

ODBC mit Passwort

Das Aktivieren des Häkchens bewirkt wahre Wunder. Nun wird das Passwort aus der Verbindung angezeigt und der Verbindungstest konnte erfolgreich durchgeführt werden. Nun lade ich die Testdaten aus meiner SAP HANA Instanz in das PowerPivot-Modell.

ODBC Verbindung lädt Daten aus SAP HANA in PowerPivot

Nach dem Laden der Testdaten in das PowerPivot-Modell kann ich nun das fertige Ergebnis präsentieren.

PowerPivot mit ODBC auf SAP HANA

Fazit zu PowerPivot auf SAP HANA anwenden

Wie ich gerade gezeigt habe, ist es durchaus möglich mit PowerPivot & ODBC Daten aus einer SAP HANA Instanz auszulesen. Der Unterschied zwischen der direkten und indirekten Variante ist, dass ich die grafische Oberfläche von PowerPivot umgangen habe.

Daher ist es kein technischer Workaround, sondern eher ein kleiner Hack in der Benutzeroberfläche von PowerPivot.

Doch wo ist jetzt genau der Unterschied?

Durch das Erstellen der manuellen ODBC-Verbindung und dem Hinzufügen der Verbindung im Excel-Sheet, kann ich den ODBC-Manager vom PowerPivot-Tool umgehen, eine saubere Verbindungszeichenfolge in meinem PowerPivot setzen und damit meine SAP HANA Instanz auslesen.

Ich hoffe, dass ich damit die Frage, aus unserem Forum Mit PowerPivot & ODBC auf SAP HANA zugreifen, klären konnte.

Euer Datenbanken-verstehen.de Team

Über den Autor

Markus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*