Mon SQLSaturday Paris 2016

Traditionnellement, je vous livre mon programme idéal pour le prochain événement du GUSS (même si au final je cours partout comme un hamster en discutant avec le maximum de personnes possible).

Cette année encore, le programme est alléchant avec une belle brochette d’experts étrangers (sans oublier nos experts hexagonaux).

Mon choix de sessions, dans l’ordre de l’agenda, se porte sur :

  • Handling relationship in DAX par Marco Russo parce qu’une session avec le maestro, c’est toujours un Must Attend mais aussi parce qu’il y a toujours des petits tips à récupérer pour nos modèles Power BI
    • J’irai bien aussi voir la session de Ryan Yates sur le DSC SQL Server. Le Desired Configuration State, un épouvantail ou une réalité, je suis très curieux sur le sujet et ce speaker a une bonne renommée parait-il
    • Désolé Charly et Christophe, mais je ne peux pas liker TOUTES les sessions
  • My favorite pie (chart) par Markus Ehrenmueller-Jensen : un peu de préceptes Dataviz, c’est toujours bon à prendre
    • J’irai bien aussi voir Uwe Ricken, l’un des speakers les mieux noté l’an passé, qui décortique les entrailles des indexes Clustered
  • Pour ce créneau, je serai en session avec Fabien Adato sur Cortana Analytics (pardon, Cortana Intelligence). Mais je serai bien allé voir Chrissy Lemaire dont je n’ai entendu que des compliments après sa session Powershell de l’European Powershell Conference
  • REX : Velib & Cortana par Romain Casteres et Yassine Khelifi (oui, on a mis Emilie sur le planning pour attirer plus de monde 😏) : j’ai eu la chance de voir le travail des Microsoftees sur les données Velib (ndm: le service de location de vélo de Paris) et je pense que c’est le Best Of Breed des implémentations Cortana que j’ai vu.
  • Identity mapping and de-duplicating par Dejan Sarka : Dejan fait autorité sur ce sujet (et le Data Mining) depuis longtemps dans la communauté internationale. Et par expérience je sais que ce sujet est très complexe, en tout cas bien plus complexe que 3 clics dans DQS. Ses techniques et son expérience doivent être très intéressants.

Un beau programme, de quoi bien se remplir le cerveau de nouvelles idées et connaissances.

Sinon, plus sérieusement, pour ce SQLSaturday, je vais essayer de me mettre en mode « posey » au stand GUSS.

Premièrement parce qu’en tant qu’organisateur, c’est quasi impossible de suivre les sessions (déjà la mienne…).

Deuxièmement parce que j’adore passer du temps à échanger avec les participants (vous, les speakers, les sponsors) et que la salle sponsors et le stand GUSS reste le spot idéal pour cela. Cette année, nous allons demander aux speakers de passer un peu de temps au stand GUSS en tant qu’ATE (Ask-The-Expert) après leur session. Ce type d’échange est tout aussi enrichissant que la session elle-même (pour le speaker aussi).

TroDiscoveryDayisièmement, parce que je veux participer au Hackaton (ie. Discovery Day) que nous organisons pendant l’événement.

Un hackaton, chouette !

Alors, disons le tout de suite, Hackaton n’est pas le terme qu’il faudrait employer même si nous avons quelques ingrédients. Le PASS et Microsoft souhaitent nous faire plancher sur un problème Data à l’occasion de la sortie de SQL Server 2016. Le PASS fournit les données et la question, Microsoft fournir SQL Server (et R, Polybase, etc.).

Avec AZEO, See-d et le GUSS, nous allons nous associer à ce « hackaton » pour montrer que la communauté française sait relever le défi.

AZEO-150pxSee-d-150px

Ce Discovery Day sera l’occasion de faire de mini-démos et ateliers au stand GUSS pendant le SQLSaturday.

Tous les renseignements : http://guss.pro/2016/06/08/sql-server-2016-discovery-day-en-france/

Alors, vous venez ? Inscription au SQLSaturday par ici…

 

 

Ca buzz ou pas pour ce SQLSaturday ?

Je m’interroge avec les autres membres du Board du GUSS sur le manque de relaying du prochain SQLSaturday dans la blogosphère et autres réseaux sociaux. Certes, il y a quelques articles ici ou mais rien de vraiment « viral » comme nous le voyions il y a quelques années, au début des JSS.

J’ai 2 théories.

Au passage : vous êtes inscrits au SQLSaturday ?

De mauvais média pour la veille ?

Nous (le GUSS) broadcastons sur quasiment tous les réseaux sociaux : Twitter, Facebook, LinkedIn, RSS, Youtube, Newsletter et même maintenant Meetup.

Et pourtant, j’entends encore « ah bon, vous faites un événement dans 2 semaines ? »

twitterDonc soit nous n’avons pas le bon canal, soit les gens ne les suivent pas. Prenons Twitter par exemple. C’est un media simple et efficace pour se tenir à jour de l’actualité d’un sujet. Vous trouvez les bonnes personnes ou comptes officiels à suivre et vous avez en quelques coups de molette les choses à savoir sur SQL Server, Power BI, Azure, etc. (mais ça marche aussi pour le rugby, les fromages au lait cru et Phil Barney).

Suivre l’actualité est devenu INDISPENSABLE pour un consultant aujourd’hui. Oui, je pèse mes mots, car tous les jours je vois que ça fait la différence au niveau du recrutement. En tant que communauté, nous créons des moments d’échange, d’apprentissage et de connexion à l’actualité au travers des Journées SQL Server, des SQLSaturday, des afterworks. Donc nous suivre, c’est indirectement se tenir à jour du monde de la Data Microsoft.

Certes, ça ne répond pas la question initiale mais s’il y avait plus de retweet, like et autre share, peut-être aurait-on un meilleur niveau de veille des professionnels français qui constituent notre écosystème. (je parle bien de l’écosystème français car je trouve que nos voisins sont beaucoup plus impliqués et réactifs sur les réseaux)

Et vous, vous faites comment votre veille ?

Le syndrome « tête dans le guidon »

o-WORKAHOLIC-facebookVoyons maintenant une autre théorie qui me semble très plausible (puisque j’en suis un des exemples).

Disons le tout net, notre marché va bien et même très bien. Je ne parle pas de l’IT en général mais bien du marché de la Data et d’autant plus celui de spécialistes comme Azeo.

Beaucoup de projets, beaucoup de challenge, beaucoup de transformations, beaucoup de prise de conscience de dette technique, etc. Cela nous occupe tous et parfois même à 110%.

Alors je peux comprendre qu’on ait moins de temps pour s’intéresser à ces choses communautaires qui semblent tellement à la marge. Et pourtant c’est dans ces moments là qu’il faut savoir lever la tête régulièrement, même brièvement, pour garder le cap, regarder l’écosystème qui nous entoure, ne pas se laisser distancer, …et surtout ne pas taper le mur en face.

Réflexion philosophique ?

Finalement, je m’aperçois au fil de ce billet que j’ai fait une projection du manque de relaying vers le manque d’écoute (ou de considération) de l’actualité communautaire.

Peut-être que je me trompe totalement. Peut-être que ce genre d’événement ne plait plus ? Ou peut-être qu’il est entré dans une sorte de routine ? Je n’espère pas car ce serait dommage d’arrêter tout cela. Ou pas.

Bref, c’est ma réflexion philosophique du lundi mardi matin ☺

Retrospective communautaire des 4 derniers mois

— suite du billet « SharePoint Saturday, ma prochaine conférence » —

Ok, vous avez compris, les 27 et 28 mai, ce sera le SharePoint Saturday 2016 à Montparnasse. Mais depuis les Journées SQL Server en décembre dernier, que s’est-il passé?

Dans l’ordre j’ai pris part (en tant qu’organisateur ou speaker) à…

Meet-The-DBA avec les DBAs de Criteo

C’est un nouveau format qu’on a voulu tester au GUSS :

se faire rencontrer la communauté et des DBAs qui veulent expliquer leur façon de travailler.

Un échange entre professionnels qui ont un peu de poil au menton en somme. Cela faisait un moment que j’échangais avec Criteo pour mettre cela en place. Et comme annoncé aux JSS, on l’a fait en janvier.

WP_20160113_19_42_10_Pro_LI

Au final, de belles discussions avec environ 25 participants, DBAs eux-mêmes. Et pour finir, un généreux Afterwork offert par Criteo.

Voir la présentation Scale SQL for the Web de Criteo

 

Podcast : Rise of Analytics

Aurélien Prévot de la communauté aOS est un professionnel du podcast et nous a proposé (au GUSS) d’en organiser. Quand je dis professionnel, c’est-à-dire qu’il arrive avec 2 caisses de matos, une table de mixage, des micros pro, etc.

Donc fin janvier, on a enregistré un petit débat pour parler des algorithmes, de l’intelligence artificielle, etc.

GUSS-Rise-of-analytics-large

J’avais amorcé l’idée lors de la 1ere keynote des JSS en avançant que l’enjeu de demain ce sont les algorithmes. La capacité à trouver le bon modèle, le bon algo, c’est ça le réel enjeu de l’Analytics et autre Big Data (grrr, je déteste ce mot mais il porte tellement de sens aujourd’hui…).

Alors l’idée était d’en parler avec quelques confrères, en mode plus relâché car le pitch de départ est « est ce que Skynet (Terminator) c’est demain ? »

Ce podcast m’a permis de faire de belles rencontres et notamment Emmanuel Frenod, directeur scientifique de See’d et qui a fait le déplacement depuis Vannes pour participer.

Ecouter le podcast

 

European PASS Influencers meeting

C’est quoi ça ? L’amicale des gais boulistes de Castelnau ?

Régulièrement, on essaie de se voir avec nos homologues à travers le monde pour discuter de la communauté (la fameuse #SQLFamily). On échange sur ce qu’on réalise dans nos pays respectifs, on se donne des idées, on partage nos doutes et nos échecs.

Là, ce sont mes confrères allemands qui recevaient dans le cadre de leur SQLKonferenz (l’équivalent des JSS, vraiment top leur organisation et leurs conférences). Il y avait là la communauté allemande en force avec Oliver, Tillman, Kostja, et leurs troupes, Niko qui représentait le Portugal, Gerhard qui représentait l’Autriche, moi la France. Et nous avons même eu la directrice marketing du PASS, Georgia Dhale, qui est venue tout spécialement de Vancouver.

Pour vous révéler une indiscrétion, c’est dans ce genre de meeting que je puise ma motivation. Ca me booste pour une saison entière de GUSS:-)

SQLSaturday Vienna

Les voyages forment la jeunesse, ou plutôt la #SQLFamily. Lors du dernier PASS Summit, j’ai eu la chance de rencontrer Markus et Wolfgang de la communauté autrichienne. J’ai donc postulé pour être speaker lors de leur SQLSaturday.

WP_20160401_13_39_58_Pro_LIavant – après

Une belle conférence avec beaucoup de présents et des guests : Brent Ozar, JRJ, Matt Masson… Là bas, j’ai parlé de mon sujet fétiche: La Self-Service BI et la gouvernance qui l’entoure.

sqlsatvienna

En plus, j’ai eu la chance que les tableaux de bord d’usage de Power BI soient sortis la veille donc j’ai pu faire une petite démo.

 

Ask-The-Experts : Rencontre avec Microsoft CSS

Pareil, un nouveau format qu’on voulait tester au GUSS.

Se faire rencontrer des « clients » et les personnes du support Microsoft.

Pas de présentation mais des discussions, des questions, des anecdotes et aussi quelques indiscrétions permettant de mieux comprendre les produits Microsoft qu’on ne peut avoir qu’en discutant avec ces hommes de l’ombre.

Merci à Nicolas Soukoff et Mathias Ekizian pour avoir mobilisé Véronique Mery et son équipe pour cet événement.

C’est le premier d’une série et on espère qu’il attirera plus de monde la prochaine fois (que ce soit pour venir rencontrer le support MS ou trinquer aux frais du GUSS 😏).

WP_20160414_19_47_28_Pro (1)

 

Global Azure Bootcamp 2016

Enfin, samedi dernier (le 16 avril), j’ai eu la chance d’être speaker au 3eme Global Azure Bootcamp. On pourrait dire que le GAB est une sorte de Azure Saturday. Mais la particularité, c’est que le même événement se déroule le même jour partout dans le monde.

870648066377693

J’ai présenté avec mon collègue Fabien Adato une session sur Cortana Analytics et les nouvelles architectures de Data Platform. La session ne durait que 45 minutes alors nous n’avons couvert qu’un petit périmètre des solutions disponibles (Azure Machine Learning, HDInsight, Azure Data Lake, Azure Data Factory).

cortana

Cet événement m’a permis (à moi et au GUSS) de me rapprocher de la communauté AZUGFR et d’aller leur montrer que le monde de la Data, ce n’est pas juste cliquer sur New dans le portail Azure (j’exagère évidemment 😏).

Plus sérieusement, c’était un bel événement avec une communauté curieuse et dynamique. Merci AZUGFR

Voir la présentation

Pour finir…

Chargé ce premier tiers de l’année… Et ce n’est pas fini car le SQLSaturday Paris 2016 arrive !

Et sinon, si vous vous posiez la question, je travaille un peu quand même:). Le reste du temps, quand je ne suis pas à un événement, je fais du conseil et des projets chez mes clients avec mon équipe.
D’ailleurs, je cherche un spécialiste Power BI en ce moment mais j’en parlerai dans un autre post.

SharePoint Saturday, ma prochaine conférence

J’ai l’impression de ne pas avoir lever le nez du guidon depuis les dernières Journées SQL Server (d’ailleurs il faudra un jour songer à changer le nom vu qu’on y parle aussi Azure, Big Data ou encore Power BI).

Pour les impatients qui lisent en diagonale, ma prochaine conférence est dans le cadre du SharePoint Saturday.

SharePoint Saturday Paris 2016
Samedi 28 mai
Tour Montparnasse, Paris

 

Le SharePoint Saturday, c’est comme le SQLSaturday mais avec les technologies SharePoint et son écosystème. Elle est organisée par la (les) très dynamique(s) communauté(s) autour de SharePoint, Office 365, azure, etc. (SPS, aOS & co).

aos

Quel rapport avec la Data ? On a en commun que la BI trouve souvent sa place dans un « portail collaboratif » et que la démarche de Self-Service BI est fortement connexe à celle du Digital Worplace (et globalement de la transformation numérique des entreprises).

Et moi dans tout ça ? J’ai la chance d’avoir été retenu pour parler de Power BI, mais pas dans un format habituel de session. Je vais délivrer une préconférence.

Une journée avec Power BI
Vendredi 27 mai

Je vais détailler ici ce qu’est une préconférence même si je l’ai déjà fait sur ce blog. Après tout, vous êtes peut-être tombé ici par hasard.

Donc la préconférence, c’est un format que l’on retrouve énormément lors des conférences internationales. C’est à mi-chemin entre la formation traditionnelle et une conférence. Là où un speaker va résumer son sujet en une session d’une heure, dans une préconf, il va passer la journée avec vous à le détailler. En plus, généralement, vous pouvez venir avec votre laptop et manipuler en même temps.

Un préconférence, ce n’est pas gratuit (oui, c’est payant !). Mais pour env. 150€ repas compris, vous avez accès à des experts à un prix que seule la communauté peut vous apporter (comparez!)

Au SharePoint Saturday, je passerai donc la journée avec vous à faire le tour de Power BI en construisant un tableau de bord de A à Z.

Je serai accompagné de Jean-Pierre Girardot, formateur, auteur et expert de Power BI. A nous deux, nous pourrons mieux vous accompagner dans un vrai en mode workshop.

jp-carré

Et le lendemain (le samedi, pour la conférence gratuite), je traînerai sur place pour filer un coup de main, voir les copains, écouter Jeff Tepper en Keynote, discuter avec les sponsors, bref, cultiver mon réseau.

Je vous invite donc à vous inscrire et venir rencontrer la communauté.

Inscrivez vous au SharePoint Saturday
Inscrivez-vous aux préconf. du SPS

spsparis

Mais alors, qu’ai-je fait depuis décembre dernier ? La suite dans le prochain billet…

 

Comment la recherche Fulltext voit votre saisie

Une fonction système bien utile pour comprendre comment la recherche Full-Text (FTS) interprète votre saisie.
En effet, entre le Word Breaker qui découpe votre saisie, le Stemmer qui la comprend grammaticalement (de façon très simplifiée quand même), les Noise Words (STOPLIST) et le Thésaurus, on a souvent du mal à expliquer le résultat de la recherche [aux utilisateurs].

Afin d’aider, SQL Server dispose d’une fonction qui vous donne quelques pistes : sys.dm_fts_parser

select *
from sys.dm_fts_parser
('"je suis content d''aller au prochain after-work du GUSS"', 1033, 0, 0)

FullText

 

Documentationhttps://msdn.microsoft.com/en-us/library/cc280463.aspx

 

Archive & Purge, la double peine

cest-du-propre-jl-bulcao_m6Quand il s’agit de purger des données, on y va souvent à la serpette avec un bon vieux DELETE et une clause WHERE.

Oui, c’est long.
Mais c’est encore plus long quand on vous demande de copier les données dans une table à côté. Au cas où…

Là, vous vous taper la double-peine : un bon gros SCAN et une insertion suivie d’un bon gros DELETE.

Heureusement, il y a la clause OUTPUT qui permet de chainer les opérations. Ce qui est supprimé est directement injecté dans l’insertion.
Vous ajoutez à cela une petite boucle pour ne pas exploser votre LOG (attention, pas de ROLLBACK sauf pour le dernier lot !!).

Et voila comment gagner quelques minutes de votre vendredi après-midi.

declare @rc int = 1
declare @i int = 1
declare @batchsize int = 100000
while @rc > 0
begin
  insert into MaTable_Archve
  select * from
  (
    delete top (@batchsize)
    from MaTable
    OUTPUT deleted.*
    where MaTable.Date > convert(datetime, '2016-01-01', 120)
  ) deleted
  set @rc = @@rowcount
  print @i * @batchsize
  set @i += 1
end

Agrégations "Usage-Based" dans SSAS sans utiliser le QueryLog

C’est quoi les agrégations Usage-Based  ?

Quand on développe un cube multidimensionnel, les agrégations sont essentielles. Une bonne pratique est de mettre en place ces agrégations en se basant sur l’usage réel du cube.

C’est ce qu’on appelle Usage-Based Optimization. On place des agrégations uniquement sur les dimensions (attributs) et les granularités réellement utilisées par les utilisateurs.

Pour le mettre en place il faut :

  1. Activer les logs (QueryLog)
  2. Lancer l’assistant Usage Based Optimization qui va créer les bonnes agrégations

Pour la première étape, il suffit d’aller dans les propriétés de votre instance SSAS et de configurer le QueryLog. Si SSAS trouve une chaine de connexion, il tracera l’usage, sur la base d’une requête tracée toutes les [QueryLogSampling] requêtes exécutées.

clip_image001
Source Technet : https://technet.microsoft.com/library/Cc917676

Le paramétrage du QueryLog est clé car il est utilisé également par le wizard d’optimisation qui va lire la table indiquée.

clip_image002

Peut-on se passer du QueryLog ?

La réponse est simple : non. Dans tous les cas, l’assistant ne sait pas récupérer les données d’usage autre part que dans cette table. Mais souvent, on conçoit ces agrégations sur un environnement d’intégration ou de développement (pour ne déployer que les agrégations dans un XMLA assez simple). On peut par exemple copier la table ou les données du QueryLog depuis la production pour la lire sur un autre environnement.

Voici le script pour créer la table :

CREATE TABLE OlapUsageLog
(
  MSOLAP_Database Nvarchar(255),
  MSOLAP_ObjectPath Nvarchar(400),
  MSOLAP_User Nvarchar(255),
  Dataset Nvarchar(4000),
  StartTime datetime,
  Duration Bigint
)

Et si on utilisait le profiler ?

Ok, j’ai mon QueryLog configuré pour mon assistant d’optimisation mais disons que je ne veux pas l’activer en production pour collecter les données. L’idée est d’utiliser le Profiler pour collecter les données et ensuite de les réinjecter dans la table en développement.

Contrairement à ce qu’on pourrait penser, on de trace pas les requêtes; ce n’est pas ce qui sert à l’optimiseur. En fait, c’est une vision « interne » de la requête qui nous intéresse (un peu comme le plan d’exécution côté SQL Server). Ce qu’il nous faut c’est “quelles dimensions sont utilisées.”

Pour cela, on trace l’événement Query Subcube dans Query Processing. Les champs à récupérer sont :

  • DatabaseName correspond à la colonne MSOLAP_Database
  • Duration
  • ObjectPath correspond à la colonne MSOLAP_ObjectPath
  • StartTime
  • TextData correspond à la colonne Dataset
  • NTCanonicalUserName correspond à la colonne MSOLAP_User

Le champ important est Textdata (Dataset) qui est le vecteur dimensionnel de la requête (ie. quels attributs sont positionnés). Le champ ObjectPath servira à pointer sur le bon groupe de mesure.

clip_image003

On peut voir qu’on a le même résultat que le QueryLog sauf qu’on a la souplesse du Profiler.

clip_image004

 

Les avantages :

  • Vous pouvez mettre des filtres (utilisateur, base, requêtes longues, etc.)
  • Vous pouvez démarrer/arrêter une séquence de profiling facilement (pour capturer une séquence de test particulière)
  • Vous n’avez plus besoin du QueryLog (et d’une base SQL Server) en production.