mardi 16 avril 2013

Challenge MDX : Generate, TopCount et restriction sur un set... en 2005

Voici un cas marrant sur lequel nous nous sommes penchés avec Thomas Ricquebourg. Nous avons une dimension produit avec une hiérarchie standard (Marque - SousMarque - Produit), une dimension temps avec une hiérarchie (Année - Mois - Jour), une dimension Géographie (Pays) et enfin un groupe de mesures (Quantité et CA) avec des données au jour.
Le but du jeu c'est de ramener les 5 produits les plus vendus par pays pour un mois et une marque donnés. Première étape dans l'écriture de la requête :

WITH SET [Top Product] AS
GENERATE(
[Geography].[Country].Members
,TopCount(
[Product].[Product].Members
,5
,[Measures].[Quantity]
)
)

SELECT [Measures].[Quantity] ON 0,[Geography].[Country].Members
*[Product].[Brand].Member
*[Time].[Month].&[201304]
*[Top Product] ON 1

FROM [MyCube]


Cette dernière va poser un(des) problème(s) : Elle ne me retourne pas les produits les plus vendus sur le mois sélectionné ou encore, le nombre de produit par pays ne sera pas toujours le même et ce malgré le TopCount. A votre avis pourquoi? Comment résoudre ce cas (attention, nous sommes en 2005)?
Comme d'habitude, laisser vos avis dans les commentaires.
Encore une fois je le précise, tout le monde peut laisser libre cours à son imagination. Peu importe que les propositions soient plus ou moins bonnes, l'idée de ce genre de billet c'est de faire resurgir des notions générales à partir d'un cas précis.

samedi 6 avril 2013

Challenge SQL : Upgrade du DELETE


Etant donné que je suis en panne d'inspiration pour faire de billets intéressants et qu'en plus je n'en fais déjà pas souvent, je vais me lancer dans une petite suite de problématique que je vais vous adresser, à vous nombreux lecteurs de ce blog (nombreux relativement à mon cercle de connaissances professionnelles, autant dire que mis à part mes collègues, personne ne passe ici).

vendredi 1 février 2013

Slides des JSS disponibles

Etant donné que je viens de m'aperçevoir que j'avais un Skydrive et que je viens juste d'apprendre à m'en servir, je suis heureux de partager avec vous les slides de la session "Stratégies de processing SSAS 2012" animée au JSS 2012 par David Tang et moi-même.

https://skydrive.live.com/?cid=6836C19F017DA8FF

A dispo si vous avez des questions ou des remarques

mercredi 30 janvier 2013

Composant "poubelle" dans vos DataFlow

 
 

Il arrive de temps en temps que, sous BIDS, nous redirigions la sortie d’erreur de nos composants (et donc les lignes du flux) vers un composant « poubelle » : ce  fameux colonne dérivée qui ne sert à rien. Ce qu’il faut savoir, c’est qu’une fois notre lot lancé avec DTEXEC, donc en dehors du mode debug, le processus va chercher à optimiser le lot en supprimant du Data Flow les composants qui ne servent à rien, donc notre Derived Column « poubelle ». Dit comme cela, rien de bien méchant. Sauf quand votre Data Flow utilise un composant Script qui lit un fichier plat en tant que source et que le message d’erreur est le suivant :

 
 

Du coup, on pense à un souci avec le stream de notre Script, puis à un problème de synchronisation des entrées et des sorties, puis que SSIS a un bug, on « google-ise » sur System.Runtime.InteropServices.COMException, sur le HResult 0xC0047020, etc. En fait, c’est juste que DTEXEC ne sait pas quoi faire des lignes redirigées vers la sortie d’erreur.

Moralité : attention à la signification réelle des messages d’erreur SSIS (mais ça on le savait déjà) et pensons à gérer correctement les lignes que notre flux ne peut pas assimiler. Plusieurs raisons à cela. A la vue de cet exemple, ça peut poser des soucis à l’exécution. Ensuite, cette information mal formatée peut être utile à votre client et doit lui être remontée d’une façon ou d’une autre (une table de log par exemple).

jeudi 29 novembre 2012

Impossible de trier les rapports en vue détaillée

On m'a remonté que, sur quelques répertoires du serveur de rapports (SSRS 2008 R2) il était impossible de trier les rapports en fonction des colonnes disponibles lorsque nous sommes en mode vue détaillée (Details View). Comme quoi, on exploite vraiment toutes les fonctionnalités de RS pour le projet sur lequel je travaille actuellement.
En cherchant un peu, et en utilisant les Developper Tools d'IE, on remarque que c'est toujours la même fonction Javascript qui plante. On se prend une erreur Error 1006, expecting ')'
Mes connaissances dans ce domaine étant assez largement limitées, j'y vais à tâtons pour découvrir empiriquement que ce sont les répertoires RS avec une quote qui empêchent les utilisateurs d'ordonner leurs rapports.
Donc si jamais vous rencontrez ce problème, vous avez maintenant une solution (il suffit de supprimer les quotes), parce qu'àprès avoir cherché un peu de documentation là-dessus, je n'ai rien trouvé. Si vous avez plus d'information à ce sujet, je suis preneur.

lundi 12 novembre 2012

Livre SSIS 2012 paru

Je fais rarement de la pub sur ce blog, seulement pour les éléments de qualité. J'en profite donc pour vous signaler la parution du livre SSIS 2012 : Mise en oeuvre d'un projet ETL avec SSIS aux éditions ENI que deux collègues (François et Romuald que je remercie encore une fois) et moi même avons réalisé. Il est disponble ici.

SQL Server Integration Services 2012 - Mise en oeuvre d'un projet ETL avec SSIS, sqlserver , microsoft , décisionnel , BI , etl , bdd , sgbdd , flux , lot ssis , sql serveur

J'espère qu'il comblera vos attentes. N'hésitez pas à nous faire un retour dessus car l'année prochaine, nous allons certainement remettre le couvert sur un autre sujet.

vendredi 9 novembre 2012

Journées SQL Server 2012


Comme l'année précédente, deux journées sont consacrées à SQL Server. L'objectif sera de présenter des nouveautés, des retours d'expériences et des éléments méconnus de la version 2012. Elles se dérouleront les 10 et 11 décembre, au Centre de Conférences Microsoft,  39 quai du Président Roosevelt à Issy-Les-Moulineaux.






Pour ma part, nous préparons avec Tarik Broumi et David Tang une session autour des stratégies de processing que je présenterai avec ce dernier.
Retrouvez toutes les informations ici: http://jss2012.fr/