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.
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.
