Une table de faits dans Autonomous Data Warehouse stocke les données du cube Essbase qui dispose d'une partition fédérée. Si vous ne disposez pas de table de faits répondant aux exigences pour les partitions fédérées, vous devez en créer une. Vous devez également comprendre ce qu'est une dimension de pivot afin de pouvoir en sélectionner une à partir de votre cube Essbase.
Avant de commencer cette section, créez un cube et une application Essbase, si vous n'en avez pas déjà.
Pour les partitions fédérées, la table de faits stocke les valeurs de données du cube Essbase. Si vous ne disposez pas de la table de faits requise dans Autonomous Data Warehouse, vous devez en créer une.
Avant de commencer, vérifiez que vous disposez d'un schéma vide pour la table de faits. Reportez-vous à Création d'un schéma pour les partitions fédérées.
La table de faits doit être formatée de manière compatible avec Essbase, ce qui signifie qu'elle doit répondre aux exigences suivantes pour son contenu et sa forme :
Chacune des dimensions (de non-attribut) du cube doit être représentée sous la forme d'un seul en-tête de colonne, à l'exception d'une des dimensions du cube (généralement celle qui contient les mesures/comptes), que vous devez faire pivoter en deux colonnes ou plus.
Remarque :
La dimension pivotée est appelée dimension de pivot dans le reste de la documentation.
La table de faits doit comporter des enregistrements uniques (pas de doublons), avec une ligne par séquence de croisements de cellules Essbase.
Si vous connaissez les exports de données Essbase, vous remarquerez que la forme de la table de faits est semblable à un export de colonnes Essbase.
Comme un export de colonnes, la table de faits doit inclure les éléments suivants :
Une colonne par dimension (de non-attribut) de l'outline (à l'exception de la dimension de pivot).
Une colonne par membre stocké de la dimension de pivot.
Voici un exemple de table de faits dans laquelle la dimension de mesures a été pivotée, ce qui signifie qu'elle est la dimension de pivot. La dimension de pivot a une incidence sur la forme de la table de faits car les membres stockés de cette dimension deviennent des en-têtes de colonne : SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY et ADDITIONS.
Vous pouvez construire la table de faits à l'aide de code SQL ou vous pouvez la créer à partir d'un export de données Essbase. Vous pouvez charger des données dans la table de faits à l'aide d'outils Autonomous Data Warehouse ou de la fonctionnalité de chargement de données Essbase.
Voici quelques instructions supplémentaires concernant la construction d'une table de faits :
La table de faits doit contenir moins de 1 000 colonnes.
N'incluez pas des colonnes qui seront mappées avec des dimensions d'attribut dans Essbase.
La précision de la table de faits ne doit pas être inférieure à binary64 d'IEEE (double).
La table de faits doit comporter des chaînes internationalisées pour les membres de dimension, via le type NVARCHAR2, avec une longueur de caractères de 1 024 bits.
Exemple de création de table de faits
Pour créer une table de faits dans Autonomous Data Warehouse, vous pouvez utiliser du code SQL.
A l'aide de SQL Developer ou de l'outil de votre choix, connectez-vous à Autonomous Data Warehouse en tant que propriétaire du schéma (à partir de l'étape Création d'un schéma pour les partitions fédérées).
Utilisez SQL pour créer la table de faits, si vous n'en avez pas encore.
Par exemple, le code SQL suivant crée une table de faits à partir d'un export de données provenant du cube Essbase Sample Basic.
CREATE TABLE "SAMP_FACT" ( "PRODUCT" NVARCHAR2(1024), "MARKET" NVARCHAR2(1024), "YEAR" NVARCHAR2(1024), "SCENARIO" NVARCHAR2(1024), "SALES" NUMBER(38,0), "COGS" NUMBER(38,0), "MARKETING" NUMBER(38,0), "PAYROLL" NUMBER(38,0), "MISC" NUMBER(38,0), "INITIAL_INVENTORY" NUMBER(38,0), "ADDITIONS" NUMBER(38,0) ) NOCOMPRESS LOGGING PARALLEL 4;
Remarques
Dans l'exemple ci-dessus, le nom de la table de faits est SAMP_FACT, et elle repose sur Sample Basic.
Pour améliorer les performances, toutes les colonnes non numériques de la table de faits doivent être de type NVARCHAR2(1024) et toutes les colonnes numériques, de type NUMBER.
Oracle recommande d'activer la création parallèle de l'index dans Autonomous Data Warehouse, par l'ajout de PARALLEL 4.
Les colonnes de métadonnées ne doivent pas autoriser l'inclusion de valeurs NULL.
Oracle recommande NOCOMPRESS lorsque l'utilisation du cube comprend des processus génératifs de données tels que des chargements de données incrémentiels ou des mises à jour de script par lot. Si le cube est principalement utilisé dans des opérations de lecture, utilisez COMPRESS afin d'optimiser la table de faits pour la génération de rapports.
Si vous obtenez l'erreur de validation suivante lors de la création de la table de faits, supprimez les lignes NULL.
ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in dimension("<Name_of_Column") star table key column
Pour améliorer les performances, n'ajoutez pas de contrainte spécifique à la table si vous n'en avez pas absolument besoin.
Dans l'exemple ci-dessus, le nom de la table de faits repose sur Sample Basic, disponible dans la galerie du catalogue de fichiers Essbase. Vous pouvez exporter les données de ce cube échantillon ou de tout autre cube Essbase, et les charger afin de construire une table de faits. A cette fin, vous devez configurer les informations d'identification pour le chargement de données vers une application de partition fédérée. Reportez-vous à Chargement de données de partition fédérée pour configurer les informations d'identification et en savoir plus sur la procédure d'export de données au format SGBD à l'aide de la commande DATAEXPORT.
Dans le cadre de la conception d'une partition fédérée, vous devez sélectionner la dimension de pivot. La dimension de pivot est une dimension désignée à partir de l'outline de cube Essbase pour représenter des valeurs de données numériques.
La dimension de pivot peut consister en des mesures/comptes, mais pas forcément.
Tous les membres stockés de la dimension de pivot doivent être mappés avec les colonnes de table de faits qui représentent vos valeurs de données numériques dans Autonomous Data Warehouse.
Si vous devez exécuter des scripts de calcul en mode "block storage" (BSO) Essbase, sélectionnez une dimension dense comme dimension de pivot. Les scripts de calcul ne sont pas pris en charge pour les partitions fédérées si la dimension de pivot est dispersée.
La dimension de pivot doit comporter des noms de membre relativement statiques et un nombre peu élevé de membres. En effet, si vous modifiez la dimension de pivot dans l'outline de cube Essbase (par exemple, en ajoutant ou en renommant des membres stockés), des mises à jour correspondantes doivent être effectuées manuellement dans la table de faits d'Autonomous Data Warehouse. Vous devez également recréer la partition fédérée.
Les dimensions Essbase incluant des membres qui requièrent des formules dynamiques complexes (comme "Opening Inventory" et "Ending Inventory", dans l'exemple de Sample Basic) ne doivent pas être sélectionnées en tant que dimension de pivot.
Vous fournissez la dimension de pivot sélectionnée au moment de la création d'une partition fédérée.
La limite d'Oracle Database est de 1 000 colonnes et la dimension de pivot hérite de cette limite. Déterminez le nombre de membres de colonne admissibles dans la dimension de pivot pour être sûr de ne pas atteindre cette limite. La somme du nombre de combinaisons potentielles de membres stockés dans la dimension de pivot et du nombre de dimensions dans le cube doit être inférieure ou égale à 1 000.
Pour les cubes en mode "aggregate storage", les dimensions contenant des hiérarchies de membres stockées à plusieurs niveaux ne doivent pas être sélectionnées comme dimension de pivot. Sélectionnez une dimension de pivot avec des hiérarchies dynamiques, ou une hiérarchie stockée, à plat, à un seul niveau (dont tous les membres sont des membres stockés de niveau 0).