mardi 16 novembre 2010

Extraire votre script XMLA de création de base SSAS en AMO

On m’a demandé il n’y a pas longtemps s’il était possible de récupérer le script de création d’une base AS. Bien entendu, Managment Studio permet de le faire simplement. Mais dans le cas qui nous intéresse, le script de création devait être récupéré lors des backups, donc de manière automatisée.
Pour cela, il y a des classes en AMO qui permettent de le faire assez facilement. Un code du genre de celui-ci-dessous vous en donne un exemple :


  srv.Connect("MonServeur\MonInstanceAS");
  Database db = srv.Databases.FindByName("MaBaseAS");
  Scripter scripter = new Scripter();
  System.Xml.XmlTextWriter xmlWriter = new System.Xml.XmlTextWriter("C:\\MonScript.xml", Encoding.UTF8);
  Scripter.WriteCreate (xmlWriter ,srv,db,true, true);
  xmlWriter.Close(); 



Les deux derniers paramètres de la méthode WriteCreate de votre Scripter sont :
  • fullExpanded : 
               - false :le script ne contriendra que la création de la base
               - true : il incluera tous les objets de votre base (dimensions, cubes, etc.)
    • allowOverwrite :
                     - false : lors de l’exécution du script, si la base existe, elle ne sera pas écrasée
                     - true : c’est l’inverse

        L’objet Scripter possède bien d’autres méthodes que vous pouvez retrouver sur le net ou dans le livre MS SQL Server Analysis Services Unleashed.
        Si jamais il y en a qui aime se prendre la tête, vous pouvez aussi « parser » le résultat d’une requête XMLA comme DISCOVER_XML_METADATA qui contient lui aussi toute la description de votre base (je dis ça parce que c’est ce que je cherchais à faire au début).

        Source :
        MS SQL Server Analysis Services Unleashed (chapitre 34, p 694)

        Aucun commentaire:

        Enregistrer un commentaire