la clé d'attribut ssas ne peut pas être trouvée même si elle existe et n'est pas due à des doublons
j'essayais de reconstruire mon cube après avoir fait quelques changements l'autre jour aux noms de table/colonne dans les tables de fait et de dimension.
le cube de processus action a continué à retourner le message d'erreur suivant:
la clé d'attribut ne peut pas être trouvée lors du traitement: Table: "Myfactttablename", Colonne: "MyDimensionKey", Valeur: "SomeValue". Le attribut "MyDimensionKey".
l'autre les réponses à des questions similaires se référaient à des attributs avec des valeurs dupliquées, et les cas où la valeur de l'attribut était nulle dans la ou manquante dans la Dimension ou la table Fact.
exemples de messages connexes:
il n'y avait pas de duplicata valeurs dans mon cas et la valeur de l'attribut ne manquait ni dans le tableau des faits ni dans le tableau des dimensions.
heureusement l'information dans ce post ici résolu mon problème.
il a été suggéré de traiter la Dimension affectée par elle-même, puis de traiter le groupe de mesure affecté.
savez-vous pourquoi cela se produit, comment je pourrais reproduire ceci? Je voudrais savoir si je peux l'éviter la prochaine fois, ou alors que il ne réapparaît pas au mauvais moment en déployant une mise à niveau dans l'environnement de production.
Merci d'avance pour votre aide.
EDIT: j'utilise SSAS-2008, et l'erreur s'est produite en essayant de traiter le cube à partir de within BIDS-2008.
5 réponses
cela se produit parce que votre groupe de mesure est traité avant les dimensions correspondantes. Les SSA rencontrent une clé étrangère qui est utilisée pour se rapporter à une dimension du cube, mais la clé n'est pas connue de la dimension elle-même.
la cause profonde de cette erreur: il y a une clé qui est présente dans votre table de fait, qui à son tour n'est pas présente dans votre table de dimensions (idéalement ce qui ne devrait pas être le cas) Essayez les étapes suivantes:
-
traiter vos dimensions avant de traiter les groupes de mesures
-
si votre "une valeur" est 0, alors essayez d'ajouter la ligne par défaut (0th) dans votre table de dimensions et en fait table essayer de mettre ISNULL (MyDimensionKey,0)
-
si plus de 2 solutions ne fonctionnent pas, essayez ceci: A. Cliquez avec le bouton droit de la souris sur votre cube db, passez à" process "> > " modifier le paramètre" B. Aller à l'onglet" Erreurs clés de Dimension" C. Cochez le bouton radio "utiliser la configuration d'erreur personnalisée" D. Cochez le bouton radio "ignorer le nombre d'erreurs". Pour "Touche pas trouvé", sélectionnez "Ignorer l'erreur". De la même manière, pour "clé nulle non autorisée", sélectionnez également "ignorer l'erreur". E. Cliquez sur OK et essayez de traiter votre cube
ce qui me vient à l'esprit c'est qu'il y a deux enregistrements dans ma base de données sous-jacente," ABC "et" abc", la clause distincte les rend comme enregistrement 1 ("ABC") puisque mon serveur sql n'est pas sensible à la casse, mais le service SSAS est sensible à la casse dans mon cas, donc la valeur d'attribut" abc " ne peut pas trouver sa clé lors du traitement du cube. HIH
j'ai eu un problème avec une erreur similaire, la raison en était que j'avais changé le nom de la Table à une vue avec le même nom, mais le DSV ou les dimensions ne pouvaient pas automatiquement ajuster ce changement.
J'ai donc dû mettre à jour manuellement les champs derrière chaque attribut de dimensions.
It can be done in each dimension attribut's properties: Source > > KeyColumns>> "Attribuename"> > Source> > TableID, columnID
Tester cela, nous allons commencer minuscule comme cette Dimension:
C'était ma solution: