Actualité

SQL Server 2016 - "Libérez vous d'Oracle"

publié le 2 juin 2016 à 13:30 par Thomas Gauchet

"Libérez vous d'Oracle" c'est le slogan de lancement de SQL Server 2016, disponible depuis ce début Juin 2016.
Cela me semble un tantinet agressif.

SQL Server 2016 ctp3

publié le 16 nov. 2015 à 10:33 par Thomas Gauchet   [ mis à jour : 17 nov. 2015 à 23:13 ]

Alors que Gartner positionne SQL Server 2014 comme leader des bases de données relationnelles, la nouvelle version SQL Server 2016 disponible en CTP3 annonce un lot impressionnant de nouveautés aussi bien sur la partie opérationnelle qu’analytique, on premise que dans le cloud, sans parler de big data. Une partie provient des équipes SQL Server, une autre des nombreuses acquisitions récentes de l’éditeur : datazen, Revolution Analytics et j’en oublie.

Il apparaît difficile de faire un inventaire détaillé d’autant plus que tous les blogs de Microsoft n’annoncent pas forcément les mêmes choses. Enfin, avec Microsoft, il faut être prudent tant que la version RTM n’est pas sortie. En 2005, un livre publié par Microsoft ventait la nouvelle commande UPSERT, qui n’ai finalement apparue qu’en 2008 sous le nom de MERGE...

Parmi les fonctions qui serait utile tout de suite à nos clients:

BI avec SQL Server 2014

publié le 7 sept. 2014 à 06:17 par Thomas Gauchet

La mise à jour du livre pour l'édition SQL Server 2014 est sortie en libraire: SQL Server 2014 Implémentation d'une solution de Business Intelligence.

Ce livre sur SQL Server 2014 s’adresse à toutes les personnes désireuses de mettre en œuvre les techniques de l’informatique décisionnelle (ou BI, Business Intelligence), à l’aide des composants de la suite Microsoft SQL Server 2014 : la base de données SQL relationnelle, l’ETL Integration Services, le modèle sémantique tabulaire Analysis Services, le modèle sémantique multidimensionnel OLAP Analysis Service, les rapports avec Reporting Services et les outils Power BI. La connaissance de la base de données relationnelle SQL Server est un pré-requis souhaitable pour tirer pleinement profit de ce livre.
Celui-ci présente les principes universels de la BI, puis décrit l’ensemble de l’offre Microsoft dans l’optique de donner au lecteur les clés pour concevoir la solution la plus adaptée à ses besoins réels, du Data Warehouse à la BI dite "en libre-service".
L’implémentation et les fondamentaux de chacun des logiciels de la suite SQL Server, y compris les outils Power Pivot et Power View sont alors décrits en détail.
À l’issue de cet ouvrage, vous serez capable d’implémenter et déployer une solution de Business Intelligence avec les technologies Microsoft, définir leur agencement et développer un premier projet robuste à déployer en production.
Le code des exemples du livre est en téléchargement sur le site www.editions-eni.fr.

Lost in Data Tools

publié le 24 mai 2014 à 12:36 par Thomas Gauchet

Plusieurs mois après la sortie de SQL Server 2014, l’absence d’outils de développement pour la BI 2014 me laisse perplexe, et comme d’habitude la communication de l’éditeur n’aide pas beaucoup.

Quand on veut télécharger BI SSDT pour SQL 2014, le message suivant en date du 2 Avril dernier s’affiche: 

The release of SSDT-BI for Visual Studio 2013 & SQL Server 2014 will take a few more days. We apologize for the inconvenience. In the meantime, you can work on BI projects for SQL Server 2014 using the CTP2 version of SSDT-BI with Visual Studio 2012: http://www.microsoft.com/en-us/download/details.aspx?id=40736.

ou dans la langue de Molière:

SSDT-BI a été supprimé provisoirement pour résoudre problèmes côte à côte avec SSDT-SQL. Nous nous attendons à avoir affiché de nouveau bientôt.

Il faut donc se contenter d’une CTP2 en anglais ou en chinois… On peut cependant télécharger une version toute récente de BI SSDT avec Visual Studio 2012, en Français, en date du 13 Février dernier, mais attention celle ci s’adresse à la précédente mouture SQL Server 2012…

Vous me direz que la différence est mince entre la BI 2012 et la BI 2014, certes mais tout de même différence il y a. D'ailleurs Microsoft ne nous redirigerait pas vers une CTP2… si l’autre RTM était adaptée.. De plus lorsqu’on ouvre un nouveau projet dans SSDT, on a un choix, par exemple, projet SSIS… Mais est ce un projet 2005, 2008, 2008 R2, 2012 ou 2014?? aucune information ne nous permet à ce niveau de le savoir...

C’était tout de même mieux le bon vieux temps où les outils étaient distribuée avec SQL Server...

Data Warehouse, BI et intégrité des données.

publié le 24 avr. 2014 à 11:38 par Thomas Gauchet

Le système décisionnel traditionnel repose sur un Data Warehouse alimenté par un ETL, sur le quel on branche des outils de reporting ou d’interrogation interfacés ou non par une couche OLAP relationnelle ou tabulaire. Généralement, le Data Warehouse est le point clé du système car il renferme un historique important de données propres et validées, construit grâce à de nombreuses itérations de l’ETL. J’ai pour habitude de me poser à sa fondation la question de l’intégrité des données qu’il concentre. Comment allons nous assurer que ces données soient stockées intègres. Il ne peut y avoir 2 produits du même code, ou une même sous famille attachée à deux familles différentes, cas rendus possibles par la clé technique et la dénormalisation. 

Il y a d’un côté l’intégrité des colonnes et de l’autre, l’intégrité référentielle. L’intégrité des colonnes comprend les valeurs que la colonne peut contenir, par exemple, non nulles, ‘Oui/Non’, et l’interdiction des doublons (Il ne peut y avoir 2 produits pour un seul code produit). L’intégrité référentielle est bien connue des systèmes OLTP, mais s’étend en décisionnel à des références dénormalisées plus difficiles à gérer.

Pour chaque cas, la règle de gestion de l’intégrité doit être définie et aboutit à la rédaction d’une nouvelle règle de développement. Ma préférence est pour l’utilisation des contraintes du moteur de bases de données pour assurer l’intégrité des colonnes, et  la conception des flux ETL pour assurer l’intégrité référentielle. Pour être plus prudent, il est possible d’activer en plus l’intégrité relationnelle dans le moteur de bases de données, mais cela à un coût sur les performances et aussi sur les manipulations de conception, la cuisine, opérée en développement, en intégration et en qualification sur les données.

Lorsque des enregistrements dans le système sources sont supprimés, ils sont généralement conservés dans le Data Warehouse. Dans le cas d’une dimension dénormalisée ils conservent leur mémoire relationnelle. Dans certains cas les modifications opérées dans la source peuvent alors aboutir à une corruption de la dimension. Par exemple un produit P1 appartient à une sous famille SF1 elle même attachée à une famille F1. Ce produit est créé tel quel dans le Data Warehouse, puis le produit est supprimé du système source, ou bien son code produit est modifié ce qui est équivaut à une suppression/création. Supprimé dans la source, il existe toujours dans le Data Warehouse. On crée alors un nouveau produit P2 attaché à SF1, mais désormais SF1 est relié à F2. La dimension dénormalisée contient alors 2 lignes avec SF1, la première la rattachant à P1, la seconde à P2: l’intégrité est violée. Ce cas doit être gérée. En amont, on peut interdire toute suppression physique (hard delete) et modification des clés métiers dans le système source. En aval on peut opter pour un schéma en flocon

Il existe d’autres stratégies pour résoudre ce cas, et encore bien d’autres cas à résoudre... Cela dépasse le périmètre de cet article.


 

Multidimensionnel & Tabulaire, Ying & Yang

publié le 1 avr. 2014 à 11:35 par Thomas Gauchet   [ mis à jour : 1 avr. 2014 à 11:38 ]

Les deux premiers épisodes consacrés aux moteurs Multidimensionnel & Tabulaire d’Analysis Services (SSAS) présentent leurs principales différences, et leurs cibles respectives.

Dans ce troisième épisode nous allons tenter de nuancer notre propos. En effet, le moteur multidimensionnel repose sur une partie relationnelle et, à l’inverse, le moteur relationnel "tabulaire" encapsule du dimensionnel… Les frontières entre ces deux outils sont plus floues qu’il n’y parait.


Analysis Services multidimensionnel repose sur les dimensions, des axes d’analyse métier composés d’attributs. Par exemple, la dimension calendrier est composée des attributs jour, mois, trimestre, semestre et année. Le fonctionnement interne de la dimension repose sur un moteur relationnel: par défaut tous les attributs sont reliés à la clé de la dimension par des relations. Mais pour tirer pleinement parti du moteur, il faut modifier ces relations pour recréer les relations intégres du système source. Ainsi le jour a pour père le mois qui est fils du trimestre qui est fils du semestre etc… Cette intelligence est utilisée par les moteurs d’agrégation et de calcul pour accélérer les réponses aux requêtes mais aussi pour afficher la dimension. La dimension peut être vue comme un énorme axe d’analyse regroupant de nombreux axes simples, les attributs, reliés entre eux par des relations. 

D’autres objets de SSAS multidimensionnels permettent de gérer ou simuler des relations comme le many2many ou encore des formules MDX de type EXISTS. Mais contrairement à la dimension, ces objets ne sont pas pris en compte par le moteur d’agrégation et entraînent des performances dégradées à la requête.


Analysis Services Tabulaire repose sur des relations entre des tables à la manière d’un SGBDR classique. il propose cependant des objets propre aux moteurs multidimensionnels : les hiérarchies et les KPI. 

La hiérarchie est un concept proche de la dimension, il permet de construire un axe d’analyse pour naviguer dans les données., par exemple Année, Mois, Jour. La hiérarchie de SSAS tabulaire est construire sur une unique table, mais le concepteur permet facilement de rapatrier les champs nécessaires de tables reliées en flocons (dénormalisation). 

Multidimensionnel vs Tabulaire - Episode 2

publié le 5 mars 2014 à 11:23 par Thomas Gauchet   [ mis à jour : 5 mars 2014 à 12:27 ]

Dans le premier épisode, nous avons tenté d’expliquer la différence fondamentale entre les versions d’Analyses Services: (SSAS) le moteur multidimensionnel de SSAS multidimensionnel et le moteur relationnel de SSAS tabulaire.

A la lumière de cette différence, nous allons tenter de répondre à la question que tout le monde se pose: lequel des deux moteurs choisir?

Par sa nature relationnelle, le moteur tabulaire a un fonctionnement proche des systèmes sources OLTP. Il sera donc parfaitement adapté à du reporting «décisionnel-opérationnel » ou du "décisionnel fait par les opérationnels". Les opérationnels retrouveront toutes les relations du système source avec les performances attendues d’un systèmes décisionnel. Sa conception nécessite de faibles connaissance technique, connaître la jointure SQL, et un faible effort de développement, ce qui permet aux experts fonctionnels d’assurer éventuellement la conception. Les performances sont apportées par la dénormalisation, à réaliser en amont, et surtout le stockage vertical en mémoire des données.

Par sa nature multidimensionnelle, le moteur "canal historique" s’adresse aux décideurs du top management pour qui les relations des systèmes source n’ont pas de sens, et qui ont besoin de croiser des axes d’analyses pour afficher immédiatement des indicateurs agrégés. Ce sont les BBU (Big Button Users). Les dimensions conçues grâce à un effort important de développement fournissent aux BBU une couche métier d’abstraction entre eux et les systèmes sources. Les performances sont apportées par la pré-agrégation des données lors du « process » .

Multidimensionnel vs Tabulaire

publié le 24 févr. 2014 à 12:11 par Thomas Gauchet

La différence fondamentale entre le mode multidimensionnel et le mode tabulaire d'Analysis Services est la nature du moteur: multidimensionnelle dans le premier cas et relationnelle dans le second. Qu’est ce que cela signifie au juste?


Le moteur dimensionnel utilise des dimensions comme axes d’analyse. A la façon du tableur -par exemple Excel- qui contient 2 axes, le cube multidimensionnel propose de nombreux axes d’analyse qui constituent autant de coordonnées pour adresser les données. Les données sont souvent extraites d’un moteur relationnel OLTP pour construire des dimensions et des tables de faits. Lorsque plusieurs tables de faits cohabitent, à différentes granularités, l'absence de  lien entre une table de faits et une dimension est courante, alors que dans le modèle relationnel source ce lien existe.Par exemple, une facture contient un entête et des lignes reliées par un numéro de facture. Lorsqu’une mesure de l’entête, comme les frais de transport, ne peut être imputée sur les lignes, il est possible de créer deux tables de faits dans le modèle décisionnel : les entêtes et les lignes. L’entête est relié à la dimension des clients. Les lignes sont reliées au produit. Dans le moteur multidimensionnel il est également nécessaire de relier les lignes au clients. Ainsi la relation entre produit et entête n’existe pas. Par défaut, le moteur résout le calcul des frais de port pour un produit A, comme le total des frais de ports de toutes les factures, y compris celle ne contenant pas le produit A. Ce comportement peut être modifié en changeant la valeur de la propriété IgnoreUnrelatedDimension, auquel cas au lieu du total le moteur n’affichera rien (ce qui présente également l’avantage de ne pas générer des produits cartésiens). Il reste la possibilité d’écrire du code MDX pour simuler la relation entre les deux tables de faits, mais cele signifie résoudre des calculs au moment de la requête à la granularité la plus fine: une opération très peu performante dans le cas d’Analysis Service multidimensionnel.

Le moteur relationnel, de type décisionnel, d’Analysis Services sait lui résoudre naturellement les relations. Il ne repose pas sur la construction de dimensions mais sur un moteur relationnel proche de celui des systèmes sources OLTP. Il peut donc nativement prendre en charge la relation entre entête et lignes par exemple. C’est probablement une des raisons de son succès.

SQL Server 2012 Expert certification.

publié le 9 juin 2013 à 02:38 par Thomas Gauchet   [ mis à jour : 25 févr. 2014 à 00:13 ]

Les certifications sont un bon moyen de faire reconnaître son talent professionnel. Les moutures 2012 sont plus conséquentes que les précédentes puisqu'il faut valider cinq examens pour acquérir le status de MCSE - Microsoft Certified Solution Expert - à savoir: 3 pour être MCSA - Microsoft Certified Solution Associate - et 2 de plus pour le MCSE. 
Les certifiés du cru précédent (2008) peuvent bénéficier des examens de mise à jour. Deux examens suffisent pour passer de MCTS 2008 à MCSA 2012, et ensuite un seul est nécessaire pour passer de MCITP 2008 à MCSE 2012.

Le chemin vers la certif MCSE est présenté sur le site de Ms Learning.

Ces nouveaux examens ont été écrits dans l'objectif de limiter la fraude. La façon la plus répandue de tricher consiste à se procurer le contenu de l'examen pour apprende les bonnes réponses. Des conversations avec des professionnels semblent montrer que la majorité des certifications sont acquises en trichant, parfois même avec le support de la société de service employeuse. Même des professionnels très compétents préférent s'assurer par ce biais, prétextant que les questions comportent des pièges - ce qui est généralement faux - en tout cas pour les versions anglaises, sachant que tout est mis en oeuvre par Microsoft pour justement les éviter. Pour les candidats, "frauder", n'est absolument pas une honte.

D'un côté il est positif de constater que le niveau des certifications est plus élevé (plus d'examens qui sont plus difficiles). 
De l'autre, augmenter le niveau pousse à la fraude.

Imaginez que votre chirurgien vous annonce avant l'anesthèsie qu'il a acheté les réponses de son examen de médecine, car il n'avait pas le niveau... 

Nouveau livre : SQL Server 2012 Implémentation d'une solution de Business Intelligence

publié le 22 janv. 2013 à 11:55 par Thomas Gauchet

La mise à jour vers l'édition 2012 est sortie en librairie ou sur le site des éditions ENI.

Ce livre sur SQL Server 2012 s'adresse à toutes les personnes désireuses de mettre en œuvre les techniques de l'informatique décisionnelle (ou BI, Business Intelligence) à l'aide des composants de la suite Microsoft SQL Server 2012 : la base de données SQL relationnelle, l'ETL Integration Services, le modèle sémantique tabulaire Analysis Services, le modèle sémantique multidimensionnel OLAP Analysis Services et les rapports avec Reporting Services et Power View. La connaissance de la base de données relationnelle SQL Server est un pré-requis souhaitable pour tirer pleinement profit de ce livre.

Celui-ci présente les principes universels de la BI, puis décrit chaque logiciel de la suite SQL Server dans l'optique de donner au lecteur les clés pour créer la solution la plus adaptée à ses besoins réels. En effet, la richesse fonctionnelle de l'offre Microsoft permet de répondre à une architecture classique centralisée (un ETL, un Datawarehouse relationnel, un cube OLAP …) tout comme aux nouvelles architectures décentralisées, dites "en libre-service".

La première partie du livre présente la Business Intelligence, ses objectifs, ses concepts principaux et les solutions apportées par l'éditeur Microsoft. La seconde partie détaillel'implémentation et les fondamentaux de chacun des logiciels de la suite SQL Server, y compris les outils PowerPivot et Power View.

À l'issue de cet ouvrage, vous serez capable d'implémenter et déployer une solution de Business Intelligence avec les technologies Microsoft, définir leur agencement et développer un premier projet robuste à déployer en production dans l'entreprise.

Le code des exemples du livre est en téléchargement sur le site www.editions-eni.fr.


Les chapitres du livre :
Avant-propos – Introduction à la Business Intelligence – Théories de la Business Intelligence – Business Intelligence Microsoft – Modéliser le Data Mart SQL – Créer le modèle tabulaire – Créer le modèle multidimensionnel – Finaliser le modèle multidimensionnel – Créer des rapports avec SSRS – Exploiter SSRS – PowerPivot et Power View – Alimenter le Data Mart avec SSIS – Exploiter et maîtriser SSIS – Tirer parti de SQL pour l’ETL

1-10 of 23