[SQL] Geospatial Data Types in SQL Server 2012 : Location Awareness in the Database

Speaker : Leonard Lobel – Niveau 300

Dans cette session on parle des données spatiales et leurs utilisations dans « SQL Server 2012 ».

Ce type de données est supporté depuis « SQL Server 2008 »

On trouve 2 types de modèles :

–          Geometry : Planaire (coordonnées cartésiennes projetées sur une carte de la terre à plat)

–          Geography : Géodésique (latitude et longitude)

Il existe un standard pour les données spatiales mis en place par l’OGC (Open Geospatial Consortium). Microsoft appartient au consortium.

Le format WKT permet de représenter sous format texte des objets géométriques. On peut trouver différents objets sous « SQL Server » : POINT, POLYGON, LINE, etc.

« SQL Server » propose de nombreuses méthodes pour utiliser les données spatiales.

Première démonstration d’affichage de polygones dans « Management Studio » sous format texte et sous format spatial. On voit également l’utilisation de certaines méthodes  (« STEntroid », « STEnvelope », « STIntersect », etc.)

Deuxième démonstration avec la conversion de données géographies au format WKT en type « Geometry » avec plusieurs méthodes (STGeomFromText, etc.), l’union, l’intersection, … d’objets spatials.

Troisième démonstration montrant la différence de résultat lorsque l’on utilise les types « Geography » et « Geometry » à partir d’un objet au format  WKT.

Quatrième démonstration plus compliquée. On crée une table avec 3 polygones dans une ville (un parc, un mur et un parcours sportif). On crée une autre table contenant les photos des polygones retournées précédemment. On assemble les 2 pour jouer avec. On peut par exemple calculer la distance en KM entre 2 photos, la plus grande région.

Cinquième démonstration avec une application C# utilisant des données géo spatiales et les affichant dans un fond de carte « BING » avec possibilité de zoomer, etc.

On termine avec les différentes améliorations « SQL Server 2012 »

–          Nouveaux objets : CIRCULARSTRING, etc.

–          Indicateur de référence spatiale

En conclusion, une session très technique permettant de comprendre le fonctionnement des données spatiales sous « SQL Server ».

Julien

[BIG] BI & Big Data

Speaker : Andrew J.Brust – Niveau : 300

Description: Qu’est-ce que le Big Data et comment faire de la Business Intelligence sur du « Big Data »

Qu’est-ce que Big Data ?

  • Volumétrie : 100s ou plus de TeraBits (TB)
  • Données : Financières, web logs, réseaux sociaux.., type non structurées
  • Technologie : Parallel processing, PDW, Hadoop, NoSQL ….

(Trop de volume pour que les « Big Data » soient stockées dans des bases OLTP, on analyse des interactions plutôt qu’effectuer des transactions)

  • 3V : Volume, Velocité, Variété

Qu’est-ce que MapReduce ?

  • Map et Reduce sont 2 fonctions Java
  • Chaine : Files Input–> Mapper (démultiplexeur de données/fichiers dans plusieurs noeuds)–>Output–>Input–> Reducer (agrégateur de ligne)

(Mapper s’exécute en parallèle)

Qu’est que DFS (Distributed File System) ?

Réplication de données, pas de partage

Utilise des nœuds dans un cluster

–> Hadoop ? = MapReduce +HDFS (Hadoop Distributed File System)

Qu’est-ce que le NoSQL ?

  • Bases non relationnelles
  • Langage objet de requetâge non SQL (Java, Python, C#..)

4 types :

  • Key-Value Store
  • Document store
  • Wide Column
  • Graph Databases

Qu’est-ce que Hbase ?

C’est une implémentation des bases de type Wide Column store

Composant de la Stack  Hadoop :

  • Hadoop (MapReduce, HDFS)
  • Hbase : Base de données non relationnel
  • Hive : Interpréteur du langage SQL : SQL-Like « DWH » system
  • Langage de transformation de données
  • Sqood (SQL 2 for Hadoop)
  • Flume : Log integration
  • Mahout : Data Mining

La solution Big Data Microsoft :

  • Microsoft HDInsight est un projet développé en collaboration avec Hortonworks pour inclure leur HDP (Hortonworks Data Platform)
  • Utilise le moteur PolyBase
  • Pour Azure et Windows Server
  • Inclus des Drivers ODBC pour Hive (Un Add-in Excel l’utilise)
  • JavaScript MapReduce Framework

Avant MS, Hadoop est utilisé par IBM, MapR, Cloudera…

Framework de développement dans VS (Visual Studio) /.NET qui intègre tous ces composants et fonctionnalités :

  • MaperReduce code pour C#
  • MRLib
  • Linq to Hive
  • Odbc client et Hive ODBC Driver
  • Déploiement
  • Débogage

Le driver ODBC Hive compatible avec :

  • Excel et PowerPivot
  • SSAS Tabular  mais pas SSAS Multi dimensionnel pour le moment
  • SQL Server DB Engine

Sébastien

[TAB] – Power (View)Ful Tabular BI Semantic Model Development

Speaker :  Mark Davis – Durée : 75 mn – Niveau : 300

Objectif de la session

Découvrir les propriétés du modèle tabular sur lesquelles ils faut être attentif afin de pouvoir profiter compléter de Power View.

Power View

Introduction

Outil de reporting ad-hoc permettant aux utilisateurs d’explorer, visualiser et présenter des données.

Simple d’utilisation, il s’adresse aux utilisateurs finaux qui peuvent réaliser des rapports presentation-ready en quelques clics.

Démo

On commence par une première démo sur un dahsboard de perfomance d’un groupe d’hôtel.

Comme d’habitude, on retourve du bubble char, des bargraph, des slicers, des tiles ….

On voit l’importance des propriétés mises en place sur le modèle tabular afin d’améliorer l’experience de navigation de l’utilisateur

  • Les libellés et images par défaut sont représentés par une card
  • Les données agrégeables sont représentées par un sigma
  • Les mesures calculées sont représentées par une calculatrice
  • Les noms des champs doivent avoir un nom métier

Considérations de modélisation « tabulaire »

Power View ne s’appui uniquement (actuellement) que sur des modèle tabular

Avantage SSAS Tabular Vs PowerPivot

  • Partionnement de table
  • Securité
  • Facilité d’évolutivité
  • DirectQuery pour accéder aux données de l’entrepôt en temps réel, permet d’accéder à des données retournées par du MDX par l’intermédiaire de proc stock qui pourrait stocker le résultat d’une requête MDX dans une table, etc…. Bref, avec du DirectQuery vous pouvez mettre en place plein de workaround.

Le modèle doit être conçu de façon à être le plus pour l’utilisateur et lui faciliter la visualisation des données pour l’utilisateur final :

  • Attention si vous travailler sur un serveur accessible à vos utilisateurs, vous devez faire attention dans SSDT de ne pas exposer vos modèles en cours de développements
  • Renommez les tables et les colonnes pour qu’elles aient un nom métier
  • Veillez à bien mettre en place les relations entre les table
  • Déclarez une dimension Temps afin d’ajouter des fonctionnalités Time Intelligence
  • Créez des mesures calculées
  • Masquer les colonnes, tables, mesures calculées dont l’utilisateur n’a pas besoin (ID, code, table techniques, mesures calculées intermédiaires) …
  • Triez les données (possibilité de trier les données d’une colonne à partir d’une autre colonne (ex : tri des libellés de jour en fonction du numéro du jour de la semaine)
  • Créez des hiérarchies
  • Créez des KPI
  • Formatez correctement vos colonnes
  • Ajoutez des images
  • Paramétrez la description des tables
  • Paramétrez les identifiant et les colonnes par défaut
  • Mettez en place la sécurité
  • Utilisez la puissance du DAX pour créer des mesures semi-additives, consolider/filtrer les données, faire du ranking/pourcentage, définir des hiérarchies parent/enfants

Conclusion

Si vous n’avez jamais pratiqué de PowerPivot ou AS Tabular + Power View, lisez ceci, sinon passer votre chemin.

A noter que la session a le mérite de fournir une check list à suivre lors de toute modélisation de modèle tabular.

Frédéric

[SHP] SQL Server 2012 Highly Available BI Environments

Speaker : Chris Testa-O’Neill – Niveau : 300

Il s’agit, dans cette session, de montrer les éléments à implémenter pour supporter ce type d’architecture.

On commence par une présentation de l’architecture type :

–          Bases de données « source » en cluster ou « AlwaysOn »,

–          Base de données « SharePoint »  en cluster

–          Serveurs d’applications et web « virtualisés »

–          Répartition de charge (« Load Balancing »)

L’idée derrière est de pouvoir utiliser les composants BI « PowerPivot », « Power View » et « Report Builder » dans « SharePoint 2010 ».

On détaille ensuite les différentes étapes :

Logiciels requis

–          Windows  2008 R2, SP1

–          SharePoint 2010 Entreprise, SP1

–          SQL Server 2012

–          Etc.

Compte à créer

–          compte de service SQL,

–          compte pour la ferme « SharePoint »,

–          compte pour les services des applications SharePoint,

–          Etc.

Manipulations réseaux

–          Port pour les données SQL Server »

–          « Active Directory »,

–          « DNS »,

–          Etc.

Kerberos

–          Configurer les SPNs

–          Déléguer les permissions de sécurité

Configuration du « Load Balancing »

Préparation de la ferme « SharePoint »

–          Installation de SQL Server 2012 dans un cluster « Failover »

–          Autoriser TCP/IP pour les connections à distances

–          Etc.

Création de la ferme « SharePoint »

–          Installation de « SharePoint 2010 »

–          Installation de « SharePoint 2010 SP1 »

–          Installation d’ « Office  Web Apps »

–          Configuration des services au travers de la console d’administration

–          Autorisation des logs « SharePoint »

Petite démonstration montrant comment ajouter un serveur « SharePoint » à une ferme existante.

Création des services « SharePoint »

–          « Search Services »

–          « Claims to Windows Token Services »

–          « Excel Services »

–          « Secure Store »

Création d’un nouveau site et d’une nouvelle collection de site pour le contenu BI

Installation des composants BI

–          « PowerPivot » pour « SharePoint »

–          « Reporting Services »

–          « Power View »

En conclusion, il s’agissait d’une session montrant l’installation de « SharePoint » avec les composants BI. C’est toujours intéressant mais je m’attendais à autre chose.

Julien

[SAS] Monitoring SSAS with DMVs

Speaker : Tim Peterson – Niveau : 400 – Durée : 75mn

Objectif de la session

Identifier et résoudre les problèmes de performances sur les cubes OLAP

SSAS Perfomance

Les buts

2 axes de considérer  :

  • Query performance
  • Process performance

Considérations

  • Dimension & cube desing
  • MDX calculations and queires
  • Partition and aggregation strategy
  • Utilisation du cache (soyer attentif aux 3 types de caches mis en jeux : AS, MDX, Windows)

N.B : Sur de larges cubes vous aurez besoins d’agrégation et/ou de caching

Stratégies pour optimiser les process

  • Utiliser toutes les ressources sur le serveur : process en parallel => utilisation des partitions
  • Optimiser la récupération de données dans vos bases relationnelles
  • Séparer les étapes de process data et d’index au lieu de faire un process full
  • Isoler les etapes de process et de requêtage (processer lorsque le cube n’est pas utiliser, processer sur un serveur non utilisé pour le requêtage puis synchroniser)

SQL Server Profiler

On l’utiliser pour analyser des requêtes ou des opérations de façon indviduelle, bien ciblé

Les infos qu’il faut récupérer

  • La requête exécutée
  • Le temps d’exécution
  • Est-ce que le cache est utilisé ou non ?
  • Est-ce que des aggregations sont utilisée ou non ?
  • Combien de partition sont requêtées ?
  • Combien du sous-cube ont été générés par la requêtes ?
  • La part dans le temps d’exécution du formula engine et du storage engine ?

Les évènements à sélectionner lorsque vous exécuter une trace SSAS :

Mise en place de 2 templates :

  • query text and duration : les events sont Query Begin, Query End, Execute MDX Script Begin, Execute MDX Script End, Query Cube Begin, Query Cube End
  • cache and agregation subcube template : Query Begin, Query End, Execute MDX Script Begin, Execute MDX Script End, Query Cube, Query Cube End, Get Data Form Aggregation, GetDate From Cache, Query Subcube Verbose, Resource Usage)

Pour comparer Formula Engine Vs Storage Engine Time

  • Sauvegarder votre trace en base
  • Executer une requête qui calcule le Formula Engine Time et le Storage Engine Time)
    • Si pb sur formula Engine Time => optimisation à faire sur vos calculations MDX
    • Si pb sur Storage Engine Time => opitmisation à faire sur le stockage (partitions)

Démos

1ère démo

Avant tout chose videz le cache afin d’avoir des tests efficaces. Bon tout le monde connait la requête XMLA qui permet de vider le cache SSAS.

N.B : vous pouvez récupérer le composant codeplex ASSP qui permet de vider le filesystem cache windows.

Le test est effecuté sur un cube sans aggregation avec un cross join => 55 secs, si on la reéexecute elle ne prend qu’1 sec avec le cache AS et le filesystem cache et 7 sec si on vide le cache SSAS sans vide le filesystem cache windows (d’où l’importance de bien vider les caches avant vos tests)

On analyse les traces duration Execute MDX Script End + duration Query Cube End = duration Query end

On compare la même requête sur le même cube avec des aggrégations, en vidant tous les caches ont arrive à 4sec contre 55sec auparavant => les aggrégations ont permis de gagner 51 sec.

Pour récupérer les traces sur les agrégations, on relance le test avec le 2nd scénario de trace.

On note au passeage que l’event Get Data Form Aggregation remonte en ObjetPath l’agregation ID at pas le nom idem pour la partion (attention donc à comment vous nommer vos agrégations lors de la création une convention de nommage s’impose donc pour analyser les traces plus facilement).

On relance la requête, on se rend compte qu’AS n’utilise pas les agrégations mais que le cache (ce dernier étant plus rapide que les agrégations)

Dans le Query Subcube Verbose on a depuis la version 2012 des infos sur le cache (Entries, Hits, …)

Le resource usage est là depuis la 2008 R2 eet permet de voir l’utilisation des ressource (reads/writes in #/Kb, CPU_TIME …)

2eme démo

Analyse d’une requête executée sous Excel

La clé est de voir les mesures qui sont utilisée dans la requête imbitable que nos a envoyé Excel et d’indentifier la ou les mesures qui posent problème.

Une fois la mesure identifiée qui pose pb (en règle générale) ce sont des calculation, on la récupère et on la colle dans SSMS.

On constate l’utilisation d’un iif pour éviter de faire une division par 0, une partie de la calculation est utilisée 2 *. L’optimisation consiste à séparer les calculs pour utiliser des mesures individuelles de façon à se que AS puisse évaluer et optimiser chaque calculation. Le temps d’execution passe de 2’30 à 55 sec => faites attention de bien déclarer des mesures de façon unitaires afin que le moteur n’est pas à évaluer un même calcul plusieurs fois dans une seule et même mesure.

3eme démo

Identifier d’ou provient la faille Formula Engine ou Storage Engine :

  • La trace est enregistrée en base
  • On lance ensuite un petite requête magique qui permet de récupérer les stats don’t nous avons besoin.

Don’t worry  la requête est fournis dans le code sample de la présentation dispo sur sqlpass.org.

Perf Monitor

On l’utilise pour analyser la performance global de SSAS.

Les compteurs positionnés sont  : ¨% Processor Time, Memory limit Hard, High, Low in Kb

On récupère les traces du perf mon qu’on remonte dans un cube. Ce qui nous permet d’analyser les traces.

On peut récupérer les sources de son cube sur le site du PASS, avec les slides de la présentation.

Automating Collection of Perf Information with ResMon

Les sources du cube ResMon sont à récupérer sur CodePlex, il utilise les DMVs pour récupérer les compteurs de perfs.

Mais çà je l’avais déjà vu dans une autre présentation.

Conclusion

Session interressante, surtout orientée sur le performance monitor avec les évènements à tracer les causes et les conséquences.

Dommage qu’on ai pas vu d’optimisation sur des bottleneck dû aux CROSSJOIN …

Frédéric

[AZU] Connexion au monde des données avec le Microsoft DataMarket

Speaker : Max Uritsky – Niveau : 200

Session sur la connexion au Windows Azure MarketPlace : pour acheter des données et des applications fini chez MS

Connecteur intégré dans Excel 2013, SQL 2012, Dynamics CRM..

Données payantes (abonnement, à la transaction..) mais aussi gratuites.

Lien :http://datamarket.azure.com

Exportation des données possible vers MS PowerPivot et Tableau Software

Enregistrement sous XML et CSV

Demo :

Synonym : permet de récupérer des synonymes de données, lié à la base de connaissance de Bing

DateStream  : Calendrier international

Crime Statistics for England : Statistique de criminalité en Angleterre

Microsoft Translator

Couches (channel):

Sellers

Data Services

Marketplaces Plateform (Seller Hub)

Commerce Platform

Schéma d’Architecture du datamarket

Démo Excel 2013 et le DataMarket

Depuis PowerPivot  : accès au catalogue  Barcelona Facilities, Search et utilisation dans Power View

Image de discothèque (Media)

Refresh sur le cloud

Catégorie de données : voir Data Quality Services (Melissa Data) : Plugin DQS

Les fournisseurs de données (publication de données)

https://datamarket.azure.com/publishing : portail de publication

Se connecte à une base Azure ou  un web service

Existe en parallèle le Windows Azure Store (que aux USA pour le moment) pour fournisseur de services et de données (ex Checker DQS dans le cloud …)

N’est que pour les développeurs et IT pros alors que MarketPlace aussi pour les Business users et n’est que fournisseur de services et d’application fini

Sébastien

[SQL] Load Millions of Records in a Split-Second with Partition Switching

Speaker : John Lambert – Niveau : 300

Cette session présente un tour d’horizon complet du partitionnement sous SQL Server. Un peu difficile à suivre car le speaker est à l’article de la mort.

Qu’est que le switch de partition ? C’est le passage d’un gros volume de données d’une table à une autre en une fraction de secondes.

On revient sur le principe des données SQL Server qui sont stockés dans des pages de 8 Ko.

On utilise le « switch » de partitions pour améliorer la gestion des gros volumes de données.

Première démonstration avec l’utilisation de la commande « ALTER TABLE SWITCH TO PARTITION ».

On trouve 2 types de partitionnement (horizontal et vertical). Le « switch » concerne uniquement le partitionnement horizontal

–          Horizontal : les lignes sont  divisés en partition

On utilise les partitions pour plusieurs raisons :

–          Faciliter de la maintenance des tables (BACKUP, RESTORE, etc.)

–          Diminution des E/S

–          « Switch »

Le partitionnement « classique » se déroule en 3 parties :

–          Création d’un schéma de partition

–          Création d’une fonction de partition

–          Création des tables partitionnées

On revient ensuite sur les différents éléments à connaître lorsque l’on pratique le partitionnement ($PARTITION, CREATE PARTITION FUNCTION, CREATE PARTITION SCHEME, etc.)

Deuxième démonstration avec la création d’une table partitionnée. On crée d’abord la fonction de partition puis le schéma de partition. On termine par la création de la table. Il est à noter que l’on peut également ajouter une nouvelle partition à une table déjà partitionnée.

Dernière démonstration avec quelques erreurs habituelles lors du « switch » de partition

–          Penser à préciser le schéma de partitionnement lors de la création de la table

–          Les 2 tables doivent avoir les mêmes contraintes

–          Les 2 tables doivent être dans le même « FileGroup »

–          …

En conclusion, une session un peu compliqué surtout à cause de l’état de santé du speaker mais intéressante pour les personnes n’ayant aucune notion du partitionnement sous « SQL Server ».

Julien