Comment la BI Microsoft est en train d’évoluer !

 

BI on-demand, Big Data, Cloud, Mobilité, Machine Learning, Social BI…. Décryptage !

 

Cet article a pour but d’expliquer l’évolution actuelle et à venir de la Business Intelligence Microsoft et de décrypter son écosystème pas si simple à appréhender. En effet l’émergence du cloud, de la mobilité, des «  big data » (réseau sociaux, e-commerce…) et de l’analyse qu’on peut en faire, le tout associé aux demandes avec des délais de plus en plus cours de la part des décideurs ont fait naître de nouvelles technologies de Business Intelligence plus modernes et qui pour certaines sont parfois en phase transitoire et en mode « preview ».

L’écosystème se découpe en 4 domaines et un ensemble d’outils associés comme le montre le schéma d’ensemble ci-dessous :

 

 

 

 

_MSBI

 

 

La BI On-Premise (traditionnel) :

Depuis plus de quinze ans Microsoft fait évoluer ses outils décisionnels « On-Premise » autour de SQL Server pour permettre aux sociétés de mettre en place eux même une solution décisionnelle d’entreprise centralisée, robuste et évolutive, en harmonie avec l’infrastructure locale existante et qui répond à des exigences à la fois de sécurité, de performance mais aussi de budget.

Traditionnellement, pour la conception d’un environnement décisionnel, une société peut faire appel à l’IT, on parle alors pour une solution « Corporate » d’entreprise. Mais un utilisateur final souvent appelé « Power User » peut également mettre en place une solution et devenir autonome dans la totalité ou une partie des phases d’un projet, de la conception jusqu’au déploiement.

Dans le dernier cas on parle souvent de solution BI « On-demand » ou « Self-service » et parfois personnelle si elle est conçu intégralement par l’utilisateur.

La suite d’outils BI traditionnels, et ceux-ci autour de la SQL Server, est composée :

  • Du moteur de base de données : SQL DB Engine
  • De l’ETL : SSIS
  • Du moteur d’analyse multidimensionnel : SSAS
  • Du serveur de rapports : SSRS

Pour la BI « On-Demand », Excel est l’outil de prédilection.

 

_BIOnprem

 

 

 

La BI « Corporate » :

Avec SQL Server et depuis la version 7.0, la plateforme BI Corporate de Microsoft est en perpétuelle évolution toujours dans un but d’être plus robuste, performante et avec de nouvelles fonctionnalités souvent inédites.

 

Aujourd’hui nous en sommes à la version SQL Server 2014 maintenant orientée « Hybrid Cloud » pour faciliter de manière transparente la gestion du stockage, des sauvegardes ou des transferts des données que cela soit sur site ou dans le cloud.

Microsoft a également conçu et développé depuis la version SQL Server 2012 un nouveau moteur d’analyse « In Memory » qui rend plus puissant le traitement des données, les calculs d’agrégats et des formules d’analyse en mémoire, ainsi que la restitution et l’analyse de données autant fines et « Tabulaire » qu’agrégées et en tableau croisé.

De plus, un nouveau type d’index « Column Store Index » permet d’améliorer considérablement les performances de chargement des entrepôts et son requêtage.

Enfin, SQL server permet de réindustrialiser dans SSAS les données provenant des cubes « On-demand », que nous verrons plus loin, conçus avec « Power Pivot », stockées en local dans Excel, de les exposer dans SharePoint pour donner la possibilité à l’utilisateur final de concevoir directement dans un site des analyses ad-hoc grâce au composant de « Data Vizualisation » « Power View » issu de SQL Server et intégré à un service SharePoint 2013.

 

En complément, pour permettre aux utilisateurs de mieux collaborer, la solution SharePoint 2013 permet, en plus de ce qu’on a vu au-dessus avec « Power Pivot » et « Power View »,  la mise en place de portail décisionnel, le partage des classeurs Excel d’analyse, l’intégration des rapports SSRS et l’utilisation des fonctionnalités intrinsèques à SharePoint comme par exemple la GED,  les intranets, les réseaux sociaux d’entreprise… Un petit plus dans SharePoint avec Power View : la possibilité d’exporter les « Dashboards » dans des slides Power Point en conservant l’interactivité et la possibilité de mettre à jour les données au sein d’une présentation.

Un service appelé « Performance Point » qui intègre entre autre l’outil d’analyse racheté à la société « Proclarity » n’est plus mis en avant.

 

_Collab

 

 

Dans la gamme des outils « On-Premise », un nouveau « petit » vient de naitre, il s’appelle « DataZen », il vient d’être racheté par Microsoft, il est fourni gratuitement à partir de la version SQL Server 2008 édition Entreprise avec la Software Assurance.

Comme « Reporting Services », « DataZen » est un outil de restitution, il comporte un « Publisher » pour permettre à l’IT de concevoir des rapports avant les déployer coté serveur.

Par contre, contrairement à « Reporting Services », « DataZen » est un outil orienté « Multi-device » et permet par exemple d’analyser des données sur tout type de tablettes ou smartphones (Windows, iOS et Android), puisque qu’il est compatible HTML5.

De plus, il a été conçu pour faire du « Dashboarding » plus que du « Reporting » opérationnel et fait partie de la gamme d’outil d’analyse visuelle de « Data Visualization ».

Enfin, il offre intrinsèquement la possibilité de faire de la BI collaborative en gérant des flux de commentaires entre les utilisateurs.

Petit bémol, il ne comporte pas comme « Reporting Services » les fonctionnalités de « push mail »  automatisé, l’intégration à SharePoint et le « Data Alert ». Par contre il permet contrairement à Power BI pour le moment de faire des analyses en mode déconnecté.

 

_Datazen

 

 

 

On voit bien que Microsoft a construit au fil du temps une véritable plateforme BI On-Premise solide et avec des évolutions permanentes. Aujourd’hui, IT ou l’utilisateur final bénéficie de toute l’expérience de l’éditeur, de la maturité et la robustesse de sa solution pour mettre en place ou utiliser un système d’information décisionnel d’entreprise accessible depuis partout (tablette, smartphone…) et en mode collaboratif.

 

 

La BI « On-Demand » :

Excel, l’outil idéal pour d’analyse des données « On-demand » a bien évolué. Si on regarde en arrière, avec la version Excel 2003, pour faire de l’analyse avec une connexion OLAP, on se restreignait qu’à un simple tableau croisé dynamique (« Pivotable »). Aujourd’hui avec Excel 2013, on a une véritable solution complète de Business intelligence personnelle avec ses outils permettant à l’utilisateur final de concevoir, comme avec l’IT et SQL Server, sa propre solution en libre-service composée :

  • D’un ETL : Power Query
  • D’un moteur d’analyse et son « Modeler » : Power Pivot
  • De deux outils de « Data Vizualisation » : Power View et Power Map pour l’aspect Géospatial

La philosophie de « Power View » et « Power Map » est de mettre en place comme Power Point un scénario, « Story Boarding » avec des slides, dans le but de faire une présentation issue de sa propre analyse et de faire en quelque sorte « parler les chiffres » ou faire du « Story Telling ».

Cette présentation peut être du « One-Shot » et être exposée qu’une seule fois par exemple à un Codir. D’où l’utilité en la mettant en œuvre rapidement avec Excel, outil très familier de l’utilisateur final, de ne pas passer par des cycles de conception et développement avec des délais qui peuvent parfois être annoncés comme importants par l’IT.

Par contre dans le cas où cette solution nécessite d’être stable, pérenne, sécurisée et partageable, il faut la réindustrialiser de Excel vers SQL Server grâce à des outils d’ « Import » qui existent.

 

_Collab2

 

 

 

La Business Intelligence dans le « Cloud » :

L’évolution des services dans le cloud, notamment autour de l’offre Azure de Microsoft, permet à l’IT maintenant d’une manière transparente de disposer de coûts d’administration mieux maîtrisés. L’infrastructure technique et applicative est plus robuste, performante et évolutive. Enfin les cycles de mise à jour sont plus courts et les opérations de maintenance et l’hébergement sont gérés directement par Microsoft.

 

Trois solutions vont être décrites dans la suite de cet article:

« IaaS »: Infrastructure as a Service

« PaaS »: Platform as a Service

« SaaS » : Software as a Service

 

La solution SaaS Power BI :

Elle permet de concevoir simplement une solution personnelle de Business Intelligence depuis Excel, avec les composants Power Query, Power Pivot, Power View, Power Map. Mais aussi depuis un concepteur dédié appelé « Power BI Designer » ou « On-Line » à partir du site powerbi.com avec un espace dédié et un compte associé.

Office 365 comporte également un site dédié Power BI où sont publiés et visualisés les rapports.

Les utilisateurs se connectent à des sources de données sur site ou dans le cloud pour mettre en œuvre plusieurs rapports et peuvent également les imbriquer simplement dans des « Dashboards ».

Plusieurs connecteurs sont nativement fournis comme par exemple Analysis Services, Salesforce, Univers Business Object, Dynamics CRM, Azure….

 

_CaptureDash

 

 

Une fois la solution publiée sur le site powerbi.com, les utilisateurs pourront depuis un mobile (iPhone et Windows Phone pour le moment) ou d’autres « Devices » se connecter à la solution pour visualiser leurs « Dashboards ».

Des fonctionnalités avancées existent également :

 

– « Q&A ». Une fonctionnalité de requêtage en langage naturelle (uniquement en anglais pour le moment) qui permet de poser des questions Ad-hoc sans connaissances techniques.

– «Data Refresh » permet de planifier la mise à jour des données au sein des rapports.

– « Data Management Gateway » permet de se connecter depuis le cloud à des sources « On-Premise » comme des cubes SSAS.

– « Data Catalog » permet d’exposer les données des rapports dans le cloud pour en faire des sources pour d’autres utilisateurs concevant des rapports.

 

 

powerbi4

 

 

Aujourd’hui Power BI existe en version Preview car il est en perpétuelle évolution, il peut être mis en œuvre et utilisé gratuitement, sauf si vous voulez utiliser les fonctionnalités avancées ci-dessus ou si vous dépassez la capacité limite de 1Go de stockage de données, d’un débit de 10k rows/ heures ou de cycle de rafraîchissement des données de plus de un jour. Dans ce cas le coût actuel est de 9,99 $ par utilisateur/mois.

L’intégration dans l’environnement Microsoft avec un « Designer » très convivial et ergonomique, la conception BI possible depuis Excel , des composants graphiques très riches, des « Dashboards » dynamiques et interactifs, des connecteurs très variés, la publication sur des mobile et tablettes, les cycles MS de mises à jour très réguliers font de Power BI LA solution personnelle et complète pour faire de la « Business Intelligence » « On-demand ».

Face aux solutions concurrentes Tableau Software et Qlik (ex QlikView), Power BI n’a rien à se reprocher.

 

 

La BI Mobile :

Avec les deux solutions « Power BI » et « Datazen » la mobilté cross-plateform est possible. Selon les usages, vous pouvez utiliser l’un des deux outils. « Power BI » est idéal pour le Cloud en mode connecté, gratuit selon certains critères ou avec un système d’abonnement et « Datazen » pour une infrastructure sur site et en mode connecté ou déconnecté, il est inclus dans les licences SQL Server avec la « Sofware assurance » Microsoft.

Une différence importante : pour concevoir un rapport avec Power BI, l’utilisateur n’a pas besoin d’être développeur, il peut le créer dans Excel ou le Power BI Designer. Pour « Datazen », il faut être développeur et être formé sur le « Datazen Publisher ».

 

 

mob

 

 

 

La Business Intelligence dans Azure (IaaS et PaaS) :

Autour des services de données PaaS et de la possibilité d’utiliser des VM dans des infrastructures  IasS ou des « Appliances » va simplifier le travail des administrateurs sur site et offrir des possibilité inédites pour faire par exemple des traitements de « Big Data » ou alors du Machine Learning sur des « Datacenters » mutualisés, ultra-puissants où la mise à jours des services pourra s’effectuer plus simplement.

L’offre IaaS :

Elle offre la possibilité de porter simplement son infrastructure local dans le cloud dans des VM et de pouvoir la superviser à distance et sans avoir à supporter les coûts de maintenance associés.

 

Les appliances APS :

APS ex PDW a été conçue conjointement par Microsoft et des architectes « Hardware » pour offrir la meilleur performance en MPP (Massive Parallel Processing) au sein d’une appliance. Elle offre également la possibilité d’intégrer sous le nom de HDInsigt le moteur NoSQL d’Hadoop pour des traitements « Big Data » et d’offrir au travers du moteur « Polybase » la possibilité de faire des requêtes en langage SQL pour ensuite exposer les données à des fins d’analyse.

 

L’offre PaaS :

Plusieurs  services de données ont été mis en œuvre dans Azure et sont accessibles via son portail. Ceux-ci sont mis à jour régulièrement et certains sont encore en mode « Preview ».

Pour le traitement des « Big Data », Microsoft a intégré dans sa plateforme Azure le moteur Hadoop de la société HortonWorks bien connu pour son architecture de données distribuées, HDFS, sous le nom de « HD Insight ».

Avec HD Insight », sont remodelés, la création de clusters pour la parallélisation des traitements de données, la mise en œuvre des process « Map/Reduce » pour tout type de transformation comme l’agrégation  ou le  nettoyage de données déstructurées comme par exemple le comptage de l’occurrence de mots parmi une multitude de messages comme des tweets, de sms ou flux RSS.

Pour ce faire le service ELT « Azure Data Factory » avec une interface très conviviale, permet d’ordonnancer tous ces traitements, il permet d’extraire des données sources, d’appeler des transformations en passant par des bibliothèques qui s’appuient sur les fonctions « Map/reduce » pour simplifier l’écriture du code. Par exemple « Hive » pour exécuter des traitements SQL DDL (CREATE…) ou DML (SELECT…) ou alors « Pig » pour appeler comme dans un ETL des fonctions de transformations (Agrégation, comptage, boucles,…) et enfin les charger dans des « Data Warehouses ».

Pour la gestion des entrepôts le service « Azure SQL Data Warehouse » peut être utilisé pour mieux exposer ses données à des outils d’analyse comme SSAS ou Power BI.

Dans le cas de besoins d’analyse ou monitoring temps réels et pour une prise de décision rapide, le service « Azure Stream Analytics » permet de traiter des flux de données très volumineux et avec un débit important comme des « Click Streams » provenant de site internet e-commerce par exemple, de les ingérer, les regrouper, agréger ou filtrer grâce à une bibliothèque de fonctions proche du SQL, pour ensuite les exposer à des fins d’analyse avec Power BI ou de Machine Learning. « Azure Stream Analytics » peut s’appuyer sur les services d’Azure de files d’attente « Event Hub » et « Services Bus ».

Enfin avec le service, « Azure Machine Learning », les « Data Scientists » peuvent faire de l’analyse prédictive dans le cloud et exposer leur résultats à des outils front ou des process via à un appel de « Web services ». Ce service permet de créer dans un concepteur dédié, appelé « ML Studio », des unités de traitement appelés expériences comportant une boite à outils pour créer des jeux de données sources, évaluer des modèles, les entrainer ou faire du « Scoring »,  effectuer tout type de transformations en mode graphique comme on le ferait avec SSIS mais d’utiliser aussi le langage R pour le faire et enfin produire les résultats statistiques et de probabilités.

 

 

_Azure3

 

 

 

Pour mettre en œuvre tous ces services il existe un système d’abonnements dont le coût varie selon un ensemble de paramètres comme la volumétrie, le temps, le débit….

 

Vous constatez  que maintenant, avec l’offre PaaS BI dans Azure, il existe un kit de services clef en main de plus en plus matures, robustes et performants pour traiter des données de  Business Intelligence en Back Office surtout pour des process associés au « Big Data » au temps réel et au « Machine Learning ».

 

 

 

A venir :

Comme vous avez pu le constater, le paysage autour de la Business Intelligence Microsoft c’est pas mal transformé depuis ces derniers temps et il continue encore. SQL Server 2016 est annoncé avec de nouvelles évolutions comme l’unification de « BIDS » et « SSDT », l’intégration de HDInsight et Polybase qui n’étaient actuellement que dans APS ou Azure, la possibilité d’intéragir avec Azure Data Factory depuis SSIS, des nouvelles fonctionnalités de « Data Vizualisation » dans SSRS et la possibilité de publier des .rdl dans le site Power BI. Du nouveau également dans SSAS Tabular puisque les relations « many to many » seront supportées et enfin des évolutions autour de SSAS multidimensionnel et MDS.

Concernant les outils « Front », une nouvelle version d’Excel dans Office 2016 est à venir où Power Query va maintenant être natif à Excel, la possibilité maintenant de créer un rapport Power View sur des cubes SSAS multidimensionnels et d’autres fonctionnalités qui seront probablement annoncées bientôt.

 

Ce qui reste à améliorer :

La BI MS a encore de beaux jours devant elle, par contre l’offre peut paraître encore « décousu » et pas forcément simple à comprendre tant au niveau des usages, que du mode de licensing.

Par exemple, si l’utilisateur demande une publication de son modèle « Power Pivot » dans SharePoint, on s’aperçoit que le mode de licencing est complexe et qu’il faut composer entre les licences d’Excel 2013, de SQL Server mais aussi de SharePoint.

De plus, il faut un travail important de pédagogie envers l’utilisateur qui ne comprend pas pourquoi il y a autant d’offres. Par exemple, il peut être perdu avec les outils de « Data Vizualisation »: SSRS, Datazen, Power View…. donc il faut lui expliquer les correspondances qu’il y a entre les usages qu’on peut en faire et les outils associés.

Enfin, dans un composant comme Power View qui est distribué à la fois dans Excel et SharePoint On-premise, il peut y avoir des petits plus qui sont dans l’un mais pas dans l’autre, par exemple l’export vers Power Point qui n’est que dans SharePoint. De plus les composants Power BI d’Excel 2013 et du Power BI Designer ont été découplés mais les fonctionnalités sont beaucoup plus avancées dans le dernier.

 

Pour conclure :

Comme on vient de le voir avec les outils de « Data Vizualisation », les enjeux à venir de Microsoft vont être de les faire converger pour en faire une offre homogène, multi-usage, en plus d’être muti-device et cross-platform.

De même, une convergence entre le cloud et le « On-Premise » doit continuer à s’installer autour de l’hybride : faire en sorte homogénéiser les outils, les échanges de données ou de process inter plateformes, où tout sera transparent pour les développeurs, administrateurs, DBA, Data Manager ou Stewardship, Business Analyst, Power User, et utilisateur final, et où ils ne s’apercevront plus de la différence entre concevoir ou consommer de la BI sur un PC ou un mobile, « On-Premise » ou dans le cloud.

 

 

Sébastien MADAR

MVP SQL Server

 

 

Minimum install to execute SSIS Packages

A couple of days ago one of my client asked me what needs to be install on the ETL server in order to execute SSIS Packages. My first though was to install the SSIS instance but after some other thoughs i decided to look into it in more details.
Here is a summary of my research on the subject – the goal was to install the minimum of component as possible as we are in a PCI environnent which must be highly secure.

dtexec is the command prompt utility that needs to be install to run your SSIS packages.
dtexec is installed when you install SQL Server DB Engine. However this is *NOT* the full version of dtexec. It is only install in order to use:
– Import and export data wizard (within SQL Server)
– Support maintenance plans (Since SQL Server 2005 sp2 or SQL Server 2008 CU1/sp1, it is not necessary to install SSIS to create maintenance plans)
=> So You *cannot* run your own SSIS packages with this version of dtexec
In order to fully use dtexec you need to install « Integration services » feature. Installing this feature install the necessary binaries (and also the service) to run your own packages.

Note:
– dtexecui is not install when installing only Integration services (it’s a client component tool)
– You can stop the SSIS Service to run packages – the SSIS service only extends the functionality of SSMS
– You also might need to install the « client Tools connectivity » feature tools as well and any other components you might need to connect to your sources.
Client Tools includes components for communication between clients and servers, including network libraries for DB-Library, OLEDB for OLAP, ODBC, ADODB, and ADOMD+

64-Bit consideration
In a 64-Bit computer you need to install BIDS or SSMS in order to also get dtexec in 32-Bit
So when installing SSIS in a 64-bit computer to ensure a 32-bit installation is also required, you must install SSIS and BIDS. Installing SSIS and not BIDS will only install the 64-bit engine.
If you have a 64-Bit computer with both 32-Bit and 64-Bit dtexec installed:
– when using dtexecui it will use the 32-Bit version (it’s a 32-Bit tool)
– when using the dtexec it will use the 32-Bit by default (because the directory path for the 32-bit version appears in the PATH environment variable before the directory path for the 64-bit version)
– when using SQL Agent it will use the 64-Bit by default ( because SQL Server Agent uses the registry, not the PATH environment variable, to locate the correct executable for the utility)

Conclusion:
You do need to install the « Integration services » feature in order to run SSIS packages. This feature is enough to be installed on its own to run packages and you can even stop the related service. (you do not need the DB Engine services feature).
However, if you have a 64-Bit computer and you need to run packages in 32-Bit mode then you also need to install BIDS or SSMS (which install dtexec 32-Bit)
MS – SQL Server installation features: https://technet.microsoft.com/en-us/library/ms143786.aspx
MS – 64 bit Considerations for Integration Services: https://msdn.microsoft.com/en-us/library/ms141766.aspx

[JSS 2014] Session : BI et déploiement automatique avec TFS

Speaker : Romuald COUTAUD & Khirdine HADDAR
Level : 200

Objectif : Déploiement des solutions BI (SQL, SSIS, SSAS, SSRS) automatiquement avec TFS

Introduction :
Dans tous les projets BI, il y a différentes façons de gérer l’industrialisation de nos projets (SQL, SSIS, SSAS, SSRS). Cette session va permettre d’illustrer TFS (Team Foundation Server), l’un des moyens d’industrialisation de ces projets en automatisant la génération et le déploiement des livrables dans les différents environnements (Dev, Intégration, Prod).
Ce qui va être présenté ici, ce sont juste le versioning des solutions ainsi que la génération et le déploiement automatique des différents projets (TFS Build).

TFS :

  • Gestion des versions des projets
  • Packager les livrables
  • Build TFS
    • Extraction et copie automatique sur le serveur
    • Génération des projets (se fait à l’aide de MSBuild, un framework dotNet)
    • Déploiement

Le déploiement se fait à l’aide de WWF (Windows Workflow Foundation). Il est possible d’utiliser des scripts PowerShell pour compléter ces tâches.
Beaucoup de DLL (codeplex) ont été développées par la communauté et seront utilisées.

Outils :
SSIS : MSBuildSSIS2012 (génération & déploiement)
SSAS : SSASHelper (génération)
SSRS : SSRSMSBuildTasks

Démo : Déploiement SQL Server

  • définition du Build avec les différents arguments (deploy, environment, …)
    • fait appel à TFSBuild.exe

>> Toute la base a été déployée sur l’instance DB indiquée, avec les schémas associés.

Démo : Déploiement SSIS

  • le fichier .proj a été modifié pour prendre en compte des options non natifs
  • possibilité d’ajouter un fichier .xaml (WWF) pour avoir des options en plus aussi (BuildSSIS, …)
  • lancement du Build
    • compilation du projet SSIS + déploiement
    • le build peut se lancer aussi en ligne de commande. En changeant les paramètres, on peut facilement déployer les mêmes sources mais sur des instances différentes

Démo : Déploiement SSAS

  • mêmes procédés que précédemment à l’exception qu’un fichier de config.xml peut permettre de customiser ses différentes sources
  • comme indiqué dans la partie Outils, le codeplex pour SSAS ne permet pas de déployer les solutions SSAS. Pour la démo, un script PowerShell a été développé, permettant les déploiements

Démo : Déploiement SSRS

  • pas de surprise par rapport aux précédentes démos. La DLL, récupérée sur codeplex, met à disposition plusieurs méthodes permettant de checker l’existance d’un rapport, l’ajout/suppression d’un rapport, la modification de la source, etc.
  • les étapes de génération et déploiement restent les mêmes que précédemment

Pré-requis :

  • avoir un server TFS configuré
  • adapter tous les codeplex récupérés

Conclusion :
On entend beaucoup parler de TFS (surtout chez les dotNetiens) mais durant mes différentes missions, je n’ai pas eu l’occasion de voir cette méthode mise en place.
Très bonne session, on a pu voir qu’une fois que toutes les configurations, pour chaque type de solution, ont été mises en place, on peut facilement déployer nos solutions sur chacun de nos environnements et du coup, faciliter la tâche à nos chers collègues du support (et nous même).
Reste à voir ce que TFS peut donner avec les tests unitaires par exemple…

[Build 14] – Wrap a Mobile API around your Enterprise and Take Data Offline with NoSQL on Windows Phones and Tablets

Mail de John
Vendredi 4 avril 2014 06:08

Wrap a Mobile API around your Enterprise and Take Data Offline with NoSQL on Windows Phones and Tablets

Quels sont les ingrédients pour la mobilité en entreprise :
– Le meilleur moyen est de penser aux API avant de penser aux Devices
o Les CIO veulent pouvoir utiliser leurs données n’importe où
o Intégrer et orchestrer les diverses API propriétaires dans le Backend
o Apporter la performance et la scalabilité au backend qui n’ont pas été designés pour la scalabilité du web
o Créer des API « mobile-friendly » et les exposer aux appareils mobiles
o Publier les API avec un accès externes pour les appareils mobiles.

 

Comment mélanger des systèmes disparates ?
– Ne pas passer trop de temps pour s’adapter à chaque système en écrivant du code spécifique et non maintenable
– Utilisez des adapters pré-construits de certains EAI comme ceux de SSIS
– Connectez visuellement les différentes sources de données et de destination

Scaling out

Mot clef : Data Sharding
– Pourquoi autoriser des millions d’appareils à surcharger une base de données
o Replication et AlwaysOn
o Il est mieux d’avoir de petits groupes de devices qui se connectent sur de multiples copies de bases
– Filtrer et répliquer les bases, tables et colonnes vers d’autres nœuds SQL Server
o Créer des réplications transactionnelles et en lecture seules pour redimensionner les données
o Utilisation des optimisations mémoire des tables de SQL Server 2014
– Faciliter la géo-réplication des données

Les procédures stockées sont maintenant compilées en code machine.

 

API

– Utiliser des transports multicanaux et des formats de donnée
o REST
o JSON
o Gzip/Deflate

– Construire une couche d’API
o Convertir les API propriétaires et les protocoles en api « mobile-friendly »
o Récupération des données depuis les systèmes du backend
o Sérialiser les objets métiers en JSON
o Précharger les données au lieu de faire des appels fréquents
– Performance + Scalabilité + Disponibilité
o Mettre fréquemment en cache les données avec la classe MemoryCache, Azure Cache, …

Démonstration du développement d’une API avec du cache en C#.

Mobile Access Gateway

– Web App Proxy
o Nouveau rôle pour l’accès à distance
o Se situe dans la DMZ entre les firewalls frontaux et internes
o Fonctionne avec ADFS afin de publier de manière sécurisée des services utilisant une authentification Kerberos ou
« claim »
o Un reverse proxy redirige les requêtes

 

Consumation des API et mode déconnecté avec NoSQL

– HttpClient est votre nouvel ami
o Rest, Auto-decompression, JSON

– Utilisation de tables NoSQL pour implementer le mode hors ligne pour les téléphones et tablettes
o Mode offline
o Utilisation de Linq sur les objets en mémoire

Démonstration d’une application phone utilisant un service et sauvegardant les données en local.
John

Power Query l’ETL « Power-User » dans l’ombre de SSIS

Power Query l’ETL « Power-User » dans l’ombre de SSIS

Comparatif Power Query / SSIS

Power Query atouts et faiblesses

Initialement lancé sous le nom de Data Explorer, le mini ETL  Power Query de la suite Power BI s’est amélioré et la version actuelle (2.9.3547.162) apporte quelques nouveautés.

Dans le cadre d’un projet Power BI dont les données sont récupérées d’une liste SharePoint, j’ai eu l’occasion d’utiliser ou essayer d’utiliser devrais-je dire, certaines de ces transformations.

La nouvelle version de Power Query propose beaucoup de nouvelles transformations, elles sont principalement accessibles via une fenêtre d’édition de formules d’où un script est généré.

Elles sont classées dans différentes catégories en fonction du type de transformation.

La première chose que nous remarquons, est que cette dernière ne donne pas beaucoup d’options et applique même parfois la transformation avec une valeur par défaut. Je pense à la transformation    Image       qui enlève les doublons en prenant comme référence la première colonne de la table.

Notons au passage que pour chaque transformation, une requête est générée en Langage M.

Du coup pour personnaliser une transformation il faudra être courageux et aller plonger dans la requête susnommée.

 

1)    Power Query : Dans les faits / Dans le M

Les transformations offertes sont multiples et comme annoncé plus haut, chacune d’elle génère du code en langage M.

Prenons comme exemple la transformation Image

Celle-ci permet de séparer une colonne en plusieurs en utilisant un délimiteur spécifique.

Dans notre cas nous utiliserons le caractère « Espace » comme délimiteur pour séparer une colonne (Created By1) contenant le nom et le prénom d’une personne dans deux colonnes distinctes.

Image

Image

Power Query nous propose plusieurs délimiteurs ainsi que la position à prendre en compte.

Image

Au final nous obtenons le résultat attendu d’une manière très simple.

Il faut l’avouer, la mise en œuvre des transformations fait partie des forces de Power Query.

Sauf que pour aller, plus loin il faudra regarder ce qui se cache derrière.

Et derrière se cache une requête écrite en M. En voici l’extrait correspondant à notre requête.

Image

Notons aussi qu’il est possible d’écrire des formules via un assistant, comme dans le cas de la construction d’une nouvelle colonne.

Contrairement à SSIS  avec le « derived column » par exemple où on a une fenêtre proposant la liste des fonctions disponibles avec une petite description, ici aucune aide n’est proposée.

La seule façon d’ajouter une formule ou une expression c’est de connaître celle-ci (un lien décrivant la liste des formules est disponible dans la partie référentielle).

Image

Chose non moins importante concernant la syntaxe des formules : elles sont sensibles à la casse.

Et c’est par un pur hasard que j’ai constaté cela, en essayant de mettre en place une formule avec IF. En mettant les mots clé en majuscules, nous avons une erreur pas très explicite il faut l’avouer.

Image

2)   Comparatif de certains composants entre Power Query et SSIS

Après un rapide tour des différentes transformations proposées dans Power Query, on se rend compte que la plupart de ces transformations sont disponibles dans SSIS mais de façon moins ergonomique.

Je prends comme exemple la transformation Image

Cette dernière est accessible sous SSIS via le composant « Flat File Source ».

De la même manière, la transformation    Image     présente dans l’interface de Power Query est disponible sous Intégration Services via  le composant « Aggregate ». 

En partant de ce constat, on s’aperçoit que Power Query fait abstraction des différents composants de SSIS qu’il faut mettre en place afin d’avoir accès à certaines transformations.

Il met ainsi à disposition ces transformations directement via l’interface.

Ci-dessous nous avons un tableau faisant l’analogie de certaines transformations entre Power Query et SSIS.

POWER QUERY

SSIS

Merge Merge Join
Unpivot Unpivot
Remove Duplicates Sort
Group By Group by (Aggregat)
Use First Row as Headers Column name in the First Data Row (Import Flat File)
Insert Custom Column Derived Column

Remarque :

Ce tableau n’a pas pour objectif l’exhaustivité mais juste pour exemple comparatif de quelques transformations.

3)   Possibilités offertes par Power Query

Les fonctionnalités de Power Query peuvent s’appliquer aussi bien sur les colonnes que sur les lignes d’une table.

Ainsi dans la suite nous classerons ces fonctionnalités en fonction des éléments sur lesquels ils s’appliquent.

a)     Réduction 

Dans cette section on trouve tout ce qui permet d’enlever une partie des lignes ou des colonnes de la table. Cette réduction peut se faire à plusieurs niveaux.

Image

 Image

Supprimer les n premières lignes de la table.

 Image Supprimer les colonnes sélectionnées de l’affichage et empêcher leur utilisation ultérieure.
 Image Supprimer les lignes alternées de la table en commençant par la première ligne à supprimer et en indiquant le nombre de lignes à supprimer et le nombre de lignes à conserver.
 Image Supprimer les lignes contenant des erreurs dans les colonnes actuellement sélectionnées.
 Image Supprimer toutes les lignes de la table dans lesquelles les valeurs dans les colonnes sélectionnées ont un doublon dans les valeurs antérieures. La ligne contenant la première occurrence d’un ensemble de valeurs n’est pas supprimée.
 Image Spécifier le nombre des premières lignes à conserver dans la table.
 Image Spécifier une plage de lignes commençant par une première ligne et incluant le nombre de lignes à conserver dans la table.

                                                                                                 

b)    Transformation

Les transformations disponibles ne sont pas encore nombreuses, mais la section reste prometteuse au vu de la facilité qu’elle apporte.

Image

 Image Une colonne de texte peut être divisée en plusieurs colonnes de deux façons :•            Par délimiteur•            Par nombre de caractères
Image Résumer les données par valeurs de ligne. Par exemple, avec les colonnes État, Ville et Population dans une table, on peut :

  • Effectuer un regroupement selon l’État et calculer le nombre de villes dans chaque État ou la somme de la population des villes pour obtenir la population de chaque État.
  • Effectuer un regroupement selon la ville et dénombrer les instances des noms de ville.
 Image Remplacer un élément dans la colonne par une autre valeur.
 Image
 Image Pour une valeur de texte, modifier le mode d’affichage des valeurs de la colonne :•            Minuscules•            MAJUSCULES•            Mettre en majuscules la première lettre de chaque mot•            SupprEspace•            Nettoyer•            JSON•            XML

Pour une valeur de type Date/heure, modifier le mode d’affichage des valeurs de la colonne :

•            Date

•            Heure

•            Jour

•            Mois

•            Année

•            Jour de la semaine

 Image Les noms d’en-tête de la table sont remplacés par les valeurs des cellules de la première ligne du tableau
 Image Transformer les colonnes sélectionnées en paires attribut-valeur.

c)     Création

Même constat que la section « Transformation », peu fourni, mais un travail agile peut être fait sur les colonnes.

 

Image

 ImageImage Insérer une nouvelle colonne après la dernière colonne de la table. Les valeurs dans la nouvelle colonne sont déterminées en sélectionnant le type de colonne à insérer :•            Personnalisé (vous définissez la formule qui calcule les nouvelles valeurs)•            Index
Image Crée une copie de la colonne sélectionnée à droite de la table. Le nom donné à la nouvelle colonne est Copie de <nom de la colonne>.

 

d)    Combinaison

Power Query permet de créer plusieurs venant de différentes sources, mais offre aussi la possibilité de les combiner afin d’enrichir son jeu de données.

Cette section en est l’illustration parfaite.

Image

Image Dans la grille Aperçu, créer une requête à partir de deux requêtes existantes. Un résultat de requête contient toutes les colonnes d’une table primaire, une colonne servant de colonne unique contenant un lien de navigation vers une table liée. Pour plus d’informations sur la fusion des requêtes.
Image Dans la grille Aperçu, créer une requête qui contient toutes les lignes d’une première requête suivie de toutes les lignes d’une deuxième requête.

4)  Nouveautés Power Query Décembre 2013 (Microsoft)

Beaucoup de nouveautés ont été introduites avec la mise à jour de Décembre.

Ci-dessous la description de ces nouveautés.

  • Power Query peut maintenant se connecter à plus de sources de données comme :
  • Sybase IQ
  • Exchange
  • Dynamics CRM Online
  • Quand vous sélectionnez plusieurs tables dans le panneau de navigation, Power Query détecte automatiquement les relations de base de données.
  • Le remplacement des requêtes partagées a été supprimé.
  • Vous pouvez maintenant partager votre requête à la volée.
  • De nouveaux boutons ont été ajoutés au ruban de l’éditeur de requête, à savoir Fill Down, Sort Ascending/Descending and Number Transformations.

5)   Références

Les Blogs

http://blogs.microsoft.fr/technet/power-query/feed

http://cwebbbi.wordpress.com/category/power-query/

http://devinknightsql.com/category/power-query/

Langage M (MSDN)

http://msdn.microsoft.com/en-us/library/dd285271.aspx

Descriptif des composants de Power Query

http://office.microsoft.com/en-us/excel-help/guide-to-power-query-context-menus-HA103993856.aspx?CTT=5&origin=HA104003813

Power Query UnPivot

http://office.microsoft.com/en-us/excel-help/unpivot-columns-HA104053356.aspx?CTT=5&origin=HA103993856

Power Query Liste des Formules

http://office.microsoft.com/en-us/excel-help/power-query-formula-categories-HA104122363.aspx?CTT=5&origin=HA104003813

Microsoft Power Query Preview for Excel Formula Language Specification

http://go.microsoft.com/fwlink/?LinkID=320633

 

Liste de mots clé  du langage M:

Ce tableau peut être bien utile au moment où on doute de l’existence d’une expression.

Comme le « switch » par exemple …. Il faudra faire sans.

Opérateurs unitaires NOT, IS
Constant expressions ERROR, FALSE, TRUE
Typage #BINARY, #DATE, #DATETIME, #DATETIMEZONE, #DURATION, #INFINITY, #NAN, #SECTIONS, #SHARED, #TABLE, #TIME
Opérateurs binaires AND, OR
Expressions conditionnelles IF, THEN, ELSE
Type assertion AS
Méta données META
Autre EACH, IN, LET, OTHERWISE, SECTION, SHARED, TRY

Cheikh SECK

[JSS 2013] Session : SSIS Design Patterns

Speakers : David Joubert, Thomas Ricquebourg

SSIS : petite chronologie de l’ETL chez Microsoft

  • SQL Server 7 : Data Transformation Services (DTS)
  • SQL Server 2005 : SQL Server Integration Services

L’importance du SSIS:

Les speakers commencent par nous dire que malgré qu’aujourd’hui l’accent est mis sur la BI Self-Service, SSIS reste notre principal allié dans la plupart des cas, par exemple pour alimenter un datawarehouse, ou si la volumétrie des données est très importante …

Parce qu’un projet BI, c’est 70% du temps consacré à l’importation, le nettoyage et la transformation des données, d’où vient l’importance du SSIS.

Pour quoi des design patterns?

« Design Pattern » c’est  les modèles de conception que nous utilisons pour optimiser et rationaliser nos packages, et ça se traduit en l’utilisation du bon composant au bon endroit selon la situation (gestion des MAJ, historisation … )

Ils donnent l’exemple de dessiner un smiley sur Paint :

  • On peut arriver à le faire à la main.
  • Mais avec des notions de patron, on utilisant les ronds et les formes de Paint, on peut arriver à faire quelque chose de plus conventionnel et beau 🙂 .

C’est pareil lorsqu’on est dans SSDT, on peut arriver à faire des packages qui marchent et qui donnent le résultat attendu (ils nous montrent un package très mal structuré ou on ne sait pas vraiment ce qu’il fait), mais on utilisant des design patterns on arrivera à faire un travail plus optimisé, organisé et mieux structuré (Ils donnent comme exemple un package de chargement de DWH parallélisé avec gestion d’erreur, et on comprend très vite qu’il s’agit d’un DFT de dimension SCD1 sans prise en charge de SCD2).

Critères à prendre en considération :

  • L’outil de développement : SSDT
  • Les données : volumétrie
  • La solution : l’architecture
  • Infrastructure : performance
  • Les gens : compétence

Points forts et points faibles de SSIS :

  • Points Forts :
    • Outil  complet
    • Forte maintenabilité
    • Travail en mémoire
    • Bonne ergonomie
  • Points Faibles :
    • Parfois moins performant que du script SQL
    • Gestion de métadonnées figée
    • Scénario

Il est important de connaître le caractère synchrone ou asynchrone des composants :

Non bloquant : Conditionnal Split  \  Data Conversion  \ Derived Column \ Lookup –> Le moteur fait l’opération au fur et au mesure de l’arrivée des données

Semi bloquant : Merge \ Merge Join  \ Union All  –> Le moteur peut commencer l’opération même avant le chargement total des données dans la mémoire.

Bloquant : Pivot \ Aggregate \ Sort –> Le moteur ne fait l’opération qu’une fois tout est chargé dans la mémoire.

Les speakers nous font une démo sur le Moteur SQL VS SSIS :

Ils nous montrent les variations des performances par rapport à l’utilisation de différents composants : Par exemple un simple chargement de 20millions de lignes avec un composant de tri prend 50 secondes, la même opération a mis 10 secondes si on fait le tri dans la requête SQL (Order By).

Parallélisation :

– La parallélisation peut être appliquée sur les 3 objets de SSIS :

  • Package
  • Control Flow
  • Data Flow

– Efficace pour gagner en performance.

– En utilisant les Propriétés : MaxConcurrentExecutables et EngineThreads

Un petit conseil : « Diviser votre solution en opérations simples permettra une plus grande facilité de parallélisation »

Une démo pour montrer comment on peut contrôler via la propriété  MaxConcurrentExecutables  le nombre d’objets que l’on veut lancer en parallèle.

Il a 10 DFT qui peuvent tous se lancer en parallèle, mais la capacité maximale du moteur ne le permet pas, donc il fixe la propriété MaxConcurrentExecutables à 2 (qui était à -1 par défaut) et maintenant les DFT vont s’exécuter 2 à 2.

L’inconvénient c’est que le choix des objets est totalement aléatoire, cela veut dire que dans le cas ou il y a des objets qui sont lents en exécution et d’autres courts, rien ne nous garantie que les lents vont être exécutés en parallèle afin de gagner en temps global d’exécution. L’alternative dans ces cas est de mettre les objets que l’on veut exécuter en parallèle dans des « sequence countainer ».

Après ils nous montrent un exemple de chargement de plusieurs fichiers avec une boucle « Foreach »avec une gestion des erreurs pour que les fichiers mal formatés ou erronés ne bloquent pas l’exécution.

SCD – Slowly Changing Dimension :

  • Concept de base en Business Intelligence.
  • Composant existant dans SSIS, optimisation à apporter à la configuration de base.
  • Composants tiers disponibles : Kimball Method SCD (payant sur 2012)

Une démo de l’utilisation du composant SCD de base dans SSIS et son optimisation, le composant n’est pas compliqué, suivre les étapes en mettant les paramètres en fonction des cas d’usages … et à la fin génération automatique de la chaine des composants par le composant SCD.

En termes d’optimisation, on peut passer l’insert oledb en fastload, et mettre la connection en retainmachin.

UPSERT :

  • Cas particulier du SCD 1
  • On insère ou on update les lignes
  • 3 possibilités  (en plus du composant SCD vu précédemment) :
    • Double lookup  (démo : Temps exéc 50 secondes)
    • Double lookup vers table temporaire (11 secondes)
    • Script SQL avec MERGE (9 secondes)

Range Lookup :

  • Le range lookup correspond à un lookup sur une theta-jointure
  • On attend la feature depuis 2005
  • 4 possiblités (en attendant) :
    • Lookup
    • Conditionnal split
    • Script
    • SQL

NULL Substitution :

Lorsqu’on récupère les lignes qui ne matchent pas sur un lookup on remplace le NULL par la clé inconnue.

Il est plus judicieux de configurer du « Ignore Error » et de remplacer les NULL en une seule fois avec un composant « drived column »

Foudhil – Consultant décisionnel MCNEXT