Se joint à SAP HANA : Types, syntaxe et exemples

⚡ Résumé intelligent

SAP Les jointures HANA permettent de connecter les tables et les vues d'informations afin qu'un modèle renvoie exactement les lignes nécessaires à un rapport. Les types de jointures (interne, externe, référentielle, texte, temporelle et spatiale) influent chacun sur les performances, la gestion de la cardinalité et la taille du résultat.

  • 🔗 Portée: Les jointures permettent de lier des tables et des vues d'informations à l'intérieur de modèles graphiques et à l'intérieur d'instructions SQL simples sur la base de données.
  • ☑️ Types standard : Les jointures internes, externes gauches, externes droites et externes complètes se comportent exactement comme en SQL ANSI.
  • ✅ Types de modélisation uniquement : Les jointures référentielles et textuelles n'existent que dans les vues d'informations et n'ont pas d'équivalent en termes de mots clés SQL.
  • 🧪 Nœuds avancés : Les jointures temporelles, spatiales, dynamiques et en étoile étendent les vues de calcul au-delà de la simple correspondance de colonnes.
  • ️ Leviers de performance : La cardinalité et l'indicateur Optimiser les colonnes de jointure déterminent si SAP HANA peut élaguer une table lors de l'exécution.
  • 📈 Modernisation: Les vues d'attributs et analytiques sont obsolètes ; les nouvelles jointures doivent donc être effectuées dans des vues de calcul graphiques.

Types de jointure utilisés pour combiner des tables et des vues d'informations dans SAP HANA

Qu'est-ce que le SAP HANA Vous rejoindre ?

Une participation SAP HANA combine les lignes de deux tables ou plus, ou d'une table et d'une vue d'informations, et renvoie les valeurs requises par la requête. Les jointures sont définies graphiquement dans le nœud de jointure d'une vue d'informations, et elles sont également écrites directement dans les instructions SQL exécutées sur la base de données.

Les deux formes ne sont pas identiques. Une jointure à l'intérieur d'une vue de calcul est exécuté par le SAP Le moteur de calcul HANA peut ignorer une table lorsqu'aucune colonne demandée ne s'y trouve, contrairement à une jointure écrite dans SAP HANASQL est toujours exécuté exactement comme programmé.

Les types de jointures suivants sont disponibles lorsque SAP Les tables et les vues d'informations HANA sont combinées.

Type de jointure Utilisations Commentaires
INNER La jointure interne sélectionne l'ensemble des enregistrements qui correspondent dans les deux tables. Les rangées sans partenaire de chaque côté sont écartées.
JOINT EXTERIEUR GAUCHE La jointure externe gauche sélectionne l'ensemble complet des enregistrements de la première table, avec l'enregistrement correspondant de la deuxième table lorsqu'il existe. Si aucune correspondance n'existe dans la deuxième table, des valeurs nulles sont renvoyées pour ses colonnes.
JOINT EXTÉRIEUR DROIT La jointure externe droite sélectionne l'ensemble complet des enregistrements de la deuxième table, avec l'enregistrement correspondant de la première table lorsqu'il existe. Si aucune correspondance n'existe dans la première table, des valeurs nulles sont renvoyées pour ses colonnes.
JOINTURE EXTÉRIEURE COMPLÈTE Une jointure externe complète sélectionne tous les enregistrements des deux tables. Les lignes non appariées de chaque côté sont complétées par des valeurs nulles.
JOINTURE RÉFÉRENTIELLE Se comporte comme une jointure interne, en supposant que l'intégrité référentielle est maintenue entre les deux tables. Disponible dans les vues d'attributs, les vues analytiques et les nœuds de jointure des vues de calcul.
REJOINDRE LE TEXTE La jointure de texte sélectionne la description spécifique à la langue qui appartient à une clé, en utilisant la colonne de langue de la table de texte. La colonne de langue, généralement SPRAS, doit être signalée dans les propriétés de jointure.

Les jointures référentielles et textuelles sont des types de modélisation uniquement. Elles existent dans le nœud de jointure d'une vue d'information et n'ont pas de mot-clé équivalent en SQL, ce qui explique leur présence dans SAP Modélisation HANA des outils plutôt que dans une instruction SELECT.

SAP Syntaxe des jointures HANA et exemples SQL

Les jointures internes et externes sont écrites en SAP HANA SQL utilise la syntaxe ANSI standard ; par conséquent, une requête testée sur une autre base de données relationnelle s’exécute généralement sans modification. L’exemple ci-dessous joint une table de commandes à une table de clients, puis à une table d’état.

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;

La jointure interne supprime toutes les commandes dont la fiche client est manquante. La jointure externe gauche conserve toutes les commandes restantes, même lorsque le code d'état est dépourvu de description, et renvoie un nom d'état nul pour ces lignes. Échangerping Les deux types de jointure modifient donc le nombre de lignes, et pas seulement le nombre de colonnes affichées.

Les modèles graphiques parviennent au même résultat sans SQL. Un nœud de jointure est placé entre deux sources de données dans l'éditeur de vue, les colonnes qui forment la condition de jointure sont mappées, et le type de jointure ainsi que la cardinalité sont définis dans les propriétés du nœud. SAP Studio Hana L'éditeur et le modeleur basé sur le navigateur génèrent tous deux le code SQL d'exécution à partir de ces paramètres.

Types de jointures avancées dans SAP Vues de calcul HANA

Les vues de calcul ajoutent un comportement de jointure que le SQL standard ne permet pas d'exprimer en un seul mot-clé. Ces options sont configurées sur le nœud de jointure ou via un type de nœud dédié.

Type de jointure Ce qu'il fait Utilisation typique
Jointure temporelle Associe les enregistrements de transactions à la version des données de référence valide à une date donnée, en utilisant les champs « de » et « à » de la source de données de référence. Données de base dépendantes du temps, comme un centre de coûts dont le propriétaire a changé. Le type de jointure doit être référentiel et la clé doit être une date, un horodatage ou un entier.
Jointure spatiale Relie deux sources sur une colonne géométrique avec un prédicat spatial tel que intersecte ou à l'intérieur, au lieu d'une condition d'égalité. Analyse géographique, par exemple en faisant correspondre les emplacements des clients aux zones de vente.
Jointure dynamique Construit la condition de jointure au moment de l'exécution à partir des colonnes de jointure que la requête demande réellement, en agrégeant les colonnes restantes avant l'exécution de la jointure. Jointures multi-colonnes où la granularité de la requête est variable. Au moins une colonne de jointure doit être demandée, sinon la requête échoue.
Rejoignez Star Associe une source de faits à plusieurs vues de calcul de dimensions dans un seul nœud. Modèles en étoile qui remplacent l'ancienne vue analytique.

Une jointure dynamique modifie l'ordre des opérations plutôt que la règle de correspondance. Dans une jointure statique, chaque colonne définie participe à la condition et l'agrégation intervient ensuite ; dans une jointure dynamique, les colonnes non demandées sont agrégées en premier, ce qui renvoie généralement moins de lignes et un total différent. Les deux types de jointures répondent donc à des problématiques métier différentes ; l'activation de cet indicateur est donc délibérée et non une optimisation générale.

Comment choisir le bon type de jointure SAP Modélisation HANA

Le choix de la jointure influe à la fois sur l'exactitude et sur le temps d'exécution, et la jointure la plus rapide est celle qui l'est. SAP HANA n'a jamais besoin d'exécuter de commandes. Les règles suivantes couvrent la plupart des décisions de modélisation.

  • Jointure référentielle — Utilisez cette méthode uniquement lorsque chaque ligne d'un côté a forcément une paire, car le moteur peut omettre complètement la jointure lorsqu'aucune colonne de la table jointe n'est demandée.
  • Jointure interne — Utilisez-le lorsque l'intégrité référentielle n'est pas garantie et que les lignes non appariées doivent être exclues.
  • Jointure externe gauche — Utilisez-le lorsque le premier tableau détermine le résultat et que des données de référence manquantes doivent encore apparaître.
  • Jointure externe complète — Utilisez-le avec parcimonie, car c'est l'option la plus coûteuse et elle est rarement requise dans les modèles de reporting.
  • Jointure de texte — Utilisez-le chaque fois qu'une colonne de description dépend de la langue de connexion.

Deux propriétés des nœuds sont aussi importantes que le type de jointure lui-même. La cardinalité (1:1, 1:n, n:1 ou n:m) indique au moteur le nombre de lignes attendues de chaque côté, et la fonction Propose Cardinality la calcule à partir des données. L'option Optimize Join Columns permet ensuite d'optimiser les colonnes de jointure. SAP HANA supprime une colonne de jointure du plan d'exécution lorsque la requête ne la demande pas. Une cardinalité incorrecte peut entraîner une multiplication silencieuse des mesures ; il est donc préférable de la vérifier par rapport aux données plutôt que de la supposer.

Une autre contrainte influence les nouveaux développements. Les vues d'attributs et les vues analytiques sont obsolètes, et SAP Il est recommandé de les convertir en vues de calcul graphiques ; ainsi, une jointure conçue aujourd’hui est généralement construite dans un nœud de jointure de vue de calcul ou de jointure en étoile. Les informations sur les anciens objets restent utiles lors de la maintenance d’un modèle existant. vue d'attribut et vue analytique Ces pages décrivent comment ces jointures ont été configurées. SAP Matériel pédagogique sur nœuds de jonction couvre le même comportement dans SAP HANA Cloud et l'ensemble de ses fonctionnalités SAP Tutoriel HANA Cette série explique comment les vues d'information s'intègrent à la plateforme.

FAQ

La cardinalité (1:1, 1:n, n:1, n:m) indique au moteur le nombre de lignes correspondantes attendues de chaque côté. Elle permet l'élagage des jointures et protège les agrégats. La cardinalité proposée est calculée à partir des données, ce qui est plus sûr qu'une estimation.

Il permet SAP HANA supprime une colonne de jointure du plan d'exécution lorsque la requête client ne la demande jamais. Moins de colonnes signifie moins de groupespingdes temps d'exécution plus rapides, mais les résultats peuvent changer si la colonne supprimée a influencé le niveau d'agrégation.

Les objets existants fonctionnent toujours, mais les deux types de vues sont obsolètes et ne peuvent pas être ajoutés aux nouvelles vues de calcul. SAP recommande de les convertir en vues de calcul graphiques, où les mêmes types de jointure, ainsi que la jointure en étoile et la jointure spatiale, sont disponibles.

Il est impératif de conserver les lignes non appariées des deux côtés, afin qu'aucune table ne soit élaguée et que chaque ligne soit matérialisée. À l'inverse, une jointure référentielle peut être totalement ignorée lorsque la requête ne demande aucune colonne de la table jointe.

La colonne de langue du tableau de texte, normalement SPRAS dans SAP les tables sont signalées dans les propriétés de jointure. SAP HANA filtre ensuite les descriptions en fonction de la langue de session, de sorte qu'un seul modèle sert pour toutes les langues de connexion sans vue séparée.

Oui. Un nœud de jointure accepte les tables, les fonctions de table et d'autres vues de calcul comme sources de données ; c'est ainsi que les vues de dimension sont associées à une table de faits. Les noms de colonnes peuvent différer, car la condition de jointure mappe explicitement les colonnes.

L'apprentissage automatique analyse les valeurs des colonnes pour suggérer les clés de jointure et la cardinalité, signale les modèles dont les mesures augmentent après une jointure et regroupe les vues quasi-dupliquées. SAP Elle intègre également des services prédictifs et génératifs à la plateforme, de sorte que le système de notation fonctionne en parallèle des données modélisées.

Copilot génère efficacement des jointures SQL standard et accélère les requêtes SELECT répétitives. Il ne connaît pas l'intégrité référentielle d'un schéma ; par conséquent, le type de jointure, la cardinalité et les options de modélisation uniquement, telles que la jointure textuelle, doivent être comparés aux données réelles.

Résumez cet article avec :