Question

Je suis à l’idée de déployer SSRS Report Builder sur le Web auprès de nos utilisateurs finaux pour leur permettre de créer leurs propres rapports sur nos bases de données d’applications de production. D'après ce que j'ai vu jusqu'à présent, cet outil est plus facile à utiliser que le concepteur de rapports de VS Biz Intel Studio, plus il est plus facile à installer et le déploiement des rapports est beaucoup plus compréhensible pour un utilisateur final (plus le plus gros problème n'est pas SQL Je suppose).

Quelqu'un a-t-il des idées ou une expérience sur les pièges de donner ce type de pouvoir aux utilisateurs? À l’heure actuelle, nous recevons de nombreuses demandes d’exportation des données dans un fichier plat afin qu’ils puissent les lire, puis créer des rapports dans Access, ce qui me permet de penser que SSRS serait meilleur que les ...

Était-ce utile?

La solution

Quelques conseils pour la conception d'un modèle de rapport:

1. Construire un data mart

Il existe plusieurs outils tels que Générateur de rapports: Business Objects, Oracle Discoverer pour en nommer quelques-uns. Ils ont tous des couches de métadonnées qui vous permettent de vous familiariser avec un outil de création de rapports pour les utilisateurs finaux. Toutefois, ils doivent toujours disposer de données alimentées à la cuillère dans un format approprié pour produire une solution efficace. Cela signifie que vous devez vraiment penser à construire une sorte de data-mart également.

Sans données correctes, les outils exposeront tous les pièges de la base de données de production. Les utilisateurs devront donc les comprendre pour obtenir des résultats corrects. Cela signifie que les rapports doivent vraiment provenir d'une source de données vierge.

Vous n’avez pratiquement aucun contrôle sur le code SQL produit par ces outils, ils sont donc tout à fait capables de générer des requêtes qui vont réduire votre base de données de production. Cela signifie que vos rapports doivent avoir lieu sur un serveur séparé. Un schéma compatible avec des outils ad-hoc (tels qu'un schéma en étoile) atténuera les pires problèmes potentiels liés aux performances.

2. Nettoyer les données

Il n'y a pas de développeur dans la boucle avec des outils ad-hoc, les utilisateurs vont donc utiliser naïvement l'outil sans savoir ce que sont les problèmes de données. Les résultats de requête inexacts seront toujours considérés comme la faute de l'outil . Pour être crédibles, ces écueils doivent être éliminés de l’ensemble de données situé en amont de l’outil.

3. Rendez la navigation robuste et résistante aux imbéciles

Le constructeur de rapports peut définir des restrictions pour le passage d'une entité à une autre. Sans cela, il est possible de joindre plusieurs tables dans une relation m: m. Il s’agit d’un Fan Trap et renvoie des totaux incorrects. Vous devez configurer le modèle de manière à ce que les tables de faits individuelles soient agrégées sur des dimensions communes, c'est-à-dire qu'elles soient cumulées avant d'être jointes. Obtenir ce droit élimine une classe d'erreurs. La plupart des outils ont un mécanisme pour empêcher cela.

4. Rendre l'agrégat de données

Business Objects vous fournit gratuitement cette information, mais vous devrez explicitement définir une mesure globale sur chaque mesure de base à l'aide du Générateur de rapports. Masquer les mesures de base et exposer les agrégats. Cela signifie que le système va rassembler les données au grain des dimensions choisies par l'utilisateur.

Conclusion

Il est peu probable que le fait de placer un outil ad-hoc directement sur une base de données de production fonctionne correctement. Les données comportent trop d’embûches et le schéma ne se prête pas à la création de rapports. Cela signifie que vous devez travailler à la création d'un magasin de données pour nettoyer les données et les préparer pour l'outil. Si vous passez beaucoup de temps à créer des extraits ad-hoc, une analyse de rentabilisation pourrait simplement être réalisée, ce qui économiserait plus tard.

MODIFIER: L'assistant de création de rapport (comme la plupart des choses de ce type) est un véritable gâchis lors de son exécution. Vous devrez modifier les paramètres tels que limiter la génération d'agrégats non pertinents. Dans le passé, j'ai obtenu d'assez bons résultats en générant des sommes, en masquant toutes les mesures de base et en exposant les agrégats comme s'il s'agissait de mesures de base. Cela a donné un comportement un peu comme Business Objects. Dans certains cas, vous pouvez également exposer le nombre, le nombre minimum / maximum ou les moyennes.

Le cas particulier auquel je pensais était un modèle de rapport assez volumineux contenant environ 1 500 champs. Par conséquent, l'agrégat généré par l'assistant était impossible à gérer avec plus de 10 000 champs au total. Vous pouvez également configurer des structures de dossiers un peu comme Analysis Services et les utiliser pour organiser les champs. Enfin, si vous entrez la description sur le champ, elle apparaîtra sous forme d’info-bulle si vous la survolez dans l’outil utilisateur final.

Autres conseils

Quelques commentaires sur la réponse précédente:
1. Le modèle de requête sémantique utilisé par le Générateur de rapports SQL Server Reporting Services a été conçu dans le but explicite d'empêcher les interceptions et les totaux incorrects sur les relations m: m. Aucun effort supplémentaire n'est requis pour activer cette fonctionnalité; il est inhérent à la structure des requêtes générées par le générateur de rapports.
2. L'assistant de modèle crée des mesures d'agrégation sur des champs numériques par défaut. Aucun effort supplémentaire n'est donc nécessaire pour exposer les agrégats. Vous pouvez personnaliser le modèle en ajoutant ou en supprimant des calculs d'agrégats, le cas échéant.

Dans l’ensemble, le vieil adage "Des ordures à la poubelle" s'applique certainement. Si vos données ne sont pas propres, le Générateur de rapports ou d'autres outils de génération de rapports ad hoc le feront mieux comprendre.

Aaron Meyers
Ingénieur en développement logiciel, SQL Server Reporting Services
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top