Går med SAP HANA: Typer, syntax och exempel

⚡ Smart sammanfattning

SAP HANA kopplar samman kopplingstabeller och informationsvyer så att en modell returnerar exakt de rader en rapport behöver. Inre, yttre, referentiella, text-, temporala och rumsliga typer ändrar alla prestanda, kardinalitetshantering och resultatstorlek.

  • 🔗 Omfattning: Kopplar samman länktabeller och informationsvyer i grafiska modeller och i vanliga SQL-satser i databasen.
  • ☑️ Standardtyper: Inner-, left outer-, right outer- och full outer-joins beter sig exakt som de gör i ANSI SQL.
  • Endast modelleringstyper: Referens- och textkopplingar finns endast inside informationsvyer och har ingen motsvarighet till SQL-nyckelord.
  • 🧪 Avancerade noder: Temporala, rumsliga, dynamiska och stjärnkopplingar utökar beräkningsvyer bortom enkel kolumnmatchning.
  • 🛠️ Prestandamått: Kardinalitet och flaggan Optimera kopplingskolumner avgör om SAP HANA kan rensa en tabell vid körning.
  • 📈 Modernisering: Attribut- och analysvyer är föråldrade, så nya kopplingar hör hemma i grafiska beräkningsvyer.

Kopplingstyper som används för att kombinera tabeller och informationsvyer i SAP HANA

Vad är SAP HANA Gå med?

En koppling SAP HANA kombinerar rader från två eller flera tabeller, eller från en tabell och en informationsvy, och returnerar de värden som krävs av frågan. Joins definieras grafiskt i join-noden i en informationsvy, och de skrivs också direkt i SQL-satser som körs på databasen.

De två formerna är inte identiska. En koppling inuti en beräkningsvy utförs av SAP HANA-beräkningsmotorn, som kan hoppa över en tabell när ingen begärd kolumn kommer från den, medan en join skriven i SAP HANA SQL exekveras alltid exakt som kodat.

Följande kopplingstyper är tillgängliga när SAP HANA-tabeller och informationsvyer kombineras.

Gå med Typ du använder Kommentar
INRE Inner join väljer den uppsättning poster som matchar i båda tabellerna. Rader utan en partner på någon sida kasseras.
VÄNSTER YTTRE GÅ MED Left outer join väljer hela uppsättningen poster från den första tabellen, med matchande post från den andra tabellen där en är tillgänglig. Om ingen matchning finns i den andra tabellen returneras nullvärden för dess kolumner.
HÖGER YTTRE JOIN Höger yttre koppling väljer hela uppsättningen poster från den andra tabellen, med matchande post från den första tabellen där en finns tillgänglig. Om ingen matchning finns i den första tabellen returneras nullvärden för dess kolumner.
FULLSTÄNDIG YTTRE JOIN Fullständig outer join väljer alla poster från båda tabellerna. Omatchade rader från endera sidan fylls ut med nullvärden.
REFERENTIAL ANSLUTNING Beteende sig som en inner join, under antagandet att referensintegritet bibehålls mellan de två tabellerna. Tillgängligt i attributvyer, analysvyer och beräkningsvyer för kopplingsnoder.
TEXT GÅ MED Textkoppling väljer den språkspecifika beskrivningen som tillhör en nyckel med hjälp av språkkolumnen i texttabellen. Språkkolumnen, vanligtvis SPRAS, måste flaggas i kopplingsegenskaperna.

Referens- och textkopplingar är endast modelleringstyper. De finns i kopplingsnoden i en informationsvy och har inget motsvarande nyckelord i SQL, vilket är anledningen till att de visas i SAP HANA-modellering verktyg snarare än i en SELECT-sats.

SAP HANA Join-syntax och SQL-exempel

Inre och yttre kopplingar skrivs i SAP HANA SQL med standard ANSI-syntax, så en fråga som testas på en annan relationsdatabas körs vanligtvis oförändrad. Exemplet nedan kopplar en försäljningsordertabel till en kundtabell och sedan till en tillståndstabell.

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;

Den inre kopplingen tar bort alla försäljningsorder vars kundstamdata saknas. Den vänstra yttre kopplingen behåller alla återstående ordrar även när tillståndskoden inte har någon beskrivning och returnerar ett null-tillståndsnamn för dessa rader.ping De två kopplingstyperna ändrar därför radantalet, inte bara antalet kolumner som visas.

Grafiska modeller når samma resultat utan SQL. En join-nod placeras mellan två datakällor i vyredigeraren, kolumnerna som bildar join-villkoret mappas och join-typen och kardinaliteten anges i nodegenskaperna. SAP HANA Studio Både editorn och den webbläsarbaserade modelleraren genererar runtime-SQL:en från dessa inställningar.

Avancerade kopplingstyper i SAP HANA-beräkningsvyer

Beräkningsvyer lägger till kopplingsbeteende som vanlig SQL inte uttrycker i ett enda nyckelord. Dessa alternativ konfigureras på kopplingsnoden eller via en dedikerad nodtyp.

Gå med Typ Vad den gör Typisk användning
Temporär anslutning Matchar transaktionsposter med den huvuddataversion som var giltig ett givet datum med hjälp av fälten från och till i huvuddatakällan. Tidsberoende masterdata, till exempel ett kostnadsställe som bytt ägare. Kopplingstypen måste vara referentiell och nyckeln måste vara ett datum, en tidsstämpel eller ett heltal.
Spatial koppling Kopplar samman två källor i en geometrikolumn med ett spatialt predikat som intersects eller within, istället för på ett likhetsvillkor. Geografisk analys, till exempel matchning av kundplatser med försäljningsområden.
Dynamisk koppling Bygger kopplingsvillkoret vid körning från de kopplingskolumner som frågan faktiskt begär, och aggregerar de återstående kolumnerna innan kopplingen körs. Flerkolumnskopplingar där frågans granularitet varierar. Minst en kopplingskolumn måste begäras, annars misslyckas frågan.
Stjärnkoppling Kopplar samman en faktakälla med flera dimensionsberäkningsvyer i en enda nod. Stjärnschemamodeller som ersätter den äldre analytiska vyn.

En dynamisk koppling ändrar sekvensen av operationer snarare än matchningsregeln. I en statisk koppling deltar varje definierad kolumn i villkoret och aggregering sker efteråt; i en dynamisk koppling aggregeras de obegärda kolumnerna först, vilket vanligtvis returnerar färre rader och en annan totalsumma. De två svarar därför på olika affärsfrågor, så flaggan sätts medvetet, inte som en generell optimering.

Hur man väljer rätt anslutningstyp SAP HANA modellering

Valet av koppling påverkar både korrekthet och körtid, och den snabbaste kopplingen är den SAP HANA behöver aldrig köras. Följande regler täcker de flesta modelleringsbeslut.

  • Referenskoppling — använd den endast när varje rad på ena sidan garanteras ha en partner, eftersom motorn kan utelämna kopplingen helt när ingen kolumn från den kopplade tabellen begärs.
  • Inre koppling — använd den när referensintegritet inte garanteras och omatchade rader måste exkluderas.
  • Vänster yttre skarv — använd den när den första tabellen styr resultatet och saknade huvuddata fortfarande måste visas.
  • Full ytterskarv — använd det sparsamt, eftersom det är det dyraste alternativet och sällan krävs i rapporteringsmodeller.
  • Textkoppling — använd den när en beskrivningskolumn är beroende av inloggningsspråket.

Två nodegenskaper är lika viktiga som själva kopplingstypen. Kardinalitet (1:1, 1:n, n:1 eller n:m) anger för motorn hur många rader som kan förväntas på varje sida, och funktionen Föreslå kardinalitet härleder den från data. Flaggan Optimera kopplingskolumner tillåter sedan SAP HANA för att ta bort en join-kolumn från exekveringsplanen när frågan inte begär den. En felaktig kardinalitet kan tyst multiplicera mått, så den verifieras mot data snarare än antas.

Ytterligare en begränsning formar ny utveckling. Attributvyer och analytiska vyer är föråldrade, och SAP rekommenderar att de konverteras till grafiska beräkningsvyer, så en koppling som designas idag byggs normalt i en beräkningsvykopplings- eller stjärnkopplingsnod. Bakgrund om de äldre objekten är fortfarande användbar när en befintlig modell underhålls, och attributvy och analytisk vy sidorna beskriver hur dessa kopplingar konfigurerades. SAP Läromedel om anslut noder täcker samma beteende i SAP HANA Cloud och det bredare SAP HANA-handledning Serien förklarar var informationsvyer passar in i plattformen.

Vanliga frågor

Kardinalitet (1:1, 1:n, n:1, n:m) anger för motorn hur många matchande rader som kan förväntas på varje sida. Den möjliggör skarvbeskärning och skyddar aggregat. Föreslagen kardinalitet härleder inställningen från data, vilket är säkrare än att gissa.

Det låter SAP HANA tar bort en join-kolumn från exekveringsplanen när klientfrågan aldrig begär den. Färre kolumner innebär färre grupper.pings och snabbare körtider, men resultaten kan ändras om den borttagna kolumnen påverkade aggregeringsnivån.

Befintliga objekt körs fortfarande, men båda vytyperna är föråldrade och kan inte läggas till i nya beräkningsvyer. SAP rekommenderar att de konverteras till grafiska beräkningsvyer, där samma kopplingstyper plus stjärnkoppling och spatial koppling är tillgängliga.

Den måste behålla omatchade rader från båda sidor, så att ingen tabell kan beskäras och varje rad materialiseras. En referentiell koppling kan däremot hoppas över helt när frågan inte begär någon kolumn från den kopplade tabellen.

Språkkolumnen i texttabellen, normalt SPRAS i SAP tabeller, flaggas i kopplingsegenskaperna. SAP HANA filtrerar sedan beskrivningar efter sessionsspråket, så att en modell hanterar varje inloggningsspråk utan en separat vy.

Ja. En kopplingsnod accepterar tabeller, tabellfunktioner och andra beräkningsvyer som datakällor, vilket är hur dimensionsvyer kopplas till en faktatabell. Kolumnnamn kan skilja sig åt eftersom kopplingsvillkoret mappar kolumner explicit.

Maskininlärning profilerar kolumnvärden för att föreslå kopplingsnycklar och kardinalitet, flaggar modeller vars mått ökar efter en koppling och klustrar nästan duplicerade vyer. SAP bäddar även in prediktiva och generativa tjänster i plattformen, så poängsättning körs bredvid den modellerade datan.

Copilot utarbetar standard SQL-kopplingar effektivt och snabbar upp repetitiva SELECT-satser. Den känner inte till ett schemas referensintegritet, så kopplingstyp, kardinalitet och modelleringsalternativ som textjoin behöver fortfarande granskas mot faktiska data.

Sammanfatta detta inlägg med: