Business Geek

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

dimanche 12 avril 2009

TechDays 2009 - Présentation générale SQL Server 2008

La session que j'ai co-animée aux TechDays 2009 (avec Patrick Guimonnet et Christophe Laporte) est maintenant disponible en webcast.

Si vous n'avez pas pu venir ou si vous souahitez la revoir, suivez ce lien : http://www.microsoft.com/france/vision/mstechdays09/Webcast.aspx?eID=1b96e365-db8a-4339-91b6-c217c9a15423

Le sujet est simple : Présentation générale de SQL Server 2008

C'est une session Découverte (Level 100) donc je ne fais que survoler les fonctionnalités de la nouvelle version, ce qui est déjà difficile en 1h. Cette session a été aussi le lieu pour le témoignage client de Christophe Laporte, DBA d'Index Multimédia qui est venu faire un retour sur la migration qu'il a opéré et les gains apportés par la nouvelle version de la base de données.   

SQL Server 2008 Service Pack 1

Le SP1 de SQL Server 2008 est disponible. En anglais et en Français (ainsi que d'auters langues évidemment).

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19

Les habituels frileux des nouvelles versions n'auront plus d'excuse pour passer à SQL Server 2008.

Qu'apporte ce Service Pack :

  • Des corrections de bugs évidemment (d'où l'importance de remonter les infos sur Connect) - je ne pense pas avoir le temps de vous en détailler...
  • Report Builder 2.0 en mode click-once (je sais que du monde l'attendait :-))
  • La possibilité d'inclure le SP1 dans une installation de base ce qui permet d'installer SQL Server 2008 ET le SP1 en une fois (accélération des migrations sur des environnements de production) - cette fonctionnalité s'appelle Splistream

 

PS : Je ne suis pas très attentif et assidu ces derniers temps en partie à cause d'une BDC 2009 à préparer, d'un projet de Business Intelligence en cours et d'autres raisons qu'il est prématuré d'annoncer. Je m'en excuse dans ce billet. D'autant plus que j'ai des milliers de sujets dans les cartons...

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. 

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

 

lundi 29 décembre 2008

Consolider des catégories dans un graphe de rapport

Dans un graphe sous Reporting Services, on souhaite souvent consolider les catégories non significatives en une seule catégorie, souvent appelée "autres", tout en gardant les catégories les plus importantes.

Avec la version 2008 de Reporting Services c'est désormais possible sans avoir à faire une gymnastique compliquée et contre performante dans la requête. En effet, les nouveaux composants de graphes incorporent cette fonctionnalité. Malheureusement elle n'est disponible que sur les graphes de type camemberts (secteurs).

Cette fonctionnalité est un peu difficile à trouver. Il faut en effet sélectionner la série, afficher les propriétés et modifier les Custom Attributes et changer les attributs CollectedStyle et CollectedThreshold. Dans Visual Studio, on trouve ces propriétés dans la Property Grid. Dans Rebord Builder, il fauda passer par le menu Affichage pour afficher la Property Grid qui n'est pas accessible par défaut.

Dans notre exemple, on consolide tout ce qui est inférieur à 20% dans "Autres"

 

Si vous trouvez intéressant que cette fonctionnalité soit étendue aux autres types de graphes, n'hésitez pas à voter sur Connect : https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=389944

dimanche 28 décembre 2008

Azure, Kilimanjaro, Gemini, Madison, la gestion des données en 2010

SQL Server 2008 est à peine sorti que Microsoft dévoile la prochaine roadmap pour la gestion des données et le décisionnel.

On peut certes être dérouté par ces annonces que l'on peut qualifier de prématurées. Mais l'un des messages associé à la sortie de SQL Server 2008 fut une cassure dans le rythme des releases avec des fonctionnalités plus autonomes et par l’occasion plus fréquentes.

C’est dans cette lignée que s’inscrivent les annonces faites lors de la dernière BI Conference à Seattle ou à la dernière PDC à Los Angeles.

 

L’annonce phare est Kilimanjaro, la prochaine version de SQL Server, prévue pour 2010. Cette version considérée comme « mineure » ne verra pas de changement dans les différents moteurs (SQL, OLAP, etc.) mais des améliorations pour l’utilisateur et dans la gestion des serveurs.

Cette release se focalise aussi sur des avancées dans le domaine du décisionnel ; entre autres, 2 projets ont été présentés : Gemini et Madison.

 

Gemini est un module lié à Excel, qui permet de traiter efficacement, en mémoire, plusieurs millions de lignes de données. Destiné aux utilisateurs finaux, il rapproche la Business Intelligence des clients. En plus d’être un add-in à Excel, Gemini est aussi une formidable opportunité d’introduire la puissance d’Analysis Services dans le monde des utilisateurs d’Excel, estimés à plusieurs centaines de millions, comme a essayé de le faire Performance Point avec ProClarity.

 

Madison est un projet qui vient de l’acquisition de DATAllegro par Microsoft cet été et qui marque d’une pierre blanche l’ambition de ce dernier à pénétrer le marché des très gros volumes. Madison est la solution pour paralléliser les requêtes sur une batterie de serveurs, permettant une montée en charge plus importante.  Madison devrait se présenter sous la forme d’un module additionnel et est prévu en même temps que Kilimanjaro.

 

Côté relationnel, c’est plutôt vers Azure que se tourne l’avenir. En deux mots, Azure est la proposition de Microsoft en terme de Cloud Computing. C’est globalement une nouvelle vision du développement d’applications, très orientée services, sur une solution d’hébergement en haute disponibilité avec montée en charge proposée par Microsoft.  Dans cet univers, le stockage de données prend une place importante avec 2 briques : SQL Services et Azure Table Storage.

 

SQL Services est l’équivalent de SQL Server mais hébergé sur le « Cloud ». Actuellement, seule la brique relationnelle (SQL Data Services) est disponible en beta. Elle permet de stocker des entités relationnelles, accessibles de n’importe où via SOAP ou REST. Pour l’instant, cette brique est très limitée en termes de fonctionnalités mais devrait s’enrichir dans les mois à venir pour devenir une vraie base de données online, incluant même des modules décisionnels de datawarehousing, de reporting et d’analyse.

Rassurons nous, SQL Services n’a pas vocation à remplacer le traditionnel SQL Server (cf. Kilimanjaro) mais complète l’offre de Microsoft et ouvre de nouvelles perspectives comme le paiement à l’utilisation, plus économique pour de nombreux clients.

 

Azure Table Storage s’appuie techniquement sur les « tables » de SQL Data Services. La différence est sur la richesse fonctionnelle. Azure Table Storage est très limité (pas de jointures par exemple) et répond à des petits besoins en stockage de données. A ne pas en douter, la différence s’en ressentira  sur le prix des licences, qui, soit dit en passant, reste la grande interrogation sur l’univers Azure.

 

Evidemment, en cette fin d’année 2008, toutes ces informations sont à tempérer car les différentes phases de développement redéfiniront peut-être les modalités de mise en œuvre de ces ambitions. Rendez-vous début 2009 pour la première CTP de Kilimanjaro et les prochaines annonces sur Azure.

 

J’espère que ce petit article vous apporte des réponses sur la stratégie de Microsoft pour les années à venir. L’équipe de consultant de Bewise son à votre disposition pour compléter ces éclairages et vous présenter plus en détail ces nouvelles technologies.

samedi 27 décembre 2008

Nouveautés de SQL Server 2008

Il y a quelques mois je publiais un article sur les nouveautés de SQL Server 2008 sur le magazine (papier) Programmez.

Cet article présente brièvement les nouvelles fonctionnalités et les améliorations de SQL Server 2008, avec quelques exemples de code.

Son intérêt est qu'il est facile d'accès et quasi exhaustif. Je m'en sers moi même comme pense-bête (oui, j'ai une cervelle de moineau ;-)).

J'ai mise cet article à disposition sur le site de Bewise et donc à la disposition de tous. Comme d'habitude, n'hésitez pas à le commentez, vos retours sont les bienvenus.

http://www.bewise.fr/article/114/Les-nouveautes-de-SQL-Server-2008.aspx

Quelques extraits choisis :

[...]

SPARSE columns : le concept de Sparse columns représente les colonnes à faible densité comme par exemple les attributs d’un contact dans une base de CRM qui peuvent être très nombreux et pourtant très peu renseignés. Le fait d’indiquer à SQL Server que ces attributs doivent être stockés dans des colonnes de type SPARSE permet de gagner l’espace normalement occupé par les valeurs nulles. Ce gain n’est pas temps pour le stockage mais pour la manipulation des données qui s’en trouve améliorée du fait d’avoir moins d’octets à lire.

CREATE TABLE dbo.ClientCRM (
ClientID int NOT NULL IDENTITY (1, 1),
Nom varchar(50) NOT NULL,
Poids int SPARSE NULL,
Yeux varchar(50) SPARSE NULL,
Taille numeric(3, 2) SPARSE NULL)

Les sparses columns s’utilisent aussi avec la notion de Columns Set qui permet de récupérer ou d’insérer plus facilement des jeux de colonnes disposant d’une valeur sans avoir à les manipuler toutes explicitement.

[...]

Compression des données : SQL Server 2008 supporte la compression des données à tous les niveaux. Nous l’avons vu avec les backups mais il est aussi possible de compresser directement les données d’une table, d’une partition ou d’un index.
On a du mal à classer cette fonctionnalité dans la catégorie performance car compression est synonyme de consommation processeur. On attend plus souvent de ce genre de fonctionnalité de gagner de l’espace disque. On en gagne certes mais là où la compression apporte est dans l’exécution des requêtes car on doit lire moins de données sur le disque, ce qui est un des principaux nerfs de la guerre de la performance. A utiliser néanmoins avec discernement…

CREATE TABLE Contact
(id int, fullname nvarchar(50) )
WITH (DATA_COMPRESSION = PAGE); 

Resource Governor : cette fonctionnalité est une des plus attendues dans SQL Server. Le Resource Governor permet de gérer finement l’utilisation du serveur (CPU, mémoire). Fini les requêtes qui monopolisent toutes les ressources. On peut assigner des limitations et des plans de charge aux différentes connexions ou applications. Ainsi, on peut faire en sorte qu’une application critique dispose d’un maximum de puissance de traitement et que des petites applications soient moins prioritaires.

[...]

Nouveautés de Analysis Services

Améliorations des performances globales : dans cette version 2008 de SSAS, Microsoft a cherché à beaucoup optimiser les performances de son moteur multidimensionnel. L’objectif est ambitieux : supporter des DataWarehouse de 100To de données en lieu et place des 25 supportés avec la version 2005. De nombreuses optimisations dans le calcul des agrégats et la gestion des cubes abondent en ce sens.

Notion de bonnes pratiques : une nouvelle fonctionnalité aussi appelée « alertes AMO » apparaît dans Business Intelligence Studio. De la même façon que le correcteur orthographique de Word, elles soulignent les éléments qui ne respectent pas les bonnes pratiques de modélisation et méritent réflexion. Ces avertissements sont débrayables ponctuellement ou définitivement.

[...]

 

lundi 24 novembre 2008

Ranking de la fonction FREETEXT

Souvent on me pose des questions sur la pertinence de la recherche FullText de SQL Server.

Pourquoi l'article que je recherchais n'est pas remonté, ...ce mot là est plus important que celui-ci, ...normalement ce truc là aurait du remonter..., etc.

Il faut bien comprendre que la pertinence est très complexe à calculer. Malgré cela, Microsoft nous en livre la formule dans la MSDN (la formule est la même pour les 2 version) : 

Je vous invite à vous rendre directement à la section Ranking of FreeText qui nous donne la formule OKAPI BM25 servant au calcul du Rank. 

Simplement, retenez que la densité est un critère très important. En effet, si on recherche par exemple "fût de sherry" et que "fût" est seul mais dans un texte court, il peut passer devant "fût" et "sherry" noyés dans un long texte. Plus vos textes seront touffus, plus la pertinence sera avérée; par exemple, indexer des titres courts (quelques mots) produira des effets de bord certains.

Voici la formule à titre d'information. Si vous jugez qu'un résultat n'est pas à sa place, vous pouvez le vérifier et porter réclamation auprès de l'éditeur sur Connect. Personnellement, à chaque fois que j'ai constaté de mauvais résultats, c'est qu'il y avait une mauvaise recherche ou bien des données mal renseignées.

Rank = Σ[Terms in Query] w ( ( ( k1 + 1 ) tf ) / ( K + tf ) ) * ( ( k3 + 1 ) qtf / ( k3 + qtf ) ) )
Where:
w is the Robertson-Sparck Jones weight.
In simplified form, w is defined as:
w = log10 ( ( ( r + 0.5 ) * ( N – R + r + 0.5 ) ) / ( ( R – r + 0.5 ) * ( n – r + 0.5 ) )
N is the number of indexed rows for the property being queried.
n is the number of rows containing the word.
K is ( k1 * ( ( 1 – b ) + ( b * dl / avdl ) ) ).
dl is the property length, in word occurrences.
avdl is the average length of the property being queried, in word occurrences.
k1, b, and k3 are the constants 1.2, 0.75, and 8.0, respectively.
tf is the frequency of the word in the queried property in a specific row.
qtf is the frequency of the term in the query.

samedi 22 novembre 2008

MacLaren tourne sous SQL Server 2008

MacLaren Electronics Systems, division qui équipe les Formule 1 de l'écurie du même nom, utilisent les technologies Microsoft pour leur backoffice :

  • SQL Server 2008 pour les données
  • Reporting Services et Excel 2007 pour la restitution de données
  • Analysis Services de Data Mining
  • Silverlight pour les interfaces
  • et Visual Studio 2008 pour développer tout cela

La fonctionnalité FILESTREAM a été déterminante pour le choix de SQL Server 2008 car MacLaren doit stocker et gérer les données binaires provenant des équipements embarqués dans la voiture (ECU - Engine Control Unit). Pour rappel, cette fonctionnalité permet de stocker des données binaires (documents, vidéos, etc.) sur le système de fichier classique et d'y accéder de façon streamée (par flux), le tout géré par SQL Server (sécurité, requêtage, etc.). Cela permet d'optimiser les ressources du serveur.

Evidemment, les capacités d'analyses de SQL Server sont aussi utilisés pour explorer et faire parler les données. Les données étant extraites du binaire via des fonctions CLR. Pour l'anecdote, un Grand Prix génère entre 1 et 2Go de données.

 

Démonstration en vidéo : http://www.microsoft.com/casestudies/resources/Files/4000001476/McLaren_Technical_3min_500k.wvx
Le "case study" en détail : http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000001476

 

Sinon, sur un plan plus personnel, étant tifosi de la scuderia (aka supporter de Ferrari) depuis près de 15 ans, cela me rend jaloux. M'est avis que mon regard va changer la saison prochaine ;-) 

 

PS : vous aurez noté que les bruits des F1 dans la vidéo ont été américanisés. Sans les images, on jurerait que c'est du Nascar.

lundi 10 novembre 2008

SQL Services ou SQL Data Services ?

Une question légitime sur SQL Services est de savoir quel est son vrai nom ? En effet, on peut trouver les termes SQL Services et SQL Data Services. Lequel est correct ?

En fait, les deux sont corrects mais ne correspondent pas à la même technologie. Je m'explique. SQL Services est la technologie "chapeau" qui correspond à l'équivalent de SQL Server in-the-cloud. Ce sont les services SQL de Windows Azure. SQL Data Services est un sous-ensemble de SQL Services et correspond uniquement au service de données relationnelles. C'est l'équivalent de la brique base de données de SQL Server.

Même si on comprend avec l'un ou l'autre des termes, la précision est faite ;-)

- page 1 de 6