Windows 10: The Next Chapter

terry_myerson_silhouette_web

 

Petit récapitulatif des annonces :

  • Windows 10 gratuit pour ceux qui possèdent une licence Win 7 (Oui 7 !) et supérieur (la première année, formule avec abonnement ?)
  • L’intégration de Cortana au cœur de l’OS.
  • Plusieurs apps universel (office aussi) .
  • Nouveau navigateur, nom de code : Spartan
  • Une nouvelle appli Xbox Windows 10, la possibilité de streamer (et donc jouer) les jeux Xbox one sur PC.
  • Petite démo de DirectX12

Les surprises de la keynote:

  • Surface Hub : un écran 84’’ 4K qui tourne avec Windows 10. Vidéo de présentation:
  • Microsoft HoloLens (waaaaw !) . Vidéo de présentation:

La nouvelle release de Windows 10 sera disponible la semaine prochaine. Pour les téléphone il faut attendre février.

Pour revoir la keynote c’est par ici => http://news.microsoft.com/windows10story/

Mehdi

Optimisation Many-to-Many SSAS

Agenda :

Tour d’horizon des axes d’optimisation des M2M

  • Partitionnement
  • Agrégation

Les matrices de compression en détails

  • Présentation du fonctionnement
  • Utilisation de BIDS Helper
  • Démonstrations

Rappel des M2M:

Exemple:  manymany

  • Des raisons d’achat et des achats
  • Des personnes et des comptes bancaires (une personne peut avoir plusieurs comptes bancaires, et un compte peut être associé à plusieurs personnes)

Gestions SSAS:

  • Ssas gère nativement le multidim, par contre ce n’est pas le cas pour le tabulaire

Un exemple d’un modèle de données :

Modele M2M

Ce qui nous intéresse c’est le rectangle en pointié.

C’est un forum où des utilisateurs sont inscrits et qui font des activités, l’activité de notre exemple est de faire des commentaires sur des articles, en fonction de leurs activités ils reçoivent des badges, par exemple poster un article sur sqlserver donne droit au badge sqlserver.

Où est la M2M ?: Comment on peut compter le nombre de commentaires en fonction des badges ?

Ce que l’on souhaite de faire :

Croiser badge et commentaire : Connaitre le score et nombre de commentaires par badge.

Gérer les relations : Faire attention à ne pas sommer n’importe comment.

Performance et optimisation : On souhaite que tout cela fonctionne avec un minimum de temps de réponse.

Les partitions:

Processing et requête plus rapides

  • Parallélisme
  • Scanne moins de données

Optimisation au niveau de SSAS:

Une partition est un découpage de beaucoup de groupes de mesures. Dans SSAS par défaut : un groupe de mesure = une partition.

Dans 90% des cas on découpe les partitions par année, pays ..

Le gain est au niveau de requêtage et processing, SSAS process les partitions en parallèle.

Le requêtage  est rapide car SSAS scanne moins de données.

Les partitions « Bonnes pratiques »:

Le fait de diviser les groupes de mesures cela nous donne plus de flexibilité.

Il faut pensez aux scripts XMLA pour créer les partitions, c’est pratique pour gagner du temps, en l’occurrence on peut générer le code xmla pour une partition et l’exécuter pour les autres en changeant les variables.

Définir une agrégation sur une partition :

Pour les très grandes volumétries, il vaut mieux une grande partition que plusieurs petites (le cas où les données d’une année représente une très grande volumétrie).

partitions

Les aggregations:

Un autre grand point sur lequel on peut faire des optimisations est les agrégations. En créant des pré-calculs sur les partitions, on demande à SSAS de préparer les résultats en avance, donc il commence à agréger les données en fonction de différents attributs.

Trois façons de faire :

La Méthode classique qui est l’assistant qui permet soit de sélectionner manuellement les attributs, soit semi-manuel c-à-d des fonctions qui appliquent des algorithmes sur les groupes de mesures et les différents axes pour choisir lui-même les meilleurs agrégations.

Et sinon on a l’optimisation parfaite qui est le « usage based optimization » qui est une optimisation automatique (après activation), ça historise toutes les requêtes jouées sur le cube et à partir de ça il crée des agrégation basé sur le comportement de ces requêtes (très performant mais demande beaucoup de ressources).

Les agrégations : Bonnes pratiques:

  • Méthode : faite du semi manuel Unrestricted fonctionne plutôt bien sur de faible volumétrie (avec l’option “gain de perf”).
  • SSDT : Gérer 20% à 30 % des agrégations possibles.
  • Pourquoi pas 100% ?: parce que si on demande à SSAS de faire 100% des agrégations, il va faire toutes les combinaison possible et donc le temps de process et l’espace disque vont exploser.

Cela marche plutôt bien sur des petites volumétries.

Récapitulatif:

recap

Quand on fait une requête sur un cube via excel par exemple, c’est du code mdx qui est balancé au niveau du cube, et là on a 3 niveaux d’interprétations:

Soit la requête a déjà été exécutée dans le cache donc le résultat est dans le cache, ça renvoi la réponse directement, sinon ça va chercher le résultat dans les agrégations, et si ces derniers ne suffisent pas il va taper dans les partitions.

Il existe une autre option que l’on appelle le cache warming, c’est préparer le cache avec les requêtes de type “prepare cache” .

Les Matrices de compression : la solution lorsque le partitionnement et les agrégations ne suffisent plus ?

aproche sql

Dans ce modèle :

  • Un utilisateur a un ou plusieurs badges, un badge est attaché à un ou plusieurs utilisateurs.
  • Un utilisateur poste un ou plusieurs commentaires, un commentaire appartient à un utilisateur.

Ce que l’on souhaite calculer :

  • Sommer les scores des commentaires qui ont un lien avec le badge.

Résultat :

  • Le score ici est 9 par badge.

Illustration :
Afin de calculer le nombre de commentaires par badge, on a utilisé les relations entre les 2 tables de faits «FactComment » et « FactBadge ». Cela a renvoyé 90 lignes.

On a ici un problème de volumétrie, par exemple pour un utilisateur qui a posté un commentaire et qui a 90 badges, la requête renvoi 90 lignes. Alors que la seule chose qui nous intéresse est que cet utilisateur a posté un commentaire et que ce commentaire à un score de 9.

Si on concatène les « BadgeId » et on les met en une seul ligne, on compresse 90 fois la table.

matrice de compression

L’idée est de revoir ce modèle pour passer par une autre table de Fait que l’on va créer « FactBadge – matrix » qui va être une table de fait modifiée avec d’une part la concaténation de l’ensemble de mes badges et d’autre part une clé qui sera une référence vers une autre table de Dimension que l’on va créer également « DimBadge – matrix ».

Un processus en 4 étapes :

  1. Estimer les gains
  2. Modification du DataWarehouse (Ajout de 2 tables, une fact et une dimension)
  3. Modification du Cube
  4. Implémentation dans l’ETL

estimation gain

Estimation des gains avec bids helper, on click sur le petit bouton (qui apparait en haut) , et il va scanner toutes les many-to-many, et puis nous donner la taille originale de la table de fait , la taille compressée et la taille de la Dim matrix qui va être à créer, et il nous calcule la réduction en pourcentage (ici 42%).

Ou bien avec du code !! Mais l’assistant est plus simple quand même 😉

modification du dataware

On a rajouté du temps d’alimentation:

  • Alimenter les 2 tables qu’on vient de créer
  • Faire un update sur la FactComment qui peut être couteux vu la volumétrie.

modification du dataware 2

Voilà un exemple d’illustration:

Dans la « FactBadge » on a des user qui sont attachés à des badges, le user 174601 a 3 badges, et le user 480508 aussi. On remarque que les 2 user ont le même ensemble de badge, donc ce qu’on va faire c’est concaténer l’ensemble de ces 3 badge et les mettre dans la table « DimBadgeMatrix »  avec comme clé ‘’BadgeMatrixId = 1’’.

On génère la 1ere table de la manière suivante :
À partir de cette table « DimBadgeMatrix »  on remplis la table de fait « FactBadgeMatrix », ça va nous permettre de garder le lien entre la table  « FactBadge » et « FactBadgeMatrix »

Enfin on met dans la table « FactComment » un lien directe vers la table de fait.

La taille de la colonne ‘’BadgeMatrixKey’’ va devenir un problème à gérer.

Il n’est pas envisageable de passer ‘’BadgeMatrixKey’’ en VARBINARY(MAX) or nous allons très vite dépasser les 8000 caractères maximum d’un VARCHAR(max).

Solution : Les fonctions de hachage sont là pour nous aider.

On nomme fonction de hachage une fonction particulière qui, à partir d’une donnée fournie en entrée, calcule une empreinte servant à identifier rapidement, bien qu’incomplètement, la donnée initiale. Les fonctions de hachage sont utilisées en informatique et en cryptographie.

A noter : il faut bien choisir sa fonction de hachage la plus adapté au cas afin d’éviter tout risque de tomber en collision.

modif cube

Dans SSAS, la nouvelle table de Fait « FactBadge-Matrix » est en Relation de type ‘’Regular’’ avec les dimensions « DimBadge » & « DimBadge Matrix ».

L’autre table de fait « Fact Comment » quant à elle est liée à la dimension « DimBadge » avec une Relation de type Many-to-Many en passant par la table de fait « FactBadge-Matrix ».

Modification ETL (4/4)

L’ETL doit :

  • Alimenter DimBadgeMatrix
  • Alimenter FactBadgeMatrix
  • Mettre à jour la table FactComment
  • Si votre liste d’identifiants dépasse 8000 caractères, l’ETL doit gérer le Hachage de la colonne.

Conclusion :

Conclusion

On remarque sur le graphique ci-dessus que la méthode ‘’M2M Matrix+Aggreg’’ est la plus rapide en termes de temps de requêtage. En revanche, le temps d’alimentation dans l’ETL est considérablement plus long par rapport à la méthode ‘’M2M+Aggreg’’. Le temps du process cube quant à lui est quasiment le même.

 

 

[JSS2014] Comment réaliser et administrer un portail BI avec SharePoint, SQL Server et Excel ?

1.Présentation du contexte

Aujourd’hui nous nous sommes aperçus qu’un grand nombre d’entreprises et de collaborateur avait besoin d’avoir à leurs dispositions de nombreux rapports favorisant l’aide à la décision.

Ces rapports ont besoin d’être mis dans un environnement   :

  • Sécurisé
  • Pratique d’accès (portail Web)
  • Etanche (ne doit pas interféré les transactions en cours)
  • S’adapte aux utilisateurs

Tous ces besoins peuvent être réalisés grâce au portail BI sous SharePoint, car celui-ci permet de :

  1. Centraliser le contenu BI et y accéder de n’importe où à partir d’un navigateur (Accès distant / Mobilité)
  2. Partager un contenu BI (rapports, tableaux de bords)
  3. Commenter les analyses à plusieurs collaborateurs
  4. Sécuriser l’accès aux rapports en fonction des personnes et des Rôles dans l’entreprise
  5. Centraliser l’administration
  6. Rechercher par mots clés
  7. S’intégrer dans une charte graphique d’entreprise

   2.  Installation de SQL Server et SharePoint

Pour créer notre portail nous avons besoin d’installer SQL Server et SharePoint vous trouverez l’ensemble des détails de l’installation à l’adresse suivante :

http://mcnextpost.com/2014/03/28/installation-sharepoint-2013-avec-sql-server-2012-et-windows-server-2012/

A ce tutoriel nous le complétons en vous suggérant d’utiliser les outils suivants :

AutoSPSourceBuilder :

Permet d’intégrer les derniers CU à l’ISO de SharePoint 2010 ou 2013

Pour vous faciliter l’installation de vos fermes nous vous conseillons d’utiliser :

AutoSPInstaller & AutoSPInstallerGUI

Permet de simplifier l’installation de SharePoint et de configurer les rôles. Indispensable dans le cas de l’installation d’une ferme complète

Attention aux points suivants :

  • Si vous souhaitez installer SQL server 2014 nous vous recommandons d’utiliser le CU d’avril 2014
  • Avant le SP1 de SharePoint 2013, SharePoint n’est pas compatible avec Windows Server 2012 R2

 

      3. Configuration de SharePoint

Afin de créer un portail BI nous avons besoin de configurer les services suivants :

  • Visio Services
  • Excel Services
  • Performance Point Services
  • Power Pivot Pour SharePoint
  • Secure Store Services

Dans notre exemple nous avons privilégié l’utilisation du Wizard qui est plus facile d’utilisation car il permet de lancer l’ensemble des scripts nécessaires à l’ajout de services (de nombreux scripts autonome sont lancés en second plan)

 

0

 

Toutefois, cette installation semi automatisé ne répond pas aux « règles de l’art » dans l’idéal il aurait fallu ajouter les services nécessaires de manières manuels :

 

1

2

3

4

5

6

 

Configuration de PowerPivot

Après l’installation de PowerPivot pour SharePoint un module d’installation apparait ce module va permettre de lancer les différents scripts permettant de faire communiquer SharePoint avec notre instance power pivot et va nous créer le service associé.

Pour le configurer il suffit de lancer l’assistant d’insérer les différentes étapes de paramétrage :

 

7

Une fois ces différentes étapes réalisées :

  • Installation de SQL Server
  • Installation de SharePoint
  • Configuration des services

Nous allons pouvoir créer notre site qui va héberger nos différents documents.

 

4. Création du site d’hébergement :

Dans notre cas nous avons créé un team site plus simple et plus approprié à notre démo :

Pour cela rendez-vous dans l’administration centrale de Sharepoint :

SiteCollection

Créer un Team Site :

Application Management

Création du portail :

 

9

10

 

Ajout des apps nécessaires :

11

Ajout d’une promoted link :

 

12

 

13

 

Ajout d’une Galery PowerPivot

 

14

Ajout d’un report document Library 15

Ajout d’un Performance Point Content List

 

16

On revient sur notre page :

 

17

Nous allons dans document et nous ajoutons 2 exemples :

Un exemple Visio et un Exemple Excel qui vont démarrer depuis les moteurs intégrés :

  • Visio Services
  • Excel Services

18

Ajout des rapports SSRS :

19

20Modification des sources :

 

21

22

Ajout d’un exemple Performance Point (Disponible que sur la version Entreprise de Sharepoint 2013)

23

24

Pour notre exemple nous avons déployé un rapport déjà prédestiné :

25

On vérifie l’exemple :

26

 

Tous nos exemple sont OK il ne reste plus qu’à créer la page d’accueil à partir de notre promoted link

Nous allons dans la promoted link que nous avons appelé liens utile au début et nous effectuons une édition rapide :

27

Ensuite nous ajoutons nos différents liens qui pointe vers les photos choisis et les différents exemples ou liste d’exemple suivant ce que vous avez choisis :

28

On ajoute la promoted link à la page principale :

 

29

 

On supprime les liens par défaut et on ajoute les liens utiles :

30

On retroune sur la page principale et voilà:

 

31

On clique sur les différents liens pour voir le fonctionnement :

 

32

33

34

35

36

37

5. Les problématiques récurrentes :

              a.Driver pour Performance Point

Il est possible qu’après votre installation lors de la réalisation de rapports sous performance point vous n’arriviez pas à vous connecter à la base de données …

Pas de panique c’est normal … Il faut mettre les drivers de ADOMD.NET de SQL Server 2008 R2 (ou le feature pack)

Quelques liens utiles J :

https://yossidahan.wordpress.com/2012/08/14/cant-get-ssas-databases-to-appear-in-performance-point-dashboard-designer-check-you-adomd-net-version/

http://omicron-llama.co.uk/2012/07/18/connecting-to-analysis-services-on-sql-server-2012-from-performancepoint-on-sharepoint-2013-preview/

http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=16978
b. La configuration des services

http://technet.microsoft.com/fr-fr/library/jj219793(v=office.15).aspx

c. IIS

38

Vérifier les droits sur le répertoire IIS et le démarrage du pool applicatif

d. Les paramétrages de site:

39

Site Feature :

40

 

Cette partie permet d’activer les différentes options nécessaires au site (BI Center / Performance Point …). Ces modules peuvent s’avérer nécessaire pour l’utilisation de certaines apps ou de certaines fonctionnalités nécessaire à l’élaboration de notre portail BI.

6.Conclusion

Dans cet article nous avons fait un tour rapide des différents éléments nécessaires a la création d’un site BI sur SharePoint en reprenant les différentes étapes d’installation de configuration et de mise en place.

Bien évidement il reste quelques points à approfondir mais avec l’ensemble de ces éléments vous devriez avoir les bases pour créer votre premier portail.

 

Julien PIERRE

Consultant Décisionel