tmsl/json en administration de tabulaire...

15
SQL Server 2008-2016 Dominique Verrière Dialogue Formation Informatique SQL Server 2008-2016 TMSL/JSON en administration de tabulaire 2016

Upload: dodien

Post on 01-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

SQL Server 2008-2016

Dominique Verrière

Dialogue Formation Informatique

SQL Server 2008-2016

TMSL/JSON en administration de tabulaire 2016

Page 2: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

SQL Server : Le blog de Dominique Verrière 2

Page 3: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

Introduction

Ce petit fascicule fait partie d’une liste de notes que je publie gratuitement sur mon site.

J’essaie de mettre dans ces notes mon expérience de terrain en toute indépendance de Microsoft.

Dominique Verrière

Page 4: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

Table des matières JSON et tâches d’administration .................................................................................. 6

Traitement d’un modèle ........................................................................................................................................ 6

Automatiser le process avec l’agent SQL Server ............................................................................................... 8

Automatiser le process avec SSIS .................................................................................................................... 10

Sauvegarder la base par du TMSL ....................................................................................................................... 11

Gérer la sécurité .................................................................................................................................................. 12

Contacter l’auteur ...................................................................................................... 15

Page 5: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

Sommaire

SQL Server : Le blog de Dominique Verrière 5

Page 6: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server Le blog de Dominique Verrière

JSON et tâches d’administration

Ceux qui pratiquaient le XMLA sur les bases multi dimensionnelles ne seront pas surpris des objectifs de ce

langage :

Pour ce qui est du tabulaire, Microsoft a purement et simplement remplacé le XMLA au profit du Tabular

Model Scripting Language, language qui utilise donc le format JSON en remplacement du XML.

Une des raisons de ce choix étant bien évidemment la taille, le JSON étant moins verbeux que XML.

Traitement d’un modèle Une des premières choses qui nous vient à l’esprit est le traitement (process) du modèle : ce traitement a

pour effet d’actualiser les données à partir de la source (souvent une base relationnelle, mais beaucoup de

nouvelles possibilités sont offertes).

La manière la plus simple d’obtenir du TMSL, à l’instar du XMLA, est de le générer depuis SSMS.

Un clic droit sur la base de données permettant d’obtenir une liste de tâches, dont celle du traitement.

Création/modification des structures (tables et colonnes)

Modification des sources de données

Gestion de la sécurité

Traitement du modèle

Etc.

Page 7: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server : Le blog de Dominique Verrière 7

Le menu script nous permet d’obtenir ceci :

{ "refresh": { "type": "full", "objects": [ { "database": "DemoTabulaire2016" } ] } }

On note que le format de fichier est toujours XMLA (décidemment, Microsoft est toujours à la traine pour les

interfaces homme/machine des requêteurs).

Ce script peut être immédiatement exécuté avec un appui sur F5 :

Le compte-rendu détaillé étant disponible dans l’onglet messages.

Page 8: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server Le blog de Dominique Verrière

Automatiser le process avec l’agent SQL Server

Une des méthodes les plus simples est de créer un job sous l’agent SQL Server :

En général, il y a des aspects sécurité à résoudre :

Le compte de l’agent a-t-il accès à la source de données ?

Page 9: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server : Le blog de Dominique Verrière 9

Que l’on résoudra habituellement par un proxy :

Page 10: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server Le blog de Dominique Verrière

Automatiser le process avec SSIS

Une méthode plus paramétrable est d’utiliser SSIS, c’est ce que je préfère, car, en général, le process suit

d’autres étapes d’alimentation de datawarehouse.

A noter que, sous SSIS 2016, une tâche de traitement toute faite est disponible… pourquoi utiliser un script ?

Car dans certains cas, l’aspect figé de la tâche toute faite peut être génant.

Page 11: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server : Le blog de Dominique Verrière 11

Après exécution du package :

Vous avez noté qu’une tâche de sauvegarde a été ajoutée, je vais l’évoquer ci-dessous.

Sauvegarder la base par du TMSL

De même la génération se fait depuis SSMS.

{ "backup": { "database": "DemoTabulaire2016", "file": "DemoTabulaire2016.abf", "allowOverwrite": true, "applyCompression": true } }

Encore une fois l’avantage est de pouvoir paramétrer tout cela dans un package SSIS.

Page 12: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server Le blog de Dominique Verrière

Gérer la sécurité Il y a plusieurs manières de gérer la sécurité :

La première façon consiste simplement à définir des rôles et de mapper des utilisateurs ou des groupes de

l’AD dessus.

Nous allons utiliser le deuxième type pour aller plus loin : certains rôles voient certaines données, par

exemple ici, des familles de produits.

Mon cahier des charges est de définir un rôle pour chacune des familles :

Vous aurez reconnu le bon vieil extrait d’AdventureWorks francisé dont je me sers toujours.

Voici dont le script JSON nécessaire à créer un rôle et lui donner des privilèges :

{ "createOrReplace": { "object": { "database": "DemoTabulaire2016", "role": "GerantVelos" }, "role": { "name": "GerantVelos", "modelPermission": "readRefresh", "members": [ { "memberName": "DOMINIQUE81\\GerantVelos" } ], "tablePermissions": [ { "name": "Produit", "filterExpression": " Produit[Categorie] = \"Vélo\"" }, ]

Statique pure

Semi statique

Dynamique

Vélos

Accessoires

Composants

Vêtements

Page 13: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server : Le blog de Dominique Verrière 13

} } }

Nota : pour faire plus ‘joli’, j’ai collé ce script dans un fichier de type .JSX de Visual Studio.

Après exécution, notre nouveau rôle apparait dans SSMS ;

Il ne reste plus qu’à valider que ce rôle fonctionne.

Pour cela, je lance un SSMS en prenant l’identité d’un gérant de vélos.

Vérifions que je suis bien authentifié au moyen d’une petite requête MDX :

Tout est correct de ce côté, qu’en est-il des données ?

On ne voit que la catégorie des vélos, parfait.

Page 14: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

TMSL/JSON en administration de modèle tabulaire

SQL Server Le blog de Dominique Verrière

…………

On ne voit que les produits de type vélos : correct !

Et les agrégats ?

select [Measures].[TotalMontantVentes] on columns, [Produit].[Categorie].members on rows from [Modèle];

Je connais assez mon modèle pour vous dire que ces chiffres sont bons !

Ceci n’est qu’un point de départ, le concepteur de BI aura évidemment la tâche de scripter tout cela de

manière globale (encore une fois, ma préférence va à SSIS).

Page 15: TMSL/JSON en administration de tabulaire 2016dominiqueverriere.fr/Articles/DV_Introduction_JSON..."filterExpression": " Produit[Categorie] = \"Vélo\"" }, ] Statique pure Semi statique

Contacter l’auteur

SQL Server: Le blog de Dominique Verrière

Contacter l’auteur

Dominique Verrière est un consultant spécialisé sur les technologies SQL Server : moteur relationnel, SSIS, SSRS et SSAS. Il intervient dans les entreprises pour des missions d'audit, de suivi de performances, d'administration de bases de données. Les bases de données dont il s'occupe peuvent contenir plusieurs milliards de lignes et atteindre des Téra octets; son expérience du terrain est donc significative. Afin de compléter cet article, un blog www.dominiqueverriere.fr est régulièrement mis à jour avec des articles sur les nouveautés ou expériences nouvelles de l'auteur