JSS 2014 – Les webcasts

La session de Christopher Maneu, Lisa Marçais et moi même : Retour d’expérience sur Power BI

L’autre session avec Charles Henri Sauget  sur l’optimisation des  Many To Many

PS : Désolé pour la perte de voix en plein milieu de la session 🙂

Vous voulez des photos c’est par ici !

L’ensemble des webcasts sont disponibles sur Chaine Youtube du GUSS.

Merci encore au GUSS et aux sponsors pour cette organisation et merci à ceux qui ont assistés à ces sessions.

JSS 2014 – Les Journées SQL Server 2014

Le mois de Décembre approche et comme vous le savez déjà les JSS se préparent !

Cette année cet événement qui regroupe la communauté SQL Server autour de différent sujets se déroule le 1er et le 2 Décembre.

Plus d’infos et inscription ici : http://guss.pro/2014/12/01/journees-sql-server-2014/

Cette année j’aurai le plaisir d’être speaker sur deux sessions :

Venez nombreux !

MDX – Division par 0,Null et fonction Divide()

Intro

De temps en temps je dois faire du MDX…
Et à chaque fois que je me lance dans cette aventure périlleuse d’écriture de requête multi dimensionelle, je me dis que j’aimerais prendre du temps pour vraiment tout connaitre sur ce langage. Et espérer qu’un jour je puisse le maîtriser.

C’est pourquoi je vais essayer de publier des posts (enfin) sur ce sujet.
Mon premier sujet la division par 0, Null et la fonction Divide()

Règle de base

La division par 0 n’est pas possible et quand on fait de l’informatique on a la valeur NULL qui vient semer le trouble. Selon le language, les fonctions il faut prévoir ces cas.

Comment le moteur OLAP fonctionne et comment gère t-on ce cas en MDX ?

Bonne question !

Premièrement règle d’or  0 = null  pour le moteur AS.

WITH MEMBER [Measures].[NullValue] AS Null
MEMBER [Measures].[ZeroValue] AS 0
MEMBER [Measures].[CheckZeroEqualToNull?] AS
IIF( [Measures].[ZeroValue] = [Measures].[NullValue], true, false) SELECT
{
[Measures].[NullValue],[Measures].[ZeroValue],
[Measures].[CheckZeroEqualToNull?]
} ON COLUMNS
FROM [MyKioub]

Résultat de la requête :

mdx_zero_null_true

Conclusion : AS considère les valeurs nulles comme une valeur à 0.

Par conséquent si il fallait vérifier le dénominateur d’une division il suffirait de vérifier le cas du 0 uniquement…

Application

Les requêtes ci-dessous présentent les différents cas que l’on peut rencontrer.
En sachant qu’avec SSAS 2008 les vérifications sont faites  avec des IF.
Tandis qu’avec SSAS 2012 on a une toute nouvelle fonction DIVIDE().

WITH MEMBER [Measures].[Value] AS 100
MEMBER [Measures].[NullValue] AS Null
MEMBER [Measures].[ZeroValue] AS 0
MEMBER [Measures].[100 / 0] AS
 [Measures].[Value]/[Measures].[ZeroValue] ,Format_String = '#.#0'
MEMBER [Measures].[100 / Null] AS
 [Measures].[Value]/[Measures].[NullValue] ,Format_String = '#.#0'
MEMBER [Measures].[Null / Null] AS
 [Measures].[NullValue]/[Measures].[NullValue] ,Format_String = '#.#0'
MEMBER [Measures].[0 / Null] AS
 [Measures].[ZeroValue]/[Measures].[NullValue] ,Format_String = '#.#0'
MEMBER [Measures].[Null / 0] AS
 [Measures].[NullValue]/[Measures].[ZeroValue] ,Format_String = '#.#0'
MEMBER [Measures].[0 / 0] AS
 [Measures].[ZeroValue]/[Measures].[ZeroValue] ,Format_String = '#.#0'
MEMBER [Measures].[0 / 100] AS
 [Measures].[ZeroValue]/[Measures].[Value], Format_String = '#.#0'
MEMBER [Measures].[Null / 100] AS
 [Measures].[NullValue]/[Measures].[Value], Format_String = '#.#0'
MEMBER [Measures].[Check 100 / 0] AS
 IIF([Measures].[ZeroValue] = 0, Null,  [Measures].[Value]/[Measures].[ZeroValue]),Format_String = '#.#0'
MEMBER [Measures].[Check 100 / NullEqual0] AS
 IIF([Measures].[Null] = 0, Null,  [Measures].[Value]/[Measures].[ZeroValue]),Format_String = '#.#0'
MEMBER [Measures].[Check 100 / Null] AS
 IIF(IsEmpty([Measures].[NullValue]), Null,  [Measures].[Value]/[Measures].[ZeroValue]),Format_String = '#.#0'
MEMBER [Measures].[DivFunct] AS
 DIVIDE([Measures].[NullValue],[Measures].[Value] )

SELECT {
 [Measures].[Value],
 [Measures].[NullValue],
 [Measures].[ZeroValue],
 [Measures].[Null / Null],
 [Measures].[0 / Null],  [Measures].[Null / 0],
 [Measures].[0 / 0],
 [Measures].[100 / 0],
 [Measures].[Check 100 / NullEqual0],
 [Measures].[100 / Null],
 [Measures].[Check 100 / 0],
 [Measures].[Check 100 / Null],
 [Measures].[0 / 100],
 [Measures].[Null / 100],
 [Measures].[DivFunct]} ON COLUMNS,
, [MyDim].[MyAttribute].&[MyMember] ON ROWS
FROM [MyKioub]

Résultats:

MDX_Test_Divide

La fonction DIVIDE()

Cette fonctione est disponible depuis la version 2012 de SQL SERVER, et possèdes 3 paramètres :
Divide (<numerator>, <denominator> [,<alternateresult>])

WITH MEMBER [Measures].[Value] AS 100
MEMBER [Measures].[NullValue] AS Null
MEMBER [Measures].[ZeroValue] AS 0
MEMBER [Measures].[100 / 0] AS
DIVIDE([Measures].[Value],[Measures].[ZeroValue]) ,Format_String = '#.#0'
MEMBER [Measures].[100 / Null] AS
DIVIDE([Measures].[Value],[Measures].[NullValue]) ,Format_String = '#.#0'
MEMBER [Measures].[Null / Null] AS
DIVIDE([Measures].[NullValue],[Measures].[NullValue]) ,Format_String = '#.#0'
MEMBER [Measures].[0 / Null] AS
DIVIDE([Measures].[ZeroValue],[Measures].[NullValue]) ,Format_String = '#.#0'
MEMBER [Measures].[Null / 0] AS
DIVIDE([Measures].[NullValue],[Measures].[ZeroValue]) ,Format_String = '#.#0'
MEMBER [Measures].[0 / 0] AS
DIVIDE([Measures].[ZeroValue],[Measures].[ZeroValue]) ,Format_String = '#.#0'
MEMBER [Measures].[0 / 100] AS
DIVIDE([Measures].[ZeroValue],[Measures].[Value]), Format_String = '#.#0'
MEMBER [Measures].[Null / 100] AS
DIVIDE([Measures].[NullValue],[Measures].[Value]), Format_String = '#.#0'

SELECT {[Measures].[Value],
[Measures].[NullValue],
[Measures].[ZeroValue],
[Measures].[Null / Null],
[Measures].[0 / Null],
[Measures].[Null / 0],
[Measures].[0 / 0],
[Measures].[100 / 0],
[Measures].[100 / Null],
[Measures].[0 / 100], [Measures].[Null / 100] } ON COLUMNS
, [MyDim].[MyAttribute].&[MyMember] ON ROWS
FROM [MyKioub]

Résultat :
DIVIDE_MDX

Si on ne spécifie pas de troisième argument  « alternateresult » dans la fonction DIVIDE() alors cette dernière retournera toujours « (null) ».
Vous pouvez donc remplacer ce comportement par défaut en spécifiant  une chaine de caractère ou un nombre positif.

Lien : FR – http://technet.microsoft.com/fr-fr/library/ms145626.aspx
EN – http://technet.microsoft.com/en-us/library/ms145626.aspx

Mosha wrote : http://sqlblog.com/blogs/mosha/archive/2007/01/28/performance-of-iif-function-in-mdx.aspx

CWebb wrote :http://cwebbbi.wordpress.com/2013/07/26/new-mdx-divide-function/

Reporting avec SQL Server 2012 et SharePoint 2010: Excel, PowerPivot, PerformancePoint, PowerView et Analysis Services

Plus le temps passe et plus le nombre d’outils augmente avec chacun leurs spécalités et leurs exclusivités.

Le couple SQL Server 2012 et SharePoint 2010 offre une ribambelle d’outils et de services qui nous permettent de produire des rapports. Le dernier outil en date est PowerView, l’offre de reporting de Microsoft commence à avoir de l’allure et ce n’est que le début …
Cet article vous aidera à replacer Reporting services (SSRS), PerformancePoint Services (PPS), PowerPivot (Add-in For Excel et For SharePoint), Excel et Analysis Services dans tout ce monde tableaux et de graphiques.

Commençons simplement avec… Excel 2010, rien d’extraordinaire un « simple » tableur qui permet de se connecter à des sources de données. Excel est « limité » … mais reste un bon point d’entrée de consommation, de calculs et d’analyses de données. Alors pour pallier aux limitations d’Excel on peut ajouter PowerPivot un simple Add-In gratuit. Cet add-in nous permet de nous connecter à plusieurs sources de données en même temps, récupérer des millions de lignes et en plus on est capable de mettre en relation ces données d’horizon diverses dans un seul et même modèle.

On pourrait s’arréter à là si on souhaite faire de la BI personnel dans son coin.

Sauf que le partage de l’information est primordial. On peut donc publier son classeur Excel Power Pivot sur SharePoint. Pour mettre en place PowerPivot sur un serveur SharePoint il faut installer une instance de PowerPivot via l’installation de SQL Server. Donc vous l’aurez compris PowerPivot est à la base un add-In Excel gratuit qui possède son « équivalent » server nécessitant un SharePoint et un SQL Server.

Parlons de SharePoint, il est capable de contenir de la BI. Depuis la version 2010, l’outil de dashboarding Performance Point est disponible, et depuis ses anciennes versions on peut intégrer des rapports de SQL Server Reporting Services. Il faut compter aussi sur ReportBuilder qui est un SSRS pour power user.

Donc oui dans SharePoint on peut mettre du PowerPivot, du Dashboard de Performance Point et des rapports classiques de SSRS. Voilà un vite tour d’horizon de ce qui existe.

Et Analysis Services  dans tout ça ? Pourquoi en parler de SSAS ?

Tout simplement parce qu’il sera dificile de ne pas y penser naturellement avec SQL Server 2012. En effet avec les nouveautés de SSAS  (mode tabulaire) de nouvelles combinaisons sont dorénavants possibles dans l’élaboration d’une solution BI.

Une ébauche de solution BI basée sur Excel et PowerPivot bâti par un business user peut vite se transformer en un cube de données hébergé sur un server disponible par un grand nombre de personnes. Et sur lequel on pourra se baser pour faire des beaux rapports PowerView.

Et pour clarifier un peu les choses sur SSAS :

  • PowerPivot For SharePoint : créé une instance SSAS PowerPivot par défaut le nom est .\POWERPIVOT. On peut passer par Management Studio pour le voir et il y a également module de gestion des classeurs dans SharePoint.
  • PowerView est capable d’avoir comme source de données des sources de type tabulaire : soit un classeur PowerPivot soit un cube SSAS mode tabulaire de SQL Server 2012.
  • Un classeur peut être « converti » en un cube SSAS tabulaire.
  • PerformancePoint peut utiliser un classeur PowerPivot comme source de données multi dimensionnel, et peut aussi gérer les cubes SSAS mode tabulaire.

Le screensot ci-dessous  vous montre l’instance PowerPivot et l’instance de SSAS tabulaire dans Management Studio.

L’avenir…Office 2013 et SharePoint 2013

Avec l’arrivée de Office 2013, Excel devient encore davantage le point d’entrée BI avec PowerPivot et PowerView en natif. Quant à SharePoint 2013 il reste l’outil de collaboration dans lequel on va stocker les différents rapports/dashboard. En sachant que PerformancePoint Services a connu pas mal de petits changements. Affaire à suivre…

Plus d’infos sur Excel 2013, l’ article de  David : http://joubertd.blogspot.ca/2012/07/office-15-excel-2013-powerpivot-et.html

Pour finir un schéma explicatif des relations entre les outils/services :

Retour – Certifications SQL Server 2012

Bien que SQL Server 2012 soit officiellement sorti ses certifications sont encore en BETA.

Ayant profité de l’offre gratuite de passage de certifs, j’ai pu testé ces nouveaux examens.

Merci Christian pour le bon plan : http://blogs.codes-sources.com/christian/archive/2012/03/23/certifications-sql-server-2012-alias-denali-disponibles-gratuitement-en-beta.aspx

Alors autant vous dire tout de suite que je me suis rendu dans le centre de test sans vraiment préparer. Je comptais essentiellment sur ma veille technologique, les conférences, Webcasts et articles que j’ai pu faire, assister et lire. Je n’espère pas grand chose…

Voici la liste des certifications SQL Server 2012, et la combinaison d’exam forment soit la stack Data Platform ou la stack Business Intelligence.

  • Exam 70-461: Querying Microsoft SQL Server 2012
  •  Exam 70-462: Administering Microsoft SQL Server 2012 Databases
  • Exam 70-463: Implementing a Data Warehouse with Microsoft SQL Server 2012
  • Exam 70-464: Developing Microsoft SQL Server 2012 Databases
  • Exam 70-465: Designing Database Solutions for Microsoft SQL Server 2012
  • Exam 70-466: Implementing Data Models and Reports with Microsoft SQL Server 2012
  • Exam 70-467: Designing Business Intelligence Solutions with Microsoft SQL Server 2012

Au programme, sur les 7 certifications SQL Server 2012 je me suis inscrit à 3 d’entre elles le même jour :). (Une bonne piqûre !)

  • Exam 70-463: Implementing a Data Warehouse with Microsoft SQL Server 2012
  • Exam 70-466: Implementing Data Models and Reports with Microsoft SQL Server 2012
  • Exam 70-467: Designing Business Intelligence Solutions with Microsoft SQL Server 2012

Je me suis attaqué aux certifs de la stack Business Intelligence,  il faudrait ajouté 70-461 et  70-462 pour avoir la totale.
Avant d’y aller, j’ai jeté un oeil sur le contenu des certifications :

Contrairement aux certifications 2008 on a vraiment plus de certifications et on voit bien que la BI prend vraiment un sens au niveau des compétences SQL Server.
En effet les composantes BI et les domaines de compétences sont mieux dissociés au lieu d’avoir 2 certifications BI regroupant SSAS, SSIS, SSRS et un peu de reste  (comme c’était le cas pour 2008) on a désormais 3 certications qui partagent un peu les 3 grandes familles d’outils BI.

Je ne vais pas tout détailler, mais globalement les questions sont bien posées et maintenant elles sont interractives.

Fini les textes très long à lire on a des screenshots interractifs, des drag and drop des étapes à mettre en place pour répondre à une question, je vous rassure les QCM sont encore là.

La 70-463 est intéressante enfin des mises en situation de  data warehouse (modélisation, chargement etc).

La 70-466 : Plutot dure, n’étant pas un Master du MDX et de l’optimisation de cube, et ne connaissant pas tous les secrets du BISM : Multidimensionnal VS Tabular, j’avoue avoir répondu un peu au hasard.

La 70-467 : est un peu équivalente à la 70-452 de SQL Server 2008. Elle regroupe une peu tout est plus plus orienté cas de tout les jours.

Les 3 ont a peu près 60 questions chacune

Toutes les nouveautés sont couvertes dans différentes proportions : on parle de SSDT, SQL Azure, DQS, MDS, PowerPivot, PowerView, ColumnStore, Nouveautés SSIS en veux tu en voilà, Modèle Tabulaire, DAX.

Cela reste des BETA, tout peut encore arrivé.

Et pas mal de question en référence à 2008 aussi.

Certaines questions sont vraiment pointilleuses, d’autres sont des « par coeur », il y en a des fastoches TAC-O-TAC et par rapport aux certifications 2008 il y avait des questions toutes simples mais Dieu sait qu’on a la réponse mais on ne sait plus comment s’appelle ce truc, on l’utilise tous les jours mais on ne fait plus attention au nom de cette propriété, de cette tâche, composant ou onglet. (GRRrrr)

A croire les feuilles imprimées en sortant résultat par mail dans 8 semaines.

SQL Server 2012 – Nouveautés Business Intelligence

Récemment j’ai dû écrire un article concit concernant les nouveautés BI de SQL Server 2012. Un discours mi-technique mi-descriptif que vous trouverez juste en dessous…

Pour rappel j’ai publié plusieurs articles concernant :

La base de données SQL Server de Microsoft connaitra une nouvelle version majeure : SQL Server 2012.

Tout au long de son histoire, cette base de données a évolué et depuis quelques années elle est devenue bien plus qu’un simple moteur de base de données… SQL Server est plus que jamais une plate-forme complète d’analyse de données d’entreprise. Cette version 2012 vient étoffer cette offre en apportant un lot d’améliorations et de nouveautés.

Cet article vous dévoilera les nouveautés Business Intelligence de SQL Server 2012.

La BI connaitra une riche année 2012

La partie BI de SQL Server 2012 connait un bon nombre de nouveautés et Microsoft a même créé une nouvelle édition spécialement dédiée à l’intelligence d’affaire : SQL Server 2012 Business Intelligence.

La naissance d’un nouvel outil : Power View

La famille de Reporting Services s’agrandit et accueille un nouvel outil : Power View. Cet outil mêle reporting ad-hoc et visualisation de données, ce qui offre une toute nouvelle expérience utilisateur. Techniquement, Power View permet de manipuler des données dans une interface Silverlight intégré à SharePoint.

Le principe est simple, on se trouve face à une feuille blanche sur laquelle on dépose différentes données provenant d’une liste de tables. Cela  va créer un tableau et grâce à cet outil on est capable de transformer ce tableau en visualisations. Parmi les nombreuses visualisations on trouve un graphique à bulles qui animera vos données sur un axe des temps.
Power View s’appuie sur la nouvelle couche sémantique BI et utilise un nouveau modèle de données de type tabulaire, utilisé par Power Pivot, et désormais greffé à Analysis Services (SSAS).
Un outil à voir : http://www.youtube.com/watch?v=75szAtMrkNs

Le nettoyage de données : un sujet important et un service dédié

Data Quality Services (DQS) est un nouveau service de SQL Server 2012. Il vous permettra de nettoyer vos données en faisant participer les responsables de données, les personnes métiers et le SI.
Par le biais d’une interface cliente il sera possible de créer des bases de connaissance. Ces bases contiendront vos règles d’épuration, de validation ainsi que vos données de référence. DQS vous épaulera également dans la recherche de correspondance (Matching/Doublons) et dans l’évolution de vos bases de connaissance.
Les différentes règles de nettoyage pourront être utilisées au niveau les flux de données dans Integration services (SSIS) via un nouveau composant.
Concernant SSIS, ce dernier connait des améliorations qui simplifieront le développement de flux de données ainsi que le déploiement des solutions ETL dans différents environnements.

Autres nouveautés

SQL Server s’ouvre davantage aux services dans cloud en donnant la possibilité d’étendre vos analyses/nettoyages/références avec des données du SQL Azure DataMarket. https://datamarket.azure.com/browse/Data/

Reporting Services (SSRS) connait deux changements marquants. Tout d’abord son intégration dans SharePoint est simplifiée. Puis SSRS possède maintenant un système d’abonnement plus efficace et mieux adapté aux besoins des consommateurs de rapports. Il est dorénavant possible de créer des règles qui alerteront vos usagers en fonction du mouvement de vos données dans vos rapports.

Pour terminer les outils des utilisateurs finaux appartenant à pile BI Microsoft viendront compléter l’artillerie d’analyse des données : Excel + Power Pivot 2.0 + Mater Data Services.

Les licences et prix

Microsoft profite de cette nouvelle version pour simplifier les licences en proposant uniquement 3 éditions principales.

  • SQL Server 2012 Entreprise
  • SQL Server 2012 Business Intelligence
  • SQL Server Standard

Les prix sont aussi revus, désormais le coût des licences dépendra du nombre de cœurs de vos serveurs et non plus du nombre de processeurs.

Plus de détails : http://www.microsoft.com/sqlserver/en/us/future-editions/sql2012-editions.aspx

Avant d’entreprendre de nouveaux défis avec SQL Server 2012 il faudra être patient, car elle devrait être disponible dans les premiers mois de la nouvelle année. En attendant vous pouvez toujours essayer la version RC0 disponible sur le site de Microsoft : http://www.microsoft.com/sqlserver/en/us/future-editions.aspx