Identifier la dimension de tableau croisé dynamique et configurer la table de faits
Une table de faits dans Autonomous AI Lakehouse stocke les données du cube fédéré. Si vous ne disposez pas d'une table des faits répondant aux exigences pour les partitions fédérées et que vous ne laissez pas Essbase gérer la table des faits, vous devez créer une table.
Remarques :
Si vous autorisez Essbase à gérer la table de faits, Essbase crée la table de faits pour vous.
Avant de commencer cette section, créez un cube et une application Essbase, si vous n'en avez pas déjà.
Identification de la dimension de pivot
Dans le cadre de la conception d'un cube fédéré, vous devez sélectionner la dimension 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 du tableau croisé dynamique doivent être mappés avec ces colonnes qui représentent vos valeurs d'informations numériques dans Autonomous AI Lakehouse.
-
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 cubes fédérés 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. Motif : la modification de la dimension de pivot dans l'outline de cube Essbase (par exemple, en ajoutant ou renommant les membres stockés), des mises à jour manuelles correspondantes doivent être effectuées dans la table de faits de Autonomous AI Lakehouse. 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 le 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 fédérés basés sur ASO, Oracle recommande que les dimensions contenant des hiérarchies de membres stockées à plusieurs niveaux ne soient pas sélectionnées en tant que 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).
Création de la table de faits
Une table de faits dans Autonomous AI Lakehouse stocke toutes les valeurs de données d'un cube fédéré. Si vous ne disposez pas déjà de la table de faits requise et que votre cube fédéré n'est pas géré par Essbase, vous devez en créer une.
Remarques :
Cette rubrique n'est pas obligatoire si vous autorisez Essbase à gérer la table de faits, car Essbase crée la table de faits pour vous. Reportez-vous à Options de chargement de données pour les cubes fédérés.Avant de commencer, vérifiez que vous disposez d'un schéma pour la table de faits. Reportez-vous à Création d'un schéma pour les cubes fédérés.
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. Cette exception est appelée dimension pivot.
-
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 exportations de données Essbase, vous remarquerez que la forme de la table des faits est semblable à un export de colonne 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 des mesures a été pivotée, ce qui signifie qu'elle est la dimension 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 des faits à l'aide d'outils Autonomous AI Lakehouse ou de l'option 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 AI Lakehouse, vous pouvez utiliser du code SQL.
-
A l'aide de SQL Developer ou de l'outil de votre choix, connectez-vous à Autonomous AI Lakehouse en tant que propriétaire du schéma (à partir de l'étape Créer un schéma pour les cubes fédérés).
-
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 le processus de création parallèle de l'index dans Autonomous AI Lakehouse, 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 est basé sur l'exemple de base, 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. Pour ce faire, vous devez configurer des informations d'identification pour le chargement de données vers un cube fédéré. Pour configurer les informations d'identification et de connexion, reportez-vous à Configuration des informations d'identification pour les cubes fédérés et découvrez comment exporter des données au format SGBD à l'aide de la commande DATAEXPORT.