2010-05-11 2 views
0

J'ai une table avec plusieurs millions de lignes. Chaque ligne représente un utilisateur session. Il y a une colonne appelée user qui n'est pas unique. Il peut y avoir plusieurs sessions par utilisateur. Je veux utiliser les services d'analyse pour obtenir les propriétés supplémentaires par utilisateur. Exemple: Combien d'utilisateurs (uniques!) Ont eu une session plus longue que x minutes. Comment est-ce possible sans changer la base de données. Note: il n'y a pas de table de consultation et je ne peux pas en créer un.
En ce moment, je peux demander combien de sessions ont duré plus de x minutes.Services d'analyse avec table non normalisée

Répondre

0

C'était beaucoup plus simple que je ne le pensais. L'ajout d'une mesure avec un nombre distinct sur l'utilisateur a résolu le problème.

1

Avez-vous déjà un cube Analysis Services au-dessus de cette table? Si vous le faites, vous pouvez transformer la colonne Utilisateur en une dimension de fait, puis utiliser la dimension Utilisateur comme base du calcul unique.

Quelle structure avez-vous déjà en place?

Edit: OK, vous avez créé une dimension d'information de l'utilisateur, MDX pour le membre calculé pourrait ressembler à:

WITH MEMBER UserCount AS Count(Filter([User].[User].[User], [Measures].[YourMeasure] > 10)), 
NON_EMPTY_BEHAVIOR = { [Measures].[YourMeasure] } 
SELECT UserCount ON 0 FROM [Cube] 

Vous pouvez mettre cela dans le cube en tant que membre calculé, voir les calculs onglet dans le concepteur de cube dans Visual Studio.

Vous devrez peut-être remplacer "Compte" par "DistinctCount" en fonction de votre configuration.

Notez que l'indicateur "NON_EMPTY_BEHAVIOR" doit être défini correctement, j'ai supposé que vous disposez d'une mesure basée sur la longueur de la session?

+0

Oui, j'ai déjà un cube. C'est une table unique que je veux analyser. Comment puis-je créer la dimension de fait? – Uwe

+0

@Uwe Créez simplement une nouvelle dimension et utilisez la table de faits comme source. Il devrait vous demander quels attributs utiliser, sélectionnez celui qui vous intéresse (Utilisateur). Il devrait automatiquement corriger l'onglet d'utilisation de la dimension (Relation de faits) pour vous. – Meff

+0

@Meff, merci. Je l'ai fait. Avec le résultat, que je pourrais obtenir quelques chiffres basés sur chaque utilisateur. Mais comme il y a plusieurs millions d'utilisateurs dans la table, je veux juste savoir "combien d'entre eux" et non "qui" avait une certaine propriété définie à une certaine valeur. Est-ce possible? – Uwe

Questions connexes