MultiProvider-vs-CompositeProvider

MultiProvider vs. CompositeProvider

Willkommen zur Fortsetzung unserer Artikelserie. Unser letzter Artikel widmete sich den Unterschieden zwischen den alten Objekten in SAP und den neuen Objekten in SAP BW auf HANA und handelte vom klassischen DSO (DataStore Object) und dem neuen ADSO (Advanced DataStore Object), welches vier der klassischen Objekte in SAP ersetzt: InfoCube, DSO, Hybrid Provider und PSA.

Wir wollen nun einen anderen Schwerpunkt betrachten und zwar den Unterschied zwischen dem MultiProvider und dem CompositeProvider:

Der klassische MultiProvider

Was ist ein klassischer Multiprovider?

Ein MultiProvider ist ein InfoProvider, der Daten aus mehreren InfoProvidern kombiniert und diese für das Reporting zur Verfügung stellt. Der MultiProvider selbst enthält keine Daten, da seine Daten vollständig aus den ihm zugrunde liegenden InfoProvidern stammen.

Der MultiProvider wird häufig für die Erstellung von Queries auf Basis mehrerer InfoProvider verwendet.

SAP BI unterstützt lediglich Queries, die auf einem einzigen InfoProvider basieren.  Um das Laden von Daten von einem InfoProvider in einen anderen usw. zu vermeiden, legt man am besten einen MultiProvider an, der genau auf dem Provider basiert, den man für die Query benötigt.

In einem MultiProvider verwendete Operationen

Es gibt zwei wesentliche Operationen, welche mit Hilfe von einem MultiProvider durchgeführt werden können.

  1. Die UNION-Operation

Sie wird verwendet, um Daten aus InfoProvidern in einen MultiProvider zusammenzuführen. Das System baut einen Datensatz aus den eingebundenen Datensätzen auf. Alle Werte dieser Datensätze werden kombiniert. Die MultiProvider basieren auf der Kombination zweier Typen von InfoProvidern:

  • InfoProvider, die Daten enthalten: InfoObject, InfoCube, DataStore Object
  • InfoProvider, die keine Daten enthalten: InfoSet, Aggregation Levels, Virtual Provider

MultiProvider: the Union operation

  1. Die Szenario-Operation

Durch die Szenario-Operation können zum Beispiel Daten aus zwei InfoCubes verbunden werden. Der erste InfoCube steht dabei für die Ist-Daten und der zweite für die Plan-Daten.

MultiProvider: the Scenario operation

Mit dem MultiProvider können Daten aus diesen beiden InfoProvidern verglichen werden. Wenn man einen MultiProvider anlegen will, kann man mehrere InfoProvider verwenden, wobei jede Art von InfoProvider akzeptiert wird. Man kann dann die Daten auf Basis dieses Multiproviders analysieren und auswerten. Wenn wir eine Query auf Basis eines MultiProviders erstellen wollen, ist es wichtig zu wissen, dass diese Query intern in Subqueries unterteilt ist. Für jeden im MultiProvider enthaltenen InfoProvider gibt es eine Subquery. Diese Subqueries werden in der Regel parallel bearbeitet.

Der CompositeProvider

Was ist ein CompositeProvider?

Der CompositeProvider ist ein InfoProvider, der Daten aus mehreren InfoProvidern zusammenfasst und diese Daten über eine SAP-HANA-Datenbank für Reporting und Analyse zur Verfügung stellt. Diese neuen InfoProvider bilden den Virtual Data Mart Layer im BW auf dem HANA-System.

Der CompositeProvider konsolidiert die Anzahl der InfoProvider-Typen und harmonisiert die Modellierung des gemischten BW auf HANA-Szenarien:

CompositeProvider

Der CompositeProvider wird verwendet als:

  • Oberfläche für Reporting Objekte
  • Kombination von Anbietern mit analytischen Indizes
  • Alternative zu Info-Sets für die Zusammenführung von Daten
  • Alternative zu MultiProvider zur UNION Operation

Im CompositeProvider verwendete Operationen

Genau wie der MultiProvider, führt der CompositeProvder hauptsächlich zwei Operationen durch, UNION und JOIN.

1.UNION von BW InfoProvidern und HANA Modellen

Es gibt keine Unterschiede in der Laufzeit zwischen dem CompositeProvider und MultiProvider bei der Durchführung der UNION Operation. Der analytische Manager innerhalb von BW ist optimiert für diese Operationsart. Wenn man sich auf die UNION eines CompositeProviders bezieht, muss man betonen:

  • Die CompositeProvider basieren auf: InfoObjects, Semantically Partitioned Object (SPOs), DSOs, InfoCubes, Open ODS view, VirtualProvider, InfoSet oder Aggregationsebene.
  • Ein CompositeProvider kann HANA Views direkt einbinden. Mit dieser Funktionalität kann man BEx-Reporting auf reinen SAP-HANA-Objekten definieren.

Innerhalb der Operation sollten die folgenden Einschränkungen berücksichtigt werden:

  • Offene ODS Views, die in CompositeProviders verwendet werden sollen, können nur Felder enthalten mit InfoObject-kompatiblen Datentypen
  • Semantisch aufgeteilte Objekte können nur für die UNION Operation eingesetzt werden. Sie können nicht in JOIN Operationen verwendet werden, da semantisch aufgeteilte Objekte alle bereits UNIONs enthalten.

2. JOIN von BW InfoProvidern und HANA Modellen 

Wie oben erwähnt, basiert der CompositeProvider weder auf InfoCube, DataStore Object, InfoObject oder semantisch aufgeteilen Objekte.

Lasst uns also das folgenden Szenario betrachten, um die JOIN-Operationen besser zu verstehen:

Wenn wir einen CompositeProvider anlegen, der auf zwei oder mehrerre InfoProvidern basiert, sollten wir, wenn wir zwei InfoProvider verbinden möchten, den JOIN auswählen, welchen wir verwenden möchten, dabei stehen uns im CompositeProvider zwein unterschiedliche zur Verfügung. der Inner und der Left Outer JOIN.

  • Der Inner JOIN: Gibt alle Datensätze heraus, die in beiden InfoProvidern übereinstimmen.
  • Der Left Outer JOIN: Gibt alle Datensätze des linken InfoProviders und den passenden Datensatz des rechten InfoProviders heraus.

Nach der JOIN-Auswahl definiert man im Szenario Tab ein JOIN Condition Feld definieren. Um eine JOIN Condition zu bestimmen, klickt man rechts auf das Feld und wählt „Create Join Condition Field“.

Join of BW InfoProviders and Hana model

So erstellt man einen CompositeProvider

Nun, da wir gelernt haben, welche Operationen in einem CompositeProvider verwendet werden, werfen wir einen Blick darauf, wie wir einen erstellen können.

Der Editor zur Erstellung eines CompositeProviders basiert auf Eclipse und ist Bestandteil der BW-Modellierungswerkzeuge.

Schritt 1

Man öffnet Eclipse und geht auf den Infobereich, danach wählt man per Rechtsklick „New“ und „CompositeProvider“

Schritt 2

Dann fügt man einen Namen und eine passende Bezeichnung für den CompositeProvider hinzu.

 

How to Create CompositeProvider

Schritt 3

Im Anschluss wählt man die InfoProvider aus, die mit „JOIN“ oder „UNION“ zusammengeführt werden sollen.

CompositeProvider select InfoProviders

Schritt 4

Der CompositeProvider wird über 3 Tabs verfügen (General Tab, Scenario Tab, Output)

  • Im General Tab kann man die Bezeichnung des CompositeProviders auswählen.
  • Im Szenario Tab kann man InfoProvider und HANA Views zum CompositeProvider hinzufügen.

3 Tabs CompositeProviders

In diesem Tab wird auch der Primärschlüssel ausgewählt, sowie die gemeinsamen JOINs des Primärschlüssels, indem man per Rechtsklick die Felder auswählt, die man verbinden möchte.

In der Target Sektion befinden sich die Felder, welche man im Output sehen möchte.

CompositeProvider common joins

 

Im Output Tab befinden sich dann die Felder, die man für den Output ausgewählt hat.

 

CompositeProvider output

Schritt 5

Als nächstes aktiviert man den CompositeProvider.

Felder in einem CompositeProvider

Die Felder eines CompositeProviders können mit einem InfoObject oder einem offenen ODS View verbunden werden. Damit hat man nicht nur Zugriff auf die zur Auswahl stehenden Navigationsattribute für die Ausgabestruktur des CompositeProviders, sondern auch auf die Stammdaten zur Laufzeit des Reports. Zusammenfassend lässt sich sagen, dass man Zeit sparen kann, indem man Felder anstelle der Modellierung mit InfoObjects verwendet.

Wenn dem CompositeProvider Felder zugewissen werden, werden die Verbindungen automatisch erstellt.

Modellierungsszenario mit CompositeProvider

Nach der Erstellung des CompositeProviders werden wir auf Basis des folgenden Szenarios weiterarbeiten:

„Verfolge die Verkaufsinformationen in einem Unternehmen, basierend auf dem Kunden und dem verkauften Produkt“

  1. Wir beginnen mit der Anlage eines CompositeProviders, um Daten aus 3 DSO (Product master data DSO, Customer master data DSO and Sales information DSO) zusammenzuführen.
  2. Im diesen Fall wir brauchen keinen zusätzliche Infocube, um die vollständige Daten für das Reporting zur Verfügung zu haben.
  3. Die Daten aus dem Verkaufsinformationen-DSO werden anhand der UNION in den CompositeProvider übernommen.
  4. Man kann nun über die JOIN Operation dem CompositeProvider die Kunden- und Produktenmasterdaten hinzufügen.
  5. Auf diese Weise enthält der CompositeProvider alle Daten aus dem Verkaufs-DSO mit den entsprechenden Attributen (Produkt und Kunde).

Modelling Scenario CompositeProvider

Für das genannte Szenario hat uns die Verwendung eines CompositeProviders geholfen, das zusätzliche Laden von Daten zu vermeiden, weil wir die Daten einmal gespeichert haben und sie in verschiedenen Situationen verwendet haben.

Der CompositeProvider bietet dem Nutzer also die Möglichkeit, Daten entweder mit JOIN oder UNION zu kombinieren.

Ein MultiProvider zu einem CompositeProvider umwandeln

Mit der folgenden Methode kann man einen MultiProvider zu einem CompositeProvider umwandeln:

Schritt 1

Man geht zunächst zu Transaktion se38 und führt das Programm RSO_CONVERT_IPRO_TO_HCPR aus.

Convert MultiProvider CompositeProvider

Schritt 2

Danach wählt man die MultiProvider aus, die man zu einem CompositeProvider umwandeln möchte und benennt dann den neuen CompositeProvider.

Name your CompositeProvider from MultiProvider

Der MultiProvider und der CompositeProvider müssen den gleichen Namen tragen, sodass keine Queries und Workbooks in ihrer Ausführung beeinträchtigt werden und weiterhin die richtigen Werte wiedergeben.

Schritt 3

Nur wenn wir einen Backup für den MultiProvider anlegen, wird das Programm auch funktionieren. Wenn man das Programm ohne diesen Backup ausführt, wird man die Fehlermeldung bekommen: „Conversion is not allowed without backup

Schritt 4

Man benennt dann den Backup-InfoProvider und führt ihn im Simulationsmodus aus, um zu prüfen, ob der MultiProvider in den CompositeProvider konvertiert werden kann.

Backup InfoProvider Name

Mit Erscheinen der Meldung „CompositeProvider is consistent“, kann dann die Konvertierung zwischen den Infoprovidern durchgeführt werden.

Schritt 5

Nach der Durchführung des Tests im simulierten Modus führt man das nun Programm aus und wählt „Transfer InfoProvider and copy queries“.

Beckup queries CompositeProviders

Schritt 6

Danach wählt man die Queries aus, welche man für das Backup anlegen möchte. Sinnvollerweise wählt man den Namen des InfoProviders als Präfix für die Query.

 

Prefix query name CompositeProvider

Bei der Anwendung dieser Methode werden die Queries oder Workbooks nicht beeinträchtigt.

Unser Fazit

Der neue CompositeProvider bringt viele Vorteile mit sich. Wie wir in unserer vorangehenden Betrachtung festgestellt haben liegt der größte Vorteil in der Kombination von klassischen BW Objekten, Hana Objekten und HANA Views mit entweder JOIN oder UNION Operationen. Diese beiden Operationen werden in HANA und nicht auf dem Applikationsserver ausgeführt.

Ein weiterer Vorteil des CompositeProviders ist der Pushdown der Query Ausführung direkt auf die HANA Datenbank. Darüber hinaus ermöglicht der CompositeProvider eine schnellere und einfachere Datenmodellierung, da er den Multiprovider und das Infoset ersetzt.

Ein weiterer Punkt ist außerdem die Unterstützung der Eingabeparameter bei der Verwendung von Open ODS Views als Quellobjekte.

Nicht zuletzt wird die Ladezeit großer Datenmengen über mehrere Schichten im BW reduziert, da der CompositeProvider über die DSOs in der EDW-Schicht selbst modelliert werden kann.

An dieser Stelle kommen wir zum Ende und hoffen, dass unser Artikel einen interessanten und nützlichen Einblick geben konnte. Jetzt wird es Zeit, die neu gewonnenen Informationen auch einzusetzen und den CompositeProvider zu verwenden. Viel Spaß dabei!

Quellenangabe der Bilder: SAP SE

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