Macht mit SAP HANA: Typen, Syntax & Beispiele

⚡ Intelligente Zusammenfassung

SAP HANA-Joins verbinden Tabellen und Informationssichten, sodass ein Modell genau die Zeilen zurückgibt, die ein Bericht benötigt. Inner-, Outer-, Referenz-, Text-, Temporal- und Spatial-Datentypen beeinflussen jeweils die Performance, die Kardinalitätsverarbeitung und die Ergebnisgröße.

  • 🔗 Umfang: Joins verknüpfen Tabellen und Informationssichten innerhalb grafischer Modelle und innerhalb einfacher SQL-Anweisungen in der Datenbank.
  • ☑️ Standardtypen: Inner Joins, Left Outer Joins, Right Outer Joins und Full Outer Joins verhalten sich genau wie in ANSI SQL.
  • ✅ Typen, die nur für die Modellierung verwendet werden: Referenzielle und Text-Joins existieren nur innerhalb von Informationssichten und haben kein entsprechendes SQL-Schlüsselwort.
  • 🧪 Erweiterte Knoten: Zeitliche, räumliche, dynamische und Stern-Joins erweitern die Berechnungssicht über den einfachen Spaltenabgleich hinaus.
  • ️ Leistungshebel: Die Kardinalität und das Flag „Join-Spalten optimieren“ entscheiden darüber, ob SAP HANA kann eine Tabelle zur Laufzeit bereinigen.
  • 📈 Modernisierung: Attribut- und Analysesichten sind veraltet, daher gehören neue Joins in grafische Berechnungssichten.

Join-Typen, die zum Kombinieren von Tabellen und Informationsansichten verwendet werden in SAP HANA

Was ist SAP HANA beitreten?

Mitmachen SAP HANA kombiniert Zeilen aus zwei oder mehr Tabellen oder aus einer Tabelle und einer Informationssicht und gibt die für die Abfrage benötigten Werte zurück. Verknüpfungen werden grafisch im Verknüpfungsknoten einer Informationssicht definiert und können auch direkt in SQL-Anweisungen geschrieben werden, die auf der Datenbank ausgeführt werden.

Die beiden Formen sind nicht identisch. Ein Join innerhalb eines Berechnungsansicht wird ausgeführt von SAP Die HANA-Berechnungs-Engine kann eine Tabelle überspringen, wenn keine der angeforderten Spalten darin enthalten ist, während ein Join in SAP HANA SQL wird immer exakt so ausgeführt, wie es programmiert wurde.

Folgende Join-Typen stehen zur Verfügung, wenn SAP HANA-Tabellen und Informationssichten werden kombiniert.

Join-Typ Verwendung Kommentar
INNERE Inner Join wählt die Menge der Datensätze aus, die in beiden Tabellen übereinstimmen. Reihen ohne Partner auf beiden Seiten werden verworfen.
LEFT OUTER JOIN Ein Left Outer Join wählt den kompletten Datensatz aus der ersten Tabelle aus und fügt, sofern vorhanden, den entsprechenden Datensatz aus der zweiten Tabelle hinzu. Falls in der zweiten Tabelle keine Übereinstimmung gefunden wird, werden für deren Spalten Nullwerte zurückgegeben.
RECHTER ÄUSSERER JOIN Ein Right Outer Join wählt den kompletten Datensatz aus der zweiten Tabelle aus und fügt, sofern vorhanden, den entsprechenden Datensatz aus der ersten Tabelle hinzu. Falls in der ersten Tabelle keine Übereinstimmung gefunden wird, werden für deren Spalten Nullwerte zurückgegeben.
KOMPLETTE AUSSENVERBINDUNG Ein vollständiger äußerer Join wählt alle Datensätze aus beiden Tabellen aus. Nicht übereinstimmende Zeilen auf beiden Seiten werden mit Nullwerten aufgefüllt.
REFERENTIELLER JOIN Verhält sich wie ein Inner Join, vorausgesetzt, die referenzielle Integrität zwischen den beiden Tabellen bleibt erhalten. Verfügbar in Attributansichten, analytischen Ansichten und Berechnungsansichts-Join-Knoten.
TEXTVERBINDUNG Der Text-Join wählt die sprachspezifische Beschreibung aus, die zu einem Schlüssel gehört, und verwendet dazu die Sprachspalte der Texttabelle. Die Spalte „Sprache“, üblicherweise SPRAS, muss in den Join-Eigenschaften gekennzeichnet werden.

Referenzielle und Text-Joins sind reine Modellierungstypen. Sie existieren im Join-Knoten einer Informationssicht und haben kein entsprechendes Schlüsselwort in SQL, weshalb sie in … erscheinen. SAP HANA-Modellierung Tools anstatt in einer SELECT-Anweisung.

SAP HANA Join-Syntax und SQL-Beispiele

Inner und Outer Joins werden geschrieben in SAP HANA SQL verwendet die Standard-ANSI-Syntax, sodass eine Abfrage, die auf einer anderen relationalen Datenbank getestet wurde, in der Regel unverändert ausgeführt werden kann. Das folgende Beispiel verknüpft eine Verkaufsauftragstabelle mit einer Kundentabelle und anschließend mit einer Bundeslandtabelle.

SELECT so.ORDER_ID, c.NAME, s.STATE_NAME, so.AMOUNT
FROM SALES_ORDER AS so
INNER JOIN CUSTOMER AS c
  ON so.CUSTOMER_ID = c.CUSTOMER_ID
LEFT OUTER JOIN STATE AS s
  ON c.STATE_CODE = s.STATE_CODE
WHERE so.AMOUNT > 1000
ORDER BY so.ORDER_ID;

Der INNER JOIN verwirft alle Aufträge, deren Kundendatensatz fehlt. Der LEFT OUTER JOIN behält alle verbleibenden Aufträge bei, auch wenn der Bundeslandcode keine Beschreibung hat, und gibt für diese Zeilen einen leeren Bundeslandnamen zurück. Tauschenping Die beiden Verknüpfungstypen verändern daher nicht nur die angezeigten Spalten, sondern auch die Anzahl der Zeilen.

Grafische Modelle erzielen dasselbe Ergebnis ohne SQL. Im Ansichtseditor wird ein Join-Knoten zwischen zwei Datenquellen platziert, die Spalten, die die Join-Bedingung bilden, werden zugeordnet und der Join-Typ sowie die Kardinalität werden in den Knoteneigenschaften festgelegt. SAP HANA Studio Sowohl der Editor als auch der browserbasierte Modellierer generieren den Laufzeit-SQL-Code aus diesen Einstellungen.

Erweiterte Verknüpfungstypen in SAP HANA-Berechnungssichten

Berechnungssichten ermöglichen das Verhalten von Joins, das mit reinem SQL nicht durch ein einzelnes Schlüsselwort ausgedrückt werden kann. Diese Optionen werden entweder im Join-Knoten oder über einen dedizierten Knotentyp konfiguriert.

Join-Typ Was sie tut, Typische Verwendung
Temporale Verbindung Gleicht Transaktionsdatensätze mit der Stammdatenversion ab, die an einem bestimmten Datum gültig war, indem die Felder „Von“ und „Bis“ der Stammdatenquelle verwendet werden. Zeitabhängige Stammdaten, wie beispielsweise ein Kostenstellenwechsel. Der Verknüpfungstyp muss referenziell sein und der Schlüssel ein Datum, ein Zeitstempel oder eine Ganzzahl.
Räumliche Verbindung Verbindet zwei Datenquellen über eine Geometriespalte mit einem räumlichen Prädikat wie „schneidet sich“ oder „innerhalb“, anstatt über eine Gleichheitsbedingung. Geografische Analysen, zum Beispiel die Zuordnung von Kundenstandorten zu Vertriebsgebieten.
Dynamische Verknüpfung Erstellt die Join-Bedingung zur Laufzeit aus den Join-Spalten, die die Abfrage tatsächlich anfordert, und aggregiert die restlichen Spalten, bevor der Join ausgeführt wird. Mehrspaltige Joins, bei denen die Granularität der Abfrage variiert. Mindestens eine Join-Spalte muss angefordert werden, andernfalls schlägt die Abfrage fehl.
Star schließt sich an Verbindet eine Faktenquelle mit mehreren Dimensionsberechnungssichten in einem einzigen Knoten. Sternschema-Modelle, die die ältere analytische Sicht ersetzen.

Ein dynamischer Join ändert die Reihenfolge der Operationen, nicht die Abgleichsregel. Bei einem statischen Join wird jede definierte Spalte in die Bedingung einbezogen, die Aggregation erfolgt anschließend. Bei einem dynamischen Join werden zuerst die nicht angeforderten Spalten aggregiert, was in der Regel zu weniger Zeilen und einem anderen Gesamtergebnis führt. Die beiden Join-Verfahren beantworten daher unterschiedliche Geschäftsfragen. Das Flag wird daher bewusst gesetzt, nicht zur allgemeinen Optimierung.

Wie man den richtigen Verbindungstyp auswählt SAP HANA-Modellierung

Die Auswahl des Joins beeinflusst sowohl die Korrektheit als auch die Laufzeit, und der schnellste Join ist derjenige, der SAP HANA muss niemals ausgeführt werden. Die folgenden Regeln decken die meisten Modellierungsentscheidungen ab.

  • Referenzieller Join — Verwenden Sie diese Methode nur dann, wenn garantiert ist, dass jede Zeile auf einer Seite einen Partner hat, da die Engine die Verknüpfung möglicherweise ganz auslässt, wenn keine Spalte aus der verknüpften Tabelle angefordert wird.
  • Innere Verbindung — Verwenden Sie diese Methode, wenn die referenzielle Integrität nicht gewährleistet ist und nicht übereinstimmende Zeilen ausgeschlossen werden müssen.
  • Linke äußere Verbindung — Verwenden Sie diese Methode, wenn die erste Tabelle das Ergebnis bestimmt und fehlende Stammdaten weiterhin angezeigt werden müssen.
  • Vollständiger äußerer Join — Verwenden Sie es sparsam, da es die teuerste Option ist und in Berichtsmodellen selten erforderlich ist.
  • Textverknüpfung — Verwenden Sie es immer dann, wenn eine Beschreibungsspalte von der Anmeldesprache abhängt.

Zwei Knoteneigenschaften sind genauso wichtig wie der Join-Typ selbst. Die Kardinalität (1:1, 1:n, n:1 oder n:m) gibt der Engine an, wie viele Zeilen auf jeder Seite zu erwarten sind, und die Funktion „Kardinalität vorschlagen“ leitet sie aus den Daten ab. Das Flag „Join-Spalten optimieren“ ermöglicht dann Folgendes: SAP HANA entfernt eine Join-Spalte aus dem Ausführungsplan, wenn die Abfrage sie nicht benötigt. Eine falsche Kardinalität kann Kennzahlen unbemerkt multiplizieren; daher wird sie anhand der Daten überprüft, anstatt sie anzunehmen.

Eine weitere Einschränkung prägt die Neuentwicklung. Attribut- und Analyseansichten sind veraltet, und SAP Es wird empfohlen, sie in grafische Berechnungssichten umzuwandeln, sodass ein heute entworfener Join normalerweise in einem Join- oder Stern-Join-Knoten erstellt wird. Hintergrundinformationen zu den älteren Objekten sind weiterhin nützlich, wenn ein bestehendes Modell gepflegt wird, und die Attributansicht und analytische Sicht Die Seiten beschreiben, wie diese Verknüpfungen konfiguriert wurden. SAP Lernmaterial zum Thema Knoten verbinden umfasst das gleiche Verhalten in SAP HANA Cloud und das breitere Spektrum SAP HANA-Tutorial Die Reihe erklärt, wo Informationsansichten in die Plattform passen.

Häufig gestellte Fragen

Die Kardinalität (1:1, 1:n, n:1, n:m) gibt der Engine an, wie viele übereinstimmende Zeilen auf jeder Seite zu erwarten sind. Sie ermöglicht das Beschneiden von Joins und schützt Aggregate. Die vorgeschlagene Kardinalität leitet die Einstellung aus den Daten ab, was sicherer ist als eine Schätzung.

Es lässt SAP HANA entfernt eine Join-Spalte aus dem Ausführungsplan, wenn die Clientabfrage sie nie anfordert. Weniger Spalten bedeuten weniger Gruppierungen.pingschnellere Laufzeiten sind möglich, die Ergebnisse können sich jedoch ändern, wenn die entfernte Spalte die Aggregationsebene beeinflusst hat.

Bestehende Objekte funktionieren weiterhin, aber beide Ansichtstypen sind veraltet und können nicht zu neuen Berechnungsansichten hinzugefügt werden. SAP empfiehlt, sie in grafische Berechnungsansichten umzuwandeln, in denen die gleichen Join-Typen sowie Stern-Join und räumlicher Join verfügbar sind.

Es müssen nicht übereinstimmende Zeilen von beiden Seiten beibehalten werden, damit keine Tabelle bereinigt werden kann und jede Zeile materialisiert wird. Ein referenzieller Join hingegen kann vollständig übersprungen werden, wenn die Abfrage keine Spalte aus der verknüpften Tabelle anfordert.

Die Sprachspalte der Texttabelle, normalerweise SPRAS in SAP Tabellen, ist in den Join-Eigenschaften gekennzeichnet. SAP HANA filtert dann die Beschreibungen nach der Sitzungssprache, sodass ein einziges Modell alle Anmeldesprachen ohne separate Ansicht bedienen kann.

Ja. Ein Join-Knoten akzeptiert Tabellen, Tabellenfunktionen und andere Berechnungssichten als Datenquellen. So werden Dimensionssichten an eine Faktentabelle angehängt. Die Spaltennamen können abweichen, da die Join-Bedingung die Spalten explizit zuordnet.

Maschinelles Lernen profiliert Spaltenwerte, um Join-Schlüssel und Kardinalität vorzuschlagen, kennzeichnet Modelle, deren Messwerte nach einem Join ansteigen, und gruppiert nahezu identische Ansichten. SAP Die Plattform integriert außerdem prädiktive und generative Dienste, sodass die Bewertung parallel zu den modellierten Daten erfolgt.

Copilot erstellt zuverlässig Standard-SQL-Joins und beschleunigt wiederholte SELECT-Anweisungen. Da es die referenzielle Integrität eines Schemas nicht kennt, müssen Join-Typ, Kardinalität und reine Modellierungsoptionen wie Text-Joins weiterhin anhand der tatsächlichen Daten überprüft werden.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: