web-dev-qa-db-fra.com

Comment simplifier le déploiement des SSAS à partir de dev à pro

Voici mon problème: dans ma société, une équipe de développeur crée des cubes, des dimensions (...) dans les SSA dans un environnement de développement (appelons-le SSASDEV). Cet environnement est délimité dans une base de données SQL Server dans Dev (appelons-la SQDEV). Mon travail consiste à déployer leur travail de Dev Environnement à Pro Environment. Cet environnement Pro (SSASPRO) est basé sur une autre base de données SQL Server (SQPRO).

Pour l'instant, l'équipe développeuse script SSAS, envoyez-moi le script XMLA, je dois modifier toutes les règles de sécurité définies et la chaîne de connexion spécifiée dans cette XMLA (règles de sécurité car elle est basée sur différents rôles en fonction de l'environnement et de la chaîne de connexion car de la base de données SQL Server). C'est un travail lourd à faire pour chaque déploiement afin que je souhaite automatiser cela.

Les seuls moyens que j'ai trouvés est

(1) - Pour script le device de device et appliquer le XMLA sur Pro (ce qui est fait maintenant).

(2) - Pour synchroniser les cubes (ce qui signifie, non-traités, réappliquer des règles de sécurité et modifier les connexions).

Je ne peux pas imaginer que je suis le seul dans cette situation dans le monde entier! Est-ce que quelqu'un a un conseil ou un indice pour moi? Est-ce que un autre moyen le plus simple existe et je l'ai manqué? Est-ce que mon organisation stagiaire (différentes bases de données pour chaque environnement) n'est-elle pas logique pour SSAS?

Je travaille avec SSAS 2008R2 et 2012

Merci beaucoup pour vos réponses!

7
el_grom

Je vais vous dire comment nous déployons dans mes projets SSAS entre différents environnements. Nous utilisons un ensemble de scripts PowerShell qui:

Partie 1:

  • obtenez la dernière version du serveur de construction et déployez le fichier pour générer la dernière version de travail de XMLA;
  • prenez le XMLA généré à partir du serveur de construction et copiez-le sur le serveur QA;

Partie 2:

  • Maintenant, sur le serveur QA, nous modifions manuellement le nom du serveur, le nom de la base de données (définir comme paramètres sur le script PS), nous vérifions que tous les scripts requis sont là;
  • un script PS exécute le XMLA résulté sur le serveur QA actuel. La base de données SSAS est donc créée (non traitée);
  • un script XMLA qui commande le processus complet du cube et de ses dimensions;

Toutes ces étapes sont effectuées aussi automatiquement que possible, avec aussi peu d'intervention du gars du développeur/QA que possible. Nous faisons, cependant, insérez des regards entre les yeux, juste pour garder notre esprit en sécurité. Je ne dirai pas que c'est le meilleur, mais ça marche et obtient le travail. Avant la dernière étape, je suis sûr que vous pouvez insérer n'importe quel script XMLA pour supprimer les rôles existants et créer de nouveaux. Et pour modifier un script PS pour exécuter un nouveau script SQL ou XMLA n'est pas du tout difficile. Je suppose que les rôles et les autorisations ne changent pas beaucoup de choses, afin qu'ils puissent être scripts et réutilisés.

PS: Il s'agit d'un environnement avec les utilisateurs de domaine et des serveurs fixes (afin que nous puissions utiliser des actions, des comptes de domaine et tout ce pourvoir). Si vous avez un autre environnement, il pourrait être plus difficile de le faire.

2
Marian

Son été quelques années, mais je crois que c'est ce que nous avons travaillé dans mon ancienne position.

En commençant par une base de données en tant que rôles, mais aucun rôle de rôle, générer les scripts pour ajouter les membres et les enregistrer sous forme de fichier XML distinct. En outre, s'il y a des membres qui doivent être supprimés, Script qui comme un fichier séparé aussi.

Lors de la migration de la base de données comme une nouvelle instance, ces scripts d'autorisations sont exécutés après la fin de la base de données principale. Vous pouvez les exécuter avec PowerShell ou SSIS pour vous déplacer vers des déploiements automatiques.

Pour l'automatiser davantage, vous pouvez scripter chaque autorisation individuelle et créer quelques tables de base de données SQL contenant la relation entre les bases de données et les autorisations et les emplacements de script. Ensuite, utilisez PowerShell ou SSIS pour appliquer programmablement les autorisations à la base de données en tant que base de données dans le cadre du processus de déploiement.

En résumé, les rôles que vous créez peuvent persister dans tous vos environnements (et TFS). Ce sont simplement les membres des rôles qui doivent être modifiés entre les environnements, qui peuvent être traités avec des scripts. La configuration initiale nécessite un certain investissement, mais une fois terminé, cela fonctionne assez lisse.

0
Wes H