Petits pièges de la colonne de texte libre en attribut de dimension dans SSAS

La petite anomalie retorde de la semaine nous vient de la colonne de texte libre montée en attribut de dimension dans SSAS.

Exemple de texte libre par David Stewart

Pour un peu de contexte sur le sujet, voir cet article de David Stewart, ou ce topic sur StackOverflow.

L’erreur usuelle dans cette situation c’est d’avoir la valeur NULL corrigée automatiquement par SSAS en chaîne vide (‘’), en conflit avec une éventuelle chaîne vide déjà existante. SSAS crie alors au loup à travers un message relativement clair (« Duplicate attribute key ») qu’on apprend vite à reconnaître.

Aujourd’hui j’ai eu droit à un bonus (« Attribute key not found »), dans le même contexte. Le conflit venait de la chaîne composée d’un espace ‘ ‘ avec la chaîne vide ‘’. En effet malgré la propriété de Key Column Trimming de l’attribut passé à « None » (indiquant en théorie à SSAS de préserver les espaces), l’attribut ‘ ’ disparaissait lors du process de la dimension.

A mon sens un trimming implicite a lieu durant l’une des opérations du process, mais pas toutes. Arrive un moment où SSAS ne retrouve plus ses petits, et c’est le drame. Si un ninja de SSAS veut nous en dire plus, c’est avec plaisir 🙂

La correction est  simple : effectuer le Trimming explicitement (Right ou LeftRight), ainsi tous les accès à la valeur se feront de la même manière et SSAS arrivera à linker tout le monde. S’il vous faut préserver la valeur espace, je vous laisse jouer avec les différentes valeurs des propriétés de colonne clef, ainsi qu’avec les différentes collations de vos serveurs, mais j’ai bien peur que ce soit un bug (j’ai la flemme de chercher sur le connect…). Si par contre c’est juste la différenciation entre les 2 valeurs que vous voulez préserver, n’hésitez pas à corriger la valeur ‘ ’ en par exemple ‘(space)’ dès l’ETL.

D’une manière générale, je vous recommande les settings suivants pour vos colonnes d’attributs en texte libre (sauf la collation, évidemment, il faut s’adapter à la source ;)) :

SSAS - Free Text Dimension Attribute Properties

N’hésitez pas à m’indiquer vos astuces, et amusez-vous bien 😉

4 commentaires sur « Petits pièges de la colonne de texte libre en attribut de dimension dans SSAS »

  1. Ah ces petites erreurs vicieuses de process SSAS qui peuvent nous faire perdre un temps précieux…
    Pour ma part, j’ai tendance à gérer tout çà dans l’ETL (null values, trimming, etc …) de façon à ne pas laisser la gestion à SSAS (un peu comme pour les Unknown Members).

  2. Tu as entièrement raison Fred! Direction l’ETL tout ça!
    Mais évidemment j’arrive après la bataille, et en plus le service ETL est traité par une autre équipe 😥

  3. Je viens de tomber sur le même problème…
    Un attribut simplement lié à la clef, le TRIM par défaut sur Right et une ligne avec mon attribut de ville correct, l’autre avec des espaces en fin de chaine.

    Je vais aller modifier cela dans les vues.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s