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 :

XMLA Processing PushedDataSource et Création de partition, dimension


Sujet :

SSAS

  1. #1
    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 XMLA Processing PushedDataSource et Création de partition, dimension
    Bonjour à tous,
    Dans ems recherches faisant suite à ce topic je mme retrouve à utiliser du XMLA pour manier mes objets SSAS.
    le but étant d'alimenter un cube à partir de données spécifiques, ne provenant pas d'une table, query etc.. Je souhaite décrire les données lignes à lignes.

    Je parviens donc à alimenter une partition :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
      <Command>
        <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
          <Type>ProcessFull</Type>
          <Object xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
            <DatabaseID>BaseCube</DatabaseID>
            <CubeID>FactFinance</CubeID>
            <MeasureGroupID>Fact Finance</MeasureGroupID>
            <PartitionID>Fact Finance</PartitionID>
          </Object>
     
          <Bindings xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     
            <!--Toutes les dimensions-->
            <Binding xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <DatabaseID>BaseCube</DatabaseID>
              <CubeID>FactFinance</CubeID>
              <MeasureGroupID>Fact Finance</MeasureGroupID>
              <CubeDimensionID>Scenario</CubeDimensionID>
              <AttributeID>Scenario Key</AttributeID>
              <KeyColumns>
                <KeyColumn>
                  <Source xsi:type="ColumnBinding">
                    <TableID/>
                    <ColumnID>ScenarioKey</ColumnID>
                  </Source>
                </KeyColumn>
              </KeyColumns>
            </Binding>
     
            <!--Toutes les mesures-->
            <Binding xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <DatabaseID>BaseCube</DatabaseID>
              <CubeID>FactFinance</CubeID>
              <MeasureGroupID>Fact Finance</MeasureGroupID>
              <MeasureID>Amount</MeasureID>
              <Source xsi:type="ColumnBinding">
                <TableID/>
                <ColumnID>Amount</ColumnID>
              </Source>
            </Binding>
     
          </Bindings>
     
          <DataSource xsi:type="PushedDataSource">
            <root Parameter="InputRowset"/>
            <EndOfData Parameter="EndOfInputRowset"/>
          </DataSource>
        </Process>
      </Command>
      <Properties>
      </Properties>
      <Parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-analysis">
        <Parameter>
          <Name>EndOfInputRowset</Name>
          <Value xsi:type="xsd:boolean">true</Value>
        </Parameter>
     
        <Parameter>
          <Name>InputRowset</Name>
          <Value xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:schema targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified">
              <xsd:element name="root">
                <xsd:complexType>
                  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="row" type="row" />
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
              <xsd:complexType name="row">
                <xsd:sequence>
                  <xsd:element sql:field="ScenarioKey" name="ScenarioKey" type="xsd:unsignedInt" minOccurs="0" />
                  <xsd:element sql:field="Amount" name="Amount" type="xsd:double" minOccurs="0" />
                </xsd:sequence>
              </xsd:complexType>
            </xsd:schema>
            <row>
              <ScenarioKey>1</ScenarioKey>
              <Amount>10</Amount>
            </row>
            <row>
              <ScenarioKey>2</ScenarioKey>
              <Amount>20</Amount>
            </row>
          </Value>
        </Parameter>
      </Parameters>
    </Execute>
    Alimenter une dimension :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
      <Command>
        <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
          <Type>ProcessAdd</Type>
          <Object xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
            <DatabaseID>BaseCube</DatabaseID>
            <DimensionID>Scenario</DimensionID>
          </Object>
          <Bindings xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Binding xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <DatabaseID>BaseCube</DatabaseID>
              <DimensionID>Scenario</DimensionID>
              <AttributeID>Scenario Key</AttributeID>
              <KeyColumns>
                <KeyColumn>
                  <Source xsi:type="ColumnBinding">
                    <TableID/>
                    <ColumnID>ScenarioKey</ColumnID>
                  </Source>
                </KeyColumn>
              </KeyColumns>
              <NameColumn>
                <Source xsi:type="ColumnBinding">
                  <TableID/>
                  <ColumnID>ScenarioName</ColumnID>
                </Source>
              </NameColumn>
            </Binding>
          </Bindings>
          <DataSource xsi:type="PushedDataSource">
            <root Parameter="InputRowset"/>
            <EndOfData Parameter="EndOfInputRowset"/>
          </DataSource>
        </Process>
      </Command>
      <Properties>
      </Properties>
      <Parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-analysis">
        <Parameter>
          <Name>EndOfInputRowset</Name>
          <Value xsi:type="xsd:boolean">true</Value>
        </Parameter>
        <Parameter>
          <Name>InputRowset</Name>
          <Value xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:schema targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified">
              <xsd:element name="root">
                <xsd:complexType>
                  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="row" type="row" />
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
              <xsd:complexType name="row">
                <xsd:sequence>
                  <xsd:element sql:field="ScenarioKey" name="ScenarioKey" type="xsd:unsignedInt" minOccurs="0" />
                  <xsd:element sql:field="ScenarioName" name="ScenarioName" type="xsd:string" minOccurs="0" />
                </xsd:sequence>
              </xsd:complexType>
            </xsd:schema>
            <row>
              <ScenarioKey>3</ScenarioKey>
              <ScenarioName>Name3</ScenarioName>
            </row>
            <row>
              <ScenarioKey>4</ScenarioKey>
              <ScenarioName>Name4</ScenarioName>
            </row>
          </Value>
        </Parameter>
      </Parameters>
    </Execute>
    Maintenant je cherche, à partir d'un cube qui existe déjà, à créer une nouvelle partition en définissant tous ces champs.

    J'ai pour le moment le script pour créer cette partition en mode Query, mais parlant assez mal le XMLA, je en parviens à définir maintenant la liste de mes champs.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <Alter AllowCreate="true" ObjectExpansion="ObjectProperties" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <Object>
        <DatabaseID>BaseCube</DatabaseID>
        <CubeID>FactFinance</CubeID>
        <MeasureGroupID>Fact Finance</MeasureGroupID>
        <PartitionID>Fact Finance 1</PartitionID>
      </Object>
      <ObjectDefinition>
        <Partition xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100">
          <ID>Fact Finance 1</ID>
          <Name>Fact Finance 1</Name>
     
          <Source xsi:type="QueryBinding">
     
            <DataSourceID>AdventureWorksDW2008</DataSourceID>
            <QueryDefinition>
              SELECT [dbo].[FactFinance].[FinanceKey],[dbo].[FactFinance].[DateKey],[dbo].[FactFinance].[OrganizationKey],[dbo].[FactFinance].[DepartmentGroupKey],[dbo].[FactFinance].[ScenarioKey],[dbo].[FactFinance].[AccountKey],[dbo].[FactFinance].[Amount]
              FROM [dbo].[FactFinance]
            </QueryDefinition>
     
     
          </Source>
     
          <StorageMode>Molap</StorageMode>
          <ProcessingMode>Regular</ProcessingMode>
        </Partition>
      </ObjectDefinition>
    </Alter>
    Merci pour vos idées
    Alexandre Chemla - Consultant MS BI chez Masao

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Si tu jettes un coup d'oeil au ProcessingGuide de SSAS (http://msdn.microsoft.com/en-us/libr...2(SQL.90).aspx) tu verras un truc sympa: ce que fait SSIS lorsqu'il envoie un Partition Processing depuis un flux de données.
    C'est dans la Commande Process que ça se passe Et après tu passes ton inputRowset comme dans tes exemples.
    François JEHL
    BI Engineer | MVP SQL Server
    http://fjehl.wordpress.com
    Pour me contacter, par MP ou ici, mais pas pour des questions techniques.

    /*
    Avant de poster cherchez dans la FAQ et utilisez la fonction "Rechercher" du forum.
    Au moment de poster, posez votre question dans le bon sous-forum (Débuter, SSAS, SSRS, SSIS), en utilisant les TAGs prédéfinis ([2K], [2K5], [2K8], [2K8R2]).
    */

  3. #3
    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
    J'ai regardé ce genre de chose et c'est en partie avec cela que j'ai récupéré les commandes d'alimentation.
    par contre pour la création de la partition, depuis BIDS, la seule possibilité étant un TableBinding ou QueryBinding, même en regardant le profiler et ce qui y passe, je n'ai que cette structure.
    Il n'est pas possible via un GUI de créer une partition autre chose que sur ces choses là.
    Alexandre Chemla - Consultant MS BI chez Masao

  4. #4
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Et si tu la crées sans binding?
    Tu insères tes records après (c'est je crois ce que fait SSIS).

    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
    17
    18
    19
    20
    21
    22
    <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
      <ParentObject>
        <DatabaseID>Adventure Works DW</DatabaseID>
        <CubeID>Adventure Works DW</CubeID>
        <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
      </ParentObject>
      <ObjectDefinition>
        <Partition xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100">
          <ID>Fact Internet Sales</ID>
          <Name>Fact Internet Sales</Name>
          <StorageMode>Molap</StorageMode>
          <ProcessingMode>Regular</ProcessingMode>
          <ProactiveCaching>
            <SilenceInterval>-PT1S</SilenceInterval>
            <Latency>-PT1S</Latency>
            <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
            <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
            <Source xsi:type="ProactiveCachingInheritedBinding" />
          </ProactiveCaching>
        </Partition>
      </ObjectDefinition>
    </Create>
    François JEHL
    BI Engineer | MVP SQL Server
    http://fjehl.wordpress.com
    Pour me contacter, par MP ou ici, mais pas pour des questions techniques.

    /*
    Avant de poster cherchez dans la FAQ et utilisez la fonction "Rechercher" du forum.
    Au moment de poster, posez votre question dans le bon sous-forum (Débuter, SSAS, SSRS, SSIS), en utilisant les TAGs prédéfinis ([2K], [2K5], [2K8], [2K8R2]).
    */

  5. #5
    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
    Extra, ça fonctionne
    J'étais persuadé qu'il avait besoin de la structure pour créer une partition...
    Comme cela, on génère donc des partition complètement déstructurée qui se compose lorsque l'on injecte des données.
    C'est exactement ce dont j'avais besoin.
    Alexandre Chemla - Consultant MS BI chez Masao

  6. #6
    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
    Reste maintenant à essayer les dimensions et toutes les propriétés qui vont avec.
    Alexandre Chemla - Consultant MS BI chez Masao

  7. #7
    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
    Ça parait bête, mais je ne parviens à exécuter mon XMLA depuis un tâche DDL dans SSIS alors qu'il passe très bien depuis SSMS

    Ça sent l'erreur de syntaxe ou d'une balise qui ne devrait pas être présente.
    Alexandre Chemla - Consultant MS BI chez Masao

  8. #8
    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
    Le XMLA de création de partition fonctionne bien ais lorsque j'essaye de lance le process en pushMode en COlumnBinding, je ne vois même pas la command arriver à travers le profiler et je reçois l'erreur suivante :
    L'élément*Execute ligne*7, colonne*77 (espace de noms*urn:schemas-microsoft-comml-analysis) ne peut pas apparaître dans*Envelope/Body/Execute/Command.
    Alors qu'exactement le même script passe depuis SSMS.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
      <Command>
        <Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
          <Type>ProcessFull</Type>
          <Object xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
            <DatabaseID>BaseCube</DatabaseID>
            <CubeID>FactFinance</CubeID>
            <MeasureGroupID>Fact Finance</MeasureGroupID>
            <PartitionID>Fact Finance</PartitionID>
          </Object>
     
          <Bindings xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     
            <!--Toutes les dimensions-->
            <Binding xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <DatabaseID>BaseCube</DatabaseID>
              <CubeID>FactFinance</CubeID>
              <MeasureGroupID>Fact Finance</MeasureGroupID>
              <CubeDimensionID>Scenario</CubeDimensionID>
              <AttributeID>Scenario Key</AttributeID>
              <KeyColumns>
                <KeyColumn>
                  <Source xsi:type="ColumnBinding">
                    <TableID/>
                    <ColumnID>ScenarioKey</ColumnID>
                  </Source>
                </KeyColumn>
              </KeyColumns>
            </Binding>
     
            <!--Toutes les mesures-->
            <Binding xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <DatabaseID>BaseCube</DatabaseID>
              <CubeID>FactFinance</CubeID>
              <MeasureGroupID>Fact Finance</MeasureGroupID>
              <MeasureID>Amount</MeasureID>
              <Source xsi:type="ColumnBinding">
                <TableID/>
                <ColumnID>Amount</ColumnID>
              </Source>
            </Binding>
     
          </Bindings>
     
          <DataSource xsi:type="PushedDataSource">
            <root Parameter="InputRowset"/>
            <EndOfData Parameter="EndOfInputRowset"/>
          </DataSource>
        </Process>
      </Command>
      <Properties>
      </Properties>
      <Parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-analysis">
        <Parameter>
          <Name>EndOfInputRowset</Name>
          <Value xsi:type="xsd:boolean">true</Value>
        </Parameter>
     
        <Parameter>
          <Name>InputRowset</Name>
          <Value xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:schema targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified">
              <xsd:element name="root">
                <xsd:complexType>
                  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="row" type="row" />
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
              <xsd:complexType name="row">
                <xsd:sequence>
                  <xsd:element sql:field="ScenarioKey" name="ScenarioKey" type="xsd:unsignedInt" minOccurs="0" />
                  <xsd:element sql:field="Amount" name="Amount" type="xsd:double" minOccurs="0" />
                </xsd:sequence>
              </xsd:complexType>
            </xsd:schema>
            <row>
              <ScenarioKey>3</ScenarioKey>
              <Amount>30</Amount>
            </row>
            <row>
              <ScenarioKey>4</ScenarioKey>
              <Amount>40</Amount>
            </row>
          </Value>
        </Parameter>
      </Parameters>
    </Execute>
    Alexandre Chemla - Consultant MS BI chez Masao

  9. #9
    Membre actif
    Inscrit en
    Janvier 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2009
    Messages : 198
    Points : 244
    Points
    244
    Par défaut
    Bonjour,

    et avec quelque chose comme ça ?

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
      <Command>
        <Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
          <Parallel>
            <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <Type>ProcessFull</Type>
              <Object xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
                <DatabaseID>BaseCube</DatabaseID>
                <CubeID>FactFinance</CubeID>
                <MeasureGroupID>Fact Finance</MeasureGroupID>
                <PartitionID>Fact Finance</PartitionID>
              </Object>
     
              <Bindings xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     
                <!--Toutes les dimensions-->
                <Binding xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                  <DatabaseID>BaseCube</DatabaseID>
                  <CubeID>FactFinance</CubeID>
                  <MeasureGroupID>Fact Finance</MeasureGroupID>
                  <CubeDimensionID>Scenario</CubeDimensionID>
                  <AttributeID>Scenario Key</AttributeID>
                  <KeyColumns>
                    <KeyColumn>
                      <Source xsi:type="ColumnBinding">
                        <TableID/>
                        <ColumnID>ScenarioKey</ColumnID>
                      </Source>
                    </KeyColumn>
                  </KeyColumns>
                </Binding>
     
                <!--Toutes les mesures-->
                <Binding xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                  <DatabaseID>BaseCube</DatabaseID>
                  <CubeID>FactFinance</CubeID>
                  <MeasureGroupID>Fact Finance</MeasureGroupID>
                  <MeasureID>Amount</MeasureID>
                  <Source xsi:type="ColumnBinding">
                    <TableID/>
                    <ColumnID>Amount</ColumnID>
                  </Source>
                </Binding>
     
              </Bindings>
     
              <DataSource xsi:type="PushedDataSource">
                <root Parameter="InputRowset"/>
                <EndOfData Parameter="EndOfInputRowset"/>
              </DataSource>
              <Properties>
              </Properties>
            </Process>
          </Parallel>
        </Batch>
      </Command>
     
      <Parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-analysis">
        <Parameter>
          <Name>EndOfInputRowset</Name>
          <Value xsi:type="xsd:boolean">true</Value>
        </Parameter>
     
        <Parameter>
          <Name>InputRowset</Name>
          <Value xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:schema targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified">
              <xsd:element name="root">
                <xsd:complexType>
                  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="row" type="row" />
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
              <xsd:complexType name="row">
                <xsd:sequence>
                  <xsd:element sql:FIELD="ScenarioKey" name="ScenarioKey" type="xsd:unsignedInt" minOccurs="0" />
                  <xsd:element sql:FIELD="Amount" name="Amount" type="xsd:double" minOccurs="0" />
                </xsd:sequence>
              </xsd:complexType>
            </xsd:schema>
            <row>
              <ScenarioKey>3</ScenarioKey>
              <Amount>30</Amount>
            </row>
            <row>
              <ScenarioKey>4</ScenarioKey>
              <Amount>40</Amount>
            </row>
          </Value>
        </Parameter>
      </Parameters>
    </Execute>

    Alexis Molteni

  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
    Merci mais pas passé non plus..
    J'ai l'impression qu'il n'aime pas les données en paramètre
    Alexandre Chemla - Consultant MS BI chez Masao

  11. #11
    Membre actif
    Inscrit en
    Janvier 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2009
    Messages : 198
    Points : 244
    Points
    244
    Par défaut
    Tu as le meme message ?

    Alexis

  12. #12
    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
    Oui, la même chose.
    The Execute element at line 7, column 71 (namespace urn:schemas-microsoft-comml-analysis) cannot appear under Envelope/Body/Execute/Command.
    Alexandre Chemla - Consultant MS BI chez Masao

  13. #13
    Membre actif
    Inscrit en
    Janvier 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2009
    Messages : 198
    Points : 244
    Points
    244
    Par défaut
    Pour rappel, tu l'executes avec quoi (comment) ?

    Peux tu faire un test sans les balises <Execute> et </Execute>

    Alexis Molteni

  14. #14
    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
    J'execute ça avec succès depuis SSMS.
    Par contre depuis une tâche d'execution DDL depuis un package ça ne passe pas.

    D'après ce que j'en comprends, la tâche rajoute elle-même les balises <Command>

    Si j'exécute uniquement la partie Process, la syntaxe passe mais dans ce cas, il ne trouve pas les valeurs données en paramètres, ce qui génère une erreur.
    C'est comme si il faudrait remonter d'un niveau d'exécution pour insérer les paramètres.
    Alexandre Chemla - Consultant MS BI chez Masao

  15. #15
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Au pire un ASCmd depuis un ExecuteProcess...
    François JEHL
    BI Engineer | MVP SQL Server
    http://fjehl.wordpress.com
    Pour me contacter, par MP ou ici, mais pas pour des questions techniques.

    /*
    Avant de poster cherchez dans la FAQ et utilisez la fonction "Rechercher" du forum.
    Au moment de poster, posez votre question dans le bon sous-forum (Débuter, SSAS, SSRS, SSIS), en utilisant les TAGs prédéfinis ([2K], [2K5], [2K8], [2K8R2]).
    */

  16. #16
    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
    C'est justement ce que je suis en train d'essayer aujourd'hui.
    Mais ça ne passe pas encore. une sombre erreur (3238920194), un problème de syntaxe visiblement.

    Edit : En fait, ça passe.
    Attention, il ne faut pas mettre en commentaire du texte qui contient une url
    Alexandre Chemla - Consultant MS BI chez Masao

  17. #17
    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 continue dans mes recherches pour des essais sur le processing des partitions via la tâche SSIS.
    Concernant les dimensions pas de problème. Je peux triturer mes données dans SSAS, puis utiliser la tâche de dimension processing, en mode FULL comme on va l'utiliser et tout va bien.

    Par contre, concernant les partitions.
    Si je crée une partition en XMLA via le script que François m'a donné, la partition n'est pas reconnue par la tâche SSIS de processing.
    Seules les partition générées par un script complet (par exemple ceux de BIDS lors du déploiement) se rendent disponible dans la tâche SSIS.

    J'essaye de faire un peu de nettoyage là-dedans, mais je en parviens pas encore à distinguer ce qui rends la partition processable.
    Alexandre Chemla - Consultant MS BI chez Masao

  18. #18
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    A mon humble avis ce qui rend la partition "processable" c'est tout simplement la joignabilité de la source (que l'on ne renseigne pas dans l'idée de l'alimenter en push row-by-row).
    Après dans l'idée tu peux soit créer une partition originellement sur une namedquery bidon dans une DSV, ce qui à mon sens te rendrait la partoche visible dans IS, soit passer en full XMLA en processant avec la DDL task.
    François JEHL
    BI Engineer | MVP SQL Server
    http://fjehl.wordpress.com
    Pour me contacter, par MP ou ici, mais pas pour des questions techniques.

    /*
    Avant de poster cherchez dans la FAQ et utilisez la fonction "Rechercher" du forum.
    Au moment de poster, posez votre question dans le bon sous-forum (Débuter, SSAS, SSRS, SSIS), en utilisant les TAGs prédéfinis ([2K], [2K5], [2K8], [2K8R2]).
    */

  19. #19
    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 continue ma petite histoire de la rencontre de SSIS et SSAS...

    Concernant l'utilisation de la tâche de traitement de partition de SSIS, le composant fournit une liste de nom de partition dans laquelle on choisit celle que l'on souhaite traiter.
    Or à partir de cela, le composant génère sa propriété ObjectRef de l'objet à traiter. Manque de chance, celui-ci utilise, naturellement, l'Id de la partition et non son nom.

    Le problème est que je vais avoir besoin de créer une nouvelle partition quasiment tout les jours. J'aimerai éviter de recréer le composant SSIS et générer tout le XMLA pour envoyer mes données et plutôt utiliser la tâche SSIS.
    Or, si je génère tout les jours une partition, que les propriétés du composant SSIS ne sont pas éditable via des variables, il me faudrait, chaque jour créer une nouvelle partition (AMO ou XMLA) mais avec un nom identique.
    Cela implique donc, tout les jours, de modifier le nom et l'Id de la partition de la veille. Or cela (modifier l'Id) engendre la suppression/re-création de la partition et donc la perte des données qu'elle contient.
    Aucun intérêt.

    N'est-il pas possible de copier les données de la Partition_Courante vers Partition_Old (la créer à la volée ou précédemment) en conservant les données (Partition.Clone() ou Partition.CopyTo(Partition) ) mais tout en créant un nouvel Id de partition.

    Je ne trouve pas de réelle documentation sur ces 2 méthodes et ce qu’elles font exactement

    Merci pour vos idées, encore.
    Alexandre Chemla - Consultant MS BI chez Masao

  20. #20
    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
    Une nouvelle idée vient de naître ce matin....
    Si la propriété ObjectRef de mon composant Partition Processing n'est pas éditable, pourquoi ne pas éditer tout le xml du package...
    Je reconnais que c'est un peu violent, mais à défaut de trouver autre chose..

    Je ne sais donc pas encore dans quel sens préparer cela, mais en éditant le XML du package à la main pour éditer l'Id de la partition à alimenter, cela fonctionne.

    Je n'ai donc plus besoin de déplacer les données des partitions etc.
    Il me suffit de créer ma nouvelle partition du jour comme je le souhaite, puis de donner cet Id au composant en éditant l'ensemble du XML du package et enfin de l'exécuter avec succès.
    Alexandre Chemla - Consultant MS BI chez Masao

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/06/2008, 00h10
  2. Réponses: 4
    Dernier message: 09/04/2008, 16h37
  3. Réponses: 0
    Dernier message: 07/04/2008, 14h48
  4. Réponses: 6
    Dernier message: 04/12/2007, 17h25
  5. Réponses: 1
    Dernier message: 27/03/2006, 16h58

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