Messages d’erreur lors de la tentative de traitement d’une base de données ou d’un cube dans SQL Server 2005 Analysis Services : « la clé d’attribut est introuvable » et « l’enregistrement a été ignoré car la clé d’attribut est introuvable »


Symptômes


Dans Microsoft SQL Server 2005 Analysis Services, vous essayez de traiter un cube ou une base de données à l’aide de SQL Server Business Intelligence Development Studio ou SQL Server Management Studio. Toutefois, l’opération échoue et les messages d’erreur suivants s’affichent :
Message d’erreur 1
Erreurs dans le moteur de stockage OLAP : la clé d’attribut est introuvable : table : TableName, Column : ColumnName1, value : valeur1. Table : TableName, Column : columnname2, value : valeur2.
Message d’erreur 2
Erreurs dans le moteur de stockage OLAP : l’enregistrement a été ignoré car la clé d’attribut est introuvable. Attribut : attribut généré X de dimension : DimensionName à partir de la base de données : DatabaseName, cube : CubeName, groupe de mesures : MeasureGroupName, partition : PartitionName, enregistrement : recordNumber.

Cause


Ce problème se produit car une table de faits pour un cube comporte un ou plusieurs enregistrements qui contiennent une clé d’attribut, et cette clé d’attribut n’existe pas dans la table de dimension correspondante. Ce comportement est susceptible de se produire lorsque vous n’avez pas traité la dimension correspondante avant de traiter le cube ou lorsque les tables sous-jacentes contiennent réellement des données qui ne correspondent pas. Si le champ "value :" du message n’a pas de numéro après, la table de faits doit contenir des données null.

Résolution


Pour résoudre ce problème, vous devez vérifier que votre source de données pointe vers les emplacements suivants :
  • Instance de source de données sous-jacente correcte, telle qu’une instance de SQL Server 2005
  • La base de données correcte.
Corrigez ensuite les enregistrements sous-jacents qui contiennent la clé d’attribut problématique. Pour cela, appliquez l’une des méthodes suivantes :

Utiliser une clé d’attribut existante

Mettez à jour les enregistrements de manière à utiliser une clé d’attribut existante en exécutant une instruction semblable à ce qui suit :
Update <TableName> set <KeyName>=<ExistingKeyValue> where <KeyName>=<BadKeyValue> or <KeyName> IS NULL

Faire correspondre les valeurs clés dans la table de faits

Insérez des lignes supplémentaires dans la table de dimension pour correspondre aux valeurs de clés de la table de faits. Si des valeurs NULL existent, utilisez l’une des méthodes suivantes :
  • Remplacer les valeurs NULL par des valeurs réelles.
  • Configurez la ou les dimensions de sorte qu’elles aient un membre inconnu en définissant les propriétés UnknownMember et UnknownMemberName . Vous pouvez faire en sorte que le membre inconnu soit visible ou masqué selon vos besoins. Pour plus d’informations sur la façon de définir le membre inconnu, visitez le site Web Microsoft Developer Network (MSDN) suivant :
  • Utilisez les paramètres suivants dans la boîte de dialogue modifier les paramètres :
    • Définissez la propriété KeyErrorAction sur ConvertToUnknown.
    • Définissez la propriété NullKeyNotAllowed sur IgnoreError ou ReportAndContinue.
    • Définissez la propriété NullKeyConvertedtoUnknown sur IgnoreError ou ReportAndContinue.
    • Cliquez sur ignorer le nombre d’erreurs.
    Vous pouvez définir ces paramètres à l’échelle de l’instance ou vous pouvez utiliser une configuration personnalisée pour chaque dimension.

Ignorer l’erreur

Si vous souhaitez traiter la base de données ou le cube sans corriger les données, vous pouvez définir la configuration d’erreur pour l’opération de processus afin d’ignorer l’erreur. Vous devez effectuer cette opération uniquement dans le cadre d’une solution de contournement temporaire lorsque vous réparez les données sous-jacentes. Dans le cas contraire, il est possible que vous receviez des résultats inattendus des requêtes MDX. Pour ignorer les erreurs, procédez comme suit :
  1. Dans la boîte de dialogue processus de la base de données- DatabaseName ou cube de processus- CubeName , cliquez sur modifier les paramètres.
  2. Dans la boîte de dialogue modifier les paramètres , cliquez sur l’onglet Erreurs de clé de dimension .
  3. Cliquez sur utiliser une configuration d’erreur personnalisée.
  4. Dans la liste clé introuvable , remplacez la valeur par défaut de Report et continuez par ignorer l’erreur.
  5. Cliquez sur ignorer le nombre d’erreurs.
  6. Cliquez sur OK pour fermer la boîte de dialogue modifier les paramètres .
  7. Cliquez sur OK pour traiter la base de données ou le cube.
Par ailleurs, vous pouvez définir la configuration d’erreur pour le cube ou la partition pour ignorer l’erreur. Pour plus d’informations, reportez-vous au site web MSDN à l’adresse suivante :

Statut


Ce comportement est inhérent au produit.