Analysis Services dans Azure!

Je suis sûr que vous avez noté l’arrivée récente de SSAS Tabular en mode PaaS dans Azure. Je voulais rapidement revenir dessus parce que ça faisait au moins 2 ans qu’on le sentait venir, et que finalement ça valait le coup d’attendre.

aas_1.png

Rappel : je bosse chez Microsoft maintenant. Même si ceux qui me connaissent savent que ça ne changera pas grand-chose à mon avis sur les produits, je préfère le rappeler pour être 100% transparent 😉

Azure Analysis Services c’est tout simplement la possibilité de déployer ses modèles SSAS Tabular dans le cloud sans se soucier du tout de l’installation ou de la configuration d’un serveur. Si on ajoute à ça le fait qu’il est désormais possible de développer un modèle Tabular dans SSDT en mode intégré (sans disposer d’une instance workspace), on peut donc aller du prototype à la production sans jamais toucher une ISO d’installation de SQL Server. Cool 😉

« Oui mais moi j’aime mieux Multidim ! » dirons certains. J’y répondrais qu’il n’est pas écarté qu’on voit les cubes rejoindre Tabular dans le service (le flou est maintenu dans l’annonce : « Support for multidimensional models will be considered for a future release, based on customer demand ». Mais surtout je dirais que SSAS Tabular est devenu vraiment solide avec SQL Server 2016, et qu’il est urgent de lui donner une deuxième chance (performance, support du many-to-many, nouvelles fonctions DAX…).

Je vous fais un petit tour d’horizon de comment c’est génial, en montant un datamart et le cube associé en moins de 30 minutes.

  • Au programme:
    • Création d’une base SQL Azure pour notre datamart
    • Création d’une instance Azure Analysis Services
    • Création d’un modèle SSAS Tabular dans Visual Studio (SSDT)
    • Déploiement du modèle dans Azure Analysis Services
    • Accès au modèle avec Power BI, Excel et SSMS

Tout commence dans le nouveau portail Azure : https://portal.azure.com. Si vous n’avez pas de compte Azure pas de problème, vous pouvez tout essayer gratuitement

  • Première étape : Création de la base de données sur Azure SQL Database pour mon datamart, histoire de tout faire en PaaS

Pour un DWH de taille respectable on devrait plutôt utiliser Azure SQL Data Warehouse, mais pour s’amuser une SQL Database suffit:

aas_2.png

Je vais la pré-remplir d’un sample: AdventureWorksLT v12. Notez que c’est une option à la création de la base, parfait quand on veut juste jouer avec le produit:

aas_3

Je valide, et on peut laisser tourner et passer à la suite en attendant 😉

  • Deuxième étape : la création de notre instance Azure Analysis Services

Cette fois-ci on regarde du côté Intelligence + Analytics:

aas_4.png

Ne vous embêtez pas pour le pricing tier, D1 suffit pour notre petit test. Idéalement on devrait mettre la base SQL et Analysis Services dans le même groupe de ressources, et donc la même location. Par grave pour notre test si ce n’est pas le cas:

aas_5.png

Là encore je valide et on laisse tourner.

  • Troisième étape: dans SSDT (SQL Server Data Tools, les templates data/BI pour Visual Studio) on va créer un nouveau projet SSAS Tabular

Pas de panique si vous n’avez pas SSDT, il est désormais disponible en download direct et gratuit, tout comme SSMS d’ailleurs. N’hésitez pas à télécharger la version la plus récente, elle se base sur Visual Studio 2015, et est capable de gérer des projets SSAS/SSIS/SSRS de SQL Server 2012 à 2016

New Project > BI > Analysis Services > AS Tabular:

aas_6

Profitez du mode intégré, c’est tellement plus pratique:

aas_7

De là on va pouvoir se connecter à notre datamart : Model > Import From Data Source:

aas_66

aas_8

Un petit guide pour savoir comment configurer la connexion:

aas_9

On passe sur l’impersonation pour le moment avec une option par défaut:

aas_91

On veut ensuite choisir nos tables:

aas_92

De quoi construire un petit modèle, avec 2 tables de fait et 4 dimensions :

aas_93

Ça charge, et on peut valider que le modèle ressemble bien à quelque chose grâce à la vue en diagramme:

aas_94

On peut ajouter des mesures, changer la direction du filtre en bidirectionnel entre les 2 tables de fait… Ou s’en passer 😉

La partie marrante c’est le déploiement. Dans les propriétés du modèle:

aas_95

On configure la destination du déploiement. Retenez le nom du serveur (asazure://…) c’est celle qu’on utilisera plus tard pour se connecter à SSAS avec Excel ou Power BI :

aas_96

Et lorsqu’on déploie:

aas_97

Après une demande de credentials pour le processing du cube post déploiement:

aas_98

On obtient un cube déployé dans les nuages !

  • Quatrième et dernière étape: on va se connecter à notre cube avec SSMS, Power BI ou encore Excel

Le nom du serveur on l’a déjà, c’est celui qu’on a utilisé plus tôt au moment du déploiement (asazure://…).

Power BI: Get Data > SSAS

aas_991

Excel: Get External Data > SSAS

aas_992

Notez qu’il faut choisir l’option User Name / Password, et utiliser le compte Azure qui vient de créer le service (c’est juste pour le test, évidemment il est possible de créer toute une liste d’utilisateurs via Azure AD):

aas_993

Enfin, avec SSMS, si vous êtes intégré avec Azure Active Directory ça marchera tout seul, sinon voir cet article (c’est simple):

aas_994

Magique non ? 😉

Si ça vous plait, je vous encourage à l’essayer ainsi qu’à suivre le compte Twitter @Azure_AS pour être mis au courant de toutes les nouveautés.

Power Pivot vers Tabular : I need you!

J’ai besoin d’un coup de main de votre part à tous ! Hier j’écrivais un édito sur le futur de la BI Microsoft, et l’une des idées (améliorer la montée de Power Pivot vers SSAS Tabular) me tient particulièrement à cœur.

J’ai donc écrit un petit message sur le sujet aux copains MVP, et Chris Webb m’a rappelé l’existence d’un ticket Connect de Marco Russo en plein dedans.

Alors vous me voyez arriver avec mes gros sabots, ce serait vraiment vraiment cool si vous alliez voter sur ces différents items pour les faire monter au plus haut dans la liste. Ca aura un vrai impact, les items bien notés étant effectivement lus et considérés par l’équipe de développement de SQL Server.

Une vraie équipe!

Pour voter il suffit juste de disposer d’un compte « Microsoft » (Live ID/Hotmail/celui utilisé pour vos certifs/moi c’est une adresse gmail…), vous pourrez en créer un sur place si besoin, ça prend 2 minutes.

Voici les items concernés:

Merci de voter, et merci de faire passer le mot !

Petite réflexion autour de l’accélération des technologies

En ce moment l’écosystème décisionnel Microsoft est en ébullition. Avec la sortie de SQL Server 2012, c’est tout un camion de nouvelles technologies qui débarque dans notre petit jardin: le DAX, SSAS Tabular, PowerPivot, Power View, Data Explorer, des gros morceaux de SharePoint qui s’incrustent, Windows 8, les évolutions SSIS, le T-SQL version 2012… On a un peu l’impression d’avoir un nouveau langage / environnement à apprendre tous les 3 jours.

Même en dehors de Microsoft le décisionnel bouge beaucoup, et on commence à parler Tableau, Qlikview, SpotFire, qui eux aussi requièrent une certaine expertise voir une expertise certaine.

Et si on revient chez Microsoft mais qu’on sort de la BI, on voit que ça bouge beaucoup, et que ça en fait s’interroger plus d’un !

Oh mon Dieu, du DAX!!!

Oh mon Dieu, du DAX!!!

Alors je crois que c’est le bon moment pour un petit rappel qui nous vient de 2002, de chez Joel Spolsky :

When I was an Israeli paratrooper a general stopped by to give us a little speech about strategy. In infantry battles, he told us, there is only one strategy: Fire and Motion. You move towards the enemy while firing your weapon. The firing forces him to keep his head down so he can’t fire at you.

Traduit approximativement :

Pendant mon service militaire, un général s’est adressé à nous pour un petit cours de stratégie. Dans les batailles d’infanteries, nous disait-il, il n’y a qu’une stratégie: tirer en mouvement. C’est à dire se déplacer vers l’ennemi tout en tirant dans sa direction. Le fait de tirer lui fait baisser la tête, ce qui permet de se déplacer sans qu’il vous tire dessus.

Qu’il applique à la technologie, quelques paragraphes plus loin:

Think of the history of data access strategies to come out of Microsoft. ODBC, RDO, DAO, ADO, OLEDB, now ADO.NET – All New! Are these technological imperatives? The result of an incompetent design group that needs to reinvent data access every goddamn year? (That’s probably it, actually.) But the end result is just cover fire. The competition has no choice but to spend all their time porting and keeping up, time that they can’t spend writing new features.

De nouveau traduit approximativement:

Pensez à l’histoire des protocoles d’accès aux données issus de Microsoft. ODBC, RDP, DAO, ADO, OLEDB, ADO.NET – tous tout neuf ! Etaient-ils technologiquement incontournables ? Ou le résultat de l’incompétence du groupe de design concerné ? Peu importe, le résultat c’est un tir de couverture : pendant que la compétition passe son temps à adapter son code elle n’a pas le temps d’écrire de nouvelles fonctionnalités.

Et nous autres, les utilisateurs de ces technologies, on est pris au milieu de la bataille.

Les juniors sont découragés par le nombre de technos à apprendre, les séniors s’offusquent d’avoir à apprendre encore un nouveau langage.

Tout ça c’est du « Fire & Motion » de l’éditeur, il est important de ne pas y succomber, car ce n’est pas notre guerre. Pour l’éviter : déterminer quel est votre objectif – réaliser des projets ? – et accomplissez le sans vous inquiéter de ne pas maîtriser l’ensemble des technologies de l’offre.

Ce qui est important c’est :

  • d’avoir les bases, la théorie essentielle indépendante de la techno : parler à un client de ses besoins, la modélisation dimensionnelle, de la gestion de projet élémentaire…
  • de maîtriser au moins une technologie, et connaître ses limites,
  • de savoir apprendre les autres, uniquement au moment où vous avez besoin d’elles et uniquement ce dont vous avez besoin
  • de savoir demander à l’aide.

Pour tous ces points, il y a la communauté. Abonnez-vous aux blogs, participez à FrenchConnection.BI et au GUSS, contactez les experts, bref, ne restez pas tout seul dans le noir 😉

Jusqu’à la fin de votre vie, plus vous apprendrez, plus vous réaliserez à quel point vous en savez peu. C’est de la philosophie de bas étage, mais c’est à garder en mémoire devant l’énormité du travail de veille technologique qui attend tout développeur / consultant qui se respecte.

Bon courage ! 🙂