Définition de XML for Analysis (XMLA)

Quelle est la définition de XML for Analysis ou (XMLA), langage abrégé en Extensible Markup Language for Analysis. C’est un protocole construit sur le langage XML. Il permet l’accès aux données depuis des sources de données multidimensionnelles standards. Les applications clientes accèdent aux cubes Microsoft et aux modèles tabulaires en utilisant le langage XMLA et le protocole HTTP.

1. Quelle définition pour XML for Analysis ?

Premièrement, qu’est-ce que XMLA ou XML for Analysis ? Les cubes OLAP de Microsoft Analysis Services et les modèles Tabulaires utilisent tous deux XMLA. En d’autres termes, c’est le protocole unique permettant la communication avec les applications d’analyse de données des utilisateurs finaux.

Deuxièmement, comment les développeurs Microsoft utilisent-ils XML for Analysis ? Les développeurs de Business Intelligence Microsoft utilisent XMLA pour l’intégration des applications clientes avec Analysis Services, et cela sans dépendances au framework Microsoft .NET.

2. XMLA comme un standard simple

En d’autres termes, pour communiquer du client au serveur, les deux seuls composants nécessaires sont une connectivité HTTP et le langage XMLA ou XML for Analysis. Consultez également cet article sur Microsoft Business Intelligence, il concerne MDX littéralement le SQL pour les Cubes OLAP.

La définition de XML for Analysis : un standard Microsoft pour la connectivité SSAS
La définition de XML for Analysis : un standard Microsoft pour la connectivité SSAS
L’objectif du standard XMLA est de combler le fossé entre les technologies

L’avantage principal de XMLA est sa capacité à relier différents systèmes.

Peu importe que le client soit construit sur la technologie Microsoft ou non ; tant qu’il peut envoyer des requêtes XMLA via HTTP, il peut communiquer avec les services BI de Microsoft. Cette interopérabilité est un facteur clé dans l’adoption généralisée de XMLA au sein de la communauté de l’intelligence d’affaires.

3. Utilisation pratique de XMLA

Utilisez XMLA par exemple pour développer un modèle tabulaire SSAS de manière programmatique.

Ou pour créer un script de déploiement de la connexion, des tables – y compris les tables de fait et les dimensions – les rôles de sécurité ou la base de données tabulaire complète. Pour générer ces scripts XMLA, connectez-vous simplement à une instance Tabulaire SSAS avec SSMS, puis cliquez avec le bouton droit et sélectionnez Scripts l’objet. Trois options principales sont disponibles lors de la génération de scripts XMLA pour une base de données tabulaire :

  • CREATE
  • CREATE OR REPLACE
  • DELETE

Consultez la page Wikipedia sur XML for Analysis pour approfondir et expliquer les avantages de XML par rapport à d’autres normes propriétaires par exemple : c’est open source, c’est facile à lire pour un humain, c’est un fichier simple avec des balises. Cela signifie que la structure est encapsulée dans le fichier et toute structure de données peut être stockée à l’intérieur d’un message XML.

3.1 Script XMLA pour déployer un modèle tabulaire SSAS (In-Memory)

Pour illustrer cette définition de XML for Analysis, adoptons une approche plus pratique de cette norme. Le script XMLA ci-dessous utilise le mot-clé CREATE pour créer un exemple de modèle tabulaire lisant les données d’une table de ventes, appelée Tabular_Model_Sales.

<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Create>
    <ObjectDefinition>
      <Database>
        <ID>Tabular_Model_Sales</ID>
        <Name>Tabular_Model_Sales</Name>
        <Description>Un simple exemple de modèle tabulaire SSAS</Description>
        <CompatibilityLevel>1500</CompatibilityLevel>
        <DataSources>
          <DataSource xsi:type="RelationalDataSource">
            <ID>DataSource</ID>
            <Name>DataSource</Name>
            <!-- AjusteR ici la chaîne de connexion à votre base de données SQL -->
            <ConnectionString>Data Source=localhost;Initial Catalog=YourDatabase;Integrated Security=SSPI;</ConnectionString>
          </DataSource>
        </DataSources>
        <Model>
          <Tables>
            <Table>
              <ID>SalesData</ID>
              <Name>SalesData</Name>
              <DataAccessOptions>Transactional</DataAccessOptions>
              <Source xsi:type="QueryBinding">
                <DataSourceID>DataSource</DataSourceID>
                <Query>SELECT [Date], [Sales], [Quantity] FROM [Sales]</Query>
              </Source>
              <Columns>
                <Column>
                  <ID>Date</ID>
                  <Name>Date</Name>
                  <DataType>DateTime</DataType>
                  <SourceColumn>Date</SourceColumn>
                </Column>
                <Column>
                  <ID>Sales</ID>
                  <Name>Sales</Name>
                  <DataType>Double</DataType>
                  <SourceColumn>Sales</SourceColumn>
                </Column>
                <Column>
                  <ID>Quantity</ID>
                  <Name>Quantity</Name>
                  <DataType>Int64</DataType>
                  <SourceColumn>Quantity</SourceColumn>
                </Column>
              </Columns>
            </Table>
          </Tables>
        </Model>
      </Database>
    </ObjectDefinition>
  </Create>
  <!-- SélectionneR ici le type de traitement (Process) du Modèle Tabulaire -->
  <Process>
    <Type>ProcessFull</Type>
    <Object>
      <DatabaseID>Tabular_Model_Sales</DatabaseID>
    </Object>
  </Process>
</Batch>

Les principales étapes utilisées dans la définition du modèle tabulaire, écrites en XML for Analysis, pour la création de la base de données sont les suivantes :

  1. Créer la base de données SSAS : Le script XML for Analysis commence par un élément Batch, pour indiquer une collection de commandes XMLA. La commande Create est utilisée pour initier la création de la nouvelle base de données nommée Tabular_Model_Sales.
  2. Définir la base de données : Dans ObjectDefinition, les détails de la base de données sont spécifiés, incluant son ID, Nom, et CompatibilityLevel. Cette section assure son fonctionnement fluide dans l’environnement Analysis Services, y compris la version SQL Server.
  3. Configurer la source de données : La section DataSources définit la source de données pour la base de données, en spécifiant un élément DataSource avec un attribut de type indiquant qu’il s’agit d’une base de données relationnelle. La ConnectionString est fournie pour se connecter à la source de données sous-jacente où résident les données réelles.
  4. Créer le modèle : Dans la section Model, les Tables sont définies. Une seule table nommée SalesData est créée avec un type de source QueryBinding, qui inclut une requête SQL pour sélectionner des données de la base de données source.
  5. Définir les colonnes : À l’intérieur de l’élément Table, les Colonnes sont définies, spécifiant l’ID, le Nom, le Type de données, et la SourceColumn pour chaque colonne de la table. Cela mappe les colonnes de la requête source aux colonnes dans le modèle tabulaire.
  6. Traiter la base de données : Enfin, une commande Process est incluse à la fin du script XML for Analysis pour la définition du processus de la base de données, ici l’option est Full. Cette étape charge les données dans le modèle en utilisant la technologie In-Memory, rendant les données disponibles pour l’analyse aux utilisateurs finaux. Les utilisateurs peuvent se connecter au modèle tabulaire en utilisant des tableaux croisés dynamiques Excel, Power BI ou Reporting Services.

3.2 Exemple de commande Execute XMLA

La commande Execute dans XMLA est utilisée pour effectuer des opérations telles que l’exécution de requêtes MDX ou de prédictions de Data Mining (DMX) contre une source de données analytique. Voici un exemple d’une commande Execute XMLA qui exécute une requête MDX :

<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
     <Command>
         <Statement>
             SELECT [Measures].[Sales Amount] ON COLUMNS
             FROM [Sales Cube]
         </Statement>
     </Command>
     <Properties>
         <PropertyList>
             <Catalog>AdventureWorksDW</Catalog>
             <Format>Multidimensional</Format>
         </PropertyList>
     </Properties>
</Execute>

3.3 La commande Discover XMLA

La commande Discover est utilisée pour demander des informations de métadonnées sur les sources de données disponibles sur le serveur. Cela pourrait inclure une liste de bases de données, de cubes, de dimensions, de mesures, etc. Voici un exemple basique d’une commande Discover :

 <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
     <RequestType>DISCOVER_DATASOURCES</RequestType>
     <Restrictions/>
     <Properties/>
 </Discover>

4. Points de terminaison XMLA pour Power BI

La connectivité de Power BI avec points de terminaison XMLA annoncée il y a quelques années permet d’accéder aux jeux de données Power BI via le protocole XMLA. Cela rend toutes les sources de données prêtes pour XMLA accessibles via une grande variété d’outils, comme par exemple :

À propos du protocole XML for Analysis

En conclusion, la définition de XML for Analysis (XMLA) souligne qu’il s’agit d’un protocole crucial qui permet une communication efficace entre les applications clientes et Microsoft Analysis Services, y compris les cubes OLAP et les modèles Tabulaires. Utilisant le Extensible Markup Language (XML), XMLA assure un accès standardisé aux sources de données multidimensionnelles.

Cet article explore non seulement les concepts fondamentaux et les utilisations pratiques de XMLA, mais illustre également son application à travers un script pour déployer un modèle tabulaire.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*