Créer une étape de travail Analysis Services

S’applique à :SQL ServerAzure SQL Managed Instance

Important

Dans Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez Azure SQL Managed Instance à partir de SQL Server.

Cette rubrique explique comment créer et définir les étapes de travail de SQL Server Agent dans SQL Server qui exécutent des commandes et des requêtes SQL Server Analysis Services en utilisant SQL Server Management Studio, Transact-SQL ou SQL Server Management Objects.

Avant de commencer

Limitations et restrictions

  • Si l'étape de travail utilise une commande Analysis Services, l'instruction de commande doit être une méthode EXECUTE XML pour Analysis Services. L’instruction ne peut pas contenir d’enveloppe SOAP (Simple Object Access Protocol) complète ni de méthode Discover XML pour Analysis Services. Bien que SQL Server Management Studio prenne en charge les enveloppes SOAP (Simple Object Access Protocol) complètes et la méthode Discover, ce n’est pas le cas pour les étapes de travail de SQL Server Agent. Pour plus d’informations sur XML pour Analysis Services, consultez Vue d’ensemble de XMLA (XML for Analysis).

  • Si l'étape de travail utilise une requête Analysis Services, l'instruction de requête doit être une requête MDX (expressions multidimensionnelles). Pour plus d’informations sur MDX, consultez Principes de base des instructions MDX (MDX).

Sécurité

Autorisations

  • Pour exécuter une étape de travail qui utilise le sous-système Analysis Services, un utilisateur doit être membre du rôle serveur fixe sysadmin ou avoir accès à un compte proxy valide, défini pour utiliser ce sous-système. De plus, le compte du service SQL Server Agent ou du proxy doit correspondre à un compte administrateur Analysis Services et à un compte de domaine Windows valide.

  • Seuls les membres du rôle serveur fixe sysadmin peuvent écrire les données de sortie de l'étape de travail dans un fichier. Si l'étape de travail est exécutée par des utilisateurs membres du rôle de base de données SQLAgentUserRole de la base de données msdb , les données de sortie peuvent uniquement être écrites dans une table. SQL Server Agent écrit les données de sortie de l’étape de travail dans la table sysjobstepslog de la base de données msdb.

  • Pour plus d'informations, consultez Implémenter la sécurité de SQL Server Agent.

Utilisation de SQL Server Management Studio

Pour créer une étape de travail de commande Analysis Services

  1. Dans l’Explorateur d'objets , connectez-vous à une instance du Moteur de base de données SQL Serveret développez-la.

  2. Développez SQL Server Agent, créez un travail ou cliquez avec le bouton droit de la souris sur un travail existant, puis cliquez sur Propriétés. Pour plus d’informations sur la création d’un travail, consultez Créer des travaux.

  3. Dans la boîte de dialogue Propriétés du travail , cliquez sur la page Étapes , puis sur Nouveau.

  4. Dans la boîte de dialogue Nouvelle étape du travail , tapez le Nom de l'étapedu travail.

  5. Dans la liste Type , cliquez sur Commande SQL Server Analysis Services.

  6. Dans la liste Exécuter en tant que , sélectionnez un proxy qui a été défini pour utiliser le sous-système de commandes Analysis Services. Un utilisateur qui est membre du rôle serveur fixe sysadmin peut également sélectionner Compte du service Agent SQL pour exécuter cette étape de travail.

  7. Sélectionnez le Serveur sur lequel l'étape du travail s'exécutera, ou tapez le nom du serveur.

  8. Dans la zone Commande , tapez l'instruction à exécuter ou cliquez sur Ouvrir pour sélectionner une instruction.

  9. Cliquez sur la page Avancé pour définir les options de cette étape de travail, comme l’action que SQL Server Agent doit effectuer si l’étape de travail réussit ou échoue, combien de fois l’étape de travail doit être tentée, et où les données de sortie de l’étape de travail doivent être écrites.

Pour créer une étape de travail de requête Analysis Services

  1. Dans l’Explorateur d'objets , connectez-vous à une instance du Moteur de base de données SQL Serveret développez-la.

  2. Développez SQL Server Agent, créez un travail ou cliquez avec le bouton droit de la souris sur un travail existant, puis cliquez sur Propriétés. Pour plus d’informations sur la création d’un travail, consultez Créer des travaux.

  3. Dans la boîte de dialogue Propriétés du travail , cliquez sur la page Étapes , puis sur Nouveau.

  4. Dans la boîte de dialogue Nouvelle étape du travail , tapez un nom d'étapede travail.

  5. Dans la liste Type , cliquez sur Requête SQL Server Analysis Services.

  6. Dans la liste Exécuter en tant que , sélectionnez un proxy qui a été défini pour utiliser le sous-système de requêtes Analysis Services. Un utilisateur qui est membre du rôle serveur fixe sysadmin peut également sélectionner Compte du service Agent SQL pour exécuter cette étape de travail.

  7. Sélectionnez le Serveur et la Base de données sur lesquels l'étape du travail s'exécutera, ou tapez le nom du serveur ou de la base de données.

  8. Dans la zone Commande , tapez l'instruction à exécuter ou cliquez sur Ouvrir pour sélectionner une instruction.

  9. Cliquez sur la page Avancé pour définir les options de cette étape de travail, comme l’action que SQL Server Agent doit effectuer si l’étape de travail réussit ou échoue, combien de fois l’étape de travail doit être tentée, et où les données de sortie de l’étape de travail doivent être écrites.

Utilisation de Transact-SQL

Pour créer une étape de travail de commande Analysis Services

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.

    -- Creates a job step that uses XMLA to create a relational data source that
    -- references the AdventureWorks2022 Microsoft SQL Server database.  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name =
            N'Create a relational data source that references the AdventureWorks2022 Microsoft SQL Server database',  
        @subsystem = N'ANALYSISCOMMAND',  
        @command =
            N' <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
        <ParentObject>  
            <DatabaseID>AdventureWorks2022</DatabaseID>  
        </ParentObject>  
        <ObjectDefinition>  
            <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:type="RelationalDataSource">  
                <ID>AdventureWorks2022</ID>  
                <Name>Adventure Works 2022</Name>  
                <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorks2022;Integrated Security=True</ConnectionString>  
                <ImpersonationInfo>  
                    <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>  
                </ImpersonationInfo>  
                <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
                <Timeout>PT0S</Timeout>  
            </DataSource>  
        </ObjectDefinition>  
    </Create>', ;  
    GO  
    

Pour plus d’informations, consultez sp_add_jobstep (Transact-SQL).

Pour créer une étape de travail de requête Analysis Services

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.

    -- Creates a job step that uses MDX to return data  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Returns the Internet sales amount by state',  
        @subsystem = N'ANALYSISQUERY',  
        @command = N' SELECT  
       [Measures].[Internet Sales Amount] ON COLUMNS,  
       [Customer].[State-Province].Members ON ROWS  
    FROM [AdventureWorks2022]',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    

Pour plus d’informations, consultez sp_add_jobstep (Transact-SQL).

Utilisation de SQL Server Management Objects

Pour créer une étape de travail exécutant un script PowerShell

Utilisez la classe JobStep à l’aide d’un langage de programmation que vous choisissez, comme XMLA ou MDX. Pour plus d’informations, consultez SQL Server Management Objects (SMO).