mardi 9 décembre 2014

Désactiver le drillthrough natif d'Excel

Désolé pour ceux que SSAS ne passionne pas, car j'ai tendance à écrire beaucoup d'articles à son sujet (au-delà des billets pseudo-philosophiques sous couvert de journal personnel ;  mais c’est vrai que je commence à apprécier le fait de raconter ma vie : peut-être le plus court chemin vers mon futur compte Facebook, avec mon lot d’amis que je n’ai pas vu depuis 10 ans, dont le parcours de leur vie intime m’est maintenant rendu possible,  me prendra certes un peu de temps, mais assouvira mon voyeurisme débridé que nous pouvons tous maintenant conscientiser sans rougir en prétextant qu’étant donné que tout le monde le fait, pourquoi pas moi).

Pour en revenir à notre sujet, il existe plusieurs possibilités pour empêcher les utilisateurs d’Excel d’utiliser le « drillthrough » natif : celui qui permet par un double-clic sur la cellule d’accéder aux données fines. Est-il encore utile de préciser que cette action n’est pas rendue possible sur les membres calculés ? Visiblement oui (dédicace à qui vous savez).
Le moyen le plus propre c’est de le gérer via les rôles de sécurité, en positionnant le paramètre « Local Cube/Drillthrough Access » à « None » situé sous l’onglet « Cube ». Attention à la multiplicité des rôles auxquels peuvent appartenir vos utilisateurs.

mercredi 3 décembre 2014

JSS 2014 - Data mining SSAS et AML

Je profite de cet espace pour vous remercier d'avoir participer aux JSS, que  ce fut en tant qu'auditeur, conférencier, organisateur, sponsor et autres.
Je remercie tout particulièrement mes collègues de chez SCOP IT pour leur investissement dans la préparation de cet événement, que cela fut pour assurer des sessions ou la logistique. Il ne nous a manqué que l'investissement financier (sponsoring) que nous regrettons de ne pas avoir assuré cette fois, par oubli, concentrés que nous étions sur la préparation de nos conférences respectives. Ça sera très certainement pour l'année prochaine, dont on espère une édition 2015 qui nous permettra encore une fois, peut-être, de préparer un sujet dans le but de partager le fruit de nos recherches avec vous.

En attendant les webcasts, vous trouverez les fichiers relatifs à ma session ici. Pour rappel, l'objectif était de présenter les bases du data mining sur SSAS et sur Azure Machine Learning. Cette session mériterait bien une petite sœur, qui rentrerait dans les détails de ces deux technologies, chose impossible dans un format d'une heure : il fallait faire des choix et j'ai fait, pour une fois, celui de la simplicité et de la vulgarisation.

Merci encore à vous et si vous avez la moindre question, remarque, faites vous plaisir.

Et voici la session


mercredi 5 novembre 2014

Le pourquoi de la SCOP : état d'âme

C’est dérangeant cette dualité, ces sentiments contradictoires que l’on ressent en soi, et qui composent nos journées. Ces mouvements sinusoïdaux, ces va-et-vient entre l’obligation de s’atteler à l’achèvement de nos tâches professionnelles et l’irrépressible envie de se sentir détacher de ces/ses contraintes afin de se permettre de réaliser des choses plus utiles pour la société, pour le bien commun. Ce constat est appuyé par le fait que j’estime mon métier, tout du moins dans son format précédent, comme étant inutile pour le plus grand nombre, mais m’apportant simplement à la fois un grand confort de vie ainsi qu’un exercice intellectuel certes basique, mais qui a au moins le mérite d’exister. La polarité qui en découle m’empêche d’avancer, de prendre des décisions, car je suis invariablement tiraillé par ces deux domaines que tout oppose ou presque. A moins que nous ne trouvions finalement le moyen de concilier les deux, accordant tantôt à l’une, tantôt à l’autre de ces deux factions un effort égal mais parfaitement délimité, de manière à rendre possible sa progression personnelle et se débarrasser de cette très désagréable impression de faire du surplace, de rester dans une zone de non choix permanant, il sera à un moment donné nécessaire de prendre soit l’un, soit l’autre des embranchements qui se présentent. Mais comment rapprocher ces deux pôles sans trahir les idéaux de l’un par les objectifs de l’autre ? De quelle manière peut-on se permettre de travailler pour le sens commun sans en dévoyer ses principes tout en poursuivant son activité professionnelle, qui dans mon cas se révèle profondément concurrentielle et qui oblige à un narcissisme débridé, centrée sur sa progression personnelle au dépend de celle des autres et donc en contradiction avec l’envie de partage et d’évolution symbiotique?

dimanche 14 septembre 2014

SQL Saturday 2014


Les SQL du samedi 2014, à Paris, c'est fini. Les premiers mots de ce post seront pour les organisateurs (GUSS et autres) qui ont abattu un formidable travail. Merci à vous.

Ensuite pour mes collègues de SCOP IT et surtout pour Romuald qui a accepté ma présence à ses côtés pour une session de malade mental : c’est toujours rassurant d’avoir une personne de cette valeur avec soi.

Puis un autre pour nos auditeurs, certains des plus fidèles d’ailleurs, qui acceptent d’en prendre plein la tête pendant les sessions.

Et enfin, le dernier mais pas des moindres, pour ce brave PowerPoint qui nous aide tous les jours à concevoir des diapositives et que l’on occulte presque systématiquement de nos remerciements. En parlant de cela, notre présentation est disponible ici. 

Si des erreurs se sont glissées dans le document ci-dessus, si des points restent flous, si vous avez des questions, n’hésitez pas à nous les poser, par mail ou en commentaire de cet article.

Rendez-vous aux JSS, les 1er et 2 décembre 2014, avec, nous l’espérons, une nouvelle bizarrerie à vous présenter. D’ailleurs, nous allons éviter cette fois-ci de proposer une session purement technique sur AS. Si vous avez des suggestions, nous sommes prêts à les entendre (même si nous avons déjà notre grosse idée concernant le sujet).

lundi 11 août 2014

La progression : entre investissement personnel et contexte d'entreprise


Je reprends un thème que Florian a déjà bien abordé sur son blog (http://fleid.net/?s=dette+technique et http://fleid.net/2013/04/29/apres-la-dette-technique-la-dette-sociale-lautre-ennemie-du-patron-de-ssii/) car je viens d’en discuter quelques minutes avec un jeune consultant ce matin qui est venu me demander comment il pouvait progresser techniquement dans son métier (tout ceci me faisant prendre conscience de mon âge avancé).

vendredi 8 août 2014

Session JSS 2013 : Column Store Index et ROLAP

Soyons fous, deux articles dans la même journée. Je me permets de remettre ici la webcast de la session que nous avions animée avec Mr Sauget lors des JSS de décembre 2013 (désolé pour le laps de temps). Objectif? 100 000 vues avant la fin de la semaine.
En attendant, voici : Webcast

Many-to-Many et agrégations

J’aime beaucoup les Many-to-Many sur SSAS, surtout que la littérature pour un sujet aussi anodin en apparence est assez conséquente. J’aime surtout les Many-to-Many quand il faut les expliquer à un utilisateur qui ne comprend pas pourquoi la somme de ses lignes n’est pas égale à la cellule du grand total.
Pour illustrer notre sujet du jour, voici une base de données se proposant de permettre à mon entreprise préférée l’analyse du montant de ses ventes (FactSale) en fonction des raisons de la vente (FactSaleReason) et du revenu de ses clients (FactIncome). Imaginons que nous retournions à un mode de rétribution à la journée, ça facilite un peu l’interprétation de notre cas d’étude.

vendredi 28 février 2014

Nouveau challenge

Cela fait déjà 6 mois, et je n’ai pas encore pris le temps de présenter la nouvelle entreprise pour laquelle je travaille. Remarquez, cela fait un bout de temps que je n’ai rien mis sur ce blog : espérons que j’arrive à améliorer les choses de ce côté-là en 2014.
Avec Charles-Henri et Romuald, nous avons décidé de créer une entreprise (SCOP IT), et cela soulève toujours pas mal de questions : en voici quelques-unes dans le désordre.

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/

Web Service RS : modifier des propriétés de rapports

A toujours faire des billets qui expliquent comment faire en sorte que les choses fonctionnent, j’ai envie d'en faire un pour expliquer comment elles ne fonctionnent pas : ça changera. Récemment, chez mon client préféré du moment, nous nous sommes aperçus que le format appliqué aux données dans nos rapports RS n'était pas le bon (date et chiffre au format anglais entre autre). Du coup, je décide de modifier les paramètres de région du serveur (mode bourrin) : surprise, ça ne fonctionne pas. J'ai tout essayé (enfin je crois) et je ne comprends pas pourquoi ça ne passe pas. Je ferai un autre billet sur ce point plus tard.

mardi 17 avril 2012

NT AUTHORITY\SYSTEM n'est plus sysadmin sur 2012

Dans nos tests de compatibilité sur 2012 (typiquement des migrations d'applications) nous nous sommes rendus compte que le login NT AUTHORITY\SYSTEM au niveau de l'instance n'est plus sysadmin sur SQL Server 2012 (c'était encore le cas en 2008 R2). Ce qui pose des problèmes quand, par exemple, vous avec un service Windows tournant avec le compte système local qui tente de piloter des bases de données pour votre application. On passe donc quelques temps à chercher pourquoi nous n'avons pas les droits sur Master afin de pouvoir créer une base par exemple.
La préconisation : ne pas faire tourner ces applications avec le compte système local et utiliser des comptes de domaine si possible. Dans tous les cas, on évite de mettre ce compte système local sysadmin des bases de l'instance SQL.

mardi 21 février 2012

PowerShell, c'est la vie!

Commes mes fans se sont plaints  hier il y a peu du manque d'activité sur ce blog, voici un petit post pour les réconforter (si je n'ai rien publié depuis, c'est parce que je suis sur l'écriture d'un livre sur SSIS et que je n'ai pas grand chose de nouveau à dire : on se cherche des excuses comme on peut).

J'ai dû mettre en place aujourd'hui il y a peu la création automatique de partition sur SSAS. Ce n'est pas la première fois que je fais ça mais ici, la manière est bien différente car le contexte le requérait. D'habitude, la création de ces partitions s'inscrit dans un process global de mise à jour d'une partie du SID (ETL, DWH, etc...) : le tout est géré par un service Windows custom. Dans ce cas précis, l'AMO est idéal.

lundi 14 novembre 2011

Bug de traduction dans AS lors de la modification des types des attributs

Nous venons juste de découvrir un bug marrant dans les traductions de SSAS. Enfin, marrant parce que de prime abord on ne voit pas d’où ça vient, mais qui fait tout de même perdre quelques heures de recherche.

Nous ne comprenions pas pourquoi, lors du procesing de notre dimension temps nous avions ce message d'erreur :

Errors in the back-end database access module. The size specified for a binding was too small, resulting in one or more column values being truncated. Errors in the OLAP storage engine: An error occurred while the 'Fiscal Quarter' attribute of the 'Time' dimension from the MyCube' database.

Généralement, ce message survient lorsque le dimensionnement des types de nos attributs ne correspond pas à celui des colonnes de la base de données source. Après avoir vérifié plusieurs fois et sur tous les attributs de notre dimension, il en résulte que tout est bien fait. Donc après avoir injustement accusé un de mes collègues, l'attribut en question est supprimé, puis recrée. Oh miracle, le problème de processing disparaît. Bref, impossible de savoir d'où cela vient.

A mes yeux, il n'y a plus qu'une solution pour trouver la source du problème : faire un différentiel du XML entre les deux versions des dimensions. En faisant cela, on se rend compte que la traduction associé à l'attribut Fiscal Quarter possède le bon DataType, mais pas le bon DataSize.

Conclusion : cela vient du fait que le type de l'attribut a été modifié après la mise en place de la traduction. Ce procédé n'entraîne donc pas une mise à jour automatique des objets associés (tels que ceux de la traduction). La seule possibilité pour contourner le problème est de supprimer puis recréer la traduction pour l'attribut. Pas cool, sauf si vous connaissez une solution plus simple.


mardi 11 octobre 2011

Comportement du Many to Many avec plusieurs dimensions de jointure

Chez nos clients préférés, nous tombons bien souvent sur une modélisation un peu bizarre d'un cube AS. Bien sûre, il y a toujours une justification à cela car cette modélisation a été mise en place pour répondre à un besoin bien précis.
Voici ladite modélisation (ça sera notre cas n°1) :