Maschinelles-Lernen-mit-SAP-HANA-und-SAP-Fiori

Machine Learning mit SAP HANA und SAP Fiori

Was ist maschinelles Lernen und warum ist es so wichtig?

Auf jeden Fall ist es heute in aller Munde. Wir sollten also zunächst einmal klären, warum genau alle Welt so interessiert daran ist.

Der Grund, warum maschinelles Lernen in aller Munde ist, ist die Tatsache, dass es uns in vielen Bereichen gewaltige Fortschritte bringt. Es erlaubt Computern, bestimmte Aufgaben nicht nur auszuführen, sondern die zugrunde liegenden Regeln für die Ausführung dieser Aufgaben im Vorfeld überhaupt erst zu erlernen (also basierend auf historischen Daten aus Erfahrungen zu lernen).

Ein gutes Beispiel ist das Gesundheitswesen. Hier werden Algorithmen für das maschinelle Lernen bereits erfolgreich eingesetzt, um die Anzeichen für ein Reihe schwerer Krankheiten wie zum Beispiel Brustkrebs frühestmöglich zu erkennen und so das Risiko für Patienten zu senken.

Im Finanzwesen kommen Lernalgorithmen zum Einsatz, um Betrugsversuchen auf die Spur zu kommen und Geldwäsche zu bekämpfen. Derartige Algorithmen können Abermillionen von Transaktionen analysieren und dabei verdächtige Muster erkennen und offenlegen.

Im Bereich der Online-Sicherheit werden Algorithmen für das maschinelle Lernen eingesetzt, um verdächtiges Verhalten zu beobachten und Datenschutzverletzungen zu erkennen.

Und nicht zuletzt ist maschinelles Lernen schon längst Teil unseres Alltags. Egal, ob wir mit Siri auf unseren Apple-Geräten oder mit Alexa über unseren Echo kommunizieren, in den sozialen Netzwerken unterwegs sind oder uns von Google Maps leiten lassen, den Kern all dieser Systeme bilden maschinelle Lernalgorithmen.

Auch im Tagesgeschäft vieler Unternehmen sorgen diese Algorithmen für die Automatisierung grundlegender Aufgaben, die früher von Hand verrichtet wurden, so zum Beispiel bei der Prüfung von Rechnungen auf Duplikate, Bestellungen und vielem mehr. …

Im Bereich Business Intelligence nimmt maschinelles Lernen als Bestandteil von Predictive-Analytics-Verfahren ebenfalls ein wichtige Rolle ein und ermöglicht es Mitarbeiten, bestimmte Ergebnisse zu prognostizieren. So können im Vertrieb zum Beispiel Vorhersagen zu Verkaufszahlen getroffen werden und Führungskräfte können verschiedene Prognosen zu den möglichen Auswirkungen von Entscheidungen auswerten und so ihre Entscheidungsfindung unterstützen.

Aber wie funktioniert es?

Machen wir einen kleinen Test:

  • 2 → 4
  • 3 → 9
  • 5 → 25
  • 6 → ?

Die richtige Antwort ist natürlich 36. Und der Grund, warum du das wusstet, ist die Tatsache, dass du ein Muster erkannt hast. Und genau so arbeiten auch maschinelle Lernalgorithmen. Sie werden anhand von Beispieldaten trainiert und lernen auf diesem Wege, Muster zu erkennen und diese Muster den richtigen Reaktionen zuzuordnen (aus Erfahrung lernen). Nach Abschluss des Trainings können wir den Algorithmus mit neuen Daten füttern und erhalten (hoffentlich) die richtige Antwort auf unsere Abfrage.

Natürlich sind diese Algorithmen auf die Bearbeitung von Problemen ausgelegt, die um ein Vielfaches komplexer sind als unser kleiner Test und zudem unzählige Eingabewerte erfordern. So stellen auch komplexe Aufgaben wie Bild- und Spracherkennung oder die Vorhersage möglicher Vertriebsergebnisse anhand von historischen Marktdaten kein Problem dar.

 Maschinelles Lernen mit SAP HANA und Fiori

Als viel diskutiertes Thema weckt maschinelles Lernen natürlich auch Neugier und Experimentierfreude und auch wir bilden da keine Ausnahme. Bei Inspiricon stellte sich vor allem die Frage, welchen Mehrwert dieser neue Trend in unseren angestammten Fachgebieten wie BI, SAP Fiori und SAP HANA entfalten könnte.

Dabei hat sich gezeigt, dass SAP HANA das maschinelle Lernen bereits heute schon sehr beachtlich unterstützt. Mit der SAP HANA Predictive Analytics Library ermöglicht SAP die Verwendung von maschinellen Lernalgorithmen und sogar den Aufbau von neuronalen Netzen. Nutzt man diese Stärken und verbindet sie mit SAP Fiori, lassen sich einige hochinteressante Anwendungen im Bereich der Predictive Analytics realisieren. So konnten wir beispielweise ein kleine Fiori-Anwendung für die Prognose von Verkaufszahlen in den einzelnen Filialen einer Supermarktkette erstellen. Die folgende Abbildung zeigt einen groben Überblick über die Architektur dieser Anwendung:

Architecture-Application-Machine-Learning

Die von uns entwickelte Fiori-Anwendung wäre vor allem für Führungskräfte interessant und würde es ihnen erlauben, innerhalb der Anwendung die Prognose bis zum Jahresende auszuwerten. Wir beschäftigen uns auch weiterhin mit diesem Szenario und arbeiten daran, es um zusätzliche Funktionen wie zum Beispiel “Was-wäre-wenn-Szenarien” zu erweitern, über die sich die Auswirkungen von Management- und Marketingentscheidungen (z. B. Werbeaktionen) auf die prognostizierten Verkaufszahlen untersuchen lassen:

Fiori-Predictive-Demo-Machine-Learning

Fazit

Maschinelles Lernen ist schon mit einem einfachen HANA-Backend möglich!

Zwar gibt es am Markt bereits umfassende und leistungsstarke Tools wie z. B. Tensorflow für neuronale Netzwerke oder SAP Predictive Analytics, aber ihr solltet unbedingt wissen, dass diese für einen Einstieg in das Thema nicht unbedingt zwingend erforderlich sind. Wie schon oben gesagt, erhaltet ihr mit SAP HANA schon alles, was ihr braucht. Und mit SAP Fiori lassen sich UI-Anwendungen realisieren, die das implementierte Szenario optimal unterstützen. Für die vorausgehende Analyse der Daten stehen euch leistungsstarke und zudem kostenlose Analysetools wie Python (Pandas) oder R zur Verfügung. Daraus kann sich ein durchaus sehr attraktiver Ansatz ergeben, der sich auch ohne zusätzliche Lizenz- oder Infrastrukturkosten umsetzen lässt und insbesondere für kleinere Probleme geeignet ist, die auch ohne intensive Datenverarbeitung auskommen.

Für welchen Ansatz ihr euch letzten Endes entscheidet, hängt ganz allein von dem jeweiligen Anwendungsfall ab und sollte vom Entwicklungsteam genau durchdacht sein. Ein wichtiger Faktor, der bei der Entscheidungsfindung nicht außer Acht gelassen werden darf, sind die Kosten, die durch Pflege und Lizenzen entstehen.

Quellenangabe der Bilder:  Inspiricon AG

Autor dieses Beitrags
Gerald Iakobinyi-Pich Solution Architect
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de
Klassische DataStore Objekte

Klassische DataStore-Objekte vs. Advanced DataStore-Objekte

Mit SAP BW/4HANA gab es auf Architekturebene viele Änderungen, so zum Beispiel bei der Datenmodellierung.

In diesem Artikel beschäftigen wir uns mit den verschiedenen Funktionen und Möglichkeiten von ADSOs und zeigen dir zudem, wie sie dir dabei helfen können, verschiedene Aufgaben in deiner SAP BW-Umgebung zu optimieren.

Werfen wir aber zuerst einen Blick auf die klassischen DSOs und ihre Funktionen. Danach zeige ich dir noch die Unterschiede zwischen klassischen DSOs und den neu eingeführten ADSOs.

DSO (DataStore Object)

Was ist ein DSO?

Ein DSO ist eine zweidimensionale Speichereinheit, in der hauptsächlich Transaktionsdaten oder Stammdaten mit niedrigster Granularität gespeichert werden. Die Daten werden also mit einem hohen Detailgrad gespeichert.

DSO-Typen

Beim Anlegen eines DSOs musst du zunächst den Typ auswählen:

dso

Wenn wir ein DSO anlegen, legt das System standardmäßig eine System ID über die Option „Erzeugung von SIDs bei Aktivierung“ fest, die du in den Bearbeitungseinstellungen eines DSOs findest. Wird diese Option aktiviert, prüft das System die SID-Werte für alle Merkmale im DSO. Falls es keinen SID-Wert für ein Merkmal gibt, generiert das System die SID. Durch die Erzeugung der SIDs bei Aktivierung wird die Laufzeitperformance der Abfrage verbessert, da die SIDs nicht zur Laufzeit der Abfrage generiert werden müssen. SID-Werte werden grundsätzlich in der SID-Tabelle eines InfoObjects gespeichert. Über die SID wird auf die Attribute und Texte eines Stammdaten-InfoObjects zugegriffen. Die SID-Tabelle ist über den char key mit den dazugehörigen Stammdatentabellen verbunden.

In der folgenden Tabelle findest du eine Übersicht über die Eigenschaften der verschiedenen DSO-Typen und Architekturen:

table DSO types

ADSO (Advanced DataStore Object)

Das Advanced DSO ist in der Lage, all diese Objekte zu ersetzen.

 BW4HANA Modeling Objects

Bevor wir ein ADSO anlegen, müssen wir wissen, dass es 3 Haupttabellen umfasst:

  • Inbound Table
    • Tabelle der Aktivierungs-Queue bei klassischen DSOs
    • Nicht komprimierte Faktentabelle eines nicht-SAP-HANA-optimierten InfoCubes
    • Alle Sätze werden mit einem technischen Schlüssel gespeichert.
  • Tabelle der aktiven Daten
    • Enthält ebenso wie beim klassischen DSO die aktuellen Werte nach Aktivierung. Der Schlüssel der Tabelle ist der DSO-Schlüssel (auf Schlüssel werden wir noch näher eingehen).
    • Komprimierte Faktentabelle eines nicht-SAP-HANA-optimierten InfoCubes.
  • Change Log
    • Entspricht dem eines klassischen DSO.
    • Speichert die Unterschiede zwischen dem Inbound Table und der Tabelle der aktiven Daten.
    • Wird für die Delta-Erstellung benötigt.

Wichtige Schritte beim Anlegen eines ADSO

  • Ein ADSO wird in den BWMT in Eclipse wie jedes andere neue Objekt angelegt (in BW 7.5 besteht die Möglichkeit, auch weiterhin die klassischen Objekte im SAP GUI anzulegen, wohingegen in BW4/HANA nur noch die neuen Objekte in den BWMT angelegt werden können).
  • Auf der Registerkarte „General“ kannst du die Aktivierungseinstellungen und weitere Eigenschaften festlegen. Zunächst muss hier eine Beschreibung angegeben werden. Im Anschluss können wir unter „Model Template“ eine Vorlage auswählen. Dabei kann sich ein ADSO wie je eines der 4 Objekte im klassischen BW verhalten.

template

Acquisition-Schicht

In dieser Schicht lassen sich Objekte für die „schreiboptimierten“ Anwendungsfälle klassischer DSOs anlegen. Sie besteht aus 3 Schichten:

  1. Data-Acquisition-Schicht
    • Entspricht einer Persistent Staging Area (PSA) und dient als Eingangsablage im BW für Daten aus den Quellsystemen.
    • Keine Verwendung der aktiven Tabelle, daher ist eine Aktivierung nicht erforderlich.
    • Requests werden in die Inbound Table geladen und daraus extrahiert.
    • Alle Sätze in der Inbound Table enthalten eine Request-TSN, Datenpaket und Datensatznummer.
    • Auf die Inbound Table (ehemals Tabelle der neuen Daten / Aktivierungs-Queue) wird zum Ausführen einer BEx Query und zur Extraktion zugegriffen.
    • Daten werden nicht aggregiert.
  2. Corporate Memory mit Schwerpunkt auf Kompression
    • Requests werden auch weiterhin in die Inbound Table geladen.
    • Auf Detail-Level nicht mehr benötigte alte Requests können in die Tabelle der aktiven Daten komprimiert werden.
    • Um Speicherplatz zu sparen wird beim CM Compression ADSO auf eine Change-Log-Tabelle verzichtet, es gibt nur eine Inbound Table und eine Tabelle der aktiven Daten.
    • Wird ein Laderequests aktiviert, werden die Daten in die aktive Tabelle geladen und aus der Inbound Table gelöscht.
    • Gibt es 2 Sätze mit dem gleichen Schlüssel, überschreibt BW/4HANA alle Merkmale des Satzes mit denen des zuletzt geladenen Satzes.
  3. Corporate Memory mit Schwerpunkt auf Reporting
    • Der Unterschied zwischen dieser Vorlage und der Vorlage für die „Corporate Memory mit Schwerpunkt auf Kompression“ liegt darin, dass die Daten aus der Inbound Tabelle nicht gelöscht werden. Die Daten bleiben also in der Inbound Table, um zu verhindern, dass technische Informationen verloren gehen.
    • Die Vorlage für CM mit Schwerpunkt auf Reporting verfügt jedoch über keinen Change Log.
    • Ein weiterer Unterschied liegt darin, dass die Daten nicht aus der aktiven Tabelle, sondern aus der Inbound Table extrahiert werden.
    • Da die Daten nach der Aktivierung in der Inbound Table verbleiben, sind diese ADSOs sehr gut geeignet, wenn du zwar Daten speichern möchtest, durch den Wegfall des Change Log aber Speicherplatz eingespart werden soll.

Propagation-Schicht

  • Bildet die Grundlage für die weitere Verteilung und Weiterverwendung der Daten.
  • Entspricht einem Standard-DataStore-Objekt (klassisch).
  • Requests werden auch in die Inbound Table geladen.
  • Für das Reporting muss der Benutzer die geladenen Requests aktivieren.
  • Die Daten werden dann in die Tabelle der aktiven Daten übertragen und das Delta wird im Change Log gespeichert.
  • Das Change Log wird auch für den Rollback bereits aktivierter Requests genutzt.

Reporting-Schicht

  • Dient der Ausführung von Queries zur Analyse.
  • Entspricht einem Standard-InfoCube.
  • Die Inbound Table entspricht der F-Tabelle und die Tabelle der aktiven Daten der E-Tabelle.
  • Es gibt keinen Change Log. Ohne die Change-Log-Tabelle kann der Deltaprozess nicht erfolgen.
  • Nach der Aktivierung ist die Inbound Table leer.
  • Das Reporting erfolgt auf einer Union der beiden Tabellen Inbound Table und aktive Tabelle.

Planungs-Schicht

Sie ist in 2 weitere Schichten aufgeteilt:

  1. Planning on Direct Update
    • Die Daten werden automatisch in die aktive Tabelle geladen, eine Aktivierung ist also nicht erforderlich.
    • Es gibt keinen Change Log und keine Inbound Table.
    • Das Befüllen der aktiven Tabelle kann über eine API erfolgen.
    • Bei diesem ADSO-Typ können Daten können auch über den Datentransferprozess (DTP) geladen werden.
    • Es steht nur die Option Überschreiben zur Verfügung. Keine Summation von Kennzahlen wie beim Planning on Cube-like ADSO.
  2. Planning on Cube-like
    • Es gibt eine Inbound Table und eine aktive Tabelle.
    • Alle Merkmalsfelder sind in der aktiven Tabelle als Schlüsselfelder markiert, was eine Voraussetzung für die Planungseignung ist.
    • Es steht nur die Option Summation zur Verfügung.

Der Prozess der für HANA hoch-optimierten SID-Erzeugung

Zum Zwecke der Leistungsoptimierung ist es in BW/4HANA möglich, Kennzeichen sowohl auf InfoProvider-Ebene als auch einzeln für jedes Merkmal des DSOs zu setzen. Die Prüfung der Datenintegrität erfolgt dann nur für das ausgewählte Merkmal.

InfoObjects/Felder

Als neue Funktion ist es jetzt auch möglich, Felder mit einfachen Datentypen anstelle von InfoObjects zu verwenden. Wähle dazu die Registerkarte „Details“ aus und klicke auf „Add Field“. Unter „Identify with:“ kannst du über das Auswahlmenü festlegen, ob du für die Definition ein InfoObject oder ein Feld verwenden möchtest.

infoObject

In BW kann der Benutzer entscheiden, ob die Modellierung mit InfoObjects oder Feldern erfolgen soll. Das Modellieren von InfoObjects bedeutet zwar einen zusätzlichen Aufwand, andererseits bieten InfoObjects aber auch viele Vorteile. Bevor du dich also für eine dieser Modellierungsoptionen entscheidest, solltest du die jeweiligen Vor- und Nachteile genauesten abwägen.

Im Folgenden gehe ich daher ein wenig auf eben diese Vor- und Nachteile beim Modellieren mit Feldern ein:

Die Vorteile von Feldern

  • Wenn Felder in der Query enthalten sind, kann diese schlüsselbasiert in SAP HANA verarbeitet werden.
  • Wenn kleinere Datenvolumen verarbeitet werden, kann durch die Verwendung von Feldern die Flexibilität und Reichweite des Data Warehouse erhöht werden.

Die Nachteile von Feldern

  • Die Services der InfoObjects (so zum Beispiel Attribute und Hierarchien) stehen für Felder nicht zur Verfügung.
  • Die Gültigkeitsmerkmale bei DataStore-Objekten (advanced) mit Bestandskennzahlen müssen InfoObjects sein.
  • Die InfoObject-Attribute müssen InfoObjects sein.
  • Eine feldbasierte Kennzahl kann keine Ausnahmeaggregation haben.
  • Planungs-Queries auf DataStore-Objekten (advanced) werden mit Feldern nur lesend unterstützt.
  • Wenn Felder in der Query verwendet werden, können die InfoProvider nur sequentiell gelesen werden.
  • In der Query auf einem CompositeProvider werden nicht alle Datentypen für Felder unterstützt (z. B. dürfen Felder nicht länger als 20 Zeichen sein).

Definition von Schlüsseln für ein ADSO

  • In dieser Registerkarte wählen wir auch aus, welche Felder für die Schlüssel unseres ADSO verwendet werden. Klicke zur Definition eines Schlüssels auf „Manage Keys“.

fields adso

Schlüsselfelder

Es gibt 2 Schlüsseltypen: Primärschlüssel und Fremdschlüssel.

Die Vorteile von Schlüsselfeldern:

  • Eindeutige Identifikation eines Satzes in einer Tabelle.
  • Schlüsselfelder können nicht NULL sein.
  • Dient der Verbindung zweier Tabellen.
  • Hauptzweck eines Fremdschlüssels ist die Datenvalidierung.
  • Stammdatennachlesen: Durch die Verwendung des Wertes des Eingabefelds als Schlüssel kannst du das zu einem angegebenen Merkmal zugehörige Attribut des Merkmals auslesen.
  • Auslesen aus dem Advanced DataStore: Durch die Verwendung des/der Werte(s) des Eingabefelds als (geklammerter) Schlüssel, kannst du die Datenfelder eines angegebenen Advanced DataStore-Objekts (ADSO) auslesen.
  • Du möchtest auf jeden Fall vermeiden, dass BW/4HANA für 2 Sätze mit dem gleichen Schlüssel alle Merkmale des Satzes mit denen des zuletzt geladenen Satzes überschreibt.

Die Nachteile beim Verzicht auf Schlüsselfelder:

  • Sätze werden nicht eindeutig identifiziert => so besteht die Möglichkeit doppelter Sätze.
  • Die Performance wird beeinträchtigt.

Die Vorteile des Einsatzes von ADSOs anstelle von klassischen DSOs:

  • Vereinfachung von Objekttypen
    • Kann sich wie 4 Objekte im klassischen BW verhalten.
  • Flexibilität bei der Datenmodellierung
    • Modellierung deines ADSOs über die Einstellungen der Reporting-Schicht.
  • Performance beim Datenladen und der Aktivierung ist HANA-optimiert, da es sich bei ADSOs um native HANA-Objekte handelt.

Quellenangabe der Bilder: SAP SE, Inspiricon AG

Autor dieses Beitrags
Roxana Hategan Associate
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de
ABAP-Eclipse

So profitierst du von den ABAP Development Tools in Eclipse

Wann hat alles angefangen?

ABAP-Anfang-1992

Über die Jahre wurden die Lösungen immer besser, so auch die ABAP Development Tools.

Unabhängig von der klassischen SAP-GUI-basierten Entwicklungsumgebung besteht auch die Möglichkeit zur Entwicklung von ABAP-Anwendungen in Eclipse.

ABAP-Anfang-2009

Durch die Bereitstellung der ABAP Development Tools innerhalb einer integrierten Entwicklungsumgebung wird die Arbeit von Entwicklern erheblich erleichtert.

ABAP-Eclipse-2011

In Eclipse lassen sich gleich mehrere Tools in einem Programm nutzen.

Add-ons wie SAP HANA Database Studio, ABAP Development, SAPUI5, BW Modeling Tools und viele mehr wurden zur Freude jedes SAP-Beraters eingebunden.

In diesem Artikel beschäftigen wir uns daher mit der Installation und richtigen Nutzung der ABAP Development Tools (ADT) in Eclipse.

Bevor wir aber mit der Einführung loslegen, möchte ich euch schnell noch ein paar Hintergrundinformationen zu unseren Umgebungen geben.

Voraussetzungen:

  • Eclipse IDE – ihr benötigt eine geeignete Installation, die die gewünschten Tools unterstützt.

Bitte beachtet, dass die Mars-Version nicht mehr unterstützt wird. Wir empfehlen die Nutzung von Oxygen oder Neon.

  • Ab JRE (Java Runtime Environment) 1.6
  • Ab SAP GUI 7.2
  • Betriebssystem: Windows 7, Mac, Linux

Nützliche Links:

Für die im Folgenden beschriebenen Verfahren kamen bei uns Eclipse Neon.3 Release (4.6.3) sowie SAP GUI 7.4 auf Windows 7 Professional, 64-Bit zum Einsatz.

Einrichten der ABAP Development Tools (ADT)

Für die nächsten Schritte gehen wir davon aus, dass SAP GUI und Eclipse bei dir bereits installiert sind. Tauchen wir also ein in die Welt von ABAP.

Rufe zur Installation des für die ABAP-Entwicklung benötigten Plug-ins im Eclipse-Startbildschirm das Hilfe-Menü auf und klicke auf „Install New Software“.

Install-new-software-eclipse

Nun müssen wir angeben, wo die ABAP Development Tools (ADT) zu finden sind. Klicke dazu auf „Add“ und gib den Pfad der gewünschten Pakete ein.

select-site-location-eclipse

browsed-location-eclipse

Da Eclipse eine Plattform für die Integration einer Vielzahl von Add-ons bietet, nutzen wir das zu unserem Vorteil und laden gleich alle benötigten Komponenten herunter, um in den Genuss der ABAP-on-Hana-Entwicklung zu kommen.

filter-text-eclipse

Du musst dazu nur der Lizenzvereinbarung zustimmen. Mit einem Klick auf „Finish“ wird die Installation gestartet. Wenn bei dir bereits einige dieser Komponenten installiert sind, wird stattdessen ein Update durchgeführt.

installing-software-eclipse

Nach dem Download und der Installation der Pakete muss Eclipse zunächst neu gestartet werden.

restart-eclipse

Nach Abschluss des Neustarts sollte nun das „Welcome“-Fenster in Eclipse angezeigt werden.

Keine Sorge, falls sich hier einige Inhalte von deiner Installation unterscheiden sollten. Zwischen den einzelnen Produkten sind gewisse Unterschiede ganz normal und hier wird nur eine Übersicht des Produktes und seiner Funktionen angezeigt.

overview-eclipse

Jetzt, wo die Installation abgeschlossen ist, müssen wir im nächsten Schritt nur noch zur ABAP-Perspektive wechseln. Klicke dazu im „Window“-Menü auf „Perspective“ → „Open Perspective“ → „Other“.

open-abap-option

Wähle die ABAP-Option aus und schließe das „Welcome“-Fenster.

select-abap-option-eclipse

Wie sieht die ABAP-Perspektive in Eclipse aus?

Die ABAP-Tools sind auf dem Bildschirm übersichtlich angeordnet, um dir die Entwicklungsarbeit zu erleichtern. Du kann die Ansichten aber auch jederzeit ganz individuell an deine Anforderungen anpassen.

views-adaptation-abap

Bevor wir jetzt mit der eigentlichen Programmierung loslegen, müssen wir sicherstellen, dass alle Services im ABAP-Backend-System aktiviert sind.

Melde dich dazu am SAP GUI an und rufe die Transaktion SICF auf. Gib im Feld „Virtual Host“ „DEFAULT_HOST“ ein und klicke auf „Execute“.

activated-services-abap

Dabei müssen die folgenden zwei Punkte überprüft werden:

1. Services:

Erweitere dazu den Knoten „default_host“ und klicke danach auf „sap“ → „bc“ → „abap“. Öffne nun für „docu“ und „toolsdocu“ jeweils per Rechtsklick das Kontextmenü und klicke auf „Activate Service“.

check-services-abap2. Links:

Als nächstes müssen wir noch sicherstellen, dass die Pfade für einige bestimmte ABAP-Links für die Entwicklung hinterlegt sind.

Erweitere dazu den Knoten „default_host“ und klicke danach auf „sap“ → „public“ →  „abap“. Auch hier öffnest du für die Einträge „docu“ und „toolsdocu“ jeweils per Rechtsklick das Kontextmenü und klickst auf „Activate Link“.

check-links-abap

Jetzt kann die Verbindung mit dem SAP-System hergestellt werden.

Und schon können wir mit der ABAP-Entwicklung in Eclipse loslegen

Für eure ersten Schritte bei der Entwicklung von ABAP-Programmen in Eclipse möchte ich euch nahelegen, erst einmal mit einem einfachen Programm einzusteigen. Zu diesem Zwecke erstellen wir im Folgenden ein „Hello World“-Projekt.

Klicke zum Anlegen eines neuen Projekts auf „File“ → „New“ →  „ABAP Project“.

new-project-abap

Das ABAP-Backend muss für Entwicklungszwecke konfiguriert werden. An dieser Stelle müssen wir die Details für die Systemverbindung definieren.

Hier gibt es für uns zwei Optionen:

1. Erstellen einer neuen Verbindung

Ein Dialogfenster wird angezeigt. Klicke hier auf „new system connection“.

create-new-connection-abap

Gib im Anschluss deine System-ID, den Namen des Anwendungsservers und die Instanznummer ein.

server-name-abap

2. Auswahl einer bestehenden Systemverbindung

Wenn du in der Vergangenheit bereits eine Systemverbindung angelegt hast, musst du diese nur aus der Liste der verfügbaren Verbindungen auswählen.

existing-system-connection-eclipse

Gib die Anmeldedaten ein, die auch für das SAP GUI verwendest, und klicke danach auf „Next“, um dich anzumelden und die Kompatibilitätsinformationen aus dem Backend-System abzurufen.

retrieve-compatibility-eclipse

Sobald die Verbindung erfolgreich hergestellt wurde, gib einen sprechenden Namen für dein Projekt ein und klicke auf „Finish“.

project-naming-eclipse

Dein neu angelegtes Projekt sollte jetzt in der „Project Explorer“-Ansicht angezeigt werden.

appearance-new-project-eclipse

Um die Programmierungsbarriere zu durchbrechen, brauchen wir jetzt ein Programm. Öffne mit einem Rechtsklick auf ein Paket unter dem Knoten mit dem Projektnamen das Kontextmenü und klicke danach auf „New“ → „ABAP Program“.

break-coding-abap

Wähle einen technischen Namen für dein Programm aus, gib eine entsprechende Beschreibung ein und klicke auf „Next“, um zum nächsten Schritt zu gelangen.

technical-name-abap-project

Hier musst du einen Transport auswählen, über den das Programm gespeichert werden soll, andernfalls muss ein neuer Auftrag angelegt werden.

In unserem Fall muss für das $TMP-Paket kein Transportauftrag ausgewählt werden.

$TMP-package

Der ABAP Editor wird angezeigt. Gib den ABAP-Code aus dem Screenshot unten oder deinen eigenen anzuzeigenden Text ein.

type-message-display

Jetzt musst du dein Programm nur noch speichern und aktivieren. Führe es jetzt als eine ABAP-Anwendung aus.

run-abap-application

Das war’s schon! Wir haben erfolgreich unser ABAP-“Hello World“-Projekt angelegt. War ganz einfach, oder?

Fazit

Wir können uns glücklich schätzen, dass IT-Experten Hand in Hand arbeiten und eine kontinuierliche Optimierung des ABAP-Stacks für HANA anstreben und gemeinsam ABAP-Code in einer zeitgemäßen integrierten Entwicklungsumgebung entwickeln und sich untereinander austauschen. Dabei wird stets berücksichtigt, dass mit SAP HANA ein neues Technologiekapitel aufgeschlagen wurde.

Schon bald werde ich für euch an dieser Stelle einige der speziellen Funktionen in Eclipse und NetWeaver im Vergleich zur klassischen SAP-GUI-basierten Programmierung vorstellen und deren Aufbau erklären.

Also bleibt dran für weitere Einblicke und neueste Entwicklungen aus der Welt der ABAP-Programmierung. Ich freue mich schon auf eure Fragen und Kommentare.

Quellenangabe der Bilder: SAP SE, Inspiricon AG

Autor dieses Beitrags
Andra Atanasoaie Associate
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de
inspiricon unterschiede sap bw und bw4hana

Die Unterschiede in der Datenmodellierung mit SAP BW und SAP BW/4HANA

Wir studieren die Vergangenheit, um die Gegenwart zu verstehen.“  – William Lund

Aktuell häufen sich die Fragen unserer Kunden zum Thema BW 7.5 und BW4/HANA. Grund genug für uns hier eine Serie von Blogartikeln zu starten, um diese Themen zu beleuchten. Wir beginnen damit, die Entwicklung des SAP BW zu beleuchten und schauen uns anschließend an, welche Themen-Bereiche wir in den nächsten Wochen näher untersuchen.

In diesem Artikel steht SAP BW für die Vergangenheit und SAP BW/4HANA für die Zukunft der Datenmodellierung.

Die meisten Unternehmen und auch die Anwender sind sich immer noch nicht im Klaren darüber, wo genau die Unterschiede zwischen SAP BW (der alte Modellierungsansatz) und SAP BW/4HANA liegen. Mit diesem Artikel möchten wir die Dinge ins rechte Licht rücken und klare Antworten liefern.

Eine kurze Geschichte von SAP BW

Kurze Geschichte des SAP BW

 

Wo liegen die Unterschiede zwischen SAP BW und SAP BW/4HANA?

Eines der Hauptziele der SAP liegt in der Vereinfachung des Systems. Dementsprechend werden Objekte und Prozesse zusammengefasst und die Anzahl der Schritte reduziert.

a) Modellierungsobjekte

Ein schneller Vergleich der Modellierungsobjekte in der klassischen SAP-BW-Anwendung und der Objekte in SAP BW/4HANA machen vielleicht am ehesten deutlich, in welchem Ausmaß die Modellierung vereinfacht wurde.

sap_classic-sap-bw_sap-bw4hana_objects

Wir werden euch in den folgenden Artikeln die neuen Provider vorstellen, angefangen mit den ADSOs.

b) Datenflüsse

Der zentrale Einstiegspunt für die Datenmodellierung in SAP BW/4HANA ist der Datenfluss. Hier wird definiert, welche Objekte und Prozesse zur Übertragung der Daten von der Quelle an SAP BW/4HANA sowie zur Bereinigung, Konsolidierung und Integration der Daten benötigt werden, damit diese für Analyse- und Reporting-Zwecke zur Verfügung stehen. SAP BW∕4HANA setzt auf eine neue integrierte Schichtenarchitektur (Layered Scalable Architecture – LSA++).

Das klassische SAP BW verwendet LSA, die Vorgängerverion von LSA++. Diese Schicht ist restriktiver und bietet weniger Flexibilität im Umgang mit den Daten.

vergleich sap bw und bw4hana

 

Durch den Einsatz von LSA++ wird vor allem die Anzahl der Persistenzschichten reduziert. Das hat zwei Effekte:

  1. Zum einen wird dadurch die Performance der Datenverarbeitung erhöht: man muss weniger speichern und aktivieren und spart so Zeit!
  2. Und zum anderen wird dadurch das Datenvolumen reduziert. Wurde früher durch den gewollten Einsatz von Redundanzen im BW-System die Lese-Performance optimiert und Speicherplatz nicht als kritischer Faktor gesehen, so ändert sich das durch den Einsatz von HANA grundlegend. Hauptspeicher ist teurer, sowohl in der Hardware verglichen mit Festplattenspeicher, als auch in der Lizenzierung, da HANA nach Hauptspeicher lizenziert wird. Außerdem wird das System durch weniger „physische“ Schichten auch flexibler in der Ausgestaltung.

c) Quellsysteme

Auch im Bereich der Quellsysteme treibt die SAP den Ansatz der Vereinfachung voran.

SAP BW∕4HANA bietet flexible Möglichkeiten zur Integration von Daten aus verschiedensten Quellen. Die Daten können aus dem Quellsystemen extrahiert und umgewandelt und in das SAP-BW-System geladen werden. Es ist aber auch möglich, zu Analyse- und Reporting-Zwecken direkt auf die Daten im Quellsystem zuzugreifen, ohne diese im Enterprise Data Warehouse physisch ablegen zu müssen.

sap-bw4hana-simplified-source-systems

  1. SAP-HANA-Quellsystem
    • diese Konnektivität lässt sich für alle anderen Datenbanken nutzen (z. B. Teradata, Sybase IQ, Sybase ASE).
  2. SAP Operational Data Provisioning (ODP)
    • dient als Datendrehscheibe für alle Daten, die über externe Quellen in das BW-System einfließen
    • wird ausschließlich mit SAP Landscape Transformation (SLT), SAP ERP Extractor (SAP Business Suite), HANA Views und SAP BW eingesetzt

Das neue ODP-Konzept mit seiner wesentlich schnelleren Datenextraktion macht die PSA überflüssig.

Mit diesen beiden Verbindungstypen können Daten durch Real-Time-Replikation oder direkten Zugriff im Batch-Modus verfügbar gemacht werden.

Die HANA-Views werden nach Aktivierung der Objekte (z. B. ADSO, Composite Provider) automatisch in der SAP-HANA-Datenbank generiert.

d)  Leistung

Durch den Einsatz von HANA kann die Geschwindigkeit der Datenverarbeitung, wie unter LSA++ schon beschrieben, gesteigert werden. Ging es bei den Datenflüssen noch um eine schlankere Architektur, gibt es natürlich auch handfeste technische Performance-Gewinne:

Neben dem klassischen SAP BW bietet SAP BW/4HANA zudem In-Memory-Data-Warehousing:

  • Keine Aggregate oder Rollup-Prozesse
  • Keine performance-spezifischen Objekte
  • Weniger Indizes
  • Schnelleres Laden und Verarbeiten von Daten
  • Ebenfalls in diese Richtung geht die Möglichkeit Transformationen direkt auf die Datenbank zu verlagern, die SAP spricht hierbei von Push-Down. Diese Leistungssteigerung in SAP BW/4HANA wird durch einen Algorithmus-Pushdown sichergestellt:

sap-bw4hana_algorithm-push-down

Auch auf dieses Thema werden wir in einem der folgenden Artikel im Detail eingehen.

Quellenangabe der Bilder: SAP SE, Inspiricon AG

Autor dieses Beitrags
Roxana Hategan Associate
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de

Wie Ihr Predictive Analytics als native Hana-Funktion nutzen könnt

In diesem Artikel befassen wir uns eingehend mit den nativen Predictive-Analytics-Möglichkeiten in HANA und erklären dabei Schritt für Schritt, wie ihr die Predictive Analytics Library (PAL), ein Bestandteil der Application Function Library (AFL), einsetzen könnt, um ein mehrfaches lineares Regressionsmodell zu erstellen und anhand dieses Models Prognosen abzuleiten.

Du möchtest mehr zum Thema Predictive Analytics erfahren? Dann kann ich dir zwei unserer vorausgegangenen Artikel empfehlen:

  1. Die Welt der Predictive Analytics
  2. Eine Anleitung zum eigenen Vorhersagemodell

PAL – eine Einführung

Wir haben in der Vergangenheit bereits über den Einsatz von SAP Business Objects Predictive Analytics zur prädiktiven Analyse gesprochen. Eine weitere Möglichkeit zum Erstellen und Trainieren von Modellen und zur Ableitung von Prognosen von diesen Modellen eröffnet sich zudem durch die Nutzung der Predictive Analytics Library. Diese Methode ist weitaus komplexer und erfordert vom Anwender zudem technisches Fachwissen.

Zwar ist die von SAP angebotene Lösung benutzerfreundlicher, doch eröffnet die Implementierung von HANA-PAL-Lösungen durch die Erstellung eines nativen HANA-Prozesses weitaus größere Möglichkeiten zur Aufnahme der Daten in andere Anwendungen.

Der Einsatz des Predictive-Analytics-Tools ist vor allem aufgrund der Lizenzgebühren mit hohen Kosten verbunden – dagegen erfordert HANA PAL lediglich die entsprechende Expertise im Umgang mit den PAL-Funktionen.

WIE FUNKTIONIERT DIE PAL?

HANA bietet ein breites Spektrum an Funktionen, die sich für unterschiedliche Szenarien implementieren lassen (Data Clustering, Klassifizierung, Regression, Zeitreihenprognosen usw.).

In diesem Artikel konzentrieren wir uns auf eine PAL-Funktion: die multiple lineare Regression.

Dabei verwenden wir mit dem Rossmann-Datensatz erneut die Daten, die wir bereits im zweiten Artikel unserer Predictive-Analytics-Reihe herangezogen haben (Eine Anleitung zum eigenen Vorhersagemodell).

Der Datensatz wird von der Rossmann-Drogeriekette auf der Kaggle-Website bereitgestellt. Hier können Einzelpersonen und Unternehmen echte Datensätze hochladen, um Wettbewerbe zu veranstalten oder Datenforscher bei der Weiterentwicklung ihrer Fähigkeiten zu unterstützen.

Für eine detaillierte Ansicht der Codes müsst ihr eine multilineare Regression erstellen. Wir stellen euch zwei Dokumente zur Verfügung, die euch dabei unterstützen:

VORAUSSETZUNGEN UND DATENVERARBEITUNG

Für die nächsten Schritte gehen wir davon aus, dass du SAP HANA STUDIO bereits auf deinem Computer installiert hast. Darüber hinaus benötigst du eine SAP-HANA-Serververbindung, um auf die HANA-Datenbank und -Engine zugreifen zu können. Auch solltest du bereits die aktuellste Version der HANA-Datenbank (2.0) verwenden. Beide Algorithmen in unserem Beispiel werden sowohl von HANA 1.0 SPS 09 als auch von HANA 2.0 SPS 01 unterstützt.

Für unser Szenario haben wir die Daten aus der train.csv und store.csv als Berechnungssicht in unsere HANA-Datenbank importiert.

In der Datei train.csv finden wir neben den Daten zu den Verkaufszahlen und den Verkaufszeitpunkten auch Informationen zu Angebotsaktionen, Kundenzahlen, Wochentagen usw.

Die Datei store.csv enthält Stammdaten zu den einzelnen Filialen, so zum Beispiel die Entfernung zum nächsten Mitbewerber, Art der Filiale und Sortiment der Filiale.

Abbildung 1.1 zeigt die beiden Datentabellen:

Abb. 1.1

In der von uns angelegten HANA-Berechnungssicht bringen wir beide Dateien zusammen, um einen vollständigen Datensatz zu erhalten und sicherzustellen, dass unsere Algorithmen ein genaues Modell für eine präzise Prognose ableiten können (wie in Abb. 1.2 dargestellt).

Abb. 1.2

IMPLEMENTIERUNG DES PAL-ALGORITHMUS

Für unser Szenario implementieren wir die Prognose mithilfe der multiplen linearen Regression.

1. Worum handelt es sich bei der multiplen linearen Regression (MLR)?

Lineare Regression ist ein Verfahren zur Modellierung des linearen Zusammenhangs zwischen einer Variable , üblicherweise als abhängige Variable bezeichnet, und einer oder mehreren Variablen, üblicherweise als unabhängige Variablen bezeichnet, wiederum bekannt als Prädiktionsvektor . In der linearen Regression werden Daten anhand von linearen Funktionen modelliert und unbekannte Modellparameter werden anhand dieser Daten geschätzt. Diese Modelle werden als lineare Modelle bezeichnet.

2. IN 7 SCHRITTEN ZUM EIGENEN MLR-MODELL

Schritt 1: Parameter definieren

Zur Erstellung eines multiplen linearen Modells muss der Algorithmus über zwei Eingabetabellen sowie über vier Ausgabetabellen verfügen und wir müssen die Definition dieser Tabellen anlegen.

Eingabetabellen:

  1. Data – hier enthalten sind die Spalten, die für das Trainieren des Modells verwendet werden. Die Daten müssen eine „Primary Key“-Spalte („ID“) umfassen, die als erste Spalte definiert werden muss. Die zweite Spalte muss die Ziel-/abhängige Spalte sein (die „Y-Variable, die wir vorhersagen). Die übrigen Spalten werden mit den unabhängigen Variablen befüllt (X1, X2, …), die den Algorithmus bei der Erstellung eines exakten Modells unterstützen.
  2. Significance – hier enthalten sind die Koeffizienten des Modells und ihre Werte (je höher der Wert, desto größer sind die Auswirkungen auf das Modell)
  3. Fitted – Die angepassten Werte („Sales” in unserem Fall) des Ziels.
  4. Results – die Ergebnisse des Models (Modellgenauigkeit und Vertrauen).
  5. Exported model – das Modell, das für zukünftige Prognosen verwendet wird.
  6. Control – der Parameter, der festlegt, wie der Algorithmus arbeiten soll (hier können wir die so genannten „Elastic Net Penalties“ aktivieren und entsprechend anpassen, um die Thread-Nummern, das zu lösende Least-Square-Problem usw. festzulegen.)

Schritt 2: Anlegen der Parametertabelle

Nachdem wir die Definitionen für das Modell angelegt haben, müssen wir nun die Tabelle anlegen, die alle Parameter enthält. Wir legen darüber hinaus fest, ob es sich bei den Tabellen um Eingabe- oder Ausgabeparameter handelt (bei den Tabellen Data und Control handelt es sich um Eingabeparameter und bei allen anderen um Ausgabeparameter).

Schritt 3: Anlegen des Wrappers

Der Wrapper erstellt ein Verfahren, das die angegebene Funktion und die zuvor angelegte Parametertabelle verwendet. Dieses Verfahren werden wir in der Folge zur Erstellung des Regressionsmodells anhand unserer Trainingsdaten verwenden.

Schritt 4: Befüllen der „Data“-Tabelle

Zunächst legen wir eine neue Tabelle an, die die gleichen Spalten und Spaltentypen umfasst wie die für die Parametertabelle erstellte Definition.

Schritt 5: Befüllen der „Control“-Tabelle

In der Control-Tabelle legt der Anwender fest, wie der Algorithmus arbeitet. Dies funktioniert ganz ähnlich wie das Erstellen von Einstellungen für dein Programm. Die folgenden „Control“-Einstellungen können festgelegt werden:

a. THREAD_NUMBER -> gibt die Nummer der Threads an (nur wenn Algorithmus 1,5 oder 6 verwendet wird)

b. ALG -> gibt die Algorithmen zur Lösung des Least-Square-Problems an:

  • QR-Zerlegung (numerisch stabil, aber schlägt fehl, wenn A rangdefizient ist)
  • SVD (numerisch stabil und Rangdefizienz stellt kein Problem dar, aber sehr rechenintensiv)
  • Zyklisches Koordinatenabstiegsverfahren zur Lösung durch Elastic Net regularisierter multipler linearer Regression
  • Cholesky-Zerlegung (schnell aber numerisch instabil)
  • Alternating Direction Method of Multipliers zur Lösung durch Elastic Net regularisierter multipler linearer Regression. Dieses Verfahren ist in vielen Fällen schneller als das zyklische Koordinatenabstiegsverfahren und wird empfohlen.

c. VARIABLE_SELECTION -> „0“ um alle Variablen zu berücksichtigen, „1“ Vorwärtsselektion, „2“ Rückwärtsselektion

d. ALPHA_TO_ENTER -> p-Wert für Vorwärtsselektion

e. ALPHA_TO_REMOVE -> p-Wert für Rückwärtsselektion

f. ENET_LAMBDA -> Penalisierte Gewichtung

g. ENET_ALPHA -> Elastic-Net-Mischungsparameter

In unserem Beispiel verwenden wir ALG 6 mit aktivierter Elastic-Net-Penalisierung (eine Methode zur Optimierung des Regressionsmodells) und die Thread-Nummer beträgt 5.

Schritt 6: Ausgabetabellen aufbauen

Jetzt müssen wir nur noch die Ausgabetabellen anhand dieser Definitionen erstellen.

Schritt 7: Das Modell erstellen

Abschließend müssen wir nur noch das Verfahren aufrufen, das wir im Wrapper angelegt haben, die Ergebnisse anzeigen und eine Tabelle anlegen, in der wir die angepassten Werte mit den tatsächlichen Werten vergleichen können.

Ergebnisse

Das erste angezeigte Ergebnis ist die Koeffiziententabelle, aus der wir die Auswirkungen jedes Koeffizienten auf das Model entnehmen können, wobei 0 bedeutet, dass es nahezu keine Auswirkungen auf das erstellte Modell gibt.

Abb. 1.3

Die nächste Ausgabetabelle zeigt uns die angepassten Werte der Trainingsmodelldaten.

Abb. 1.4

Mit der letzten Tabelle erhalten wir die Statistiken des erstellten Modells.

  • R2 – ist die Aussagekraft des Modells, in unserem Fall liegt die Präzision des Modells bei 89,996 %.
  • F – Der F-Wert ist das Verhältnis der mittleren Regressions-Quadratsumme geteilt durch die mittlere Fehlerquadratsumme.
  • AIC – Das Akaike Information Criterion (AIC) ermöglicht Aussagen über die relative Güte statistischer Modelle für einen vorgebenen Datensatz. Anhand einer Sammlung von Modellen für die Daten können so Aussagen über die Güte jedes Modells relativ zu den anderen Modellen getroffen werden. Das AIC stellt also ein Mittel zur Modellauswahl bereit.
  • BIC – Das Bayesian Information Criterion (BIC) oder Schwarz Information Criterion (auch SBC, SBIC) genannt dient als Kriterium für die Modellauswahl aus einer begrenzten Anzahl an Modellen, wobei das Modell mit dem kleinsten BIC bevorzugt wird. Es basiert zum Teil auf der Wahrscheinlichkeitsfunktion und ist eng verwandt mit dem AIC.
  • MQF – Der mittlere quadratische Fehler (MQF) oder mittlere quadratische Abweichung (MQA) eines Schätzers (eines Verfahrens zur Schätzung einer unbeobachteten Menge) misst den Mittelwert der Quadrate der Fehler oder Abweichungen — also den Unterschied zwischen dem Schätzer und dem was geschätzt wird.
  • RMSE – Wurzel aus dem mittleren quadratischen Fehler (Root Mean Square Error)
  • MAE – Mittlerer absoluter Fehler (Mean Absolute Error)
  • MAPE – Der mittlere absolute prozentuale Fehler (Mean Absolute Percentage Error), auch mittlere absolute prozentuale Abweichung (Mean Absolute Percentage Deviation / MAPD) genannt, dient der Messung der Vorhersagegenauigkeit eines Prognoseverfahrens in der Statistik, so zum Beispiel bei der Trendschätzung.

Abb. 1.5

Der Vergleich zwischen den angepassten und den tatsächlichen Werten kann durch ein Diagramm benutzerfreundlicher gestaltet werden. In diesem kann der tatsächliche Wert mit dem vorhergesagten/angepassten Wert wie unten dargestellt über einen festgelegten Zeitraum verglichen werden.

Abb. 1.6

Abb. 1.7

3. ANLEITUNG ZUR ERSTELLUNG VON PROGNOSEN ANHAND DER ERGEBNISSE DES MLR-MODELLS

(1) Parameterdefinition

Ähnlich wie bei der Erstellung unseres Modells müssen wir auch hier eine Parameterdefinition anlegen, jedoch mit dem Unterschied, dass die Datentabelle „type“ die Zielvariable nicht enthalten darf.

(2) Wrapper Prognoseverfahren

Unser erstelltes Verfahren wird mit den Spezifikationen und Strukturen der Parametertabelle gespeist und verwendet die ‘FORECASTWITHLR’-Funktion.

(3) Erstellen der Eingabe- und Ausgabetabelle und Datengenerierung sowie Regressionsspezifikation

Ähnlich wie bei der Modellerstellung legen wir fest, wie die lineare Regressionsprognosefunktion mit den Eingabedaten umgeht. Die Eingabedaten dürfen die Zielspalte nicht enthalten.

(4) Koeffiziententabelle

Die Daten der Koeffiziententabelle müssen aus der Koeffiziententabelle aus den Modellergebnissen übertragen werden.

(5) Aufruf des Prognoseverfahrens

Jetzt müssen wir nur noch das zuvor angelegte Verfahren aufrufen.

(6) Ergebnisanzeige

Zeige die vom Prognosealgorithmus erstellen Vorhersagen an.

 

Quellen:

https://help.sap.com/doc/86fb8d26952748debc8d08db756e6c1f/2.0.00/en-us/sap_hana_predictive_analysis_library_pal_en.pdf

https://help.sap.com/viewer/2cfbc5cf2bc14f028cfbe2a2bba60a50/2.0.00/en-US/eedc9094daf04419bc25f6ed097ac03b.html

Autor dieses Beitrags
Gellert Peter-Siskovits Associate
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de
Wer braucht schon SAP Vora?!

Wer braucht schon SAP Vora?!

Für was benötige ich überhaupt SAP Vora?

SAP Vora bietet die Möglichkeit, strukturierte und semi-strukturierte Daten innerhalb eines existierenden Hadoop-Clusters über eine moderne Oberfläche auszuwerten und diese untereinander sowie mit Daten aus SAP HANA zu kombinieren.

Es handelt sich hierbei technisch gesehen um eine Erweiterung des Apache Spark Execution Framework, das sich schon seit Längerem in der Hadoop-Welt etabliert hat.

SAP Vora realisiert somit eine verteilte In-Memory Abfrage-Engine für strukturierte und semi-strukturierte Daten in einem Hadoop-Cluster.

Wie kann ich SAP Vora nutzen?

Es gibt mehrere Optionen, wie ihr SAP Vora einsetzen könnt; natürlich empfiehlt SAP bevorzugt die Nutzung in der Cloud – entsprechend der eigenen Cloud-Strategie:

On-Premise:

Cloud-basiert:

  • Nutzung der für SAP Partner kostenfreien Developer Edition über Amazon Web Services (AWS) oder SAP Cloud Appliance Library (SAP CAL)
  • Nutzung der kostenpflichtigen Production Edition über AWS
  • Als Service über SAP Big Data Services
  • Über das Bring Your Own License (BYOL) -Modell (SAP Cloud Platform, AWS)

Die SAP Vora Developer Edition über AWS verfügt über die volle Funktionalität und mit ein paar wenigen Klicks wird die Umgebung entsprechend den vorher für die eigenen Bedürfnisse ermittelten Parametern konfiguriert.

Der zugrundeliegende vorhandene Hadoop-Cluster ist eine Hortonworks-Distribution (HDP) mit den entsprechenden Tools/Software wie Spark, Ambari, Zeppelin, usw. und verfügt über maximal 4 Knoten.

Die von SAP über die SAP Cloud Appliance Library (CAL) angebotene Variante kommt in Form einer vorkonfigurierten Appliance daher mit sehr ähnlicher Funktionalität wie die bei der AWS. Sie macht vor allem dann Sinn, wenn man bereits SAP CAL nutzt.

Die produktive Edition unterscheidet sich nur in der nach oben möglichen Skalierbarkeit des Clusters und natürlich durch die Kosten.

Wie funktioniert SAP Vora?

Nach der Entscheidung für ein Deployment-Modell (On-Premise oder Cloud) geht es – je nach Wahl – an die Installation und Konfiguration.

Die Installation erfolgt in drei Schritten:

  1. Festlegung der benötigten Anzahl Knoten für Vora im Hadoop-Cluster in Abhängigkeit von
    • Anforderungen an die Verfügbarkeit
    • Anforderungen an das Sizing (CPU, Disk vs. RAM, Control Nodes vs. Compute Nodes, unterschiedliches Sizing für jede spezifische Spark-Engine, usw.)
    • Erwartetes Datenwachstum
  2. Deployment des SAP Vora Manager Services auf den benötigten Cluster-Knoten
  3. Konfigurieren und Starten der SAP Vora Services auf den Cluster-Knoten mit Hilfe des SAP Vora Manager User Interfaces

Nach erfolgreicher Installation und Konfiguration in einem Hadoop-Cluster (Distributionen HDP, Cloudera und MapR werden unterstützt) könnt ihr SAP Vora nutzen. Neben dem bereits oben erwähnten SAP Vora Manager für eher administrative Aufgaben, stehen die sogenannten SAP Vora Tools als die zentrale GUI für den Endanwender zur Verfügung.

Folgende Tools werden in der GUI angeboten:

  • Data Browser: Inhalte von Tabellen und Views anschauen
  • SQL Editor: SQL-Statements erstellen und ausführen
  • Modeler: Tabellen und Views erstellen und ändern
  • User Management: Anwender-Konten und Zugriffe auf die SAP Vora Tools managen

Mit Hilfe der SAP Vora Tools kann der Endanwender die im Hadoop-Cluster befindlichen Daten, die sich in Struktur und Datentyp unterscheiden, auswerten. Nachfolgend sind die Auswertungsmöglichkeiten detaillierter beschrieben.

Was kann ich mit SAP Vora auswerten?

Mit Vora habt ihr die Möglichkeit JSON-Dokumente auszuwerten, Zeitreihen- und Graphen-Analysen durchzuführen sowie via SQL auch klassisch relational strukturierte Daten zu analysieren.

Dabei nutzt Vora für jede Art der unterschiedlichen Analysen eine spezifische Spark-Engine mit entsprechender Optimierung in der Verarbeitung.

Der „Doc Store“ – NoSQL-Analysen von semi-strukturierten JSON-Dokumenten

Mit der Version 1.3 hat SAP den sogenannten „Doc Store“ eingeführt, mit dem veränderte Dokumente als schemalose Tabellen gespeichert werden können und somit eine horizontale Skalierung (scale-out) und eine flexible Handhabung bei den Dokument-Feldern (Löschen, Hinzufügen) ermöglicht wird.

Nachdem ihr in Vora einen Document Store (=Collection) auf Basis von im Cluster existierenden JSON-Dokumenten erstellt habt, wird darauf basierend ein View erstellt, den man auch mit den bekannten JSON-Expressions erweitern kann. Dieser wird dann im Vora-eigenen Doc Store gespeichert und kann im Tabellen- als auch JSON-Format bearbeitet werden.

Zeitreihenanalyse – Ausnutzung effizienter Kompression und Daten-Verteilung

Die Spark-Engine, die für die Zeitreihenanalyse zur Verfügung steht, kann ihre Stärken vor allem dann ausspielen, wenn die zugrundeliegenden Daten über möglichst viele Cluster-Knoten verteilt sind und effizient komprimiert werden können.

Auf Basis von im Cluster vorliegenden Zeitreihen-Daten wird innerhalb Vora eine „Zeitreihen-Tabelle“ erstellt, für die es eine eindeutige Spalte mit Zeitperioden (=Range Type) geben muss. Neben weiteren Optionen können Eigenschaften zur Äquidistanz und zusätzliche Komprimierungs-Parameter eingeben werden.

Um Zeitreihendaten auswerten zu können, müsst ihr noch eine View erstellen, den man mit spezifischen Table Functions (z.B. Cross/Auto Correlation) erweitern kann.

Es lassen sich dann für Zeitreihen entsprechende Analysen wie Regression, Binning, Sampling, Similarity, usw. durchführen.

Real-time Graphen-Analyse – Auswertung sehr großer Graphen

Vora verfügt über eine eigene In-Memory Graphen-Datenbank, die insbesondere die Analyse großer Graphen in real-time unterstützt. Die Modellierung der Graphen im grafischen Metadaten-Viewer wird entsprechend durch einen Pfad-Expression-Editor unterstützt.

Die Abfragen auf die Graphen dürfen durchaus – aufgrund der In-Memory-Engine – sehr komplex werden und die Visualisierung der Graphen zeigt sich State-of-the-Art.

Die Engine für die Graphen-Analyse bietet sich insbesondere im Bereich des Supply Chain Managements an oder zur Darstellung von umfangreichen Organisations- oder Projekt-Hierarchien oder Geschäfts-Netzwerken.

Relational Engine – Verwendung von SQL zur Auswertung von Relationen

Nicht zuletzt bietet Vora auch die Möglichkeit mit Hilfe von SQL strukturierte Daten im Cluster in Form von relationalen spaltenbasierten Tabellen abzubilden und abzufragen. Dabei werden auch hier die Daten im Memory komprimiert.

Für relationale Daten, die nicht im Arbeitsspeicher liegen müssen, bietet Vora die Disk Engine an. Diese legt die Daten in einer Datei auf dem lokalen Knoten ab, auf dem die Engine läuft. Analog dem Dynamic Tiering bei HANA, können auch hier die spaltenbasierten relationalen Disk- mit den In-Memory-Tabellen problemlos gejoint werden.

Auch noch erwähnenswert

  • SAP HANA-Tabellen können in Vora – nach erfolgter Registrierung im Repository – zusammen mit den dort erstellen Views und Tabellen zusammen verwendet werden. Von Vora aus können Daten auch in SAP HANA geschrieben werden.
  • Erstellung von Level- und Parent-Child-Hierarchien und gemeinsame Verwendung mit Fakten-Tabellen wird unterstützt.
  • Währungsumrechnung (Standard oder ERP) kann in Tabellen und Views verwendet werden.
  • Für jede Engine respektive für die in Vora erstellten spezifischen Datenstrukturen gibt es spezielle Funktionen und Typen für die Partitionierung, mit denen diese im Cluster optimal verteilt bzw. partitioniert werden (Hash, Block, Range).

Welche Datenquellen und -formate werden aktuell unterstützt?

Mit SAP Vora Tools können folgende Dateien in Vora verarbeitet werden:

  • .CSV
  • .ORC
  • .PARQUET
  • .JSON
  • .JSG

Neben dem Standard-Datentyp HDFS sowie den Typen ORC und PARQUET (Option (format „orc“ / format „parquet“)) können folgende weitere im „Create Table“-Statement in Vora geladen werden:

  • Amazon S3 (Option (storagebackend „s3“))
  • Swift Object (Option (storagebackend „swift“))

Fazit und Ausblick

SAP Vora spielt seine Stärken natürlich insbesondere im Zusammenhang mit SAP HANA aus: so kann man relationale Daten aus HANA mit semi-strukturierten Daten aus dem Hadoop-Cluster zusammen auswerten. Des Weiteren findet ihr in Vora verschiedene Auswertungs-Möglichkeiten (Graphen, Dokumente, usw.) in einem Tool vereint, die man sonst in jeweils verschiedenen Tools (oder nur mit verschiedenen Datenbanken) der Hadoop-Distributoren oder Drittanbietern findet.

Zukünftig plant SAP für Vora für alle Engines das Transaktionskonzept (ACID) zu unterstützen, um eine konsistente Datenhaltung zu verbessern. Für dieses Jahr 2018 ist ein erster Support für Insert-/Update-/Delete-Statements geplant. Vorgesehen ist darüber hinaus auch die Unterstützung für SQL-Pass-thru von SAP HANA zu SAP Vora.

Für Freunde des SAP BW noch interessant: über 2018 hinaus ist die Unterstützung von DSOs geplant.

Wenn ihr SAP Partner seid, könnt ihr einfach mit der kostenfreien Developer Edition starten, um in die Materie einzusteigen – dort könnt ihr euch in Ruhe mit der Konfiguration und der Nutzung vertraut machen.

Oder fragt uns – wir helfen gerne!

Autor dieses Beitrags
Andreas Keller Associate Partner
Tel.: +49 (0) 7031 714 660 0
E-Mail: info@inspiricon.de
Inspiricon-Textanalyse-mit-SAP-HANA_jack-moreh

Wie euch die Textanalyse mit SAP HANA zu wertvollen Erkenntnissen verhelfen kann

Wissen ist Macht, so viel ist klar. Wir sammeln jeden Tag Informationen, teilen sie mit der Welt oder tragen sie in die sozialen Netzwerke. Unser Alltag ist durchdrungen von Informationen. Aber was können wir mit all diesem Wissen anfangen? Zuallererst können wir es in Datenform abspeichern.

Daten lassen sich in zwei Kategorien unterteilen: unstrukturierte und strukturierte Daten.

inspiricon-figure1-unstructured-structured-data

Abbildung 1. Wie sich unstrukturierte und strukturierte Daten unterscheiden.

Was sind unstrukturierte Daten?

Mit dem Begriff „unstrukturierte Daten“ bezeichnet man in aller Regel Informationen, die nicht in klassischen zeilen- oder spaltenbasierten Datenbanken vorgehalten werden. Beispiele hierfür sind Facebook, Twitter oder auch E-Mails.

Die Vorteile strukturierter Daten liegen darin, dass sie sich maschinengestützt identifizieren und verarbeiten lassen. Sind die Daten erst einmal gespeichert, lassen sie sich viel einfacher für bestimmte Zwecke durchsuchen, zusammenstellen und filtern.

Was sind strukturierte Daten?

Daten, die sich in einem festgelegten Feld innerhalb eines Datensatzes oder einer Datei befinden, werden als strukturierte Daten bezeichnet. Ein Beispiel hierfür sind Datenbanken.

Textanalyse versetzt uns also in die Lage, unstrukturierte Daten in strukturierte Daten zu verwandeln und diese im Anschluss zu analysieren.

Was verstehen wir unter Textanalyse?

Mit dem Begriff Textanalyse beschreiben wir das Zusammenspiel aus Verfahren aus der Linguistik, Statistik und dem maschinellen Lernen, die den Informationsgehalt von Textquellen zum Zwecke der explorativen Datenanalyse, Forschung oder Untersuchung modellieren und strukturieren.

Die SAP-HANA-gestützte Textanalyse setzt auf umfassende linguistische und statistische Verfahren, um unstrukturierte Texte zu extrahieren und klassifizieren und so in Entitäten und Domänen umzuwandeln.

Mit der SAP-HANA-Plattform erhaltet ihr wertvolle Einblicke aus euren unstrukturierten Textdaten. Die Plattform gibt euch Funktionen für Suche, Textanalyse und Text Mining in unstrukturierten Textquellen an die Hand.

In der Textanalyse kommt eine Reihe von Verfahren zum Einsatz, um bestimmte Zeichenfolgen zu finden oder linguistische Suchen durchzuführen.

  • Volltextindizierung:
    Ein Volltextindex ist eine besondere Form des Token-basierten funktionalen Index, der über das Volltextmodul für SQL Server erstellt und gepflegt wird.
  • Volltextsuche:
    Die Volltextsuche ist auf linguistische (sprachbasierte) Suchen in Texten und Dokumenten in Ihrer Datenbank ausgelegt.
  • Unscharfe Suche (Fuzzy Search):
    Bei der unscharfen Suche handelt es sich um ein Verfahren zum Auffinden von Zeichenfolgen, die annähernd einem bestimmten Muster entsprechen. Bei diesem Suchtyp werden auch dann Treffer gefunden, wenn der Benutzer Rechtschreibfehler macht oder nur unvollständige Wörter als Suchanfrage verwendet.

In diesem Artikel beschäftigen wir uns mit der Volltextindizierung.

Volltextindizierung: Tabelle $TA

  • Durch die Erstellung eines Volltextindexes mit dem Parameter TEXT ANALYSIS ON wird eine Tabelle mit dem Namen $TA_<indexname> angelegt, die linguistische oder semantische Analyseergebnisse enthält.
  • Die Menge der Spalten in der Tabelle mit dem Präfix $TA bleibt unabhängig von der mit dem Volltextindex verwendeten Textanalysekonfiguration immer gleich:

inspiricon-figure2-ta-table

Abbildung 2. Beispielhafte Darstellung einer TA-Tabelle

  • Schlüsselspalten aus Quelltabelle (ID):
    Die ersten Spalten in der Tabelle $TA sind eine direkte Kopie der Schlüsselspalten aus der Quelltabelle.
  • TA_RULE:
    Die Regel, über die Ausgabe erstellt wurde. In aller Regel handelt es sich hierbei um LXP für die linguistische Analyse bzw. um Entity Extraction für die Entitäten- und Faktenanalyse.
  • TA_COUNTER:
    Eine eindeutige fortlaufende Nummer für jeden aus dem Dokument extrahierten Token.
  • TA_TOKEN:
    Die aus dem Dokument extrahierten Begriffe, Fakten oder Entitäten.
  • TA_LANGUAGE:
    Die Sprache, in der das Dokument verfasst wurde.
  • TA_TYPE:
    Die Art des Tokens. In der linguistischen Analyse handelt es sich hierbei um die Wortart. In der semantischen Analyse bezeichnet dies den Entitätstyp oder den Fakt. (’noun, ‚StrongPositiveSentiment‘, ‚Person‘)
  • TA_NORMALIZED:
    Die normalisierte Version des Tokens. Die Beugung wird beibehalten, Großschreibung und diakritische Zeichen werden jedoch entfernt. Im Falle der Extraktion von Entitäten ist die Spalte null.
  • TA_STEM:
    Die Stammform des Tokens. Der Eintrag in diesem Feld ist ungebeugt und normalisiert. Sind Token und Stammform identisch ist diese Spalte null. Im Falle der Extraktion von Entitäten ist die Spalte ebenfalls null.
  • TA_PARAGRAPGH:
    Der Absatz im Dokument, der den Token enthält.
  • TA_SENTENCE:
    Der Satz im Dokument, der den Token enthält.
  • TA_CREATED_AT:
    Erstellungszeitpunkt des Datensatzes.
  • TA_OFFSET:
    Der Zeichenoffset vom Dokumentenanfang an.
  • TA_PARENT:
    Der TA_COUNTER-Wert vom übergeordneten Element dieses Token.

Integrierte Konfigurationen

SAP HANA verfügt über sieben integrierte Konfigurationen, die der Analyse des Verhaltens und der Textausgabe dienen:

  • LINGANALYSIS_BASIC:
    Hierbei handelt es sich um die grundlegendste Form der linguistischen Analyse. Dabei wird zwar die Datei mit Token versehen, die Normalisierung und Zurückführung in die Stammform entfallen jedoch, so dass die Spalten für TA_NORMALIZED und TA_STEM leer bleiben.
  • LINGANALYSIS_STEMS:
    Bei dieser Konfiguration erfolgt für die Token die Normalisierung und die Zurückführung in die Stammform, die Felder TA_NORMALIZED und TA_STEM werden also befüllt.
  • LINGANALYSIS_FULL:
    Hierbei wird eine vollständige linguistische Analyse durchgeführt, so dass alle Spalten in der Tabelle $TA befüllt werden.
  • EXTRACTION_CORE:
    Hierbei werden Entitäten aus dem Text extrahiert. Dabei kann es sich zum Beispiel um Menschen, Orte oder URLs handeln.
  • EXTRACTION_CORE_VOICEOFCUSTOMER:
    Hierbei werden Entitäten und Fakten extrahiert, um positive und negative Stimmungen im Zusammenhang mit den Token zu identifizieren.
  • EXTRACTION_CORE_ENTERPRISE:
    Dieses Verfahren dient der Extraktion von Daten für Unternehmenszwecke, so zum Beispiel Daten zu Fusionen, Übernahmen, organisatorischen Veränderungen und Produktveröffentlichungen.
  • EXTRACTION_CORE_PUBLIC_SECTOR:
    Hierbei werden sicherheitsrelevante Daten über öffentliche Personen, Ereignisse und Organisationen extrahiert.

Erstellen einer Tabelle und eines Index

Im Folgenden findet ihr ein Praxisbeispiel für die EXTRACTION_CORE_ VOICEOFCUSTOMER-Konfiguration zum Identifizieren von Stimmungen (positive oder negative Gefühle):

Zunächst müssen wir eine Tabelle erstellen, Werte einfügen und einen Index erstellen.

Öffnet dazu eine SQL-Konsole und gebt den folgenden Befehl ein:

inspiricon-figure3-create-table

Abbildung 3. Tabelle erstellen

 inspiricon-figure4-create-Index-insert-values

Abbildung 4. Index erstellen und Werte eingeben

Die erstellte Tabelle sieht folgendermaßen aus:

inspiricon-figure5-created-table

Tabelle 5. Tabelle

Im letzten Schritt erhalten wir die Textanalyse. Wie ihr sehen könnt, erscheinen „likes“ und „enjoys“ als „WeakPositiveSentiment“, also als schwaches positives Gefühl.

inspiricon-figure6-text-analysis

Abbildung 6. Textanalyse

Hinweis: Dieser Artikel wurde angeregt durch den folgenden Blogartikel https://blogs.sap.com/2017/05/21/sap-hana-ta-text-analysis/

Autor dieses Beitrags
Adelina Ramona Popa und
Lucian Tomeac
Associates SAP BI
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de
WebI 4.2 mit neuen Funktionen

SAP BusinessObjects Web Intelligence 4.2 mit neuen Funktionen

In dieser Woche setzen wir unsere kleine Artikelserie zum Thema BI 4.2 fort. Heute beschäftigen wir uns mit SAP BusinessObjects Web Intelligence 4.2 und seinen neuen Funktionen. Legen wir also gleich los.

Heute möchte ich Ihnen einen Überblick über die neuen Funktionen verschaffen.

SAP BusinessObjects Web Intelligence 4.2 umfasst eine Reihe neuer Funktionen: Freigeben von Elementen, paralleles Regenerieren von Abfragen, Kommentare, Geokarten und visuelle Erweiterungen, direkter Zugriff auf HANA-Sichten und HANA-Online.

Freigabe von Elementen

Bei freigegebenen Elementen handelt es sich um Berichtsteile, die im CMS-Repository abliegen und durch andere Benutzer oder in anderen Dokumenten mehrfach wiederverwendet werden können. Entwickler können Berichtselemente auf einer zentralen Plattform in einem öffentlichen Ordner speichern. Freigegebene Elemente enthalten alle erforderlichen Metadaten: Berichtsteile, die entsprechende Datenquelle, Datenprovider, Variablen und Formatierung. So können Benutzer häufig verwendete Logos, Tabellen und Visualisierungen bequem und schnell in ihre Berichte importieren.

Paralleles Regenerieren von Abfragen

Die Funktion zum parallelen Regenerieren von Datenprovidern unterstützt ab sofort auch BEx-Abfragen. Zudem sind in der Central Management Console und im Information-Design-Tool neue Einstellungen hinzugekommen, über die Sie die Feinabstimmung paralleler Abfragen auf Verbindungsebene vornehmen können. Dadurch können Sie die maximale Anzahl parallel regenerierter Abfragen pro Dokument für OLAP-, BEx- oder relationale Verbindungen verwalten. Darüber hinaus können Sie festlegen, ob die parallele Abfrageverarbeitung auch bei zeitgesteuerten Vorgängen erfolgen soll.

Kommentare

BI-Kommentar ist derzeit für die Web-Intelligence-Anwendung verfügbar. Benutzer, die Web-Intelligence-Berichte verwenden, können nun die Funktion BI-Kommentar für die Zusammenarbeit verwenden.

Geokarten und visuelle Erweiterungen

Ab sofort können Sie unter Verwendung von Esri Maps oder Google Maps optisch ansprechende und aufschlussreiche Dashboards erstellen. So kann ab sofort jede Karte mit einer URL zur Kombination von Geodaten und unseren eigenen Daten verwendet werden. Die Karten in Web Intelligence sind nicht mehr länger nur der mobilen Anwendung vorbehalten. Ab sofort können Entwickler sie überall in Web Intelligence erstellen oder anzeigen, egal ob sie Desktop, Browser oder Mobilgerät verwenden. Diese Funktion umfasst zudem eine Geocoder-Engine. Mit dieser Engine können Entwickler mit ihrem bestehenden Datensatz beliebige Dimensionen für Städte, Bundesländer/Staaten und Ländern geokodieren.

Direkter Zugriff auf SAP-HANA-Sichten

Ab sofort können Entwickler direkt auf eine SAP-HANA-Informationssicht zugreifen, ohne vorher ein Universum erstellt zu haben. Darüber hinaus können sie Abfragen auf Basis von HANA-Sichten erstellen und profitieren von der Geschwindigkeit und Leistungsfähigkeit von HANA.

SAP-HANA-Online

Der SAP-HANA-Online-Modus ermöglicht es Ihnen, Web-Intelligence-Dokumente auf der Grundlage von aktiven Daten zu erstellen und sich so die Leistungsfähigkeit von SAP HANA zu Nutze machen. Im SAP-HANA-Online-Modus werden sämtliche Web-Intelligence-Berechnungen wie die Aggregation von Werten und das Filtern von Elementen an HANA delegiert. Dies ermöglicht schnellere Interaktionen zwischen Web Intelligence und HANA, was wiederum für mehr Geschwindigkeit bei der Regenerierung von Daten sorgt.

Diese Funktion richtet sich vor allem an Business-Analysten, die große Datenmengen in HANA analysieren. Sie können ab sofort mit Echtzeitdaten arbeiten und profitieren von besseren Interaktionen mit Web Intelligence. Berichtsdesigner profitieren außerdem von der Benutzerfreundlichkeit des SAP-HANA-Online-Modus, wodurch sich die Erstellung von Dokumenten einfacher als je zuvor gestaltet. Berichtsdesigner können nun Abfrageeditoren und Universen umgehen.

Sollten Sie noch weitere Fragen zu diesen Themen haben, stehe ich Ihnen gerne zur Verfügung!

 

Autor dieses Beitrags
Veronika Aleksandrova SAP BI Consultant
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de

Cognos-Migration

Wie Unternehmen mit einer standardisierten SAP-Lösung konzernweit Prozesse harmonisieren und Vergleichbarkeit gewährleisten können

Hallo,

heute stellen wir euch ein weiteres Projekt aus unserem Portfolio vor. Diesmal geht es um die Migration einer bestehenden Cognos Reporting Lösung auf SAP BW on HANA mit SAP BusinessObjects als Frontend.

Der Kunde, den wir hierbei unterstützt haben, ist in der Herstellung und im Vertrieb elektronischer Bauelemente aktiv. Er ist Teil eines globalen Konzerns und die verschiedenen Tochterunternehmen des Konzerns nutzten unterschiedlichste ERP- und Business Intelligence-Lösungen. Im Rahmen des weiteren Wachstums und des Anstiegs der Komplexität stießen die Funktionalität der selbstprogrammierten ERP-Lösung sowie das Reporting an ihre Grenzen.

DAS PROJEKT

Inspiricon löste basierend auf einer neu eingeführten standardisierten SAP ERP-Lösung mit SAP BW die existierende Cognos Reportinglösung ab.

Zu dieser Entscheidung trugen mehrere Gründe bei:

  • Die Weiterentwicklung der zum Großteil kundenindividuellen und selbstentwickelten Reporting-Lösungen war teuer und zeitaufwändig.
  • Es bestand ein hoher Wartungs- und Pflegeaufwand.
  • Innerhalb des Konzerns waren Bedeutung und Inhalt von KPI’s nicht konsistent. Als Folge waren eine Vergleichbarkeit der Prozesse und Ergebnisse der Tochtergesellschaften nicht gegeben.
  • Es existierten viele Schnittstellen zu anderen Systemen, was hohe Kosten sowie eine hohe Fehleranfälligkeit implizierte. Besonders die Berichterstattung an den Mutterkonzern war aufwändig. Sie wurde über weitere Schnittstellen abgewickelt, da das Berichtswesen durch eine – individuelle – zusätzlich aufgesetzte Cognos-Reporting-Lösung ausschließlich auf Kunden abgestimmt war.
  • Das interne Wissen über die existierende Lösung beschränkte sich auf wenige Köpfe im Unternehmen. Es bestand daher ein hohes Verlustrisiko an technischem Know-How, sollte ein Wissensträger ausscheiden.

DIE LÖSUNG

Da SAP-Produkte bereits von einer anderen Tochtergesellschaft verwendet wurden, war die neue ERP-Lösung schon systemseitig vorhanden.

Jedoch wurde nicht nur das ERP-System erneuert, sondern auch im Bereich BI sollte eine Evolution stattfinden. Der Konzern setzte auf eine SAP-Lösung. Somit löste SAP Business Warehouse on HANA die bisherige Cognos-Reporting-Lösung ab.

Gestartet wurde das Projekt mit Release SAP 7.4 on HANA. Während des Projektes erfolgte die Migration auf SAP 7.5 on HANA. Auch in diesem Fall wurde SAP BW bereits von einer Tochtergesellschaft verwendet und war also bereits vorhanden.

Frontendseitig entschied man sich ebenfalls für Produkte aus der SAP BusinessObjects Familie. Aus diesen Umstellungen sollten folgende Änderungen und Vorteile resultieren:

  • Datenmodelle werden durch die Standardisierung für alle Töchter des Konzerns nutzbar. Dies ermöglicht einen kostenoptimalen Support von den weltweit verteilten Service Centern.
  • Alle KPI’s werden vereinheitlicht, um eine Vergleichbarkeit zu garantieren.
  • Für Nutzer der Cognos-Lösung wird die Umstellung durch eine Like-to-Like Migration erleichtert.
  • Überflüssige Schnittstellen fallen weg.
  • Informationen fließen innerhalb der gesamten Wertschöpfungskette besser und schneller.
  • Die Reaktionsfähigkeit zur Unternehmenssteuerung wird erhöht. Dies bringt auch eine Steigerung der Wettbewerbsfähigkeit mit sich.

Unsere Lösung bestand aus Web Intelligence Reports auf Basis SAP BW on HANA mit standardisierter Datenversorgung aus dem operativen SAP ERP. Im folgenden Schaubild seht ihr den skizzierten Projektverlauf:

Skizzierter Projektverlauf

Durch den Wechsel der ERP- und BI-Systeme konnte unser Kunde seine Geschäftstätigkeit verbessern. Auf der einen Seite können die User nun schneller auf Berichte und Daten zugreifen, was die Entscheidungsfindung erheblich verkürzt. Auf der anderen Seite können die Berichte nun teilweise vom User selbst angepasst werden (Self-Service BI). Nicht zu vernachlässigen ist der enorme Sicherheitsgewinn durch die zentrale Steuerung von Zugangsberechtigungen. Abschließend konnten Lizenzkosten zum Vorteil der Wirtschaftlichkeit des Kunden reduziert werden.

Eine Einführung und Standardisierung der SAP ERP- und BI-Lösung ist mit hohen finanziellen Aufwänden verbunden. Diese konnten wir durch den Einsatz von Mitarbeitern aus unserem Nearshoring-Standort in Cluj-Napoca, Rumänien, erheblich reduzieren. In den Hochphasen des Projektes waren bis zu 6 Kollegen aus Cluj-Napoca eingebunden. Die Koordination erfolgte über tägliche kurze Meetings, in denen das Team remote mit Bild und Ton zugeschaltet war.

Autor dieses Beitrags
Claudio Volk Vorstand
Tel.: +49 (0) 7031 714 660 0
E-Mail: info@inspiricon.de
Die 4 Schritte zur Erstellung eines Universums - das Information Design Tool, Teil 2

Die 4 Schritte zur Erstellung eines Universums – das Information Design Tool Teil 2

Wir setzen unsere Reise zu einem Universum voller Daten fort und erkunden heute die Schritte, die uns ans Ziel führen. Im Kern umfassen diese:

  1. die Anlage eines neuen Projekts in IDT;
  2. die Herstellung einer Verbindung zwischen dem HANA-System und unserem Projekt im IDT (Information-Design-Tool);
  3. die Erstellung einer Datengrundlage und einer Business-Schicht;
  4. die Veröffentlichung in einem Repository.

Fangen wir damit an, einige Begrifflichkeiten zu klären, die für den Umgang mit Universen und IDT unerlässlich sind:

  • Verbindung: Hier wird definiert, wie sich ein Universum mit einer relationalen oder OLAP-Datenbank verbindet. Lokale Verbindungen werden als .cnx-Dateien gespeichert, sichere Verbindungen als .cns-Dateien.
  • Datengrundlage: Ein Schema, das die relevanten Tabellen und Joins aus einer oder mehreren relationalen Datenbanken definiert. Der Designer erweitert die Datengrundlage um Kontexte, Eingabeaufforderungen, berechnete Spalten und andere SQL-Definitionen. Sie kann als Basis für mehrere Business-Schichten dienen.
  • Business-Schicht: Sie stellt den ersten Entwurf eines Universums dar. Wenn die Business-Schicht vollständig ist, wird sie mit den Verbindungen oder Verbindungsverknüpfungen sowie der Datengrundlage kompiliert. Danach wird sie veröffentlicht und als Universum implementiert.
  • Universum: Eine kompilierte Datei, die alle Ressourcen aus der Definition der Metadatenobjekte enthält, die beim Entwurf der Business-Schicht erstellt wurden.

Unabhängig davon, ob Sie ein großes oder kleines Universum geplant haben, müssen Sie das Projekt als Ganzes betrachten. Technisch gesehen beginnt die Reise zur Erstellung eines Universums stets mit der Anlage eines neuen Projekts. Öffnen Sie dazu as IDT und klicken Sie auf Datei -> Neu -> Projekt. Das Projekt stellt Ihre Ideenkiste dar, einen Arbeitsbereich in dem Sie Ihr Universum Stein für Stein aufbauen können. Dabei bestehen die einzelnen Steine aus bestimmten Objekten wie der Datengrundlage oder der Business-Schicht.

Anlegen eines Projektes im IDT.

Abbildung 1: Anlegen eines Projektes im IDT.

Ein Projekt enthält die zur Erstellung des Universums verwendeten Ressourcen. Dabei dient es der Verwaltung der lokalen Objekte zur Universumserstellung.

Ein Projekt kann beliebig viele Objekte enthalten, so zum Beispiel Datengrundlagen, Business-Schichten und Verbindungen zu Datenquellen usw.

Anlegen eines Projektes im IDT: Namen eingeben.

Abbildung 2: Anlegen eines Projektes im IDT: Namen eingeben

Wir geben zunächst den Projektnamen ein (in unserem Beispiel Test). Danach legen wird zudem den Projektspeicherort in unserem Arbeitsbereich fest.

Darüber hinaus ist es hier möglich, ein bestehendes Projekt zu bearbeiten. Öffnen Sie dazu über Datei -> Projekt öffnen die Ansicht Lokales Projekt.

Eine weitere, wirklich interessante Funktion in Projekten ist die Möglichkeit zum Sperren von Ressourcen, um andere Entwickler darüber zu informieren, dass Sie gerade mit dieser Ressource arbeiten.

Nach Erstellung des Projekts müssen wir eine Verbindung zuweisen, um eine Verbindung zu einer Datenquelle herstellen zu können.

Diese Verbindung legt fest, wie das Quellsystem die Daten bereitstellt. Es stehen zwei Verbindungstypen zur Auswahl: relationale und OLAP-Verbindungen.

Über eine relationale Verbindung wird eine Verbindung zur Datenbankschicht hergestellt, um Tabellen und Joins zu importieren.

OLAP-Verbindungen dienen der Verbindung zum multidimensionalen Modell wie z. B. einem Information View in SAP HANA.

Herstellen einer relationalen Verbindung.

Abbildung 3: Herstellen einer relationalen Verbindung.

Zur Herstellung der Verbindung müssen wir zunächst die Systeminformationen, das Kennwort und den Benutzernamen eingeben.

Nachdem wir die Verbindung hergestellt haben, testen wir sie zunächst und veröffentlichen sie dann im Repository, damit sie zur Verwendung in unserem Universum bereitsteht.

Veröffentlichen einer Verbindung.

Abbildung 4: Veröffentlichen einer Verbindung.

Zur Veröffentlichung einer Verbindung müssen Sie die BO-Verbindungsparameter angeben (Repository, Benutzername, Kennwort).

Nachdem im Repository eine verfügbare Verbindung vorliegt, können wir nun eine Datengrundlage für unser Universum erstellen. Die Schicht der Datengrundlage erlaubt es uns, Tabellen und Joins aus unterschiedlichen relationalen Datenbanken zu importieren.

Im Information-Design-Tool gibt es zwei Arten von Datengrundlagen: Datengrundlagen mit einer einzigen Quelle und Datengrundlagen mit mehreren Quellen.

Datengrundlagen mit einer einzigen Quelle unterstützen eine einzelne relationale Verbindung. Dabei kann die Verbindung lokal oder gesichert sein, damit die Universen, die auf dieser Datengrundlage entworfen wurden, entweder lokal verwaltet oder in einem Repository veröffentlicht werden können.

Erstellen einer Datengrundlage.

Abbildung 5: Erstellen einer Datengrundlage.

Datengrundlagen mit mehreren Quellen unterstützen eine oder mehrere relationale Verbindungen. Verbindungen können beim Erstellen der Datengrundlage, aber auch zu einem späteren Zeitpunkt hinzugefügt werden. Datengrundlagen mit mehreren Quellen werden auf Grundlage von gesicherten Verbindungen erstellt, die in einem Repository veröffentlicht sind.

Nach der Definition des technischen Namens der Datengrundlage klicken wir auf Weiter.

Das IDT bietet die interessante Option, Universen auf Grundlage mehrerer Quellen zu erstellen. Im nächsten Fenster wird eine Liste mit verfügbaren Verbindungen zur Universumserstellung angezeigt (sowohl .cnx als auch .cns).

.cnx-Verbindungen kommen dann zum Einsatz, wenn das Universum nicht in einem zentralen Repository veröffentlicht werden soll (zur Verwendung in lokalen Universen).

Wenn das Universum in einem beliebigen Repository veröffentlicht werden soll (also lokal oder zentral), müssen Sie zwingend eine .cns-Verbindung (gesichert) nutzen.

Nach einem Klick auf Fertig stellen steht die Datengrundlage bereit.

Wie sieht eine Datengrundlage aus?

Abbildung 6: Wie sieht eine Datengrundlage aus?

Herzlichen Glückwunsch. Sie haben die erste Hälfte Ihrer Reise zu einem eigenen Universum bereits geschafft!

Bisher haben wir ein Projekt, eine Verbindung und eine Datengrundlage. Was uns jetzt noch fehlt, ist die Business-Schicht, die andere Hälfte unseres Universums.

Dazu klicken wir im Projektmenü auf Neu und wählen danach die Option Business-Schicht aus. Danach wählen wir die Verbindung und die Datengrundlage aus, auf der wir die Business-Schicht erstellen möchten.

Erstellen einer Business-Schicht.

Abbildung 7: Erstellen einer Business-Schicht.

Die Business-Schicht enthält alle Klassen und Objekte. Darüber hinaus finden Sie hier die Dimensionen und Kennzahlen, die in einem Universum definiert sind. Durch die Veröffentlichung der Business-Schicht im Repository schließen wir die Erstellung des Universums ab.

Nachdem das Universum erstellt wurde, müssen Sie festlegen, welche Felder als Dimensionen (Attribute/Merkmale) und welche als Kennzahlen (Schlüsselzahlen) dienen sollen.

Um ein besseres Layout für das Universum zu erhalten, können wir zudem Ordner für jede Dimension anlegen sowie einen für Kennzahlen. Kennzahlen werden standardmäßig auch als Attribute behandelt.

Damit kommen wir zum letzten Schritt auf unserer Reise zu einem Universum voller Daten. Nachdem wir nun alle Bestandteile beisammenhaben, bleibt nur noch ein letzter Klick, um unser Ziel zu erreichen. Nach Abschluss der Integritätsüberprüfung müssen wir das Universum nur noch speichern und in einem Repository veröffentlichen.

Veröffentlichen des Universums in einem Repository.

Abbildung 8: Veröffentlichen des Universums in einem Repository.

Die Anleitung von Tutorials Point hat als Inspiration für diesen Artikel gedient.

Autor dieses Beitrags
Ionel-Calin Oltean Consultant SAP BI/BW
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de