IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSAS Discussion :

[SSAS] [2K5] Comment déployer un cube sur une base de donnée différente de celle par défaut ?


Sujet :

SSAS

  1. #1
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut [SSAS] [2K5] Comment déployer un cube sur une base de donnée différente de celle par défaut ?
    Salut tout le monde,

    J'ai crée une solution avec SQL Server BI Development Studio qui s'appelle MySolution et sous cette solution j'ai crée un cube MyCube. Selon ce que j'ai remarqué, quand je fais le déploiment de la solution, SSAS crée une base de donnée qui porte le même nom que la solution.

    Ma question est :
    Comment ajouter le cube que j'ai crée MyCube à une base de donnée existante ExistingSolution qui existe déja sous mon SSAS( Cette base de donnée a ses propres cubes avec les dimensions etc ...).

    Si on suppose que ExistingSolution dispose de Cube1,Cube2 et toto.dim, titi.dim, tata.dim, que MyCube a deux dimensions dim1.dim et dim2.dim.
    J'aimerai voir sous la bd ExistingSolution le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    - Cube
       +Cube1
       +Cube2
       +MyCube
    ...
    - Dimensions
       +toto
       +titi
       +tata
       +dim1
       +dim2
    ..
    Pour première tentative, j'ai essayé de changer le nom de la base de déploiment dans les propriétés de la solution MySolution de:
    MySolution vers ExistingSolution , mais j'ai remarqué que l'opération a écrasé les cubes existants sous ExistingSolution , leurs dimensions , tout .. et m'a mis seulement MyCube, alors que ce que j'ai voulu faire est de rajouter MyCube à la liste des cubes existants !

    Merci d'avance pour vos réponses

  2. #2
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Clic droit sur ton projet SSAS puis propriétés. Ensuite Deployement puis remplir la propriété DataBase.
    Faire attention à ce moment de déployer les dimensions et les cubes plutôt que le projet entier.
    Alexandre Chemla - Consultant MS BI chez Masao

  3. #3
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par Jinroh77 Voir le message
    Clic droit sur ton projet SSAS puis propriétés. Ensuite Deployement puis remplir la propriété DataBase.
    Faire attention à ce moment de déployer les dimensions et les cubes plutôt que le projet entier.
    Dans les propriétés je trouve les options suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    -Cible
       Serveur : localhost
       Base de données: MySolution
    -Options
       Options de traitement: {Par défaut,Complet, Ne pas traiter}
       Déploiement transactionel:  {False,True}
       Mode de déploiement: {Déployer uniquement ce qui a changé,Déployer tout}
    Y'a pas un truc genre déployeer dimensions + cube seulement ...
    Je vois pas comment je vais faire ce que tu m'as dit.

    Alors quand je met la config suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    -Cible
       Serveur : localhost
       Base de données: ExistingSolution
    -Options
       Options de traitement: Par défaut
       Déploiement transactionel:  False
       Mode de déploiement: Déployer uniquement ce qui a changé
    et même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    -Cible
       Serveur : localhost
       Base de données: ExistingSolution
    -Options
       Options de traitement: Par défaut
       Déploiement transactionel:  False
       Mode de déploiement: Déployer tout
    l'assistant me dit que "la base ExistingSolution existe déja et qu'elle va être remplacée, est ce que vous voulez la remplacer ?"

    Merci de m'expliquer un peu plus comment je dois procéder

  4. #4
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Vous développez directement sur le serveur sur lequel est installé l'instance SSAS ? (en relation avec le localhost)
    Sinon pour déployer uniquement les dimensions puis le cube qui va bien :
    Dans votre explorateur de solution, sélectionnez toute les dimensions puis clic droit et Process... faire de même pour le cube à déployer.
    Alexandre Chemla - Consultant MS BI chez Masao

  5. #5
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par Jinroh77 Voir le message
    Vous développez directement sur le serveur sur lequel est installé l'instance SSAS ? (en relation avec le localhost)
    Oui, sur le même serveur.

    Sinon pour déployer uniquement les dimensions puis le cube qui va bien :
    Dans votre explorateur de solution, sélectionnez toute les dimensions puis clic droit et Process... faire de même pour le cube à déployer.
    Je l'ai faite cette manip mais ça m'a écrasé l'ancienne base

  6. #6
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Vu que je veux obtenir un fichier qui, après son exécution, va intégrer le cube dans la base ExistingSolution. J'aimerai bien laisser la méthode de déploiment avec visual studio à côté pour le moment( en prévoyant d'y revenir bientôt) et prendre une autre voie qui consiste à préparer un fichier de déploiment que je peux donner à un utilisateur qui n'a pas SQL Server Business Intelligence Development Studio et qui dispose seulement de SSAS.

    J'ai pu intégrer le cube en procédant de la façon suivante, J'utilise SSAS pour générer une requête dans un fichier .xmla de chaque composant du cube:

    View.xmla (ça crée une deuxième vue à côté de l'ancienne vue de la base ExistingSolution)
    dim1.xmla ( crée la dimension dim1 à côté des dimensions déja existantes dans la base ExistingSolution)
    dim2.xmla (crée la dimension dim2 à côté des dimensions déja existantes dans la base ExistingSolution)
    MyCube.xmla (crée le cube MyCube à côté des Cube déja existants dans la base ExistingSolution)

    Voici le contenu de chaque fichier .xmla (après modification du DatabaseID de MySolution vers ExistingSolution )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
            <DatabaseID>ExistingSolution</DatabaseID>
    </ParentObject>
     <ObjectDefinition>
    .....<!--Définition de la vue ou de la dimension ... -->
     </ObjectDefinition>
    </Create>
    Quand j'exécute ces fichiers en séquence, ça me crée tout ce qu'il me faut pour le cube dans la base ExistingSolution.

    Sauf que je veux mettre le tout dans un seul fichier de déploiment Query.xmla

    Alors j'ai fait plusieurs manip pour arriver à ça mais ça me génère toujours une erreur:

    1) je mets le contenu des deux fichiers xmla en séquence:
    => Erreur
    L'élément*«*Create*», ligne*452, colonne*74 (espace de noms*«*http://schemas.microsoft.com/analysi.../2003/engine*») apparaît plus d'une fois dans*Envelope/Body/Execute/Command.
    2) j'essai de mettre un seul Create
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
            <DatabaseID>ExistingSolution</DatabaseID>
    </ParentObject>
     <ObjectDefinition>
    .....<!--Définition de la vue  -->
     </ObjectDefinition>
     
    <ParentObject>
            <DatabaseID>ExistingSolution</DatabaseID>
    </ParentObject>
    <ObjectDefinition>
    .....<!--Définition de la dimension ... -->
     </ObjectDefinition>
    </Create>
    => Erreur:
    L'élément*«*ParentObject*», ligne*453, colonne*16 (espace de noms*«*http://schemas.microsoft.com/analysi.../2003/engine*») apparaît plus d'une fois dans*Envelope/Body/Execute/Command/Create.
    3) j'essai de mettre un seul ParentObject
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
            <DatabaseID>ExistingSolution</DatabaseID>
    </ParentObject>
     <ObjectDefinition>
    .....<!--Définition de la vue  -->
     </ObjectDefinition>
    <ObjectDefinition>
    .....<!--Définition de la dimension ... -->
     </ObjectDefinition>
    </Create>
    => Erreur:
    L'élément*«*ObjectDefinition*», ligne*454, colonne*20 (espace de noms*«*http://schemas.microsoft.com/analysi.../2003/engine*») apparaît plus d'une fois dans*Envelope/Body/Execute/Command/Create.
    4) j'essai de mettre un seul ObjectDefinition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
            <DatabaseID>ExistingSolution</DatabaseID>
    </ParentObject>
     <ObjectDefinition>
    .....<!--Définition de la vue  -->
     
    .....<!--Définition de la dimension ... -->
     </ObjectDefinition>
    </Create>
    => Erreur:
    L'élément*«*Dimension*», ligne*454, colonne*264 (espace de noms*«*http://schemas.microsoft.com/analysi.../2003/engine*») ne peut pas apparaître dans*Envelope/Body/Execute/Command/Create/ObjectDefinition, car le parent contient déjà un élément enfant*«**».
    Mais là, ça a l'air de ne pas finir les erreus et je sais pas comment continuer

    Merci pour vos réponses.

  7. #7
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut Solution
    Voilà j'ai trouvé la solution et je vais la présenter pour que ça puisse aider ceux qui voudront faire la même chose que moi prochainement.

    Il suffit de prendre les balises Create à partir des requêtes CREATE To de chaque élément à créer :

    View,dim1,dim2 et MyCube et les mettre en séquence dans une balise <Batch></Batch>
    Voici la doc de la balise XMLA Batch http://msdn.microsoft.com/fr-fr/library/ms186692.aspx

    On aura vers la fin une requête qui a la squelette suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <!--Suite de commandes de création du cube et de ses dimensions-->
    <Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" Transaction="true" >
      <!--Création de la vue de données View-->
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">....</Create>
    <!--Création de la dimension dim1-->
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">....</Create>
    <!--Création de la dimension dim2-->
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">....</Create>
    <!--Création du cube MyCube-->
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">....</Create>
    </Batch>
    et dans ce cas on peut exécuter plusieurs commandes Create en séquence sans avoir de problème.

    Attention: Pour créer un cube, on doit créer dans l'ordre :

    1)La vue de données
    2)Les dimensions
    3)Le cube

    Bon courage à tous.

  8. #8
    Membre habitué Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 158
    Points
    158
    Par défaut
    Il n'était pas possible de travailler sur la solution d'ExistingCube ?
    "si tu n'as pas de réponse à ton pblm... c'est qu'il n'y a pas de pblm... "

  9. #9
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par stephane.net Voir le message
    Il n'était pas possible de travailler sur la solution d'ExistingCube ?
    Non, cette solution ne m'appartient pas et j'ai pas le projet pour le modifier et ajouter mon cube. Elle est livrée sous forme d'un installerDB.msi.

    Donc il m'a fallu procéder de cette façon.

  10. #10
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Je viens finalement de tomber sur le même problème

    Pour alimenter mon cube, je crée à la volée des partitions que j'alimente ensuite en mode push.
    Au moment où j'ai voulu déployer un nouveau cube dans cette même base, j'ai perdu l'ensemble des données de mon précédent cube...
    Alexandre Chemla - Consultant MS BI chez Masao

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment filtrer un cube sur une période ?
    Par aolliet dans le forum Mondrian
    Réponses: 2
    Dernier message: 12/06/2012, 11h26
  2. Réponses: 1
    Dernier message: 08/07/2008, 16h29
  3. Réponses: 4
    Dernier message: 06/06/2008, 09h45
  4. comment on peut travailler sur une base oracle
    Par Bourak dans le forum Oracle
    Réponses: 1
    Dernier message: 18/06/2007, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo