Que doit savoir un administrateur de base de données sur SSAS?

40

J'ai vu beaucoup de matériel couvrant l'aspect commercial de SSAS, mais pas vraiment beaucoup d'aspects importants de l'administration et de la gestion.

Du point de vue de l'administration d'une instance de SQL Server Analysis Services, que doit savoir un DBA en état de fonctionnement sur SSAS pour le gérer correctement et efficacement?

ivanmp
la source

Réponses:

50

Un aperçu rapide de SSAS pour les DBA

Donc, vous êtes un administrateur de base de données SQL Server et vous venez de gérer certains cubes à gérer de manière inédite. Un rapide cours intensif sur l'administration de SSAS semble être en ordre.

D'un point de vue administratif, SSAS est une application assez simple, si les ressources sont gourmandes. C'est beaucoup plus simple qu'une plateforme de SGBD, bien que différent de plusieurs manières. En outre, il vous faudra peut-être vous préparer à quelques tâches administratives, telles que l'optimisation basée sur l'utilisation, propre à SSAS.

Sauvegardez votre fichier de configuration

Toutes les données de configuration résident dans un fichier appelé msdmsrv.ini. C'est un fichier XML. Si vous modifiez la configuration via SSMS (connexion au serveur, cliquez avec le bouton droit de la souris sur le serveur, sélectionnez propriétés), vous pouvez définir des options qui mettront le serveur hors service au démarrage. Prenez une copie de msmdsrv.iniavant de jouer avec quoi que ce soit.

Paramètres importants

Mémoire: SSAS est un cochon de la mémoire biblique. Il aime les versions 64 bits si possible, ainsi que beaucoup de mémoire. Les paramètres 'Memory \ LowMemoryLimit' et 'Memory \ HighMemoryLimit' contrôlent les règles d'utilisation de la mémoire. LowMemoryLimit n'est pas une allocation de mémoire minimale. SSAS considère que le système manque de mémoire et commence à vider le contenu de ses antémémoires. HighMemoryLimit est le maximum absolu qu'il utilisera.

Notez que SSAS stocke ses données dans des fichiers (beaucoup de fichiers - il n’a aucun mécanisme équivalent à celui des groupes de fichiers), il utilise donc beaucoup la mise en cache système de fichiers O / S pour ces fichiers. Notez que la valeur par défaut pour ces limites est respectivement d'environ 65% et 80% de la mémoire de la machine. Par conséquent, si vous souhaitez que le serveur OLAP coexiste avec une instance SQL Server, vous devez les désactiver pour éviter les conflits de mémoire. le serveur de base de données.

Répertoires: Cinq paramètres d'intérêt couvrent ceci: DataDir, AllowedBrowsingFolders, BackupDir, LogDir et TempDir. DataDir et AllowedBrowsingFolders sont les plus importants.

  • AllowedBrowsingFolders affecte la liste des dossiers dans lesquels le serveur OLAP placera ses fichiers de données. Tout ce qui possède une interface utilisateur (par exemple, l'assistant de déploiement) restreindra vos options à la liste de AllowedBrowsingFolders. La valeur est une liste de répertoires délimitée par un tuyau ('|').

  • DataDir est le chemin par défaut pour les fichiers. Si vous envisagez de partitionner le cube sur plusieurs volumes, vous devez configurer AllowedBrowsingFolders de manière appropriée.

  • LogDir est l' emplacement où le serveur place divers fichiers journaux, notamment l'enregistreur de vol et les journaux de requête. Le journal de bord de l’enregistreur de vol est utilisé pour le dépannage et le journal de requête OLAP est utilisé pour l’optimisation basée sur l’utilisation (nous en parlerons plus tard).

  • TempDir est un emplacement pour les fichiers temporaires créés par SSAS lors du traitement. Si vous traitez des volumes de données volumineux et que vous rencontrez des problèmes de performances, vous pouvez en tirer le décalage sur un autre volume à partir des données.

  • BackupDir est ce qu'il dit sur l'étain.

Divers: Quelques paramètres divers peuvent également être intéressants. Quelques ensembles que vous devrez peut-être modifier sont les suivants:

  • DefaultMaxDrillthroughRows: Ceci limite la taille des ensembles de lignes d'extraction. Vous devrez peut-être jouer avec cela pour en permettre plus.

  • Threads / Timeouts: Vous devrez peut-être les ajuster. Je n'ai jamais eu à m'en soucier.

Ce sont les bases. Vous devrez peut-être modifier les autres pour des raisons spécifiques, mais vous pouvez faire vos devoirs à ce sujet.

Vous trouverez un guide de référence pour les propriétés du serveur SSAS ici.

Opérations

Déploiement: vous pouvez compiler un projet dans BIDS et obtenir un ensemble de fichiers pouvant être déployés à l'aide de l' assistant de déploiement. Vous devrez peut-être ajuster les chemins de fichiers pour les partitions et quelques autres choses.

Tâches administratives programmées et par lots: les commandes sont émises vers SSAS via une API de service Web appelée XML / A. Microsoft fournit un outil interactif pour l’émission de connands MDX et XML / A. Si vous devez incorporer MDX dans une commande XML / A, faites attention à la nécessité d'utiliser des échappements XML tels que &. Ce n'est pas un problème avec l'éditeur MDX et l'outil de requête dans SSMS.

Les tâches hors connexion peuvent être effectuées via diverses tâches de traitement de cube SSIS, un utilitaire de ligne de commande appelé ascmd.exeou une API .Net appelée AMO. Vous pouvez également obtenir divers outils Powershell et autres. ascmd.exeprend un fichier XML / A et le publie sur le serveur. Si vous devez décomposer le fichier par programme, vous feriez mieux de travailler avec de petits outils .Net plutôt que d'essayer de manipuler des fichiers XML à partir d'un script .cmd.

Le guide des opérations va plus en détail.

Sécurité

La sécurité sur SSAS est assez simpliste. Il a un rôle «serveur» global qui dispose d'autorisations administratives sur l'ensemble du système. Malheureusement, vous avez besoin de «Serveur» pour créer des bases de données. Il est donc fort probable que vous deviez l’accorder aux développeurs sur tous les serveurs de développement OLAP que vous avez.

Une autre sécurité ne peut être appliquée qu'à des schémas de cube individuels. Vous pouvez accorder des autorisations de lecture, de traitement, d'extraction au détail, d'écriture en écriture, etc., sur des éléments individuels, aux rôles d'un schéma. Les rôles sur les schémas OLAP peuvent être définis dans BIDS et sont déployés avec le cube. Les groupes AD ou les utilisateurs peuvent être affectés à ces rôles via SSMS.

Un exemple de la gestion par programme de l’appartenance à un rôle peut être vu ici.

Optimisation basée sur l'utilisation

En tant qu'administrateur de base de données, vous pouvez vous impliquer dans cette tâche, mais dans un premier temps, un petit document d’information sur le stockage physique. SSAS fonctionne en calculant et en conservant des agrégats prédéfinis avec les données de base. Si une requête peut être satisfaite en frappant un agrégat, le serveur OLAP l'utilisera de préférence aux données de base, car l'agrégat impliquera beaucoup moins d'E / S et par conséquent, il sera plus rapide de récupérer les données.

Cependant, vous devez déterminer les agrégats à calculer (c.-à-d. Les combinaisons d'attributs de dimension pour lesquels générer des cumuls). BIDS a un outil qui va deviner ça et en générer pour vous. Certains outils, tels que l’ aide de BIDS, vous permettront également d’éditer manuellement les agrégats.

L'optimisation basée sur l'utilisation fonctionne en prenant un journal des requêtes émises sur le serveur, puis en utilisant ce journal pour élaborer un ensemble d'agrégats qui serait optimal pour ces requêtes. En tant qu'administrateur de base de données, vous pouvez configurer la journalisation des requêtes OLAP pour capturer ces données, puis exécuter l'optimisation sur le cube. Vous trouverez un texte de synthèse sur la configuration du journal de requête ici.

Cet outil s'appelle "Assistant d'optimisation basé sur l'utilisation". Cela se trouve dans SSMS et peut être trouvé en ouvrant la partition dans l'explorateur et en sélectionnant «Optimisation basée sur l'utilisation» dans le menu contextuel.

Le guide de performance explique plus en détail le réglage.

MDX

MDX ressemble un peu à SQL mais fonctionne très différemment. Un traité sur 'MDX for SQL programmers' est un sujet à part entière. Je suggère de lire certains tutoriels et / ou d’obtenir un livre à ce sujet. De plus, les personnes amicales de dba.se peuvent vous aider si vous en avez.

MDX n'a ​​pas de concept de filtrage des lignes. La langue dispose d'un grand nombre d'opérations définies pour déterminer les éléments à afficher sur les différents axes de la requête 1 , plus "SELECT". Vous pouvez utiliser des withinstructions qui ressemblent un peu aux CTE pour définir des mesures et des ensembles.

Certaines ressources de programmation MDX d’introduction peuvent être trouvées ici et ici (celle-ci est assez ancienne et très longue). Il existe également quelques bons livres sur le sujet; cette question SO a un peu de fan-out aux ressources SSAS.

1 Bien qu'il y ait des opérateurs non vides qui limitent les résultats aux combinaisons contenant des données. La plupart des requêtes MDX consistent à définir les tranches à afficher sur les axes. Des opérateurs non vides seront nécessaires pour éviter que les requêtes ne renvoient des quantités de niveau combinatoire de cellules vides.

Préoccupé parTonbridgeWells
la source
5
Excellentes informations, en particulier les conseils "vous pouvez définir des options qui vont casser le serveur au démarrage".
SqlACID
C'est une réponse formidable! Merci mec!
Marian
6

Vous trouverez peut-être certaines des réponses concernant l'administration SSAS dans ce long livre blanc, Guide d'exploitation de SQL Server 2008 R2 Analysis Services . Voici comment commence l'introduction:

Dans ce guide, vous trouverez des informations sur la façon de tester et d'exécuter Microsoft SQL Server Analysis Services dans SQL Server 2005, SQL Server 2008 et SQL Server 2008 R2 dans un environnement de production. Ce guide a pour objectif de vous permettre de tester, surveiller, diagnostiquer et éliminer les problèmes de production, même pour les cubes les plus grands. Ce document explique également comment configurer le serveur pour obtenir les meilleures performances possibles.

Clairement, il est destiné aux administrateurs de base de données et aux administrateurs. Si vous développez également des applications à l'aide de SSAS, vous pouvez également consulter le livre blanc du Guide de performances d'Analysis Services 2008.

DaniSQL
la source
Merci, DaniSQL. J'ai également trouvé ce document, et je devrais probablement l'avoir mentionné sur la question (désolé!), Mais je cherchais une introduction plus douce sur le sujet et des opinions fondées sur l'expérience de nos collègues administrateurs de bases de données ici.
ivanmp
2
Je ne peux pas parler d'expérience, car je ne travaille pas directement sur SSAS moi-même :-( J'essaie simplement de me familiariser en parcourant certaines parties du livre blanc que j'ai mentionné ci-dessus et j'ai également suivi une formation de deux jours sur Pragmatic Works quelques mois plus tard. retournez et lisez le livre amzn.to/za1ypP rédigé par les formateurs.Vous trouverez également une introduction très élémentaire au chapitre 17 de ce livre - Début, Microsoft® SQL Server® 2008 Administration ( amzn.to/xnKAWw )
DaniSQL