Business Geek

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 1 mars 2009

MVP Summit 2009 - Arrivée Seattle

Cette année, je fais partie des participants au MVP Global Summit, événement annuel organisé par Microsoft pour les MVP du monde entier.

Cet événement est l'occasion de réunir les différents MVP pour échanger avec les équipes de Microsoft et présenter des technos et produits en avance de phase. Evidemment, je suis sous NDA (non-disclosure agreement) donc je ne vous parlerai pas technique ces prochains jours. A défaut, je vous mettrai quelques photos de Seattle.

Je suis accompagné de 2 collègues Bewisiens : Frédéric Colin, MVP Connected Systems, et Patrice Lamarche, MVP C#.

Le voyage s'est bien passé sauf pour Patrice pour qui son bagage s'est égaré entre Paris et Seattle.

Nous avons fait un petit tour de downtown et de Pike's Market. J'y reviendrai plus longuement

L'hôtel est très bien, la chambre est confortable et il y a une piscine et une salle de sport au 35ème étage. D'ailleurs, je vous laisse, je vais éliminer l'énorme Cheeeseburger d'hier soir.

lundi 23 février 2009

L’après Performance Point

La rumeur a couvé dans les blogs dès le 23 janvier. Elle a vite été confirmée par un communiqué de Microsoft à ses partenaires et communautés le 26 janvier. 

"Microsoft arrête le développement du module planning de Performance Point."

Mais comment comprendre cette décision ? Comment interpréter cette annonce ? Que faire quand on a un projet en cours, ou à venir, basé sur ce produit ? C'est ce dont nous allons discuter dans cet article en apportant un éclairage sur la roadmap de Microsoft.

 

Tout d'abord, faisons taire les rumeurs les plus folles, Microsoft n'arrête pas la Business Intelligence ! Il y a beaucoup d’autres usages que l’élaboration budgétaire dans la BI. Et bien au contraire, avec l'annonce faite sur Performance Point, Microsoft ne fait que recentrer sa stratégie. En effet, rappelons qu’au cœur de la stratégie Business Intelligence de Microsoft se trouve SQL Server (avec Analysis Services, Reporting Services, Integration Services, le Data Mining, etc.) pour la partie plate-forme décisionnelle et Microsoft Office (notamment Excel et Sharepoint) pour les interfaces utilisateurs.

Evidemment, un éditeur qui arrête un produit, c’est toujours dommageable. Mais quand cet éditeur est Microsoft, avec toute sa puissance, ses lignes de produits, il faut y voir un rééquilibrage. Comme je l’expliquais dans une précédente tribune (http://blog.djeepy1.net/post/2008/12/25/Microsoft-Connect), Microsoft est très à l’écoute de ses clients et des communautés ce qui, j’en suis persuadé, va l’obliger à communiquer plus clairement la nouvelle ligne.

Ca a commencé d’ailleurs aux TechDays, avec une session spéciale proposée par Lionel Billon (Product Manager SQL Server) pour répondre aux questions sur le sujet.

Donc que deviennent les modules de Performance Point ?

Tout d’abord, la partie M&A (Monitoring & Analytics), avec les tableaux de bord et les scorecards, passe dans le giron de Sharepoint (MOSS plus exactement) et ce module s’appellera à terme PerformancePoint Services. C'est-à-dire que si vous avez déjà un portail MOSS (en licence Enterprise CAL avec Software Assurance :-(), vous n’aurez pas de coût supplémentaire pour mettre en place des tableaux de bord ou faire bénéficier à vos utilisateurs d’interfaces d’analyse sophistiquées. Sinon, c’est le moment d’en profiter et de creuser Excel Services, la GED, le travail collaboratif, etc. ;-).

Concernant la migration, le passage de relais et toutes les questions de mise en œuvre, vous pouvez partir sur le Dashboard Designer actuel qui permet de créer des tableaux de bord déjà sur Sharepoint. Microsoft gardera la compatibilité à terme (ou fournira un outil de migration).

Donc de ce côté, c’est plutôt une bonne nouvelle et je vous encourage à continuer dans vos projet de M&A.

Du côté de la planification et de l’élaboration budgétaire, Microsoft confirme l’arrêt du module tel qu’il est actuellement. Je reste convaincu qu’il ressortira à un moment ou à un autre dans un autre produit ou sous une autre forme mais rien n’a été confirmé. Les pistes sont un mode Open Source sur CodePlex, ou alors un module de Forecasting dans Dynamics. Moi, je parierai bien sur une intégration dans une future version d’Office car l’add-in de saisie et de spreading était pas mal.

Mais il faut se faire une raison, le produit tel qu’il est ne sera pas continué.

Mais rassurons les actuels clients : comme pour tous ses produits, Microsoft assurera un support sur Performance Point pendant 10 ans. Ce sont uniquement les nouveaux développements qui cesseront après la livraison du SP3.

 

Maintenant, une remarque plus personnelle sur ces annonces ; et cela n'engage que moi. Je suis complètement en phase avec ce recentrage. Mettre les tableaux de bord dans MOSS me semble un choix judicieux et cohérent avec le discours Sharepoint et BI global. En plus, cela va dans le sens des réductions de coûts pour le client, et c’est toujours bon à prendre.

Concernant Planning, je crois au bien fondé du produit. J’ai pu assister à une session de formation partenaires chez Microsoft et j’ai été très séduit. Cependant, un point a choqué mon esprit de technicien, c’est la facilité de créer des modèles (et donc des cubes) et la dangerosité engendrée, à savoir se retrouver avec pleins de cubes, qui n’auraient pas forcément les même données et qui pourraient entrainer une complexification de la gestion en terme de maintenance. Un des buts à la base était d’en finir avec le "Excel-Hell" mais si c’est pour se retrouver avec un "Model-Hell" (ou un Cube-Hell). Et puis Planning Server ne permet pas de résoudre la complexité d’intégration des données, à la charge de la DSI.

Donc  l’arrêt de Planning Server m’embête parce que les add-in de saisie Excel sont très bien (même s'il est déjà possible avec un peu de développement d'écrire dans un cube - fonctionnalité WriteBack - depuis 2000) et ce produit permet de vulgariser la modélisation de cube et de DataWarehouse pour un utilisateur métier. Et puis les routines de gestion des conversions de devises, de dé-doublonnage, de revenue sharing, etc. sont très intéressantes. Mais en même temps, si c’est pour mieux intégrer ces modules dans l’écosystème existant (Office, MOSS, SQL Server) moi je dis Banco.

 

J’espère avoir répondu aux questions sur l’avenir de Performance Point Server. S’il en restait, n’hésitez pas à me contacter. Je tâcherais d’y répondre ou de transmettre à qui de droit.

jeudi 12 février 2009

Microsoft TechDays - Présentation générale SQL Server 2008 - DAT113

Aujourd'hui, j'étais au TechDays, l'événement majeur technique de Microsoft en France.

Comme l'année dernière, j'étais Speaker et cette fois sur la session de présentation générale SQL Server 2008. C'était du level 100, donc assez généraliste mais j'ai pu présenter les avantages de la version 2008 pour les entreprises, les administrateurs, les développeurs, les information workers, etc. sur les sujets que sont la fiabilité, la productivité et la (business) intelligence.

J'ai pu interviewer en direct mon ancien collègue et ami Christophe Laporte, DBA d'Index Multimedia, qui traite des Teraoctets de données en environnement haute-disponibilité, sur les apports qu'il a constaté avec SQL Server 2008 en production. Sa fonctionnalité préférée reste la compression (à tous les niveaux) qui lui fait gagner du temps, de la CPU, de l'espace disque (et du stress en moins).

Il y avait environ 200 personnes à cette session et de nombreuses questions. Merci à Lionel et Patrick de Microsoft pour leur assistance. 

mardi 10 février 2009

Reporting Services - Obtenir le numéro de semaine

Comme j'ai une mauvaise mémoire et que je cherche cette expression à chaque fois. Je profite de ma tribune publique pour l'écrire et la partager.

Le but est de récupérer le numéro de la semaine d'une date dans une expression Reporting Services. En fait, je connais bien la fonction à utiliser : DatePart(). Le problème c'est que DatePart prend comme premier paramètre un code identifiant l'élément de la date à récupérer. Et le souci c'est que ce code n'est pas tout à fait le même qu'en T-SQL (qui contient une fonction DatePart aussi) et que la documentation est spartiate à cet égard.

Donc la bonne syntaxe est :

=Datepart("ww", Today())

Pour identifier la semaine, il faut utiliser le code ww (et non wk, w, week, etc.)

jeudi 5 février 2009

Reporting Services - Instruction Switch du moteur d'expressions

Un petit billet pour rappeler l'utilisation de l'instruction SWITCH du moteur d'expressions de Reporting Services (que l'on soit dans Visual Studio ou dans Report Builder 2.0).

Cette instruction correspond à une instruction CASE (C#, T-SQL) ou Select (VB.NET). Sauf que contrairement aux autres langages, il n'y a pas la gestion du cas par défaut. Je vais vous montrer comment le gérer.

La syntaxe est la suivante :

Switch (
<condition 1>, <valeur 1>,
<condition 2>, <valeur 2>,
<condition 3>, <valeur 3>
)

A chaque fois qu'une condition est satisfaite, la valeur correspondante est retournée, le code étant débranchant. Evidemment, il arrive souvent que vous ne puissiez écrire tous les cas possibles et imaginables. Dans ce cas, il faut écrire la condition par défaut et voici comment je fais personnellement :

Switch (
<condition 1>, <valeur 1>,
<condition 2>, <valeur 2>,
<condition 3>, <valeur 3>,
1=1, <valeur par défaut>
)

La dernière condition étant toujours vraie, elle simule une instruction ELSE (T-SQL) ou DEFAULT (C#, VB.NET).

vendredi 30 janvier 2009

Recherche dynamique multi-critères avec SQL Server

Un billet rapide pour présenter mon dernier article. J'ai moins de mérite car je ne suis pas l'auteur original puisque c'est une traduction, le plus strict possible, d'un article d'un MVP suédois, Erland Sommarskog (http://www.sommarskog.se/). Vous pourrez y trouver néanmoins une introduction et surtout une conclusion personnelle où je vous livre mon avis sur le sujet.

Cet article parle d'un problème commun à toute application (de gestion), à savoir la recherche d'éléments dans une base de données avec plusieurs critères (non connus à l'avance - d'où l'aspect dynamique).

Le sujet est traité par les aspects techniques et permet de parler de SQL dynamique, SQL statique, optimisation de jointure, vues, fonctions de table, etc. L'article est touffu et assez pointu mais vous pouvez le lire comme un recueil de Tips. Attention, l'article parle de la version 2005 de SQL Server ! Il y a un update d'Erland sur son site pour les spécificités de la version 2008, mais cet article reste une bonne base pour enrichir sa culture DGD. Un must-have comme on dit ;-)

Si vous allez sur le site d'Erland, en Anglais, ne vous fiez pas à sa présentation tout droit ressortie des années 90, filez directement sur le contenu technique qui est une vrai mine d'or pour comprendre le fonctionnement du moteur SQL. J'espère un jour pouvoir tous les traduire pour en faire profiter un public francophone mais l'exercice est long et le temps est une denrée rare.

L'article se trouve comme d'habitude sur le site de Bewise, où vous pouvez retrouver de nombreuses ressources (articles, webcasts news) sur les technologies Microsoft :

http://www.bewise.fr/article/116/Recherche-multi-criteres-avec-SQL-Server.aspx

 

mardi 27 janvier 2009

Report Builder 2.0 - Créer un membre calculé sans passer par SSAS

Une demande souvent récurrente en reporting ad hoc, c'est le besoin de faire des calculs, plus ou moins simples, qui n'ont pas été prévus dans le cube. Dans ce cas, on est souvent obligé de passer par le service informatique qui n'a pas forcément le temps ou les ressources pour traiter la demande rapidement.

Dans Analysis Services, les calculs se font avec des membres caclulés (Calculated member) qui se codent en MDX et se déploient directement dans le cube. Il est possible d'écrire un membre calculé pour une requête, valable le temps de la session. Report Builder 2.0 s'appuie sur cette possibilité pour proposer à l'utilisateur d'écrire ses propres membres calculés dans le concepteur de requêtes.

Attention, la requête s'écrit en MDX, ce qui limite l'usage pour des utilisateurs non développeurs mais soulignons toutefois la présence de cette fonctionnalité facile d'accès.

Il y a une utilisation efficace de cette fonctionnalité. Dans beaucoup de requêtes multidimensionnelles, on a besoin de ramener des propriétés d'une dimension dans une optique d'affichage, mais sans croiser les dimensions et complexifier la requête dans le cube OLAP. Par défaut, on glisse la propriété dans le designer de requête. Ceci a pour effet de générer un croisement de dimension en MDX ( {PropA * PropB} ). Quand on veut remonter une propriété pour affichage, on préfère la mettre dans les mesures, ce qui est possible avec un membre calculé.

On crée donc un membre calculé et on le fait pointer sur la propriété courrante :

[Product].[Color].CurrentMember.Name

On utilisera .Name ou .Value en fonction de ce que l'on veut remonter.

 

jeudi 8 janvier 2009

Report Builder 2.0 - Le reporting ad hoc pour l'utilisateur final

La nouvelle version de Report Builder qui accompagne SQL Server 2008 est l'outil parfait pour des utilisateurs non-informaticiens (Information Workers). Sans avoir besoin de Visual Studio, on peut créer des rapport riches, complexes et puissants en quelques minutes à partir d'un modèle de données existant (Report Model ou Cube OLAP) et les mettre à disposition de tous sur le serveur de rapports.

Voici un webcast qui présente cet outil puissant et intuitif dans la création d'un rapport vu et réalisé par l'utilisateur final (ie. moi dans un rôle de composition ;-)).

Report builder 2.0 - Présentation
Report builder 2.0 - Présentation

SSIS - Processing d'un cube dynamique

Dans un processus d'ETL qui alimente un Datawarehouse, on finit quasiment à chaque fois par un process du cube afin qu'il intègre les nouvelles données pour les utilisateurs.

La tâche Analysis Services Processing permet de faire cette action simplement ; en effet, juste un petit écran de configuration et tout fonctionne.

Cette tâche se connecte en fait à la base SSAS et envoie un batch de commande XMLA, le langage de "gestion" de Analysis Services.

Le problème est que l'assistant de configuration se base sur la base OLAP par défaut (Initial Catalog) de votre chaîne de connexion pour se configurer ; ce qui pose problème quand elle est différente entre la plate-forme de développement et celle de production, ou encore si on veut faire un package un peu générique.

Il faudra donc passer par une variable et une expression pour dynamiser cette étape :

  1. Configurer le composant pour faire le process de votre base sur votre plate-forme de développement 
  2. Ajouter une variable (avec le Package pour scope) de type String
  3. Aller dans les propriétés du composant et copier la valeur de ProcessingCommands
    <Batch><Process>
      <Object><DatabaseID>BIWise</DatabaseID></Object>
      <Type>ProcessFull</Type>
    </Process></Batch>
  4. Aller dans la propriété Expressions et en ajouter une. Elle doit ressembler à ceci (attention à l'échappement des ")
    <DatabaseID>" + @[User::OlapDatabaseID] +  "</DatabaseID>

N'oubliez pas de configurer la variable en post-déploiement ou en pré-exécution.

mardi 6 janvier 2009

Meilleurs Voeux pour 2009

Que cette nouvelle année soit prospère pour tous, que la crise ne nous tue pas dans d’atroces souffrances. Que 2009 se place sous le signe de … SQL Server 2008.

Que le Décisionnel et la Gestion des Données innondent vos systèmes d’information de ROI et autres joyeusetés.

- page 2 de 14 -