mercredi 14 décembre 2011

SQL Server Days, les 12 et 13 décembre 2011


La sortie prochaine de SQL Server 2012 vaut bien un événement à lui tout seul, et bien le voici !
Organisé par le GUSS (Groupe des Utilisateurs francophones de Microsoft SQL Server), Microsoft et HP, les sessions - plus d'une vingtaine - sont animées par de nombreux MVPs, qualité assurée !

Voici les trois sessions auxquelles j'ai pu assisté, ayant mis l'accent sur LA nouveauté : BISM, le nouveau modèle de données pour la BI.

La BI avec SQL Server 2012, par Sébastien Madar, MCNEXT
  • Nouveautés SSIS
    • Développement : connections partagées, variables projet, CDC, connecteur ODBC
    • Administration : configuration environnement, monitoring et reporting, data taps
  • BISM = BI Semantic Model (ex-UDM)
    • Objectif : présenter un modèle métier en masquant la complexité du modèle sous-jacent
    • Anciennement UDM, mais qui était multidimensionnel
    • Multidimensionnel / Tabular
      • ROLAP / DirectQuery
      • MOLAP / VertiPaq
  • BI Self-Service : pour les business-users, basé sur le modèle Tabular
    • PowerPivot V2 : création du modèle et de l'analyse
      • Nouveautés : Diagram View, Hiérarchies, Perspectives, KPIs (indicateurs visuels, genre feu tricolore…)
      • Tout s'appuie sur Sharepoint
      • Data Alert : envoi de mail suite à la création d'une alerte sur un KPI d'un rapport SSRS mis dans SharePoint
    • PowerView (ex-Crescent) : création du rapport
      • Depuis Sharepoint : Create BISM Connection File
      • Création du rapport : tables, graphiques, slider photos
  • MDS V2 : Master Data Services
    • Nouvel AddIn Excel pour mettre à jour le référentiel de données et valider les règles mises en place
    • DQS = Data Quality Services
      • Renseignement sur la qualité des données dans une Knowkedge Base
      • Validation de règles de qualité (Code postal sur 5 chiffres…), possibilité de connexion à des web services de vérification des adresse géographiques...
      • Mise en œuvre : DQS Client + DQS Server

Décider entre Tabular ou Multidimensionel pour un projet Analysis Services, par François Jehl, Infinite Square & Aurélien Koppel, Microsoft
  • Fonctionnalités du Modèle Tabular
    • Véritable couche sémantique
    • Rapide et simple à construire
    • Design dans Visual Studio 2010
    • Import depuis un fichier PowerPivot existant
    • Performant à tous les niveaux (fins+agrégés)
    • Précache en mémoire ou accès à la demande : Vertipaq vs DirectQuery
    • Sécurité d'accès aux données
    • Partitions pour la volumétrie et la montée en charge
    • Compression des données stockées (environ x10)
  • Modèle Tabular: même langage que PowerPivot = DAX
    • Principe des fonctions Excel, apprentissage rapide
    • Permet de réaliser des calculs métiers complexes
    • Nouvelles fonctions (DisctinctCount(), HasOneValue(), Search(), Switch(), Rankx())
    • Sécurité dynamique des lignes du modèle (fonctions Username(), Customdata())
    • Exemple : Evaluate <DaxTableExpression> Order By <DaxExpression> [ASC|DESC]
  • Ce qu'il manque par rapport au MDX
    • Script MDX
    • Named Set (Top Products…)
    • Scope (DateTool…)
    • Relation Many-To-Many
  • Tabular vs UDM = Simplicité vs Complexité-Puissance
    • VertiPaq / Molap
      • Compression x10 / x2
      • Scan mémoire / disque+mémoire
      • Tout en mémoire / plusieurs To
  • Comment décider
    • Si forte volumétrie + calculs MD complexes -> BISM Multidimensionnel
    • Dans les autres cas : BISM Tabular

Introduction à SQL Azure, par Hervé Roggero, Blue Syntax Consulting
  • SQL Azure contre SQL Server
    • Services
      • Pas de : SQL Agent, SSIS, SSAS, Backup, Broker, Profiler, Full Text
      • Partiel : SSMS, SSRS
    • Développement
      • Pas de : .NET, TDE, encryption, Compte utilisateur réseau (ActiveDirectory)
      • Partiel : T-SQL, Procédures/Vues
    • Prix : très compétitif par rapport au service : données + moteur SQL + DBA
    • Communication : TDS sur le port 1433 uniquement, tout est crypté obligatoirement
  • Architecture
    • Haute Dispo : 3 réplicas en tout, complètement transparent (le primaire peut changer régulièrement par exemple)
  • Sécurité
    • Physique : Pare-Feu, Isolation, SSL
      • Select * from sys.firewall_rules
    • Logique : Compte Utilisateur, Schema, HashBytes, Droit d'accès
      • HashBytes : MD5, SHA1, SHA256 (Pas de SHA512 pour l'instant)
      • Select hashbytes('sha256', 'test')
    • SQL Azure est basé sur SQL Server 2012 CTP3 depuis été 2011
    • Connection : server name = xxx.windows.net + database name
  • Performances
    • Operations en masse (Bulk) : utiliser des librairies d'accès en masse, comme EntityFramework
    • Lazy loading : charger uniquement les données utilisées, dispo avec EF 4.0
    • Cache : Caching Application Block, AppFabric Caching
    • Logiciel Asynchrone : pour améliorer l'expérience utilisateur
    • Opération Parallèle :  utilisation de plusieurs processeurs
    • Shards : stockage et requêtage réparti
    • Technique
      • Dispo : Plan d'exécution, ADO.Net Library Metrics, DMVs (partiel)
      • Pas dispo : SQL Profiler, Perfmon
    • SLA sur la disponibilité, mais PAS de garantie de performances
    • Mécanisme de protection
      • Présent en permanence (coupe la connexion au bout de 30 minutes par exemple…)
      • Nécessite un logique d'adaptation pour les applications intensives afin de ne pas être bloqué
    • Outils : http://enzosqlbaseline.codeplex.com/
  • Montée en charge & Sharding
    • Besoin : expérience utilisateur no 1 = expérience utilisateur no X
    • Modèle de shards : compressé (- de clients que de shards), linéaire (1 client = 1 shard), répandu (+ de clients que de shards)
      • A rédigé un WhitePaper sur ces concepts, à télécharger ici
    • Outils
  • Autres services de SQL Azure
    • Import/Export : vers l'Azure Storage
    • Backup : T-SQL COPY, Bientôt Point In Time Restore en CTP (jusqu'à 2 semaines en arrière)
    • Synchronisation : uni/bi-directionnel, SQL Azure/Server
    • Rapports : URL report server d'un rapport RDL