Loading

Des mesures d'agrégation incorrectes sont retournées lors de l'exécution d'une requête depuis une connexion SAP HANA en direct

Date de publication: Aug 24, 2022
Description
Lorsque vous utilisez une connexion en direct à une vue SAP HANA, vous notez que les valeurs des mesures agrégées dans vos requêtes sont incorrectes. Par contre, ces résultats de requêtes sont corrects lorsque vous utilisez une connexion à un extrait.

Cause

Lorsque Hana traite des requêtes SQL pour une vue de calcul créée à l'aide d'un nœud Agrégation, il peut effectuer des calculs en utilisant des valeurs agrégées, où, dans une sémantique SQL standard, des valeurs détaillées seraient utilisées. Par exemple, pour un champ calculé défini dans Tableau en tant que prix*quantité, le calcul effectué par Hana peut être SUM(prix)*SUM(quantité) au lieu de SUM(prix*quantité).

Les vues de calcul se trouvent dans le schéma « _SYS_BIC ».

Avec le niveau de journal « débogage » ou supérieur, lorsque Tableau se connecte à une vue de calcul, il enregistre une ligne avec le message suivant : « HanaConnection::CheckAnalyticView: Detected an analytic view of type CALC » (Détection d'une vue analytique de type CALC).
Résolution
Ce comportement est dicté par la configuration de la vue dans Hana Studio. S'il s'agit d'une vue de calcul incluant un nœud d'agrégation, modifiez la vue dans Hana Studio en activant l'option « Conserver l'indicateur » pour toutes les colonnes dans le nœud d'agrégation qui font partie de la clé primaire de données.Hana traitera alors les requêtes avec un niveau de détail qui inclut ces colonnes.

S'il n'est pas possible de modifier la vue, essayez l'une des solutions suivantes :

Option 1

Utilisez un extrait au lieu d'une connexion en direct, en veillant à inclure toutes les dimensions qui font partie de la clé primaire des données.

Option 2

Évitez d'utiliser des Vues SAP HAPA comme source de données. Au lieu de cela, utilisez la table d'origine à partir de laquelle la vue a été créée.

Option 3

(Notez que cette troisième solution peut avoir une incidence sur les performances)
Le comportement d'agrégation peut être contourné en effectuant une opération « SELECT * » dans la vue. Vous pouvez dans ce cas utiliser une connexion de données SQL personnalisée (par opposition à une connexion directe à une vue). Par exemple :
  • Supposons une vue analytique appelée "User/SUPERSTORE_AV"
  • SQL personnalisé serait alors SELECT * FROM "_SYS_BIC"."User/SUPERSTORE_AV"
Numéro d’article de la base de connaissances

001472896

 
Chargement
Salesforce Help | Article