Conseils sur le chargement de données et la construction de dimensions

Pour gagner du temps, vous pouvez créer des dimensions incrémentielles dans Essbase et charger des sous-ensembles de données. Pour éviter d'écraser des valeurs consolidées, évitez de charger des données dans les membres parent. Pour éviter les erreurs de traitement des données, assurez-vous que chaque enregistrement de la source comporte le même nombre de champs de valeur de données.

Pour plus d'informations sur le chargement de données et la création de dimensions, reportez-vous aux rubriques suivantes :

Builds de dimension incrémentielle

Pour permettre à Essbase de lire plusieurs sources de données lors de la création de l'outline du cube, utilisez des builds de dimension incrémentielle. Les retards de gradation incrémentiels expliquent la restructuration jusqu'à ce que toutes les sources de données aient été traitées.

Ignorez cette rubrique si vous chargez uniquement des données ou si vous utilisez une source de données unique pour une construction de dimension.

Par défaut, chaque fois que vous apportez des modifications à une outline, Essbase prend en compte le type de modification et restructure le cube si nécessaire. La restructuration reconstitue la base de données, ce qui consomme du temps et de l'espace disque.

Les constructions de dimension incrémentielles, également appelées constructions de dimension de restructuration différée, lisent plusieurs sources de données pour les constructions de dimension et retardent la restructuration jusqu'à ce que toutes les sources de données aient été traitées.

Si vous ajoutez une dimension virtuelle (calcul ou marque comme information seule), toute donnée existante dans le cube est stockée avec le premier membre stocké de niveau 0 dans la nouvelle dimension. Il doit y avoir au moins un membre stocké dans la hiérarchie, sinon une erreur sera renvoyée lors de la vérification de l'outline.

Lorsque vous créez une dimension à un cube existant de façon incrémentielle à l'aide d'un classeur d'application, les données seront automatiquement mises en correspondance avec le nouveau membre supérieur. Il n'est pas possible de choisir un membre stocké avec lequel mettre en correspondance les données existantes. Si la nouvelle dimension dispose d'un membre supérieur de type calcul dynamique, les données sont perdues, car les membres dynamiques ne peuvent pas les stocker.

Lorsque vous utilisez un classeur d'application pour ajouter une nouvelle dimension dans laquelle le membre supérieur est de type calcul dynamique, suivez les étapes suivantes :
  1. Ajoutez la nouvelle dimension avec le membre supérieur comme étant stockée.
  2. Exécutez un script de calcul pour copier les données à partir du nouveau membre supérieur dans un autre membre stocké de cette dimension.
  3. Modifiez le membre supérieur en calcul dynamique.

MaxL vous permet d'inclure toutes les sources de données dans une instruction import. Vous pouvez contrôler si la validation de l'outline est effectuée pour chaque fichier. Vous devez activer la validation de l'outline pour le dernier fichier.

Dans tous les cas, les sources de données sont traitées dans l'ordre dans lequel elles sont répertoriées.

Remarques :

MaxL vous permet d'appliquer ou de supprimer la vérification de l'outline pour chaque fichier. Pour garantir une outline valide, assurez-vous que le dernier build vérifie l'outline.

Emplacement de chargement des données

Avant d'effectuer un chargement de données, prenez des mesures pour empêcher l'écrasement involontaire des données. Evitez de charger des membres parent dans un cube en mode "block storage". Si vous devez le faire, prenez les mesures nécessaires pour vous assurer qu'Essbase ne consolide pas les valeurs #MISSING des enfants dans le parent.

Ignorez cette section si vous créez des dimensions ou utilisez une base de données en mode "aggregate storage" (ASO).

Si vous chargez des données dans un membre parent, lorsque vous calculez la base de données, la consolidation des valeurs de données des enfants peut remplacer la valeur de données parent. Pour empêcher l'écrasement :

  • Si possible, ne chargez pas les données directement dans un parent.

  • Si vous devez charger des données dans un membre parent, assurez-vous qu'Essbase ne peut pas consolider les valeurs #MISSING des enfants du parent dans le parent, en modifiant le paramètre d'agrégation #MISSING.

Vous pouvez définir le comportement d'agrégation manquant à l'aide de MaxL, d'un classeur d'application, de l'outline ou des scripts de calcul.

  • Pour modifier le comportement d'agrégation manquant à l'aide de l'interface Web Essbase, modifiez le paramètre Agréger les valeurs manquantes dans la page de personnalisation de la base de données. Reportez-vous à Définition de propriétés de cube avancées.

  • Pour modifier le comportement d'agrégation manquant à l'aide d'un classeur d'application, modifiez le paramètre Agréger les valeurs manquantes dans la feuille de calcul Cube.Settings.

  • Pour modifier le comportement d'agrégation manquant dans un script de calcul, utilisez la commande de calcul SET AGGMISSG.

  • Pour modifier le comportement manquant de l'agrégat à l'aide de MaxL, utilisez alter database appname.dbname enable|disable aggregate_missing.

Les méthodes mentionnées ci-dessus ne fonctionnent que si les valeurs enfant sont vides (#MISSING). Si les enfants ont des valeurs, celles-ci remplacent les valeurs du parent. Reportez-vous à la section #MISSING Values.

Remarques :

Vous ne pouvez pas charger de données dans des membres de calcul dynamique ou d'attribut. Par exemple, si Year est un membre de calcul dynamique, vous ne pouvez pas y charger de données. Chargez plutôt les données dans les membres Qtr1, Qtr2, Qtr3 et Qtr4, qui ne sont pas des membres Calcul dynamique.

Champs manquants dans les données source

Lors de l'exécution d'un chargement de données Essbase, chaque enregistrement des données source doit avoir le même nombre de champs de valeur de données. Si des valeurs de données sont manquantes, le chargement des données est incorrect.

Si un champ de dimension ou de membre est manquant, Essbase utilise la valeur qu'il a utilisée précédemment pour cette dimension ou ce champ de membre. Voir Chargements de données de débogage et constructions de dimensions.

Si une règle comporte des champs vides supplémentaires, jointez les champs vides avec le champ en regard.

Dans les cubes en mode "aggregate storage", les valeurs ne peuvent être chargées que dans les cellules de niveau 0. Si vous indiquez #MISSING ou #MI comme valeur dans la source, la cellule associée est supprimée, si elle est présente dans le cube.

Pour plus d'informations sur les différences de chargement des données pour les cubes en mode "aggregate storage", reportez-vous aux sections suivantes :

Charger un sous-ensemble d'enregistrements à partir de la source

Vous pouvez charger un sous-ensemble d'enregistrements à partir des données source lors d'un chargement de données ou d'une construction de dimension Essbase.

Pour charger un sous-ensemble d'enregistrements :

  1. A l'aide d'un outil de modification de texte, numérotez les enregistrements dans la source de données.
  2. Définissez la règle de chargement sur ignorer la colonne contenant le numéro d'enregistrement.
  3. Définissez des critères de rejet pour rejeter tous les enregistrements à l'exception de ceux que vous souhaitez charger. Par exemple, rejeter tous les enregistrements pour lesquels la colonne ignorée est inférieure à 250 ou supérieure à 500.

    Vous ne pouvez pas rejeter plus d'enregistrements que le journal d'erreurs ne peut contenir. Par défaut, cette limite est de 1000. Vous pouvez modifier la limite en définissant la configuration DATAERRORLIMIT.