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
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.
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?
- 1. TSQL - Max ou Top date sur une table non normalisée
- 2. Entity Framework - Lier Combobox au champ Table normalisée
- 3. cette table de base de données devrait-elle être normalisée?
- 4. Association non normalisée avec les tables héritées dans Rails et ActiveRecord
- 5. BLOB ou Base de données normalisée avec des données textuelles?
- 6. Base de données Normalisée Question
- 7. Table Reporting Services
- 8. "Table non mappée" avec NHibernate + Active Record
- 9. Services de données ADO.NET: appels non asynchrones?
- 10. Recherche plein texte dans une base de données normalisée
- 11. Windows Azure Table Services - Propriétés étendues et schéma de table
- 12. Exception non gérée: System.Configuration.ConfigurationErrorsException: élément 'services' non reconnu. ConfigurationElementCollection imbriquée
- 13. Table non créée par Hibernate
- 14. sql reporting services erreur non gérée avec sous-état dans le groupe de 3ème niveau
- 15. HTML5 avec services Web
- 16. Services WCF (avec RIA)
- 17. Hébergement mutualisé avec services
- 18. Chargement de la table enfant avec les services LinqToSql et RIA
- 19. Disposition verticale des services de reporting non triable?
- 20. Integration Services lève une erreur en lisant Access 2007 Table
- 21. Dynamic LINQ2SQL à une table non mappée
- 22. Table liée à Linq erreur non-interrogeable
- 23. Pour "table de consultation" ou non?
- 24. Comment puis-je stocker des méthodes de contact (ou des données typées similaires avec différents champs) de manière normalisée?
- 25. C#, Windows Services: ServiceBase.Run avec plusieurs services du même type
- 26. ASP.NET avec WCF Data Services ou WCF Data Services
- 27. Reporting Services 2008: "Statut HTTP 401: non autorisé" Problème
- 28. Utilisation de services Web Sharepoint avec Coldfusion
- 29. Drapeaux avec les services Web
- 30. Services Web .asmx avec SSL
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
@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
@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