web-dev-qa-db-fra.com

Que doit savoir un DBA sur SSAS?

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

Du point de vue de l'administration d'une instance de SQL Server Analysis Services, qu'est-ce qu'un DBA fonctionnel doit savoir sur SSAS pour le gérer correctement et efficacement?

40
ivanmp

Un aperçu rapide de SSAS pour les administrateurs de base de données

Donc, vous êtes un DBA SQL Server et vous venez d'hériter de cubes à l'improviste à gérer. Un cours accéléré rapide sur l'administration SSAS semble être de mise.

D'un point de vue administratif, SSAS est une application assez simple, mais gourmande en ressources. C'est beaucoup plus simple qu'une plate-forme SGBD, bien que différent à plusieurs égards. En outre, il y a quelques tâches administratives telles que l'optimisation basée sur l'utilisation spécifiques à SSAS que vous devrez peut-être faire.

Sauvegardez votre fichier de configuration

Toutes les données de configuration se trouvent dans un fichier appelé msdmsrv.ini. C'est un fichier XML. Si vous bricolez la configuration via SSMS (Connectez-vous au serveur, cliquez avec le bouton droit sur le serveur, sélectionnez les propriétés), vous pouvez définir des options qui interrompent le serveur au démarrage. Prenez une copie de msmdsrv.ini avant de jouer avec quoi que ce soit.

Paramètres importants

Mémoire: SSAS est un porc de mémoire biblique. Il aime les constructions 64 bits si possible et beaucoup de mémoire. Les paramètres 'Memory\LowMemoryLimit' et 'Memory\HighMemoryLimit' contrôlent les politiques d'utilisation de la mémoire. LowMemoryLimit n'est pas une allocation de mémoire minimale. Il s'agit d'un seuil où SSAS considère que le système manque de mémoire et commence à vider les éléments de ses caches. HighMemoryLimit est le maximum absolu qu'il utilisera.

Notez que SSAS stocke ses données dans des fichiers (beaucoup de fichiers - il n'a pas de mécanisme équivalent aux groupes de fichiers), donc il utilise beaucoup la mise en cache du système de fichiers O/S pour ces fichiers. Notez que la valeur par défaut de ces limites est respectivement d'environ 65% et 80% de la mémoire de la machine, donc si vous voulez que le serveur OLAP coexiste avec une instance SQL Server, vous devrez les désactiver). donc il ne se bat pas pour la mémoire avec 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 a une interface utilisateur (par exemple l'assistant de déploiement) restreindra vos options à la liste dans AllowedBrowsingFolders. La valeur est une liste de répertoires séparés par des canaux ('|').

  • DataDir est le chemin par défaut des fichiers. Si vous avez l'intention de partitionner le cube sur plusieurs volumes, vous devrez configurer de manière appropriée les dossiers autorisésBrowsingFolders.

  • LogDir est l'endroit où le serveur place divers fichiers journaux, y compris l'enregistreur de vol et les journaux de requêtes. Le journal 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 (plus d'informations à ce sujet plus tard).

  • TempDir est un emplacement pour les fichiers temporaires que SSAS crée pendant le traitement. Si vous traitez de gros volumes de données et que vous rencontrez des problèmes de performances, il peut être avantageux de les transférer 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 Tweak sont:

  • DefaultMaxDrillthroughRows: Cela 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 à me 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.

Un guide de référence pour les propriétés du serveur SSAS peut être trouvé ici.

Opérations

Déploiement: Vous pouvez compiler un projet dans BIDS et obtenir un ensemble de fichiers qui peuvent être déployés avec assistant de déploiement. Vous peut avoir besoin d'ajuster les chemins d'accès aux fichiers pour les partitions et quelques autres choses.

Tâches d'administration programmées et groupées: Les commandes sont émises vers SSAS via une API de service Web appelée XML/A. Microsoft fournit un outil interactif pour émettre des 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 travaux hors ligne peuvent être effectués via diverses tâches de traitement de cube SSIS, un utilitaire de ligne de commande appelé ascmd.exe ou une API .Net appelée AMO. Vous pouvez également obtenir divers outils PowerShell et autres. ascmd.exe prend un fichier XML/A et le publie sur le serveur. Si vous devez frigorifier le fichier par programmation, 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 aborde cela plus en détail.

Sécurité

La sécurité sur SSAS est assez simpliste. Il a un rôle global de "serveur" qui dispose d'autorisations administratives sur l'ensemble du système. Malheureusement, vous avez besoin de 'Server' pour créer des bases de données, il est donc très probable que vous devrez 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'aux schémas de cube individuels. Vous pouvez accorder des autorisations de lecture, de traitement, d'extraction, de réécriture et autres sur des éléments individuels à des rôles dans un schéma. Les rôles sur OLAP peuvent être définis dans BIDS et sont déployés avec le cube. Des groupes AD ou des utilisateurs peuvent être affectés à ces rôles via SSMS.

Un exemple de la façon de gérer par programme l'appartenance à un rôle peut être vu ici.

Optimisation basée sur l'utilisation

En tant que DBA, vous pourriez bien vous impliquer dans celui-ci, mais d'abord un petit document d'information sur le stockage physique. SSAS fonctionne en calculant et en conservant les agrégats prédéfinis avec les données de base. Si une requête peut être satisfaite en touchant 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'est-à-dire les combinaisons d'attributs de dimension pour lesquelles générer des cumuls). BIDS a un outil qui va deviner cela et en générer pour vous. Certains outils, tels que Aide BIDS , vous permettront également de modifier manuellement les agrégats.

L'optimisation basée sur l'utilisation fonctionne en prenant un journal des requêtes réelles émises vers 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 OLAP journalisation des requêtes pour capturer ces données, puis exécuter l'optimisation sur le cube. Un texte explicatif sur la configuration du journal des requêtes peut être trouvé ici .

L'outil pour ce faire est appelé 'Assistant d'optimisation basé sur l'utilisation.' Cela vit dans SSMS, et peut être trouvé en ouvrant la partition dans l'Explorateur et en sélectionnant 'Optimisation basée sur l'utilisation' du clic droit menu.

Le guide des performances va dans le réglage plus en détail.

[~ # ~] mdx [~ # ~]

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

MDX n'a ​​aucun concept de filtrage des lignes. La langue a beaucoup d'opérations définies pour déterminer ce qu'il faut afficher sur les différents axes de la requête1, plus 'SELECT'. Vous pouvez utiliser des instructions with qui ressemblent un peu aux CTE pour définir des mesures et des ensembles.

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

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

Vous pouvez obtenir certaines des réponses concernant l'administration SSAS à partir de ce long livre blanc SQL Server 2008 R2 Analysis Services Operations Guide . 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. L'objectif de ce guide est de savoir comment tester, surveiller, diagnostiquer et supprimer les problèmes de production, même sur les cubes les plus grands. Ce document fournit également des conseils sur la façon de configurer le serveur pour obtenir les meilleures performances possibles.

Il est clairement destiné aux administrateurs de base de données/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

6
DaniSQL