Si unisce SAP HANA: Tipologie, sintassi ed esempi

โšก Riepilogo intelligente

SAP HANA collega tabelle e viste informative in modo che un modello restituisca esattamente le righe necessarie a un report. I tipi interni, esterni, referenziali, testuali, temporali e spaziali influenzano le prestazioni, la gestione della cardinalitร  e le dimensioni del risultato.

  • ๐Ÿ”— Scopo: Consente di unire tabelle e viste informative all'interno di modelli grafici e all'interno di semplici istruzioni SQL sul database.
  • โ˜‘๏ธ Tipologie standard: Le join interne, esterne sinistre, esterne destre e complete si comportano esattamente come nello standard ANSI SQL.
  • โœ… Tipi solo di modellazione: Le join referenziali e testuali esistono solo all'interno delle viste informative e non hanno un equivalente tramite parola chiave SQL.
  • ๐Ÿงช Nodi avanzati: Le join temporali, spaziali, dinamiche e a stella estendono le visualizzazioni di calcolo oltre la semplice corrispondenza di colonne.
  • ๏ธ Leve prestazionali: La cardinalitร  e il flag Ottimizza colonne di unione decidono se SAP HANA รจ in grado di eliminare dati da una tabella in fase di esecuzione.
  • ๐Ÿ“ˆ Modernizzazione: Le viste attributive e analitiche sono deprecate, pertanto le nuove join vanno inserite nelle viste di calcolo grafiche.

Tipi di join utilizzati per combinare tabelle e viste informative in SAP HANA

Cosa รจ SAP HANA Partecipare?

Un'unione SAP HANA combina righe provenienti da due o piรน tabelle, oppure da una tabella e una vista informativa, e restituisce i valori richiesti dalla query. Le join vengono definite graficamente nel nodo join di una vista informativa e possono anche essere scritte direttamente in istruzioni SQL eseguite sul database.

Le due forme non sono identiche. Un'unione all'interno di un vista di calcolo viene eseguito dal SAP Motore di calcolo HANA, che puรฒ saltare una tabella quando non viene richiesta alcuna colonna, mentre un join scritto in SAP HANASQL viene sempre eseguito esattamente come codificato.

I seguenti tipi di join sono disponibili quando SAP Le tabelle HANA e le viste informative vengono combinate.

Tipo di unione si utilizza Commento
INTERNO L'operazione di inner join seleziona l'insieme di record corrispondenti presenti in entrambe le tabelle. Le righe senza un compagno su entrambi i lati vengono scartate.
UNIONE ESTERNO SINISTRO L'operazione Left Outer Join seleziona l'intero set di record dalla prima tabella, includendo il record corrispondente dalla seconda tabella, laddove disponibile. Se nella seconda tabella non viene trovata alcuna corrispondenza, vengono restituiti valori nulli per le relative colonne.
GIUNZIONE ESTERNA DESTRA L'operazione Right Outer Join seleziona l'intero set di record dalla seconda tabella, includendo il record corrispondente dalla prima tabella, laddove disponibile. Se nella prima tabella non viene trovata alcuna corrispondenza, vengono restituiti valori nulli per le relative colonne.
COMPLETO ESTERNO JOIN Un'operazione di full outer join seleziona tutti i record da entrambe le tabelle. Le righe non corrispondenti, da entrambi i lati, vengono riempite con valori nulli.
ISCRIZIONE REFERENZIALE Si comporta come un inner join, presupponendo che l'integritร  referenziale sia mantenuta tra le due tabelle. Disponibile nei nodi di collegamento delle viste attributo, delle viste analitiche e delle viste di calcolo.
TESTO UNISCITI L'operazione di join del testo seleziona la descrizione specifica della lingua associata a una chiave, utilizzando la colonna della lingua della tabella di testo. La colonna della lingua, solitamente SPRAS, deve essere selezionata nelle proprietร  dell'unione.

Le join referenziali e testuali sono tipi solo di modellazione. Esistono nel nodo join di una vista informativa e non hanno una parola chiave equivalente in SQL, motivo per cui appaiono in SAP Modellazione HANA strumenti piuttosto che in un'istruzione SELECT.

SAP Sintassi di join e esempi SQL in HANA

Le giunzioni interne ed esterne sono scritte in SAP HANA SQL utilizza la sintassi ANSI standard, quindi una query testata su un altro database relazionale in genere viene eseguita senza modifiche. L'esempio seguente unisce una tabella degli ordini di vendita a una tabella dei clienti e quindi a una tabella degli stati.

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;

L'inner join elimina tutti gli ordini di vendita per i quali manca il record anagrafico del cliente. Il left outer join mantiene tutti gli ordini rimanenti anche quando il codice dello stato non ha una descrizione e restituisce un nome di stato nullo per quelle righe. Scambioping I due tipi di join modificano quindi il numero di righe, non solo le colonne visualizzate.

I modelli grafici raggiungono lo stesso risultato senza SQL. Un nodo di join viene posizionato tra due origini dati nell'editor della vista, le colonne che formano la condizione di join vengono mappate e il tipo di join e la cardinalitร  vengono impostati nelle proprietร  del nodo. SAP Studio HANA Sia l'editor che il modellatore basato su browser generano il codice SQL in fase di esecuzione a partire da tali impostazioni.

Tipi di join avanzati in SAP Viste di calcolo HANA

Le viste di calcolo aggiungono un comportamento di join che il semplice SQL non esprime con una singola parola chiave. Queste opzioni vengono configurate sul nodo di join o tramite un tipo di nodo dedicato.

Tipo di unione Ciรฒ che fa Utilizzo tipico
Giunzione temporale Associa i record delle transazioni alla versione dei dati anagrafici valida in una determinata data, utilizzando i campi "da" e "a" dell'origine dati anagrafici. Dati anagrafici dipendenti dal tempo, come ad esempio un centro di costo che ha cambiato proprietario. Il tipo di join deve essere referenziale e la chiave deve essere una data, un timestamp o un numero intero.
Unione spaziale Unisce due sorgenti su una colonna geometrica utilizzando un predicato spaziale come interseca o รจ interno, anzichรฉ una condizione di uguaglianza. Analisi geografica, ad esempio l'abbinamento della posizione dei clienti ai territori di vendita.
Unione dinamica Crea la condizione di join in fase di esecuzione a partire dalle colonne di join effettivamente richieste dalla query, aggregando le colonne rimanenti prima dell'esecuzione del join. Join su piรน colonne in cui la granularitร  della query varia. รˆ necessario richiedere almeno una colonna di join, altrimenti la query fallisce.
Star unisciti Consente di collegare un'unica origine dati a diverse viste di calcolo dimensionale in un singolo nodo. Modelli a schema stellare che sostituiscono la vecchia vista analitica.

Un join dinamico modifica la sequenza delle operazioni anzichรฉ la regola di corrispondenza. In un join statico, ogni colonna definita partecipa alla condizione e l'aggregazione avviene successivamente; in un join dinamico, le colonne non richieste vengono aggregate per prime, il che di solito restituisce un numero inferiore di righe e un totale diverso. I due metodi rispondono quindi a esigenze aziendali diverse, pertanto l'opzione viene impostata intenzionalmente, non come ottimizzazione generale.

Come scegliere il tipo di giunzione corretto in SAP Modellazione HANA

La selezione dell'unione influisce sia sulla correttezza che sul tempo di esecuzione, e l'unione piรน veloce รจ quella SAP HANA non deve mai eseguire nulla. Le seguenti regole coprono la maggior parte delle decisioni di modellazione.

  • Unione referenziale โ€” Utilizzalo solo quando รจ garantito che ogni riga su un lato abbia una colonna corrispondente, perchรฉ il motore potrebbe omettere completamente l'unione se non viene richiesta alcuna colonna dalla tabella unita.
  • Unione interna โ€” Utilizzalo quando l'integritร  referenziale non รจ garantita e le righe non corrispondenti devono essere escluse.
  • Giunto esterno sinistro โ€” utilizzalo quando la prima tabella determina il risultato e i dati master mancanti devono ancora essere visualizzati.
  • Unione esterna completa โ€” usatelo con parsimonia, poichรฉ รจ l'opzione piรน costosa e raramente รจ richiesta nei modelli di reporting.
  • Unione di testo โ€” Utilizzalo ogni volta che una colonna di descrizione dipende dalla lingua di accesso.

Due proprietร  del nodo sono importanti quanto il tipo di join stesso. La cardinalitร  (1:1, 1:n, n:1 o n:m) indica al motore quante righe aspettarsi su ciascun lato e la funzione Proponi cardinalitร  la ricava dai dati. Il flag Ottimizza colonne di join consente quindi SAP HANA rimuove una colonna di join dal piano di esecuzione quando la query non la richiede. Una cardinalitร  errata puรฒ moltiplicare silenziosamente le misure, quindi viene verificata rispetto ai dati anzichรฉ essere presunta.

Un ulteriore vincolo modella il nuovo sviluppo. Le viste attributo e le viste analitiche sono deprecate e SAP raccomanda di convertirli in viste di calcolo grafiche, quindi un join progettato oggi viene normalmente costruito in un join di vista di calcolo o in un nodo di join a stella. Le informazioni di base sugli oggetti piรน vecchi sono ancora utili quando si mantiene un modello esistente e il vista attributi and vista analitica le pagine descrivono come sono state configurate quelle unioni. SAP Materiale didattico su nodi di collegamento copre lo stesso comportamento in SAP HANA Cloud e il piรน ampio SAP Tutorial su HANA La serie spiega dove si collocano le visualizzazioni delle informazioni all'interno della piattaforma.

DOMANDE FREQUENTI

La cardinalitร  (1:1, 1:n, n:1, n:m) indica al motore quante righe corrispondenti aspettarsi su ciascun lato. Consente la potatura delle join e protegge le aggregazioni. La cardinalitร  proposta deriva l'impostazione dai dati, il che รจ piรน sicuro rispetto a una stima approssimativa.

Permette SAP HANA elimina una colonna di join dal piano di esecuzione quando la query del client non la richiede mai. Meno colonne significano meno gruppipinge tempi di esecuzione piรน rapidi, ma i risultati possono cambiare se la colonna rimossa ha influenzato il livello di aggregazione.

Gli oggetti esistenti sono ancora funzionanti, ma entrambi i tipi di visualizzazione sono obsoleti e non possono essere aggiunti alle nuove visualizzazioni di calcolo. SAP Si consiglia di convertirli in viste di calcolo grafiche, dove sono disponibili gli stessi tipi di join, oltre al join a stella e al join spaziale.

Deve mantenere le righe non corrispondenti da entrambi i lati, quindi nessuna tabella puรฒ essere eliminata e ogni riga viene materializzata. Un join referenziale, al contrario, puรฒ essere completamente saltato quando la query non richiede alcuna colonna dalla tabella unita.

La colonna della lingua della tabella del testo, normalmente SPRAS in SAP tabelle, รจ contrassegnato nelle proprietร  di join. SAP HANA filtra quindi le descrizioni in base alla lingua della sessione, in modo che un singolo modello possa gestire tutte le lingue di accesso senza bisogno di una vista separata.

Sรฌ. Un nodo di join accetta tabelle, funzioni di tabella e altre viste di calcolo come origini dati, ed รจ cosรฌ che le viste di dimensione vengono collegate a una tabella dei fatti. I nomi delle colonne possono essere diversi, poichรฉ la condizione di join mappa esplicitamente le colonne.

L'apprendimento automatico analizza i valori delle colonne per suggerire chiavi di join e cardinalitร , segnala i modelli le cui misure aumentano dopo un join e raggruppa le viste quasi duplicate. SAP Inoltre, la piattaforma integra servizi predittivi e generativi, consentendo cosรฌ l'elaborazione dei punteggi in parallelo con i dati modellati.

Copilot crea join SQL standard in modo competente e velocizza le istruzioni SELECT ripetitive. Non conosce l'integritร  referenziale di uno schema, quindi il tipo di join, la cardinalitร  e le opzioni di sola modellazione come il join testuale devono comunque essere verificate rispetto ai dati effettivi.

Riassumi questo post con: