Cubes de données OLAP. Introduction à l'analyse multivariée

Accueil Conditions Articles Cours Entreprise Expérience Blog Conseils Téléchargements Partenaires Contacts Promotions

Articles > Automatisation de la budgétisation et de la comptabilité de gestion >

Alexander Karpov, chef de projet bud-tech.ru, auteur de la série de livres « 100% Practical Budgeting » et du livre « Organisation et automatisation de la comptabilité de gestion »

www.bud-tech.ru

Peut-être que pour certains, l'utilisation de la technologie OLAP (On-line Analytic Processing) lors de la création de rapports semblera quelque peu exotique, donc l'utilisation d'OLAP-CUBE pour eux n'est pas du tout l'une des exigences les plus importantes lors de l'automatisation de la budgétisation et de la comptabilité de gestion.

En fait, il est très pratique d'utiliser un CUBE multidimensionnel lorsque l'on travaille avec des rapports de gestion. Lors de l'élaboration de formats budgétaires, vous pouvez rencontrer le problème des formulaires multivariés (vous pouvez en savoir plus à ce sujet dans le livre 8 « Technologie de mise en place du budget en entreprise » et dans le livre « Mise en place et automatisation de la comptabilité de gestion »).

Cela est dû au fait qu’une gestion efficace d’une entreprise nécessite des rapports de gestion de plus en plus détaillés. Autrement dit, le système utilise de plus en plus de sections analytiques différentes (dans les systèmes d'information, les analyses sont déterminées par un ensemble d'ouvrages de référence).

Naturellement, cela conduit au fait que les managers souhaitent recevoir des reporting dans toutes les sections analytiques qui les intéressent. Cela signifie que les rapports doivent être amenés à « respirer » d’une manière ou d’une autre. En d’autres termes, nous pouvons dire que dans ce cas, nous parlons du fait que le même rapport doit fournir des informations sous différents aspects analytiques. Par conséquent, les rapports statiques ne conviennent plus à de nombreux gestionnaires modernes. Ils ont besoin de la dynamique qu’un CUBE multidimensionnel peut offrir.

Ainsi, la technologie OLAP est déjà devenue un élément obligatoire des systèmes d'information modernes et futurs. Par conséquent, lors du choix d'un produit logiciel, vous devez faire attention s'il utilise la technologie OLAP.

De plus, vous devez être capable de distinguer les vrais CUBES des imitations. L'une de ces simulations est celle des tableaux croisés dynamiques dans MS Excel. Oui, cet outil ressemble à un CUBE, mais en fait ce n'en est pas un, puisqu'il s'agit de tables statiques et non dynamiques. De plus, ils ont une implémentation bien pire de la capacité de créer des rapports en utilisant des éléments de répertoires hiérarchiques.

Pour confirmer la pertinence de l’utilisation de CUBE dans la construction du reporting de gestion, on peut citer exemple le plus simple avec un budget de vente. Dans l'exemple considéré, les sections analytiques suivantes sont pertinentes pour l'entreprise : produits, succursales et canaux de vente. Si ces trois analyses sont importantes pour l'entreprise, alors le budget (ou rapport) des ventes peut être affiché en plusieurs versions.

A noter que si vous créez des lignes budgétaires basées sur trois sections analytiques (comme dans l'exemple considéré), cela permet de créer des modèles budgétaires assez complexes et de créer des rapports détaillés à l'aide de CUBE.

Par exemple, un budget de vente peut être élaboré à l'aide d'une seule analyse (répertoire). Un exemple de budget de vente construit sur la base d'une analyse « Produits » est présenté sur Figure 1.

Riz. 1. Un exemple de budget de vente construit sur la base d'une analyse « Produits » dans l'OLAP-CUBE du progiciel INTEGRAL

Le même budget de vente peut être compilé à l'aide de deux analyses (répertoires). Un exemple de budget commercial construit sur la base de deux analyses « Produits » et « Branches » est présenté sur Figure 2.

Riz. 2. Un exemple de budget de vente construit sur la base de deux analyses « Produits » et « Branches » dans l'OLAP-CUBE du progiciel INTEGRAL

.

S'il est nécessaire de créer des rapports plus détaillés, le même budget de vente peut être compilé à l'aide de trois analyses (répertoires). Un exemple de budget de vente construit sur la base de trois analyses « Produits », « Branches » et « Canaux de vente » est présenté sur figure 3.

Riz. 3. Un exemple de budget de vente construit sur la base de trois analyses « Produits », « Branches » et « Canaux de vente » dans l'OLAP-CUBE du progiciel INTEGRAL

Rappelons que le CUBE utilisé pour générer les rapports permet d'afficher les données dans différentes séquences. Sur figure 3 Le budget commercial est d'abord « élargi » par produit, puis par branche, puis par canal de vente.

Les mêmes données peuvent être présentées dans un ordre différent. Sur Figure 4 le même budget commercial est « déroulé » d'abord par produit, puis par canal de vente, puis par branche.

Riz. 4. Un exemple de budget de vente construit sur la base de trois analyses « Produits », « Canaux de distribution » et « Branches » dans l'OLAP-CUBE du progiciel INTEGRAL

Sur Figure 5 le même budget de vente est « déployé » d'abord par succursales, puis par produits, et enfin par canaux de vente.

Riz. 5. Un exemple de budget de vente construit sur la base de trois analyses « Branches », « Produits » et « Canaux de vente » dans le progiciel OLAP-CUBE « INTEGRAL »

En fait, ce n'est pas tout options possibles retrait du budget des ventes.

De plus, vous devez faire attention au fait que le CUBE vous permet de travailler avec structure hiérarchique livres de référence. Dans les exemples présentés, les répertoires hiérarchiques sont « Produits » et « Canaux de vente ».

Du point de vue de l'utilisateur, dans cet exemple il reçoit plusieurs rapports de gestion (voir. Riz. 1-5), et du point de vue des paramètres du produit logiciel, il s'agit d'un seul rapport. En utilisant simplement le CUBE, vous pouvez le visualiser de plusieurs manières.

Naturellement, en pratique, il est tout à fait possible un grand nombre de des options de sortie de divers rapports de gestion si leurs articles s'appuient sur un ou plusieurs analystes. Et l’ensemble des analyses lui-même dépend des besoins de détails des utilisateurs. Certes, il ne faut pas oublier que, d'une part, plus l'analyste est grand, plus les rapports peuvent être élaborés. Mais d’un autre côté, cela signifie que le modèle de budgétisation financière sera plus complexe. Dans tous les cas, s'il existe un KUB, l'entreprise aura la possibilité de consulter les rapports nécessaires dans diverses options, conformément aux sections analytiques d’intérêt.

Il est nécessaire de mentionner plusieurs autres fonctionnalités d'OLAP-CUBE.

Dans un OLAP-CUBE hiérarchique multidimensionnel, il existe plusieurs dimensions : type de ligne, date, lignes, répertoire 1, répertoire 2 et répertoire 3 (voir. Riz. 6). Bien entendu, le rapport affiche autant de boutons avec des répertoires qu'il y en a dans la ligne budgétaire contenant le nombre maximum de répertoires. S'il n'y a pas un seul ouvrage de référence dans une ligne budgétaire, le rapport ne comportera pas un seul bouton avec des ouvrages de référence.

Riz. 6. Mesures OLAP-CUBE du progiciel INTEGRAL

Initialement, l'OLAP-CUBE est construit dans toutes les dimensions. Par défaut, lors de la création initiale du rapport, les dimensions sont situées exactement dans les zones affichées dans Figure 6. C'est-à-dire qu'une dimension telle que "Date" est située dans la zone des dimensions verticales (dimensions dans la zone des colonnes), les dimensions "Lignes", "Répertoire 1", "Répertoire 2" et "Répertoire 3" - dans le zone de dimensions horizontales (dimensions dans les lignes de la zone), et la dimension « Type de ligne » se trouve dans la zone des dimensions « non développées » (dimensions dans la zone de la page). Si une dimension se trouve dans la dernière zone, les données du rapport ne seront pas « développées » sur cette dimension.

Chacune de ces dimensions peut être placée dans l’une des trois zones. Une fois les mesures transférées, le rapport est instantanément reconstruit pour correspondre à la nouvelle configuration de mesure. Par exemple, vous pouvez échanger la date et les lignes avec des ouvrages de référence. Ou vous pouvez déplacer l'un des ouvrages de référence vers la zone de mesure verticale (voir. Riz. 7). En d'autres termes, vous pouvez « tordre » le rapport dans OLAP-CUBE et sélectionner l'option de sortie du rapport qui convient le mieux à l'utilisateur.

Riz. 7. Un exemple de reconstruction d'un rapport après changement de configuration de mesure du progiciel INTEGRAL

La configuration de mesure peut être modifiée soit dans le formulaire principal CUBE, soit dans l'éditeur de carte de modification (voir. Riz. 8). Dans cet éditeur, vous pouvez également glisser et déposer des mesures d'une zone à une autre avec la souris. De plus, vous pouvez échanger les mesures dans une zone.

De plus, sous le même formulaire, vous pouvez configurer certains paramètres de mesure. Pour chaque dimension, vous pouvez personnaliser l'emplacement des totaux, l'ordre de tri des éléments et les noms des éléments (voir. Riz. 8). Vous pouvez également spécifier quel nom d'élément afficher dans le rapport : abrégé (Name) ou complet (FullName).

Riz. 8. Editeur de cartes de mesures du progiciel INTEGRAL

Vous pouvez éditer les paramètres de mesure directement dans chacun d'eux (voir. Riz. 9). Pour cela, cliquez sur l'icône située sur le bouton à côté du nom de la mesure.

Riz. 9. Exemple d'édition du répertoire 1 Produits et services dans progiciel"INTÉGRAL"

À l'aide de cet éditeur, vous pouvez sélectionner les éléments que vous souhaitez afficher dans le rapport. Par défaut, tous les éléments sont affichés dans le rapport, mais si nécessaire, certains éléments ou dossiers peuvent être omis. Par exemple, si vous devez afficher un seul groupe de produits dans le rapport, vous devez alors décocher tous les autres dans l'éditeur de mesures. Après cela, le rapport ne contiendra qu'un seul groupe de produits (voir. Riz. dix).

Vous pouvez également trier les éléments dans cet éditeur. De plus, les éléments peuvent être réorganisés différentes façons. Après un tel regroupement, le rapport est instantanément reconstruit.

Riz. 10. Exemple de sortie dans un rapport d'un seul groupe de produits (dossier) dans le progiciel INTEGRAL

Dans l'éditeur de dimensions, vous pouvez créer rapidement vos propres groupes, y glisser-déposer des éléments depuis des répertoires, etc. Par défaut, seul le groupe Autre est automatiquement créé, mais d'autres groupes peuvent être créés. Ainsi, à l'aide de l'éditeur de dimensions, vous pouvez configurer quels éléments des ouvrages de référence et dans quel ordre doivent être affichés dans le rapport.

Il convient de noter que tous ces réarrangements ne sont pas enregistrés. Autrement dit, après la fermeture du rapport ou après son recalcul, tous les répertoires seront affichés dans le rapport conformément à la méthodologie configurée.

En fait, tous ces changements auraient pu être apportés initialement lors de la mise en place des lignes.

Par exemple, en utilisant des restrictions, vous pouvez également spécifier quels éléments ou groupes de répertoires doivent être affichés dans le rapport et lesquels ne doivent pas l'être.

Note: le sujet de cet article est abordé plus en détail lors d'ateliers "Gestion budgétaire d'une entreprise" Et « Organisation et automatisation de la comptabilité de gestion » menée par l'auteur de cet article, Alexander Karpov.

Si l'utilisateur a presque régulièrement besoin d'afficher uniquement certains éléments ou dossiers de répertoire dans le rapport, il est alors préférable de définir ces paramètres à l'avance lors de la création des lignes de rapport. Si diverses combinaisons d'éléments de répertoire dans les rapports sont importantes pour l'utilisateur, il n'est alors pas nécessaire de définir des restrictions lors de la configuration de la méthodologie. Toutes ces restrictions peuvent être rapidement configurées à l'aide de l'éditeur de mesures.

informations générales

Microsoft Excel vous permet de créer des rapports de tableau croisé dynamique basés sur des données sources de traitement analytique en ligne (OLAP). Lorsque vous travaillez avec des rapports de tableau croisé dynamique basés sur des données source OLAP et des rapports basés sur des données source non OLAP, vous remarquerez peut-être des différences dans les fonctionnalités et les performances de l'outil. Cet article traite de certaines des principales différences entre les rapports de tableau croisé dynamique basés sur des données source OLAP et les rapports de tableau croisé dynamique basés sur des données source non OLAP.

Recevoir des données et mettre à jour les différences

Les bases de données OLAP sont organisées pour faciliter la récupération et l'analyse de grands volumes de données. Avant qu'Excel n'affiche les données résumées dans un tableau croisé dynamique, le serveur OLAP effectue des calculs pour résumer les données. Seules les données récapitulatives requises sont renvoyées à Excel selon les besoins.

Avec les bases de données externes non OLAP, tous les enregistrements individuels sont renvoyés et Excel effectue le résumé. Les bases de données OLAP donnent donc Capacité Excel analyser des volumes beaucoup plus importants de données externes.

Le serveur OLAP envoie de nouvelles données vers Excel chaque fois que la disposition d'un rapport ou d'une vue de tableau croisé dynamique ou de graphique croisé dynamique change. Lorsque vous utilisez des données source non OLAP, les données sont actualisées différemment et différentes options d'actualisation sont disponibles dans la boîte de dialogue Options du tableau croisé dynamique.

Les données non OLAP peuvent être renvoyées à Microsoft Excel sous forme de plage de données externe, de rapport de tableau croisé dynamique ou de graphique croisé dynamique. Les données OLAP ne peuvent être renvoyées à Excel que sous forme de rapport de tableau croisé dynamique ou de graphique croisé dynamique.

Demande d'arrière-plan

Vous ne pouvez pas activer l'option de requête en arrière-plan dans la boîte de dialogue Options du tableau croisé dynamique lorsque le rapport de tableau croisé dynamique est basé sur une source de données OLAP.

Requêtes avec paramètres

Les rapports de tableau croisé dynamique basés sur une source de données OLAP ne prennent pas en charge l'utilisation de requêtes paramétrées.

Optimisation de la mémoire

La case à cocher Optimiser la mémoire dans la boîte de dialogue Options du tableau croisé dynamique n'est pas disponible lorsque le rapport de tableau croisé dynamique est basé sur une source de données OLAP.

Options des champs de page

Dans les rapports de tableau croisé dynamique basés sur des données source non OLAP, vous pouvez utiliser des paramètres de champ de page pour récupérer des données pour chaque élément individuellement ou pour tous les éléments simultanément. Ces options de champ de page ne sont pas disponibles dans les rapports basés sur des données source OLAP. Les données sources OLAP sont toujours récupérées pour chaque élément selon les besoins, permettant aux rapports d'afficher des informations provenant de grandes bases de données OLAP.

Différences de calcul

Options des champs de page

Vous ne pouvez pas modifier la fonction pour résumer les champs de données dans un rapport de tableau croisé dynamique basé sur des données source OLAP. Cette limitation se produit car les totaux sont calculés sur le serveur OLAP. Fonctions récapitulatives

Impossible de créer un champ calculé ou un élément calculé dans un tableau croisé dynamique basé sur une source de données OLAP.

Champs calculés et éléments calculés

Lorsque vous travaillez avec des sous-totaux dans un rapport de tableau croisé dynamique basé sur des données source OLAP, les restrictions suivantes s'appliquent.

Vous ne pouvez pas modifier la fonction de total pour les sous-totaux dans un rapport de tableau croisé dynamique.

OLAP-CUBE (reporting de gestion dynamique)

Impossible d'afficher les sous-totaux pour les champs de colonnes internes ou internes dans un rapport de tableau croisé dynamique.

Étant donné que les totaux sont calculés sur le serveur OLAP, vous ne pouvez pas modifier les éléments de page masqués intermédiaires dans la boîte de dialogue Options du tableau croisé dynamique.

Sous-totaux

L'option Total * de la boîte de dialogue Options du tableau croisé dynamique ne peut être utilisée que dans les rapports de tableau croisé dynamique basés sur des données source OLAP. Cette option marque tous les sous-totaux et totaux généraux avec un astérisque (*) pour indiquer que ces valeurs contiennent des éléments masqués et affichés.

Différences de disposition et de conception

Dimensions et mesures

Lorsque vous travaillez avec un rapport de tableau croisé dynamique basé sur des données source OLAP, l'analyste ne peut être utilisé que comme champs de ligne, de colonne ou de page. Les mesures ne peuvent être utilisées que comme champs de données. Lorsque vous faites glisser une dimension dans une zone de données de champ ou une dimension dans une zone de ligne, de colonne ou de marge de page, vous recevez le message d'erreur suivant :

Le champ que vous souhaitez déplacer ne peut pas être placé dans cette zone du tableau croisé dynamique.

Lorsqu'un rapport de tableau croisé dynamique basé sur des données source OLAP est actif, la barre d'outils du tableau croisé dynamique affiche une icône en regard de chaque ligne de champ. L'icône montre où Excel vous permettra de placer le champ dans votre rapport de tableau croisé dynamique. Si l'icône se trouve dans le coin supérieur gauche, le champ est une dimension que vous pouvez faire glisser vers une ligne, une colonne ou un champ sur la page des zones. Si l'icône se trouve dans le coin inférieur droit, le champ est une mesure que vous pouvez faire glisser dans la zone des champs de données.

Dimensions et mesures

Microsoft Excel vous permet de renommer les champs que vous ajoutez à un tableau croisé dynamique. Lorsqu'un rapport de tableau croisé dynamique est basé sur des données source OLAP, votre nom d'utilisateur sera perdu lorsque vous supprimez un champ du tableau croisé dynamique.

Regrouper et dissocier des éléments

Dans Excel 2000, vous ne pouvez pas regrouper des éléments dans un rapport de tableau croisé dynamique basé sur des données source OLAP ;

Renommer les champs

Les rapports de tableau croisé dynamique basés sur les données source OLAP vous permettent d'afficher le niveau de données le plus bas disponible sur le serveur OLAP.

Regrouper et dissocier des éléments

Pour les données sources non OLAP, les éléments du nouveau rapport de tableau croisé dynamique apparaissent d'abord triés par ordre croissant par nom d'élément.

Détails

La commande Afficher les pages n'est pas disponible dans les rapports de tableau croisé dynamique basés sur des données source OLAP.

Afficher les éléments sans données

L'option Afficher les éléments sans données dans la boîte de dialogue Champs du tableau croisé dynamique n'est pas disponible dans les rapports de tableau croisé dynamique basés sur des données source OLAP.

Ci-dessous une liste de questions sur le sujet Informatique dans la gestion de la MFPU/MFPA « Synergie »

... est un système automatisé interactif qui aide à ...

OLAP au sens étroit du terme est interprété comme...

Les systèmes OLAP (traitement analytique en ligne) sont...

Les systèmes OLTP se sont avérés peu utiles car...

Système de contrôle automatisé (informations automatisées…

Dans MS Project...

DANS Système OLTP Des mises à jour des données sont en cours...

Un diagramme conçu pour analyser un plan de travail à l'aide de méthodes...

Un système d'information est un ensemble d'éléments interconnectés...

Les technologies de l'information sont...

Le support informationnel est...

Les technologies de l'information influencent le développement de la société des manières suivantes...

Échange d’informations dans la structure des organes de direction de l’organisation…

Systèmes d’Information Exécutifs…

Les caractéristiques des « petits » systèmes d’information comprennent...

Les caractéristiques des systèmes d’information à « moyenne » échelle comprennent...

Les méthodes de traitement de l’information sont...

Le principe modulaire de construction des systèmes d'information comptables...

La figure montre un fragment d'un schéma de type..., réalisé en pro...

Sur graphiques de réseau dans MS Project, une tâche d'un projet externe...

Sur un schéma de réseau dans MS Project, une tâche sans rapport avec...

Sur le schéma de réseau du programme MS Project, la tâche assignée...

Sur un diagramme de réseau dans MS Project, une tâche récapitulative, combinée

Sur la composition et le nombre de postes de travail automatisés inclus...

La science des activités d'information, des processus d'information et...

Organisation d'un système d'information dans lequel sur un serveur distant...

L'objectif principal d'un système OLAP est...

L'objectif principal des systèmes ERP est d'automatiser...

L'objectif principal de la méthodologie MPS est...

Les principales caractéristiques des systèmes OLAP sont...

Le sous-système de support technique comprend...

La séquence des étapes technologiques de modification du primaire...

Lors de la mise en réseau d'ordinateurs personnels sous forme d'intrapro...

Les logiciels d'application informatique sont destinés à...

Un exemple de sujet informatique c'est la technologie...

Le processus d’aide à la décision implique...

Un réseau à l'échelle de l'entreprise ou un réseau d'entreprise est un système d'information…

Système intelligence artificielle représente…

Les systèmes de traitement des transactions sont des systèmes conçus pour...

Les systèmes de traitement des transactions sont conformes à...

Systèmes d’aide à la décision – DS…

Méthodes et outils modernes d’analyse et de planification des processus…

Création de systèmes d’information automatisés intégrés…

Les systèmes d'information créés deviennent inutilisables...

La spécificité du système d’information d’aide à la gestion se manifeste...

En utilisant les systèmes OLTP traditionnels, vous pouvez...

La structure des systèmes d'information d'entreprise est...

Pour accélérer et simplifier le travail des responsables RH de l'entreprise...

Pour accélérer et simplifier le travail des responsables RH de l'entreprise...

Les faits perçus enregistrés du monde environnant représentent...

Une chaîne d'actions qui reflète le plus fidèlement le processus de gestion...

Les problèmes économiques résolus par le dialogue caractérisent...

Les systèmes experts sont conçus pour traiter...

Est-ce une faille de sécurité ou est liée à la sécurité...

OLAP simplifié

Incroyable est à proximité...

Au cours de mon travail, j'ai souvent eu besoin de réaliser des rapports complexes, j'essayais toujours d'y trouver quelque chose de commun afin de les compiler plus simplement et universellement, j'ai même écrit et publié un article sur ce sujet, « L'arbre d'Osipov. » Cependant, mon article a été critiqué et ils ont dit que tous les problèmes que j'ai soulevés avaient été résolus depuis longtemps dans OLAP (www.molap.rgtu.ru) et ils ont recommandé de consulter des tableaux croisés dynamiques dans EXCEL.
Cela s'est avéré si simple qu'après y avoir appliqué mes petites mains ingénieuses, j'ai obtenu un très circuit simple pour télécharger des données à partir de 1C7 ou de toute autre base de données (ci-après 1C signifie n'importe quelle base de données) et analyser dans OLAP.
Je pense que de nombreux schémas de téléchargement OLAP sont trop compliqués, je choisis la simplicité.

Caractéristiques :

1. Seul EXCEL 2000 est requis pour le travail.
2. L'utilisateur peut concevoir lui-même des rapports sans programmation.
3. Téléchargement depuis 1C7 dans un format de fichier texte simple.
4. Déjà disponible pour les écritures comptables traitement universel pour le déchargement, travaillant dans n'importe quelle configuration. Le traitement des échantillons est disponible pour télécharger d’autres données.
5. Vous pouvez concevoir des formulaires de rapport à l'avance, puis les appliquer à différentes données sans les reconcevoir.
6. Jolie bonne performance. Lors de la première étape longue, les données sont d'abord importées dans EXCEL à partir d'un fichier texte et un cube OLAP est construit, puis assez rapidement n'importe quel rapport peut être construit sur la base de ce cube. Par exemple, les données sur les ventes de produits d'un magasin pendant 3 mois avec un assortiment de 6000 produits sont chargées dans EXCEL en 8 minutes sur Cel600-128M, la note par produit et groupe (rapport OLAP) est recalculée en 1 minute.
7. Les données sont téléchargées intégralement à partir de 1C7 pour la période spécifiée (tous les mouvements, dans tous les entrepôts, sociétés, comptes). Lors de l'importation dans EXCEL, il est possible d'utiliser des filtres qui chargent uniquement les données nécessaires à l'analyse (par exemple, de tous les mouvements, uniquement les ventes).
8. Actuellement, des méthodes ont été élaborées pour analyser les mouvements ou les résidus, mais pas les mouvements et les résidus ensemble, bien que cela soit en principe possible.

Qu'est-ce qu'OLAP : (www.molap.rgtu.ru)

Supposons que vous ayez réseau commercial. Laissez les données sur les opérations de trading être téléchargées sur fichier texte ou un tableau comme :

Date - date d'exploitation
Mois - mois de fonctionnement
Semaine - semaine de fonctionnement
Type - achat, vente, retour, radiation
Contrepartie - une organisation externe participant à une transaction
Auteur - la personne qui a émis la facture

En 1C par exemple, une ligne de ce tableau correspondra à une ligne de la facture ; certains champs (Contrepartie, Date) sont extraits de l'en-tête de la facture.

Les données à analyser sont généralement téléchargées sur un système OLAP dans certaine période temps, à partir duquel, en principe, il est possible de sélectionner une autre période à l'aide de filtres de charge.

Ce tableau est la source de l'analyse OLAP.

L'utilisateur détermine lui-même quels champs du tableau seront des dimensions, quelles données et quels filtres appliquer. Le système lui-même crée un rapport sous forme de tableau visuel. Les dimensions peuvent être placées dans les en-têtes de ligne ou de colonne d'un tableau de rapport.
Comme vous pouvez le constater, à partir d'un simple tableau, vous pouvez obtenir de nombreuses données sous la forme de divers rapports.


Comment l'utiliser vous-même :

Décompressez les données de la distribution exactement dans le répertoire c:\fixin (par exemple système commercialéventuellement dans c:\reports). Lisez le fichier readme.txt et suivez toutes les instructions qu'il contient.

Vous devez d'abord écrire un traitement qui télécharge les données de 1C vers un fichier texte (table). Vous devez déterminer la composition des champs qui seront déchargés.
Par exemple, un traitement universel prêt à l'emploi, qui fonctionne dans n'importe quelle configuration et télécharge les transactions pendant une période pour l'analyse OLAP, télécharge les champs suivants pour analyse :

Date|Jour de la semaine|Semaine|Année|Trimestre|Mois|Document|Société|Débit|DtNomenclature
|DtGroupNomenclature|DtSectionNomenclature|Crédit|Montant|ValAmount|Quantité
|Devise|DtCounterparties|DtGroupCounterparties|KtCounterparties|KtGroupCounterparties|
CTDiversObjets

Où sous les préfixes Dt(Kt) il y a des sous-comptes de Débit (Crédit), Groupe est le groupe de ce sous-compte (le cas échéant), Section est le groupe du groupe, Classe est le groupe de la section.

Pour un système de trading, les champs peuvent être les suivants :

Direction|Type de mouvement|Pour espèces|Produit|Quantité|Prix|Montant|Date|Société
|Entrepôt|Devise|Document|Jour de la semaine|Semaine|Année|Trimestre|Mois|Auteur
|Catégorie de produits|Catégorie de mouvement|Catégorie de contrepartie|Groupe de produits
|ValAmount|Coût|Contrepartie

Pour analyser les données, les tableaux « Movement Analysis.xls » (« Accounting Analysis.xls ») sont utilisés. Lors de leur ouverture, ne désactivez pas les macros, sinon vous ne pourrez pas mettre à jour les rapports (ils sont exécutés par des macros VBA). Ces fichiers tirent leurs données sources des fichiers C:\fixin\motions.txt (C:\fixin\buh.txt), sinon ce sont les mêmes.

Bases d'OLAP

Par conséquent, vous devrez peut-être copier vos données dans l'un de ces fichiers.
Pour charger vos données dans EXCEL, sélectionnez ou rédigez votre filtre et cliquez sur le bouton « Générer » sur la feuille « Conditions ».
Les feuilles de rapport commencent par le préfixe « Rapport ». Accédez à la feuille de rapport, cliquez sur « Mettre à jour » et les données du rapport changeront conformément aux dernières données chargées.
Si vous n'êtes pas satisfait des rapports standards, il existe une feuille ReportTemplate. Copiez-le dans une nouvelle feuille et personnalisez le type de rapport en travaillant avec un tableau croisé dynamique sur cette feuille (pour plus d'informations sur l'utilisation des tableaux croisés dynamiques, consultez n'importe quel livre EXEL 2000). Je recommande de créer des rapports sur petit ensemble données, puis exécutez-les sur un grand tableau, car Il n'existe aucun moyen de désactiver le redessin des tableaux à chaque fois que la présentation du rapport change.

Notes techniques :

Lors du téléchargement de données depuis 1C, l'utilisateur sélectionne le dossier dans lequel télécharger le fichier. J'ai fait cela car il est probable que plusieurs fichiers (restes et mouvements) seront téléchargés dans un avenir proche. Ensuite, en cliquant sur le bouton « Envoyer » -> « Vers l'analyse OLAP dans EXCEL 2000 » dans l'Explorateur, les données sont copiées du dossier sélectionné vers le dossier C:\fixin. (pour que cette commande apparaisse dans la liste de la commande « Envoyer », vous devez copier le fichier « Pour l'analyse OLAP dans EXCEL 2000.bat » dans le répertoire C:\Windows\SendTo) Par conséquent, téléchargez immédiatement les données en nommant les fichiers motions.txt ou buh.txt.

Format du fichier texte :
La première ligne du fichier texte est constituée des en-têtes de colonnes séparés par "|", les lignes restantes contiennent les valeurs de ces colonnes séparées par "|".

Pour importer des fichiers texte dans Excel, Microsoft Query (un composant d'EXCEL) est utilisé ; pour que cela fonctionne, vous devez disposer d'un fichier shema.ini contenant les informations suivantes dans le répertoire d'importation (C:\fixin) :


ColNameHeader=Vrai
Format=Délimité(|)
MaxScanRows=3
Jeu de caractères = ANSI
ColNameHeader=Vrai
Format=Délimité(|)
MaxScanRows=3
Jeu de caractères = ANSI

Explication : motions.txt et buh.txt sont le nom de la section, correspond au nom du fichier importé, décrit comment importer un fichier texte dans Excel. Les paramètres restants signifient que la première ligne contient les noms des colonnes, le séparateur de colonnes est "|", le jeu de caractères est Windows ANSI (pour DOS - OEM).
Le type de champ est déterminé automatiquement en fonction des données contenues dans la colonne (date, nombre, chaîne).
La liste des champs n'a pas besoin d'être décrite nulle part - EXCEL et OLAP détermineront eux-mêmes quels champs sont contenus dans le fichier par les en-têtes de la première ligne.

Attention, vérifiez vos paramètres régionaux "Panneau de configuration" -> "Paramètres régionaux". Lors de mon traitement, les nombres sont téléchargés avec un délimiteur par virgule et les dates sont au format "JJ.MM.AAAA".

Lorsque vous cliquez sur le bouton "Générer", les données sont chargées dans le tableau croisé dynamique de la feuille "Base", et tous les rapports sur les feuilles "Rapport" prennent les données de ce tableau croisé dynamique.

Je comprends que les fans de MS serveur SQL Et bases puissantes les données commenceront à grogner que tout est trop simplifié, que mon traitement sera épuisé par un échantillon d'un an, mais je veux avant tout faire bénéficier les organisations de taille moyenne des avantages de l'analyse OLAP. Je positionnerais ce produit comme un outil d'analyse annuelle pour les grossistes, une analyse trimestrielle pour les détaillants et une analyse opérationnelle pour toute organisation.

J'ai dû bricoler VBA pour que les données puissent être extraites d'un fichier avec n'importe quelle liste de champs et que je puisse préparer des formulaires de rapport à l'avance.

Description du travail dans EXCEL (pour les utilisateurs) :

Instructions d'utilisation des rapports :
1. Envoyez les données téléchargées pour analyse (vérifiez auprès de l'administrateur). Pour ce faire, faites un clic droit sur le dossier dans lequel vous avez téléchargé les données de 1C et sélectionnez la commande « Envoyer », puis « Vers l'analyse OLAP dans EXCEL 2000 ».
2. Ouvrez le fichier « Motion Analysis.xls »
3. Sélectionnez Filtrer la valeur ; les filtres dont vous avez besoin peuvent être ajoutés dans l'onglet « Valeurs ».
4. Cliquez sur le bouton « Générer » et les données téléchargées seront chargées dans EXCEL.
5. Après avoir chargé les données dans EXCEL, vous pouvez afficher divers rapports. Pour ce faire, cliquez simplement sur le bouton « Actualiser » dans le rapport sélectionné. Les feuilles de rapport commencent par Rapport.
Attention! Après avoir modifié la valeur du filtre, vous devez cliquer à nouveau sur le bouton « Générer » afin que les données dans EXCEL soient rechargées à partir du fichier de téléchargement conformément aux filtres.

Traitement à partir de l'exemple de démonstration :

Traitement motionsbuh2011.ert – dernière version télécharger des transactions à partir de Comptabilité 7.7 pour analyse dans Excel. Il comporte une case à cocher « Joindre au fichier », qui vous permet de télécharger des données par parties par période, en les ajoutant au même fichier, plutôt que de les télécharger à nouveau dans le même fichier :

Processing motionswork.ert télécharge les données de ventes pour analyse dans Excel.

Exemples de rapports :

Câblage d'échecs :

Charge de travail de l'opérateur par types de factures :

P.S. :

Il est clair qu'un schéma similaire peut être utilisé pour organiser le téléchargement des données depuis 1C8.
En 2011, un utilisateur m'a contacté et avait besoin d'améliorer ce traitement dans 1C7 afin qu'il télécharge de grandes quantités de données, j'ai trouvé un sous-traitant et j'ai fait le travail. Le développement est donc tout à fait pertinent.

Le traitement de motionsbuh2011.ert a été amélioré pour faire face au déchargement de grandes quantités de données.

Première définition claire OLAP(On-line Analytical Processing) a été proposé en 1993 par E.F. Codd dans un article publié avec le soutien d'Arbor Software (maintenant Hyperion Software). L'article comprenait 12 règles désormais largement connues et décrites sur le site Web de tout fournisseur d'applications OLAP. Plus tard, en 1995, six règles moins connues ont été ajoutées, toutes divisées en quatre groupes et appelées « fonctionnalités ». Voici les règles qui définissent une application OLAP, avec les commentaires de Nigel Pendse, l'un des créateurs du site OLAP Report.

Les principales caractéristiques d'OLAP comprennent :

1. Multidimensionnalité du modèle de données. Peu de gens contestent cette affirmation, et elle est considérée comme la principale caractéristique d’OLAP. Une partie de cette exigence réside dans la capacité de construire diverses projections et sections du modèle.

2. Mécanismes intuitifs de manipulation des données. Codd estime que la manipulation des données doit être effectuée à l'aide d'actions directement dans la cellule du tableau, sans utiliser de menus ou de menus complexes. On pourrait supposer que cela implique l’utilisation d’opérations avec la souris, mais Codd ne le prétend pas. De nombreux produits ne suivent pas cette règle. De notre point de vue, cette caractéristique a peu d’effet sur la qualité du processus d’analyse des données. Nous pensons que le programme devrait offrir la possibilité de choisir un modèle de travail, car... tous les utilisateurs n’aiment pas les mêmes choses.

3. Disponibilité. OLAP est le médiateur. Codd souligne particulièrement que le noyau OLAP est un programme intermédiaire entre des sources de données hétérogènes et interface utilisateur. La plupart des produits offrent ces fonctions, mais la facilité d'accès aux données est souvent inférieure à ce que souhaiteraient d'autres fournisseurs de logiciels.

4. Extraction de données par lots. Cette règle exige que les produits proposent à la fois leurs propres bases de données pour stocker les données analysées et un accès dynamique (en direct) aux données externes. Nous sommes d'accord avec Codd sur ce point et regrettons que peu de produits OLAP le suivent. Même les programmes qui offrent de telles fonctions les rendent rarement simples et suffisamment automatisés. En conséquence, Codd prend en charge la représentation de données multidimensionnelles ainsi que le pré-calcul partiel de grandes bases de données multidimensionnelles avec un accès transparent de bout en bout à des informations détaillées. Aujourd'hui, elle est considérée comme la définition de l'OLAP hybride, qui devient l'architecture la plus populaire. Codd a donc vu très précisément les principales tendances dans ce domaine.

5. Architecture client-serveur. Codd estime que non seulement chaque produit doit être un produit client-serveur, mais que chaque composant serveur d'un produit OLAP doit être suffisamment intelligent pour que différents clients puissent être connectés avec un minimum d'effort et de programmation. Il s’agit d’un test beaucoup plus complexe que le simple. architecture client-serveur et relativement peu de produits y parviennent. Nous pourrions affirmer que ce test est peut-être plus complexe qu’il ne devrait l’être et ne devrait pas dicter l’architecture du système aux développeurs.

6. Transparence. Ce test est également difficile, mais nécessaire. La conformité totale signifie qu'un utilisateur, par exemple, d'une feuille de calcul, peut obtenir accès total aux fonctionnalités fournies par le noyau OLAP et peut même ne pas savoir d'où proviennent les données. Pour y parvenir, les produits doivent fournir un accès dynamique à des sources de données hétérogènes et un module de feuille de calcul entièrement fonctionnel. Un serveur OLAP est placé entre la feuille de calcul et l'entrepôt de données.

7. Travail multi-utilisateurs. Codd précise que pour être considérées comme un outil OLAP stratégique, les applications doivent faire plus que simplement lire et interpréter les données, et doivent donc fournir un accès simultané (y compris à la fois la récupération et la mise à jour des données), l'intégrité et la sécurité.

Fonctionnalités spéciales

8. Gestion des données non normalisées. Cela signifie que l'intégration entre le moteur OLAP et la source de données non normalisée est possible. Codd souligne que lors de la mise à jour des données effectuée dans un environnement OLAP, il doit être possible de modifier les données non normalisées dans des systèmes externes.

9. Stockage des résultats OLAP séparément des données source. En réalité, cela concerne la mise en œuvre du produit plutôt que ses capacités, mais peu de gens contesteraient cette affirmation. Essentiellement, Cobb soutient largement système accepté, selon lequel les applications OLAP doivent construire une analyse directement sur la base des données de transaction et les modifications des données OLAP doivent être stockées séparément des données de transaction.

10. Mise en évidence des données manquantes. Cela signifie que les données manquantes doivent être différentes de la valeur nulle. En règle générale, tous les systèmes OLAP modernes prennent en charge cette fonctionnalité.

11. Gestion des valeurs manquantes. Toutes les valeurs manquantes doivent être ignorées dans l'analyse, quelle que soit leur source.

Caractéristiques de génération de rapport

12. Rapports flexibles. Les différentes dimensions doivent être disposées de manière à répondre aux besoins de l'utilisateur. La plupart des produits répondent à cette exigence grâce à des éditeurs de rapports dédiés. J'aurais aimé que les mêmes fonctionnalités soient disponibles dans les visionneuses interactives, mais c'est beaucoup moins courant. C'est l'une des raisons pour lesquelles nous préférons que les fonctionnalités d'analyse et de reporting soient combinées dans un seul module.

1. Concept de cube olap

13. Performances constantes lors de la création de rapports. Cela signifie que les performances du système lors de la génération de rapports ne devraient pas diminuer de manière significative à mesure que la taille ou la taille de la base de données augmente.

14. Régulation automatique niveau physique . Le système OLAP devrait s'ajuster automatiquement structure physique pour l'adapter au type et à la structure du modèle.

Contrôle des dimensions

15. Fonctionnalité générale. Toutes les dimensions doivent avoir les mêmes capacités en termes de structure et de fonctionnalité.

16. Nombre illimité de dimensions et de niveaux d'agrégation. En fait, par nombre illimité, Codd signifie 15-20, c'est-à-dire un nombre qui dépasse évidemment les besoins maximaux de l’analyste.

17. Opérations illimitées entre les données de différentes mesures. Codd estime que pour qu'une application soit qualifiée de multidimensionnelle, elle doit prendre en charge tout calcul utilisant des données de toutes les dimensions.

Des détails sur les produits Hyperion peuvent être trouvés sur le site Web www.hyperion.ru

version imprimée

Dos

10.8 Travailler avec des tableaux croisés dynamiques (objet PivotTable)

Objet Excel.PivotTable, travail de programme avec des tableaux croisés dynamiques et des cubes OLAP dans Excel en utilisant VBA, objet PivotCache, créant une disposition de tableau croisé dynamique

Au cours du fonctionnement de la plupart des entreprises, des données dites brutes sur les activités s'accumulent. Par exemple, pour une entreprise commerciale, des données sur les ventes de biens peuvent être accumulées - pour chaque achat séparément ; pour les entreprises de communications cellulaires - des statistiques sur la charge des stations de base, etc. Très souvent, la direction d'une entreprise a besoin d'informations analytiques générées sur la base d'informations brutes - par exemple, pour calculer la contribution de chaque type de produit aux revenus de l'entreprise ou à la qualité du service dans le domaine d'un station donnée. Il est très difficile d'extraire de telles informations à partir d'informations brutes : vous devez exécuter des requêtes SQL très complexes qui prennent beaucoup de temps à s'exécuter et interfèrent souvent avec le travail en cours. Par conséquent, de plus en plus, les données brutes sont désormais consolidées d'abord dans un entrepôt de données d'archives - le Data Warehouse, puis dans des cubes OLAP, très pratiques pour l'analyse interactive. La façon la plus simple de considérer les cubes OLAP est de les considérer comme des tableaux multidimensionnels dans lesquels, au lieu des deux dimensions standard (colonnes et lignes, comme dans les tableaux ordinaires), il peut y avoir de nombreuses dimensions. Le terme « sectionnel » est couramment utilisé pour décrire les mesures dans un cube. Par exemple, le service marketing peut avoir besoin d'informations par période, par région, par type de produit, par canal de vente, etc. À l'aide de cubes (par opposition aux requêtes SQL standards), il est très simple d'obtenir des réponses à des questions telles que « combien de produits de ce type ont été vendus au quatrième trimestre de l'année dernière dans la région du Nord-Ouest par l'intermédiaire de distributeurs régionaux ».

Bien entendu, de tels cubes ne peuvent pas être créés dans des bases de données conventionnelles. Travailler avec des cubes OLAP nécessite des produits logiciels spécialisés. SQL Server est livré avec une base de données OLAP de Microsoft appelée Analysis Services. Il existe des solutions OLAP d'Oracle, IBM, Sybase, etc.

Pour travailler avec de tels cubes, Excel dispose d'un client intégré.

En russe, cela s'appelle Tableau croisé dynamique(sur écran graphique il est disponible via le menu Données -> Tableau croisé dynamique), et en anglais - Tableau croisé dynamique. Par conséquent, l'objet représenté par ce client est appelé tableau croisé dynamique. Il convient de noter qu'il peut fonctionner non seulement avec des cubes OLAP, mais également avec des données ordinaires dans des tableaux ou des bases de données Excel, mais de nombreuses fonctionnalités sont perdues.

Le Tableau croisé dynamique et le Tableau croisé dynamique sont des produits logiciels de Panorama Software acquis par Microsoft et intégrés dans Excel.

Par conséquent, travailler avec l'objet PivotTable est quelque peu différent de travailler avec d'autres objets Excel. Il est souvent difficile de déterminer ce qui doit être fait. Par conséquent, il est recommandé d’utiliser activement l’enregistreur de macros pour recevoir des indices. Dans le même temps, lorsqu'ils travaillent avec des tableaux croisés dynamiques, les utilisateurs doivent souvent effectuer les mêmes opérations répétitives, l'automatisation est donc nécessaire dans de nombreuses situations.

À quoi ressemble le travail avec un tableau croisé dynamique par programmation ?

La première chose que nous devons faire est de créer un objet PivotCache qui représentera un ensemble d'enregistrements récupérés de la source OLAP. Très grossièrement, cet objet PivotCache peut être comparé à un QueryTable. Vous ne pouvez utiliser qu'un seul objet PivotCache par objet PivotTable. Un objet PivotCache est créé à l'aide de la méthode Add() de la collection PivotCaches :

Dim PC1 comme PivotCache

Définir PC1 = ActiveWorkbook.PivotCaches.Add(xlExternal)

PivotCaches est une collection standard, et parmi les méthodes qui méritent un examen détaillé, seule la méthode Add() peut y être nommée. Cette méthode prend deux paramètres :

  • Type de Source- obligatoire, définit le type de source de données pour le tableau croisé dynamique. Vous pouvez spécifier la création d'un tableau croisé dynamique basé sur une plage dans Excel, les données d'une base de données, une source de données externe, un autre tableau croisé dynamique, etc. En pratique, il est généralement judicieux d'utiliser OLAP uniquement lorsqu'il y a beaucoup de données. Par conséquent, vous avez besoin d'un stockage externe spécialisé (par exemple, Microsoft Analysis Services). Dans cette situation, la valeur xlExternal est sélectionnée.
  • Données source- obligatoire dans tous les cas, sauf lorsque la valeur du premier paramètre est xlExternal. En fait, il définit la plage de données sur la base de laquelle le tableau croisé dynamique sera créé. Prend généralement un objet Range.

La tâche suivante consiste à configurer les paramètres de l'objet PivotCache. Comme déjà mentionné, cet objet est très similaire à QueryTable et son ensemble de propriétés et de méthodes est très similaire. Certaines des propriétés et méthodes les plus importantes :

  • ADOConnexion- la possibilité de renvoyer un objet ADO Connection qui est automatiquement créé pour se connecter à une source de données externe. Est utilisé pour paramètres additionnels propriétés de connexion.
  • Connexion- fonctionne exactement de la même manière que la propriété d'objet QueryTable du même nom. Peut accepter une chaîne de connexion, un objet Recordset prêt à l'emploi, un fichier texte ou une requête Web. Fichier de requête Microsoft. Le plus souvent, lorsque l'on travaille avec OLAP, la chaîne de connexion est écrite directement (depuis la réception d'un objet Recordset, par exemple, pour modifier des données, a beaucoup de sens non - les sources de données OLAP sont presque toujours en lecture seule). Par exemple, la définition de cette propriété pour se connecter à la base de données Foodmart (exemple de base de données Analysis Services) sur le serveur LONDON pourrait ressembler à ceci :

PC1.Connection = "OLEDB;Provider=MSOLAP.2;Source de données=LONDON1;Catalogue initial = FoodMart 2000"

  • propriétés Type de commande Et Texte de commande ils décrivent également le type de commande envoyée au serveur de base de données et le texte de la commande elle-même. Par exemple, pour accéder au cube Sales et le mettre entièrement dans le cache du client, vous pouvez utiliser du code comme

PC1.CommandType = xlCmdCube

PC1.CommandText = Array("Ventes")

  • propriété Connexion locale vous permet de vous connecter à un cube local (fichier *.cub) créé à l'aide d'Excel. Bien entendu, il n'est pas recommandé d'utiliser de tels fichiers pour travailler avec des volumes de données de « production » - uniquement dans le but de créer des mises en page, etc.
  • propriété Mémoire utilisée renvoie la quantité de RAM utilisée par PivotCache. Si un tableau croisé dynamique basé sur ce PivotCache n'a pas encore été créé et ouvert, il renvoie 0. Peut être utilisé pour vérifier si votre application s'exécutera sur des clients faibles.
  • propriété OLAP renvoie True si PivotCache est connecté au serveur OLAP.
  • Optimiser le cache- possibilité d'optimiser la structure du cache. Le téléchargement initial des données prendra plus de temps, mais la vitesse pourra ensuite augmenter. Ne fonctionne pas pour les sources OLE DB.

Les propriétés restantes de l'objet PivotCache sont les mêmes que celles de l'objet QueryTable et ne seront donc pas abordées ici.

La méthode principale de l'objet PivotCache est la méthode CreatePivotTable(). En utilisant cette méthode, l'étape suivante est effectuée : la création d'un tableau croisé dynamique (objet PivotTable). Cette méthode prend quatre paramètres :

  • TableDestination- le seul paramètre obligatoire.

    Accepte un objet Range dans le coin supérieur gauche duquel le tableau croisé dynamique sera placé.

  • Nom de la table- nom du tableau croisé dynamique. S'il n'est pas spécifié, le nom de la vue « PivotTable1 » sera automatiquement généré.
  • Lire les données- s'il est défini sur True, alors tout le contenu du cube sera automatiquement placé dans le cache. Vous devez être très prudent avec ce paramètre, car une mauvaise utilisation peut augmenter considérablement la charge sur le client.
  • Version par défaut- cette propriété n'est généralement pas précisée. Permet de déterminer la version du tableau croisé dynamique en cours de création. Par défaut, la version la plus récente est utilisée.

La création d'un tableau croisé dynamique dans la première cellule de la première feuille de calcul pourrait ressembler à ceci :

PC1.CreatePivotTable Range("A1")

Nous avons créé un tableau croisé dynamique, mais immédiatement après sa création, il est vide. Il propose quatre zones dans lesquelles vous pouvez placer les champs de la source (sur l'écran graphique, tout cela peut être configuré soit à l'aide de la fenêtre Liste des champs du tableau croisé dynamique- il s'ouvre automatiquement ou à l'aide d'un bouton Mise en page sur le dernier écran de l'assistant de tableau croisé dynamique) :

  • zone de colonne- il contient les dimensions (« section » dans laquelle les données seront analysées) dont les membres sont plus petits ;
  • zone de ligne- les dimensions qui ont plus de membres ;
  • zone de page- les mesures pour lesquelles il suffit de filtrer (par exemple, afficher les données uniquement pour telle ou telle région ou uniquement pour telle ou telle année) ;
  • zone de données- en fait, la partie centrale de la table. Ces données numériques (par exemple, le montant des ventes) que nous analysons.

Il est difficile de compter sur l'utilisateur pour placer correctement les éléments dans les quatre zones.

De plus, cela peut prendre un certain temps. Par conséquent, il est souvent nécessaire d’organiser les données dans un tableau croisé dynamique par programmation. Cette opération est effectuée à l'aide de l'objet CubeField. La propriété principale de cet objet est l'Orientation, elle détermine où se situera tel ou tel champ. Par exemple, plaçons la dimension Clients dans la zone des colonnes :

PT1.CubeFields("").Orientation = xlColumnField

Ensuite - la mesure du temps dans la zone de ligne :

PT1.CubeFields("").Orientation = xlRowField

Ensuite - la dimension Produit dans la zone de la page :

PT1.CubeFields("").Orientation = xlPageField

Et enfin, l'indicateur (données numériques pour analyse) Ventes unitaires :

PT1.CubeFields(«.»).Orientation = xlDataField

Le tableau croisé dynamique a maintenant été créé et vous pouvez travailler avec lui. Cependant, il est souvent nécessaire d'effectuer une opération supplémentaire : étendre le niveau souhaité de la hiérarchie des dimensions. Par exemple, si nous sommes intéressés par une analyse trimestrielle, nous devons alors étendre le niveau Trimestre de la dimension Temps (par défaut, seul le niveau supérieur est affiché). Bien sûr, l'utilisateur peut le faire lui-même, mais on ne peut pas toujours compter sur lui pour savoir où cliquer. Par programmation Par exemple, vous pouvez étendre la hiérarchie de la dimension Temps au niveau du trimestre pour 1997 à l'aide des objets PivotField et PivotItem :

PT1.PivotFields(“.”).PivotItems(“.”).DrilledDown = True

En règle générale, les systèmes d'information d'une entreprise sérieuse contiennent des applications conçues pour une analyse complexe des données, de leur dynamique, de leurs tendances, etc. En conséquence, la haute direction devient le principal consommateur des résultats de l'analyse. Une telle analyse vise en fin de compte à soutenir la prise de décision. Et pour prendre toute décision de gestion, il est nécessaire de disposer des informations nécessaires, généralement quantitatives. Pour ce faire, il est nécessaire de collecter ces données auprès de tous les systèmes d'information de l'entreprise, de les mettre dans un format commun et ensuite seulement de les analyser. A cet effet, des Data Warehouses sont créés.

Qu'est-ce qu'un entrepôt de données ?

Habituellement - le lieu où toutes les informations ayant une valeur analytique sont collectées. Les exigences pour de tels magasins correspondent à la définition classique d'OLAP et seront expliquées ci-dessous.

Parfois, l'entrepôt a un autre objectif : l'intégration de toutes les données de l'entreprise, afin de maintenir l'intégrité et la pertinence des informations au sein de tous les systèmes d'information. Que. le référentiel accumule non seulement des informations analytiques, mais aussi presque toutes les informations, et peut les fournir sous forme de répertoires à d'autres systèmes.

Un entrepôt de données typique est généralement différent de l'habituel base relationnelle données. Premièrement, les bases de données classiques sont conçues pour aider les utilisateurs dans leur travail quotidien, tandis que les entrepôts de données sont conçus pour la prise de décision. Par exemple, la vente de marchandises et l'émission des factures sont réalisées à l'aide d'une base de données destinée au traitement des transactions, et l'analyse de la dynamique des ventes sur plusieurs années, qui permet de planifier le travail avec les fournisseurs, est réalisée à l'aide d'un entrepôt de données.

Deuxièmement, alors que les bases de données traditionnelles sont soumises à des changements constants au fur et à mesure que les utilisateurs travaillent, l'entrepôt de données est relativement stable : les données qu'il contient sont généralement mises à jour selon un calendrier (par exemple hebdomadaire, quotidien ou horaire, selon les besoins). Idéalement, le processus d'enrichissement consiste simplement à ajouter de nouvelles données sur une période donnée sans modifier les informations précédentes déjà présentes dans le magasin.

Et troisièmement, les bases de données classiques sont le plus souvent la source des données qui aboutissent dans l'entrepôt. De plus, le référentiel peut être reconstitué à partir de sources externes, telles que des rapports statistiques.

Comment est construit un entrepôt de stockage ?

ETLconcept de base: Trois étapes:
  • Extraction – extraire des données de sources externes dans un format compréhensible ;
  • Transformation – transformation de la structure des données sources en structures pratiques pour construire un système analytique ;
Ajoutons une étape supplémentaire - le nettoyage des données ( Nettoyage) – le processus de filtrage des données non pertinentes ou de correction des données erronées sur la base de méthodes statistiques ou expertes. Afin de ne pas générer de rapports du type « Ventes pour 20011 » plus tard.

Revenons à l'analyse.

Qu’est-ce que l’analyse et pourquoi est-elle nécessaire ?

L'analyse est l'étude des données dans le but de prendre des décisions. Les systèmes analytiques sont appelés systèmes d'aide à la décision ( DSS).

Il convient ici de souligner la différence entre travailler avec DSS et un simple ensemble de rapports réglementés et non réglementés. L'analyse dans DSS est presque toujours interactive et itérative. Ceux. l'analyste fouille dans les données, compose et ajuste des requêtes analytiques, et reçoit des rapports dont la structure peut être inconnue à l'avance. Nous y reviendrons plus en détail ci-dessous lorsque nous discuterons du langage de requête. MDX.

OLAP

Les systèmes d'aide à la décision ont généralement les moyens de fournir à l'utilisateur des données agrégées pour divers échantillons de l'ensemble d'origine sous une forme pratique pour la perception et l'analyse (tableaux, graphiques, etc.). L'approche traditionnelle de segmentation des données sources consiste à extraire des données sources un ou plusieurs ensembles de données multidimensionnels (souvent appelés hypercube ou métacube), dont les axes contiennent des attributs et les cellules contiennent des données quantitatives agrégées. (Ces données peuvent également être stockées dans des tables relationnelles, mais dans ce cas nous parlons de l'organisation logique des données, et non de la mise en œuvre physique de leur stockage.) Le long de chaque axe, les attributs peuvent être organisés sous forme de hiérarchies, représentant différents niveaux de leur détail. Grâce à ce modèle de données, les utilisateurs peuvent formuler des requêtes complexes, générer des rapports et obtenir des sous-ensembles de données.

La technologie d'analyse de données multidimensionnelles complexes est appelée OLAP (On-Line Analytical Processing). OLAP est un élément clé de l'entreposage de données traditionnel. Le concept d'OLAP a été décrit en 1993 par Edgar Codd, chercheur renommé en bases de données et auteur du modèle de données relationnelles. En 1995, sur la base des exigences définies par Codd, le test dit FASMI (Fast Analysis of Shared Multidimensionnel Information) a été formulé, comprenant les exigences suivantes pour les applications d'analyse multidimensionnelle :

  • fournir à l'utilisateur les résultats de l'analyse dans un délai acceptable (généralement pas plus de 5 s), même au prix d'une analyse moins détaillée ;
  • la capacité d'effectuer toute analyse logique et statistique caractéristique de cette application, et en le gardant accessible à utilisateur final formulaire;
  • accès multi-utilisateurs aux données avec prise en charge de mécanismes de verrouillage appropriés et de moyens d'accès autorisés ;
  • représentation conceptuelle multidimensionnelle des données, y compris la prise en charge complète des hiérarchies et des hiérarchies multiples (il s'agit d'une exigence clé d'OLAP) ;
  • possibilité de contacter n'importe qui information nécessaire quels que soient son volume et son emplacement de stockage.
Il convient de noter que la fonctionnalité OLAP peut être implémentée de différentes manières, en commençant par les outils d'analyse de données les plus simples de applications bureautiques et se terminant par des systèmes analytiques distribués basés sur des produits serveur. Ceux. OLAP n'est pas une technologie, mais idéologie.

Avant de parler des différentes implémentations d'OLAP, examinons de plus près ce que sont les cubes d'un point de vue logique.

Concepts multidimensionnels

Pour illustrer les principes d'OLAP, nous utiliserons la base de données Northwind, qui est incluse avec Microsoft SQL Server et est une base de données typique qui stocke les informations commerciales d'une entreprise de distribution alimentaire en gros. Ces données comprennent des informations sur les fournisseurs, les clients, une liste des marchandises fournies et leurs catégories, des données sur les commandes et les marchandises commandées, une liste des employés de l'entreprise.

cube

Prenons par exemple la table Invoices1, qui contient les commandes de l'entreprise. Les champs de ce tableau seront les suivants :
  • Date de commande
  • Un pays
  • Ville
  • Nom du client
  • Compagnie de livraison
  • Nom du produit
  • Quantité de marchandises
  • Prix ​​de la commande
Quelles données globales pouvons-nous obtenir de cette vue ? Il s’agit généralement de réponses à des questions telles que :
  • Quelle est la valeur totale des commandes passées par les clients d’un pays particulier ?
  • Quelle est la valeur totale des commandes passées par les clients dans un certain pays et livrées par une certaine entreprise ?
  • Quelle est la valeur totale des commandes passées par les clients dans un pays particulier au cours d’une année donnée et livrées par une entreprise particulière ?
Toutes ces données peuvent être obtenues à partir de cette table à l'aide de requêtes SQL assez évidentes avec regroupement.

Le résultat de cette requête sera toujours une colonne de nombres et une liste d'attributs la décrivant (par exemple, un pays) - il s'agit d'un ensemble de données unidimensionnelles ou, en langage mathématique, d'un vecteur.

Imaginons que nous ayons besoin d'obtenir des informations sur le coût total des commandes de tous les pays et leur répartition entre les sociétés de livraison - nous obtiendrons un tableau (matrice) de chiffres, où les sociétés de livraison seront répertoriées dans les en-têtes de colonnes, les pays dans la ligne les titres, et dans les cellules, il y aura le nombre de commandes. Ce - tableau bidimensionnel données. Cet ensemble de données est appelé tableau croisé dynamique ( tableau croisé dynamique) ou un tableau croisé.

Si nous voulons obtenir les mêmes données, mais aussi par année, alors un autre changement apparaîtra, c'est-à-dire l'ensemble de données deviendra tridimensionnel (un tenseur conditionnel du 3ème ordre ou un « cube ») tridimensionnel.

Bien évidemment, le nombre maximum de dimensions est le nombre de tous les attributs (Date, Pays, Client, etc.) qui décrivent nos données agrégées (montant des commandes, nombre de produits, etc.).

C'est ainsi que nous arrivons au concept de multidimensionnalité et à son incarnation - cube multidimensionnel. Nous appellerons une telle table " tableau de faits" Dimensions ou axes de cube ( dimensions) sont des attributs dont les coordonnées sont exprimées par les valeurs individuelles de ces attributs présentes dans la table de faits. Ceux. par exemple, si les informations sur les commandes ont été conservées dans le système de 2003 à 2010, alors l'axe de cette année sera composé de 8 points correspondants. Si les commandes proviennent de trois pays, alors l'axe des pays contiendra 3 points, etc. Quel que soit le nombre de pays inclus dans le répertoire des pays. Les points sur un axe sont appelés ses « membres » ( Membres).

Dans ce cas, les données agrégées elles-mêmes seront appelées « mesures » ( Mesure). Pour éviter toute confusion avec les « dimensions », ces dernières sont de préférence appelées « axes ». L'ensemble des mesures forme un autre axe « Mesures » ( Mesures). Il comporte autant de membres (points) qu'il y a de mesures (colonnes agrégées) dans la table de faits.

Les membres des dimensions ou des axes peuvent être combinés par une ou plusieurs hiérarchies ( hiérarchie). Expliquons ce qu'est la hiérarchie avec un exemple : les villes des ordres peuvent être unies en districts, les districts en régions, les régions d'un pays, les pays en continents ou autres entités. Ceux. il existe une structure hiérarchique - continent- pays-région-district-ville– 5 niveaux ( Niveau). Pour une région, les données sont agrégées pour toutes les villes qui y sont incluses. Pour une région comprenant tous les districts contenant toutes les villes, etc. Pourquoi avons-nous besoin de plusieurs hiérarchies ? Par exemple, sur l'axe des dates de commande, nous souhaiterons peut-être regrouper les points (c'est-à-dire les jours) dans une hiérarchie. Année mois jour ou par Année-Semaine-Jour: dans les deux cas il y a trois niveaux. Évidemment, Semaine et Mois regroupent les jours différemment. Il existe également des hiérarchies dont le nombre de niveaux n'est pas déterministe et dépend des données. Par exemple, des dossiers sur un disque d'ordinateur.

L'agrégation des données peut s'effectuer à l'aide de plusieurs fonctions standards : somme, minimum, maximum, moyenne, nombre.

MDX

Passons au langage de requête dans les données multidimensionnelles.
Le langage SQL n'a pas été conçu à l'origine pour les programmeurs, mais pour les analystes (et possède donc une syntaxe qui ressemble au langage naturel). Mais au fil du temps, cela est devenu de plus en plus compliqué et désormais, peu d’analystes savent comment l’utiliser correctement, voire pas du tout. C'est devenu un outil pour les programmeurs. Le langage de requête MDX, qui aurait été développé par notre ancien compatriote Mosha (ou Mosha) Posumansky dans les tréfonds de Microsoft, était lui aussi initialement destiné aux analystes, mais ses concepts et sa syntaxe (qui ressemble vaguement à SQL, et complètement en vain, c'est à dire parce que cela ne fait que confondre), encore plus compliqué que SQL. Cependant, ses bases restent faciles à comprendre.

Nous l'examinerons en détail car c'est le seul langage qui a reçu le statut de standard dans le cadre du standard général du protocole XMLA, et d'autre part parce qu'il existe une implémentation open source sous la forme du projet Mondrian de l'entreprise Pentaho. D'autres systèmes d'analyse OLAP (par exemple, Oracle OLAP Option) utilisent généralement leurs propres extensions de syntaxe Langage SQL, cependant, ils déclarent prendre en charge MDX.

Travailler avec des ensembles de données analytiques signifie uniquement les lire et non les écrire. Que. MDX n'a ​​pas de clauses pour modifier les données, mais une seule clause de sélection : select.

Dans OLAP, vous pouvez créer des cubes multidimensionnels tranches- c'est à dire. lorsque les données sont filtrées selon un ou plusieurs axes, ou projections– lorsque le cube « s’effondre » selon un ou plusieurs axes, agrégeant les données. Par exemple, notre premier exemple avec le montant des commandes des pays est une projection du cube sur l'axe Pays. La requête MDX pour ce cas ressemblera à ceci :

Sélectionnez ...Enfants sur les lignes de
Qu'est-ce qu'il y a ici ?

Sélectionnermot-clé et est inclus dans la syntaxe uniquement pour des raisons de beauté.
est le nom de l'axe. Tous les noms propres en MDX sont écrits entre crochets.
est le nom de la hiérarchie. Dans notre cas, il s'agit de la hiérarchie Pays-Ville
– c'est le nom du membre de l'axe au premier niveau de la hiérarchie (c'est-à-dire le pays) Tous – c'est un méta-membre qui unit tous les membres de l'axe. Il existe un tel méta-terme dans chaque axe. Par exemple, sur l’axe des années il y a « Toutes les années », etc.
Enfants est une fonction membre. Chaque membre dispose de plusieurs fonctions disponibles. Tel que Parent. Niveau, Hiérarchie, renvoyant respectivement l'ancêtre, le niveau dans la hiérarchie et la hiérarchie elle-même à laquelle appartient le membre dans ce cas. Enfants : renvoie un ensemble de membres enfants de ce membre. Ceux. dans notre cas – les pays.
sur les lignes– Indique comment organiser ces données dans le tableau résultant. Dans ce cas, dans l'en-tête des lignes. Valeurs possibles ici : sur les colonnes, sur les pages, sur les paragraphes, etc. Il est également possible d'indiquer simplement par index, en partant de 0.
depuis– c'est une indication du cube à partir duquel la sélection est effectuée.

Et si nous n’avions pas besoin de tous les pays, mais seulement de quelques-uns en particulier ? Pour ce faire, nous pouvons spécifier explicitement dans la requête les pays dont nous avons besoin, plutôt que de tout sélectionner à l'aide de la fonction Enfants.

Sélectionnez ( ..., ... ) sur les lignes de
Les accolades dans ce cas sont la déclaration de l'ensemble ( Ensemble). Un ensemble est une liste, une énumération de membres à partir d'un axe.

Écrivons maintenant une requête pour notre deuxième exemple – sortie dans le contexte d'un livreur :

Sélectionnez ...Enfants sur les lignes .Membres sur les colonnes de
Ajouté ici :
– axe ;
.Membres– une fonction d'axe qui renvoie tous les termes qu'elle contient. La hiérarchie et le niveau ont la même fonction. Parce que Il n'y a qu'une seule hiérarchie dans cet axe, alors son indication peut être omise, car le niveau et la hiérarchie sont également les mêmes, vous pouvez alors afficher tous les membres dans une seule liste.

Je pense qu'il est déjà évident de savoir comment nous pouvons continuer cela avec notre troisième exemple détaillé par année. Mais mieux vaut ne pas analyser par année, mais filtrer – c’est-à-dire construire une tranche Pour ce faire, nous écrirons la requête suivante :

Sélectionnez ..Enfants sur les lignes .Membres sur les colonnes d'où (.)
Où est la filtration ici ?

- mot-clé
est un membre de la hiérarchie . Le nom complet, y compris tous les termes, serait : .. , mais parce que Puisque le nom de ce membre est unique au sein de l’axe, toutes les précisions intermédiaires du nom peuvent être omises.

Pourquoi le terme de date est-il entre parenthèses ? Les parenthèses sont un tuple ( tuple). Un tuple est une ou plusieurs coordonnées le long divers axes Par exemple, pour filtrer selon deux axes à la fois, nous listons entre parenthèses deux termes de différent mesures séparées par des virgules. Autrement dit, le tuple définit une « tranche » du cube (ou un « filtrage », si cette terminologie est plus proche).

Le tuple est utilisé pour bien plus que du simple filtrage. Les tuples peuvent également se trouver dans des en-têtes de ligne/colonne/page, etc.

Ceci est nécessaire, par exemple, pour afficher le résultat d'une requête tridimensionnelle dans un tableau bidimensionnel.

Sélectionnez crossjoin(...Children, ..Children) sur les lignes .Membres sur les colonnes à partir d'où (.)
Jointure croisée est une fonction. Il renvoie un ensemble de tuples (oui, un ensemble peut contenir des tuples !) résultant du produit cartésien de deux ensembles. Ceux. l'ensemble résultant contiendra toutes les combinaisons possibles de pays et d'années. Les en-têtes de lignes contiendront ainsi une paire de valeurs : Pays-Année.

La question est de savoir où se trouve l’indication des caractéristiques numériques qui doivent être affichées ? Dans ce cas, la mesure par défaut définie pour ce cube est utilisée, c'est-à-dire Prix ​​de la commande. Si nous voulons dériver une autre mesure, alors nous rappelons que les mesures sont membres d'une dimension Mesures. Et nous agissons exactement de la même manière qu’avec les autres axes. Ceux. filtrer une requête par une des mesures affichera exactement cette mesure dans les cellules.

Question : Quelle est la différence entre le filtrage dans où et le filtrage en spécifiant les membres de l'axe dans les lignes. Réponse : pratiquement rien. Simplement là où une tranche est indiquée pour les axes qui ne participent pas à la formation des rubriques. Ceux. même axe ne peut pasêtre présent en même temps sur les lignes, et en .

Membres calculés

Pour les requêtes plus complexes, vous pouvez déclarer les membres calculés. Membres des axes d’attribut et de mesure. Ceux. Vous pouvez par exemple déclarer une nouvelle mesure qui affichera la contribution de chaque pays au montant total des commandes :

Avec membre. comme '.CurrentMember / ..', FORMAT_STRING='0.00%' sélectionnez ...Enfants sur les lignes à partir d'où .
Le calcul s'effectue dans le contexte d'une cellule dans laquelle tous ses attributs de coordonnées sont connus. Les coordonnées (membres) correspondantes peuvent être obtenues par la fonction CurrentMember pour chacun des axes du cube. Ici, il faut comprendre que l'expression .Membre actuel/..» ne divise pas un terme par un autre, mais divise données agrégées pertinentes des tranches de cubes ! Ceux. la tranche du territoire actuel sera divisée en une tranche pour tous les territoires, c'est-à-dire la valeur totale de toutes les commandes. FORMAT_STRING – définit le format d'affichage des valeurs, c'est-à-dire %.

Autre exemple de membre calculé, mais sur l'axe des années :

Avec membre. comme '. - .'
Évidemment, le rapport ne contiendra pas une unité, mais la différence des sections correspondantes, c'est-à-dire la différence dans le montant des commandes au cours de ces deux années.

Afficher dans ROLAP

Les systèmes OLAP sont d'une manière ou d'une autre basés sur une sorte de système de stockage et d'organisation des données. Quand on parle de SGBDR, on parle de ROLAP (nous laisserons MOLAP et HOLAP pour une étude indépendante). ROLAP – OLAP sur une base de données relationnelle, c'est-à-dire décrits sous forme de tableaux bidimensionnels ordinaires. Les systèmes ROLAP convertissent les requêtes MDX en SQL. Le principal problème informatique des bases de données est l’agrégation rapide. Pour agréger plus rapidement, les données de la base de données sont généralement fortement dénormalisées, c'est-à-dire ne sont pas stockés de manière très efficace en termes d’espace disque occupé et de surveillance de l’intégrité de la base de données. De plus, ils contiennent en outre des tableaux auxiliaires qui stockent des données partiellement agrégées. Par conséquent, pour OLAP, un schéma de base de données distinct est généralement créé, qui ne reproduit que partiellement la structure des bases de données transactionnelles d'origine en termes de répertoires.

La navigation

De nombreux systèmes OLAP proposent des outils de navigation interactifs pour une requête déjà générée (et par conséquent des données sélectionnées). Dans ce cas, on utilise ce qu'on appelle le « forage » ou le « forage ». Une traduction plus adéquate en russe serait le mot « approfondissement ». Mais c’est une question de goût, dans certains milieux le mot « forage » est resté.

Percer– il s’agit d’un rapport détaillé en réduisant le degré d’agrégation des données, combiné à un filtrage selon un autre axe (ou plusieurs axes). Il existe plusieurs types de forages :

  • exploration– filtrage selon un des axes sources du rapport avec affichage d'informations détaillées sur les descendants au sein de la hiérarchie du membre filtrant sélectionné. Par exemple, s'il existe un rapport sur la répartition des commandes par pays et par années, alors cliquer sur l'année 2007 affichera un rapport ventilé par les mêmes pays et mois de 2007.
  • côté forage– filtrage sous un ou plusieurs axes sélectionnés et suppression de l'agrégation le long d'un ou plusieurs autres axes. Par exemple, s'il existe un rapport sur la répartition des commandes par pays et par années, alors cliquer sur l'année 2007 affichera un autre rapport détaillé, par exemple, par pays et fournisseurs avec un filtrage par 2007.
  • forage– la suppression de l'agrégation sur tous les axes et le filtrage simultané le long de ceux-ci – vous permettent de voir les données sources de la table de faits à partir de laquelle la valeur du rapport a été obtenue. Ceux. Lorsque vous cliquez sur une valeur de cellule, un rapport s'affiche avec toutes les commandes ayant donné ce montant. Une sorte de forage instantané dans les « profondeurs » mêmes du cube.
C'est tout. Désormais, si vous décidez de vous consacrer à la Business Intelligence et à OLAP, il est temps de commencer à lire de la littérature sérieuse.

Balises : Ajouter des balises

OLAP n'est pas un produit logiciel distinct, ni un langage de programmation, ni même une technologie spécifique. Si nous essayons de couvrir OLAP dans toutes ses manifestations, il s'agit alors d'un ensemble de concepts, de principes et d'exigences qui sous-tendent les produits logiciels et qui facilitent l'accès des analystes aux données. Découvrons-le Pour quoi les analystes ont besoin de quelque chose de spécial faciliter accès aux données.

Le fait est que les analystes sont des consommateurs particuliers d’informations sur les entreprises. La tâche de l'analyste est de trouver des modèles dans de grandes quantités de données. Par conséquent, l'analyste ne prêtera pas attention au fait distinct que jeudi 4, un lot d'encre noire a été vendu à la contrepartie Tchernov - il a besoin d'informations environ des centaines et des milliersévénements similaires. Des faits uniques dans la base de données peuvent intéresser, par exemple, un comptable ou le chef du service commercial, responsable de la transaction. Pour un analyste, un seul enregistrement ne suffit pas - il peut, par exemple, avoir besoin de toutes les transactions d'une succursale ou d'un bureau de représentation donné pendant un mois ou un an. Parallèlement, l'analyste rejette des détails inutiles tels que le NIF de l’acheteur, son adresse exacte et son numéro de téléphone, l’index du contrat, etc. Dans le même temps, les données dont un analyste a besoin pour son travail contiennent nécessairement des valeurs numériques - cela est dû à l'essence même de son activité.

Donc, l'analyste a besoin de beaucoup de données, ces données sont sélectives et aussi de nature " ensemble d'attributs - nombre". Ce dernier signifie que l'analyste travaille avec des tableaux du type suivant :

Ici " Un pays", "Produit", "Année" sont des attributs ou des mesures, UN " Volume des ventes" - donc la valeur numérique ou mesure. La tâche de l’analyste, répétons-le, est d’identifier des relations fortes entre attributs et paramètres numériques.. En regardant le tableau, vous remarquerez qu'il peut facilement être converti en trois dimensions : on mettra les pays sur l'un des axes, les marchandises sur l'autre et les années sur le troisième. Et les valeurs de ce tableau tridimensionnel seront les volumes de ventes correspondants.

Représentation tridimensionnelle du tableau. Le segment gris montre qu'il n'y a pas de données pour l'Argentine en 1988.

C'est précisément ce tableau tridimensionnel qui est appelé cube en termes OLAP. En fait, du point de vue des mathématiques strictes, un tel tableau ne sera pas toujours un cube : un vrai cube doit avoir le même nombre d'éléments dans toutes les dimensions, mais les cubes OLAP n'ont pas une telle limitation. Cependant, malgré ces détails, le terme « cubes OLAP », en raison de sa brièveté et de son caractère figuratif, est devenu généralement accepté. Un cube OLAP n'a pas besoin d'être tridimensionnel. Cela peut être à la fois bidimensionnel et multidimensionnel, selon le problème à résoudre. Les analystes particulièrement expérimentés peuvent avoir besoin d'environ 20 dimensions - et les produits OLAP sérieux sont conçus exactement pour cette quantité. Les applications de bureau plus simples prennent en charge environ 6 dimensions.

Des mesures Les cubes OLAP sont constitués de ce qu'on appelle Des marques ou des membres. Par exemple, la dimension Pays comprend les étiquettes Argentine, Brésil, Venezuela, etc.

Tous les éléments du cube ne doivent pas être renseignés : s'il n'y a pas d'informations sur les ventes de produits en caoutchouc en Argentine en 1988, la valeur dans la cellule correspondante ne sera tout simplement pas déterminée. Il n'est pas non plus du tout nécessaire qu'une application OLAP stocke nécessairement les données dans une structure multidimensionnelle - l'essentiel est que ces données ressemblent exactement à ceci pour l'utilisateur. D'ailleurs, exactement manières spéciales stockage compact de données multidimensionnelles, le « vide » (éléments non remplis) dans des cubes n'entraîne pas de gaspillage de mémoire.

Cependant, le cube lui-même ne se prête pas à l’analyse. S'il est encore possible d'imaginer ou de représenter adéquatement un cube en trois dimensions, alors avec un cube à six ou dix-neuf dimensions, la situation est bien pire. C'est pourquoi Avant utilisation les ordinaires sont extraits d’un cube multidimensionnel tableaux bidimensionnels. Cette opération est appelée « découpe » du cube. Ce terme, encore une fois, est figuratif. L'analyste, pour ainsi dire, prend et « découpe » les dimensions du cube selon les repères qui l'intéressent. De cette façon, l’analyste reçoit une tranche bidimensionnelle du cube et travaille avec elle. De la même manière, les bûcherons comptent les cernes annuels sur un arbre coupé.

En conséquence, en règle générale, seules deux dimensions restent « non coupées » - selon le nombre de dimensions dans le tableau. Il arrive que seule une dimension reste « non coupée » - si le cube contient plusieurs types de valeurs numériques, elles peuvent être tracées le long d'une des dimensions du tableau.

Si vous regardez de plus près le tableau que nous avons représenté en premier, vous remarquerez que les données qu'il contient ne sont probablement pas primaires, mais obtenues en conséquence. addition sur des éléments plus petits. Par exemple, une année est divisée en trimestres, les trimestres en mois, les mois en semaines, les semaines en jours. Un pays est constitué de régions et les régions sont constituées de zones peuplées. Enfin, dans les villes elles-mêmes, des quartiers et des commerces spécifiques peuvent être identifiés. Les produits peuvent être regroupés en groupes de produits, etc. En termes OLAP, de telles associations multi-niveaux sont assez logiquement appelées hiérarchies. Les outils OLAP permettent de passer à tout moment au niveau hiérarchique souhaité. De plus, en règle générale, plusieurs types de hiérarchies sont supportés pour les mêmes éléments : par exemple jour-semaine-mois ou jour-décennie-trimestre. Les données sources sont extraites des niveaux inférieurs des hiérarchies, puis additionnées pour obtenir des valeurs aux niveaux supérieurs. Pour accélérer le processus de transition, les valeurs additionnées pour différents niveaux stocké dans un cube. Ainsi, ce qui ressemble à un cube du côté de l'utilisateur est, en gros, constitué de nombreux autres cubes primitifs.

Exemple de hiérarchie

C'est l'un des points essentiels qui ont conduit à l'émergence d'OLAP : productivité et efficacité. Imaginons ce qui se passe lorsqu'un analyste a besoin d'obtenir des informations, mais qu'il n'y a pas d'outils OLAP dans l'entreprise. L'analyste effectue indépendamment (ce qui est peu probable) ou avec l'aide d'un programmeur la requête SQL appropriée et reçoit les données qui l'intéressent sous la forme d'un rapport ou les exporte vers une feuille de calcul. De nombreux problèmes se posent dans ce cas. Premièrement, l'analyste est obligé de faire autre chose que son travail (programmation SQL) ou d'attendre que les programmeurs terminent la tâche à sa place - tout cela a un impact négatif sur la productivité du travail, augmentant les taux de tempêtes, de crises cardiaques et d'accidents vasculaires cérébraux, etc. . Deuxièmement, en règle générale, un seul rapport ou tableau ne sauve pas les géants de la pensée et les pères de l'analyse russe - et toute la procédure devra être répétée encore et encore. Troisièmement, comme nous l'avons déjà découvert, les analystes ne posent pas de questions sur des bagatelles : ils ont besoin de tout en même temps. Cela signifie (bien que la technologie progresse à pas de géant) que le serveur SGBD relationnel d'entreprise auquel accède l'analyste peut réfléchir en profondeur et pendant longtemps, bloquant d'autres transactions.

Le concept d'OLAP est apparu précisément pour résoudre de tels problèmes. Les cubes OLAP sont essentiellement des méta-rapports. En découpant des méta-rapports (c'est-à-dire des cubes) selon des dimensions, l'analyste reçoit en réalité les rapports bidimensionnels « ordinaires » qui l'intéressent (ce ne sont pas nécessairement des rapports au sens habituel du terme - on parle de structures de données avec les mêmes fonctions). Les avantages des cubes sont évidents : les données ne doivent être demandées qu'une seule fois à un SGBD relationnel - lors de la construction d'un cube. Étant donné que les analystes ne travaillent généralement pas avec des informations complétées et modifiées à la volée, le cube généré est pertinent pendant assez longtemps. Grâce à cela, non seulement les interruptions dans le fonctionnement du serveur SGBD relationnel sont éliminées (il n'y a pas de requêtes avec des milliers et des millions de lignes de réponse), mais la vitesse d'accès aux données pour l'analyste lui-même augmente également fortement. De plus, comme déjà indiqué, les performances sont également améliorées en calculant les sous-sommes des hiérarchies et autres valeurs agrégées au moment de la construction du cube. Autrement dit, si initialement nos données contenaient des informations sur les revenus quotidiens d'un produit spécifique dans un seul magasin, alors lors de la formation d'un cube, l'application OLAP calcule les totaux pour différents niveaux de hiérarchies (semaines et mois, villes et pays).

Bien entendu, il faut payer pour augmenter ainsi la productivité. On dit parfois que la structure des données « explose » simplement : un cube OLAP peut occuper des dizaines, voire des centaines de fois, plus d'espace que les données d'origine.

Répondez aux questions:

    Ce qui s'est passé cube OLAP ?

    Ce qui s'est passé Mots clés mesure spécifique ? Donne des exemples.

    Peuvent-ils mesures dans un cube OLAP, contiennent des valeurs non numériques.

Peut-être que pour certains, l'utilisation de la technologie OLAP (On-line Analytic Processing) lors de la création de rapports semblera quelque peu exotique, donc l'utilisation d'OLAP-CUBE pour eux n'est pas du tout l'une des exigences les plus importantes lors de l'automatisation de la budgétisation et de la comptabilité de gestion.

En fait, il est très pratique d'utiliser un CUBE multidimensionnel lorsque l'on travaille avec des rapports de gestion. Lors de l'élaboration de formats budgétaires, vous pouvez rencontrer le problème des formulaires multivariés (vous pouvez en savoir plus à ce sujet dans le livre 8, « Technologie de mise en place du budget dans une entreprise » et dans le livre « Mise en place et automatisation de la comptabilité de gestion »).

Cela est dû au fait qu’une gestion efficace d’une entreprise nécessite des rapports de gestion de plus en plus détaillés. Autrement dit, le système utilise de plus en plus de sections analytiques différentes (dans les systèmes d'information, les analyses sont déterminées par un ensemble d'ouvrages de référence).

Naturellement, cela conduit au fait que les managers souhaitent recevoir des reporting dans toutes les sections analytiques qui les intéressent. Cela signifie que les rapports doivent être amenés à « respirer » d’une manière ou d’une autre. En d’autres termes, nous pouvons dire que dans ce cas, nous parlons du fait que le même rapport doit fournir des informations sous différents aspects analytiques. Par conséquent, les rapports statiques ne conviennent plus à de nombreux gestionnaires modernes. Ils ont besoin de la dynamique qu’un CUBE multidimensionnel peut offrir.

Ainsi, la technologie OLAP est déjà devenue un élément obligatoire des systèmes d'information modernes et futurs. Par conséquent, lors du choix d'un produit logiciel, vous devez faire attention s'il utilise la technologie OLAP.

De plus, vous devez être capable de distinguer les vrais CUBES des imitations. L'une de ces simulations est celle des tableaux croisés dynamiques dans MS Excel. Oui, cet outil ressemble à un CUBE, mais en fait ce n'en est pas un, puisqu'il s'agit de tables statiques et non dynamiques. De plus, ils ont une implémentation bien pire de la capacité de créer des rapports en utilisant des éléments de répertoires hiérarchiques.

Pour confirmer la pertinence d'utiliser CUBE dans la construction du reporting de gestion, nous pouvons donner un exemple simple avec un budget commercial. Dans l'exemple considéré, les sections analytiques suivantes sont pertinentes pour l'entreprise : produits, succursales et canaux de vente. Si ces trois analyses sont importantes pour l'entreprise, alors le budget (ou rapport) des ventes peut être affiché en plusieurs versions.

A noter que si vous créez des lignes budgétaires basées sur trois sections analytiques (comme dans l'exemple considéré), cela permet de créer des modèles budgétaires assez complexes et de créer des rapports détaillés à l'aide de CUBE.

Par exemple, un budget de vente peut être élaboré à l'aide d'une seule analyse (répertoire). Un exemple de budget de vente construit sur la base d'une analyse « Produits » est présenté sur Figure 1.

Riz. 1. Un exemple de budget de vente construit sur la base d'une analyse « Produits » dans OLAP-CUBE

Le même budget de vente peut être compilé à l'aide de deux analyses (répertoires). Un exemple de budget commercial construit sur la base de deux analyses « Produits » et « Branches » est présenté sur Figure 2.

Riz. 2. Un exemple de budget de vente construit sur la base de deux analyses « Produits » et « Branches » dans l'OLAP-CUBE du progiciel INTEGRAL

.

S'il est nécessaire de créer des rapports plus détaillés, le même budget de vente peut être compilé à l'aide de trois analyses (répertoires). Un exemple de budget de vente construit sur la base de trois analyses « Produits », « Branches » et « Canaux de vente » est présenté sur figure 3.

Riz. 3. Un exemple de budget de vente construit sur la base de trois analyses « Produits », « Branches » et « Canaux de vente » dans l'OLAP-CUBE du progiciel INTEGRAL

Rappelons que le CUBE utilisé pour générer les rapports permet d'afficher les données dans différentes séquences. Sur figure 3 Le budget commercial est d'abord « élargi » par produit, puis par branche, puis par canal de vente.

Les mêmes données peuvent être présentées dans un ordre différent. Sur Figure 4 le même budget de vente est « élargi » d'abord par produit, puis par canal de vente, et enfin par branche.

Riz. 4. Un exemple de budget de vente construit sur la base de trois analyses « Produits », « Canaux de distribution » et « Branches » dans l'OLAP-CUBE du progiciel INTEGRAL

Sur Figure 5 le même budget de vente est « déployé » d'abord par succursales, puis par produits, puis par canaux de vente.

Riz. 5. Un exemple de budget de vente construit sur la base de trois analyses « Branches », « Produits » et « Canaux de vente » dans le progiciel OLAP-CUBE « INTEGRAL »

En fait, ce ne sont pas toutes les options possibles pour retirer le budget des ventes.

De plus, vous devez faire attention au fait que KUB vous permet de travailler avec la structure hiérarchique des répertoires. Dans les exemples présentés, les répertoires hiérarchiques sont « Produits » et « Canaux de distribution ».

Du point de vue de l'utilisateur, dans cet exemple il reçoit plusieurs rapports de gestion (voir. Riz. 1-5), et du point de vue des paramètres du produit logiciel, il s'agit d'un seul rapport. En utilisant simplement le CUBE, vous pouvez le visualiser de plusieurs manières.

Naturellement, en pratique, un très grand nombre d'options pour éditer divers rapports de gestion sont possibles si leurs articles s'appuient sur un ou plusieurs analystes. Et l’ensemble des analyses lui-même dépend des besoins de détails des utilisateurs. Certes, il ne faut pas oublier que, d'une part, plus l'analyste est grand, plus les rapports peuvent être élaborés. Mais d’un autre côté, cela signifie que le modèle de budgétisation financière sera plus complexe. Dans tous les cas, s'il existe un KUB, l'entreprise aura la possibilité de visualiser le reporting nécessaire dans différentes versions, conformément aux sections analytiques qui l'intéressent.

Il est nécessaire de mentionner plusieurs autres fonctionnalités d'OLAP-CUBE.

Dans un OLAP-CUBE hiérarchique multidimensionnel, il existe plusieurs dimensions : type de ligne, date, lignes, répertoire 1, répertoire 2 et répertoire 3 (voir. Riz. 6). Bien entendu, le rapport affiche autant de boutons avec des répertoires qu'il y en a dans la ligne budgétaire contenant le nombre maximum de répertoires. S'il n'y a pas un seul ouvrage de référence dans une ligne budgétaire, le rapport ne comportera pas un seul bouton avec des ouvrages de référence.

Initialement, l'OLAP-CUBE est construit dans toutes les dimensions. Par défaut, lors de la création initiale du rapport, les dimensions sont situées exactement dans les zones affichées dans Figure 6. C'est-à-dire qu'une dimension telle que "Date" est située dans la zone des dimensions verticales (dimensions dans la zone des colonnes), les dimensions "Lignes", "Répertoire 1", "Répertoire 2" et "Répertoire 3" - dans le zone de dimensions horizontales (dimensions dans les lignes de la zone), et la dimension « Type de ligne » se trouve dans la zone des dimensions « non développées » (dimensions dans la zone de la page). Si une dimension se trouve dans la dernière zone, les données du rapport ne seront pas « développées » sur cette dimension.

Chacune de ces dimensions peut être placée dans l’une des trois zones. Une fois les mesures transférées, le rapport est instantanément reconstruit pour correspondre à la nouvelle configuration de mesure. Par exemple, vous pouvez échanger la date et les lignes avec des ouvrages de référence. Ou vous pouvez déplacer l'un des ouvrages de référence vers la zone de mesure verticale (voir. Riz. 7). En d'autres termes, vous pouvez « tordre » le rapport dans OLAP-CUBE et sélectionner l'option de sortie du rapport qui convient le mieux à l'utilisateur.

Riz. 7. Un exemple de reconstruction d'un rapport après changement de configuration de mesure du progiciel INTEGRAL

La configuration de mesure peut être modifiée soit dans le formulaire principal CUBE, soit dans l'éditeur de carte de modification (voir. Riz. 8). Dans cet éditeur, vous pouvez également glisser et déposer des mesures d'une zone à une autre avec la souris. De plus, vous pouvez échanger les mesures dans une zone.

De plus, sous le même formulaire, vous pouvez configurer certains paramètres de mesure. Pour chaque dimension, vous pouvez personnaliser l'emplacement des totaux, l'ordre de tri des éléments et les noms des éléments (voir. Riz. 8). Vous pouvez également spécifier quel nom d'élément afficher dans le rapport : abrégé (Name) ou complet (FullName).

Riz. 8. Editeur de cartes de mesures du progiciel INTEGRAL

Vous pouvez éditer les paramètres de mesure directement dans chacun d'eux (voir. Riz. 9). Pour cela, cliquez sur l'icône située sur le bouton à côté du nom de la mesure.

Riz. 9. Exemple d'édition du répertoire 1 Produits et services dans

À l'aide de cet éditeur, vous pouvez sélectionner les éléments que vous souhaitez afficher dans le rapport. Par défaut, tous les éléments sont affichés dans le rapport, mais si nécessaire, certains éléments ou dossiers peuvent être omis. Par exemple, si vous devez afficher un seul groupe de produits dans le rapport, vous devez alors décocher tous les autres dans l'éditeur de mesures. Après cela, le rapport ne contiendra qu'un seul groupe de produits (voir. Riz. dix).

Vous pouvez également trier les éléments dans cet éditeur. De plus, les éléments peuvent être réorganisés de différentes manières. Après un tel regroupement, le rapport est instantanément reconstruit.

Riz. 10. Exemple de sortie dans un rapport d'un seul groupe de produits (dossier) dans le progiciel INTEGRAL

Dans l'éditeur de dimensions, vous pouvez créer rapidement vos propres groupes, y glisser-déposer des éléments depuis des répertoires, etc. Par défaut, seul le groupe Autre est automatiquement créé, mais d'autres groupes peuvent être créés. Ainsi, à l'aide de l'éditeur de dimensions, vous pouvez configurer quels éléments des ouvrages de référence et dans quel ordre doivent être affichés dans le rapport.


Il convient de noter que tous ces réarrangements ne sont pas enregistrés. Autrement dit, après la fermeture du rapport ou après son recalcul, tous les répertoires seront affichés dans le rapport conformément à la méthodologie configurée.

En fait, tous ces changements auraient pu être apportés initialement lors de la mise en place des lignes.

Par exemple, en utilisant des restrictions, vous pouvez également spécifier quels éléments ou groupes de répertoires doivent être affichés dans le rapport et lesquels ne doivent pas l'être.

Note: le sujet de cet article est abordé plus en détail lors d'ateliers "Gestion budgétaire d'une entreprise" Et "Organisation et automatisation de la comptabilité de gestion" menée par l'auteur de cet article, Alexander Karpov.

Si l'utilisateur a presque régulièrement besoin d'afficher uniquement certains éléments ou dossiers de répertoire dans le rapport, il est alors préférable de définir ces paramètres à l'avance lors de la création des lignes de rapport. Si diverses combinaisons d'éléments de répertoire dans les rapports sont importantes pour l'utilisateur, il n'est alors pas nécessaire de définir des restrictions lors de la configuration de la méthodologie. Toutes ces restrictions peuvent être rapidement configurées à l'aide de l'éditeur de mesures.

OLAP (traitement analytique en ligne) est une méthode de traitement électronique des données analytiques qui représente l'organisation des données en catégories hiérarchiques à l'aide de totaux pré-calculés. Les données OLAP sont organisées hiérarchiquement et sont stockées dans des cubes plutôt que dans des tableaux. Les cubes OLAP sont un ensemble de données multidimensionnelles avec des axes contenant des paramètres et des cellules contenant des données agrégées dépendant des paramètres. Les cubes sont conçus pour l'analyse multidimensionnelle complexe de grands volumes de données, car ils fournissent uniquement des résultats récapitulatifs pour la création de rapports, au lieu d'un grand nombre d'enregistrements individuels.

Le concept d'OLAP a été décrit en 1993 par le célèbre chercheur en bases de données et auteur du modèle de données relationnelles E. F. Codd. Actuellement, la prise en charge d'OLAP est implémentée dans de nombreux SGBD et autres outils.

Un cube OLAP contient deux types de données :

· valeurs totales, valeurs pour lesquelles vous souhaitez résumer, représentant champs de données calculés;

· informations descriptives représentant des mesures ou dimensions. Les informations descriptives sont généralement organisées en niveaux de détail. Par exemple : « Année », « Trimestre », « Mois » et « Jour » dans la dimension « Temps ». L'organisation des champs en niveaux de détail permet aux utilisateurs de rapports de choisir le niveau de détail qu'ils souhaitent afficher, en commençant par des données récapitulatives de haut niveau, puis en descendant vers une vue plus détaillée, et vice versa.

Les outils Microsoft Query vous permettent également de créer des cubes OLAP à partir d'une requête qui charge les données d'une base de données relationnelle telle que Microsoft Access, transformant une table linéaire en une hiérarchie structurée (cube).

L'assistant de création de cube OLAP est un outil de requête Microsoft intégré. Pour créer un cube OLAP basé sur une base de données relationnelle, vous devez effectuer les étapes suivantes avant d'exécuter l'assistant.

1. Déterminez la source de données (voir Figure 6.1).

2. À l'aide de Microsoft Query, créez une requête incluant uniquement les champs qui seront soit des champs de données, soit des champs de dimension d'un cube OLAP ; si un champ d'un cube est utilisé plus d'une fois, il doit alors être inclus dans la requête de la manière requise. nombre de fois.

3. A la dernière étape de l'assistant de création de requête, positionnez le commutateur sur l'élément Création d'un cube OLAP à partir de de cette demande (voir Fig. 6.2) ou après la création de la requête en utilisant directement le menu Requête Déposer sélectionner une équipe Créer un cube OLAP, après quoi l'assistant de création de cube OLAP sera lancé.

L'assistant de création de cube OLAP comprend trois étapes.

À la première étape de l'assistant (voir Fig. 6.6), le champs de données– les champs calculés pour lesquels des valeurs totales doivent être déterminées.



Riz. 6.6. Définir des champs de données

L'assistant place les champs calculés attendus (généralement des champs numériques) dans la partie supérieure liste, signale et détermine la fonction résultante de ces champs, généralement - Somme. Lors de la sélection des champs de données, au moins un champ doit être sélectionné comme champ calculé et au moins un champ doit être laissé décoché pour déterminer la dimension.

Lors de la création d'un cube OLAP, vous pouvez utiliser quatre fonctions récapitulatives - Somme, Nombre(nombre de valeurs), Le minimum, Maximum pour les champs numériques et une fonction Nombre pour tous les autres domaines. Si vous souhaitez utiliser plusieurs fonctions récapitulatives différentes d'un même champ, ce champ doit être inclus dans la requête le nombre de fois requis.

Le nom d'un champ calculé peut être modifié dans une colonne Nom du champ de données.

Lors de la deuxième étape de l'assistant, les données descriptives et leurs dimensions sont déterminées (voir Fig. 6.7). Pour sélectionner un champ de mesure, vous devez dans la liste Champs sources faites glisser le champ de dimension souhaité haut niveauà la liste Des mesuresà la zone marquée comme Faites glisser les champs ici pour créer des dimensions. Pour créer un cube OLAP, vous devez définir au moins une dimension. A la même étape de l'assistant, en utilisant menu contextuel Vous pouvez modifier le nom d'un champ de dimension ou de niveau.

Riz. 6.7. Définir des champs de dimension

Les champs contenant des données isolées ou discrètes et n'appartenant pas à une hiérarchie peuvent être définis comme dimensions à un seul niveau. Cependant, le cube sera plus efficace si certains champs sont organisés en niveaux. Pour créer un niveau dans le cadre d'une dimension, faites glisser un champ de la liste Champs sources sur un champ qui est une dimension ou un niveau. Les champs contenant des informations plus détaillées doivent être placés aux niveaux inférieurs. Par exemple, dans la figure 6.7, le champ Titre d'emploi est le niveau du champ Nom du département.

Pour déplacer un champ vers un niveau inférieur ou supérieur, vous devez le faire glisser vers un champ inférieur ou supérieur au sein de la dimension. Pour afficher ou masquer les niveaux, utilisez respectivement les boutons ou .

Si vous utilisez des champs de date ou d'heure comme dimension de niveau supérieur, l'Assistant Cube OLAP crée automatiquement des niveaux pour ces dimensions. L'utilisateur peut alors sélectionner les niveaux qui doivent apparaître dans les rapports. Par exemple, vous pouvez sélectionner des semaines, des trimestres et des années, ou des mois (voir Figure 6.7).

N'oubliez pas que l'assistant crée automatiquement des niveaux pour les champs de date et d'heure uniquement lorsque vous créez une dimension de niveau supérieur ; Lors de l'ajout de ces champs en tant que sous-niveaux d'une dimension, les niveaux automatiques ne sont pas créés.

A la troisième étape de l'assistant, le type de cube est déterminé, créé par le maître, avec trois options possibles (voir Fig. 6.8).

Riz. 6.8. Sélection du type de cube à créer à la troisième étape de l'assistant

· Les deux premières options consistent à créer un cube à chaque fois que vous ouvrez un rapport (si le cube est visualisé depuis Excel, nous parlons alors d'un tableau croisé dynamique). Dans ce cas, le dossier de requête et le dossier définitions de cubes *.oqy, qui contient des instructions pour créer un cube. Le fichier *.oqy peut être ouvert dans Excel pour créer des rapports basés sur le cube, et si vous devez apporter des modifications au cube, vous pouvez l'ouvrir avec Query pour exécuter à nouveau l'assistant de création de cube.

Par défaut, les fichiers de définition de cube, comme les fichiers de requête, sont stockés dans le dossier du profil utilisateur dans Application Data\Microsoft\Que-ries. Lors de l'enregistrement d'un fichier *.oqy dans dossier standard, le nom du fichier de définition du cube est affiché sur l'onglet Cubes OLAP lors de l'ouverture d'une nouvelle requête dans Microsoft Query ou lors de la sélection d'une commande Créer une demande(menu Données, sous-menu Importer des données externes) dans Microsoft Excel.

· En cas de choix de la troisième option de type de cube Enregistrer un fichier de cube contenant toutes les données du cube, toutes les données du cube sont récupérées et un fichier de cube avec l'extension * est créé à un emplacement spécifié par l'utilisateur .lionceau, dans lequel ces données sont stockées. Création ce fichier ne se produit pas immédiatement lorsque le bouton est enfoncé Prêt; le fichier est créé soit lorsque vous enregistrez la définition du cube dans un fichier, soit lorsque vous créez un rapport basé sur le cube.

Le choix du type de cube est déterminé par plusieurs facteurs : la quantité de données contenues dans le cube ; le type et la complexité des rapports qui seront créés sur la base du cube ; ressources système (mémoire et espace disque), etc.

Un fichier cube *.cub distinct doit être créé dans les cas suivants :

1) pour les rapports interactifs fréquemment modifiés si l'espace disque est suffisant ;

2) lorsque vous devez enregistrer le cube sur un serveur réseau pour permettre à d'autres utilisateurs d'y accéder lors de la création de rapports. Un fichier cube peut fournir des données spécifiques de la base de données source tout en omettant les données sensibles ou sensibles auxquelles vous souhaitez empêcher les autres utilisateurs d'accéder.