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.ini
avant 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.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 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 with
instructions 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.