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