2010-01-24 3 views
1

Nous développons un moteur personnalisé MOLAP pour le traitement en direct d'une grande quantité de données en cours. Et maintenant nous avons une exigence pour intégrer SSAS avec notre système. Les méta-informations et les données d'attributs de Dimension sont très faciles à obtenir. Mais comment puis-je obtenir des données de faits sans faire en sorte que SSAS calcule des agrégats, c'est-à-dire des données stockées uniquement sur des feuilles? Agrégats et calculs nous effectuons nous-mêmes.Comment obtenir des données de faits «brutes» à partir de Analysis Services

La sélection de données à partir de la base de données SQL n'est pas une solution car le cube peut effectuer des jointures lors du chargement. compensation des données, etc.

Exemple:

Supposons que nous avons Dimension du produit:

  • Product.All
    + Product.Bread
    + Product.Chair
    + Product.Book

Et table de faits - Ventes:

|Product|Qty| 
|Bread | 1 | 
|Chair | 3 | 

Je veux obtenir de cube seulement des données réelles, et non agrégées un:

|Product|Qty| 
|All | 4 | 
|Book | 0 | 
|Bread | 1 | 
|Chair | 3 | 

Répondre

4

Essayez de regarder dans SSAS Accès au détail. Cela peut afficher les données factuelles et est disponible dans Excel comme action par défaut lorsque vous double-cliquez sur une cellule. Vous pouvez personnaliser le jeu de résultats, tant que toutes les mesures/dimensions proviennent de la table de faits pertinents:

http://csjohnlam.spaces.live.com/Blog/cns!996308EF3A99432B!214.entry?sa=340601263

Vous trouverez également ce utile:

http://asstoredprocedures.codeplex.com/wikipage?title=Drillthrough&referringTitle=Home

+0

@Meff bonne idée! Merci! –

1

Bottom line, vous ne pouvez pas obtenir les faits mis à jour sans retraitement du cube. Si vous voulez les données brutes en temps réel, vous devrez les calculer vous-même à partir des tables de dimension/de faits dans l'entrepôt de données.

+0

I _can_ RETRAITER cube Ce n'est pas un problème. Je veux obtenir à partir des lignes de cube uniquement que _actually_ existe dans DW. et je devrais être capable de trouver chaque ligne dans DW. Est-ce possible? Si dans DW il y a deux lignes avec: Premier: Valeur d'attribut de dimension de produit == Valeur de pain et de mesure Qté == 1. Deuxième: Valeur d'attribut de dimension de produit == Chaise et mesure Qté de valeur == 2. Je veux pour obtenir uniquement les lignes mais pas les trois lignes (si la dimension du produit n'a pas de hiérarchie) P.All 3 - il s'agit de l'agrégat P.Bread 1 P.Cheir 2 –

+0

S'il y a une hiérarchie et plusieurs dimensions pire à cause du produit cartésien. –

1

dans ssas u peut désactiver l'agrégation de niveau hiérarchique et pour les lignes vides utilisent non vides comme mot-clé avant de récupérer les données

+0

merci, comment puis-je désactiver l'agrégation de niveau? pouvez-vous fournir un exemple pour Adventure Works cube? –

+0

sélectionnez la dimension dans l'onglet Structure du cube, cliquez sur ses propriétés et définissez la propriété "Allmemberagregationusuage" sur None, puis votre problème sera résolu – paranjai

+0

Je ne peux pas modifier la structure du cube d'une manière aussi brute. Puis-je le gérer via MDX? –

Questions connexes