Transformer des données à l’aide de l’activité de procédure stockée SQL Server dans Azure Data Factory ou Synapse Analytics

S'APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Pour l’activité équivalente dans Data Factory dans Microsoft Fabric, voir activité Procédure stockée.

Vous utilisez des activités de transformation dans un pipeline Data Factory ou Synapse pour transformer et traiter des données brutes en prévisions et en analyses. L’activité de procédure stockée est l’une des activités de transformation prises en charge par les pipelines. Cet article s’ajoute à l’article Transformer des données qui présente une vue d’ensemble de la transformation de données et des activités de transformation prises en charge.

Note

Si vous débutez avec Azure Data Factory, lisez Introduction dans Azure Data Factory et suivez le didacticiel : Tutorial : transformer des données avant de lire cet article. Pour en savoir plus sur Synapse Analytics, lisez En savoir plus sur Azure Synapse Analytics.

Vous pouvez utiliser l’activité de procédure stockée pour appeler une procédure stockée dans l’un des magasins de données suivants dans votre entreprise ou sur une machine virtuelle Azure :

  • Azure SQL Database
  • Azure Synapse Analytics
  • base de données SQL Server. Si vous utilisez SQL Server, installez le runtime d’intégration auto-hébergé sur la même machine qui héberge la base de données ou sur un ordinateur distinct qui a accès à la base de données. Self-Hosted Integration Runtime est un composant qui connecte des sources de données locales ou sur une machine virtuelle Azure avec des services cloud de façon sécurisée et sous contrôle. Pour plus d’informations, consultez l’article Runtime d’intégration auto-hébergé.

Important

Lors de la copie de données dans Azure SQL Database ou SQL Server, vous pouvez configurer l'SqlSink dans l’activité de copie pour appeler une procédure stockée à l’aide de la propriété sqlWriterStoredProcedureName. Pour plus d’informations sur la propriété, consultez les articles de connecteur suivants : Azure SQL Database, SQL Server. L’appel d’une procédure stockée lors de la copie de données dans un Azure Synapse Analytics à l’aide d’une activité de copie n’est pas pris en charge. Toutefois, vous pouvez utiliser l’activité de procédure stockée pour appeler une procédure stockée dans Azure Synapse Analytics.

Lorsque vous copiez des données à partir de Azure SQL Database ou de SQL Server ou de Azure Synapse Analytics, vous pouvez configurer SqlSource dans l’activité de copie pour appeler une procédure stockée pour lire des données à partir de la base de données source à l’aide de la propriété sqlReaderStoredProcedureName. Pour plus d’informations, consultez les articles suivants : Azure SQL Database, SQL Server, Azure Synapse Analytics

L’activité Procédure Stockée ne prend pas en charge les paramètres de sortie. Pour exécuter une procédure stockée qui renvoie des paramètres de sortie ou des résultats, utilisez plutôt une activité de recherche ou de script.

Si vous appelez une procédure stockée avec des paramètres de sortie en utilisant l’activité de procédure stockée, l’erreur suivante survient :

Execution fail against sql server. Please contact SQL Server team if you need further support. Sql error number: 201. Error Message: Procedure or function 'sp_name' expects parameter '@output_param_name', which was not supplied.

Créer une activité de procédure stockée avec l’interface utilisateur

Pour utiliser une activité de procédure stockée dans un pipeline, suivez les étapes suivantes :

  1. Recherchez Procédure stockée dans le volet Activités du pipeline, puis faites glisser une activité de procédure stockée vers le canevas du pipeline.

  2. Sélectionnez la nouvelle activité de procédure stockée pour le canevas si elle ne l’est pas déjà, et son onglet Paramètres pour en modifier les détails.

    Affiche l’interface utilisateur pour une activité de procédure stockée.

  3. Sélectionnez un service lié existant ou créez-en un nouveau pour Azure SQL Database, Azure Synapse Analytics ou SQL Server.

  4. Choisissez une procédure stockée et fournissez tous les paramètres pour son exécution.

Détails de la syntaxe

Voici le format JSON pour la définition d’une activité de procédure stockée :

{
    "name": "Stored Procedure Activity",
    "description":"Description",
    "type": "SqlServerStoredProcedure",
    "linkedServiceName": {
        "referenceName": "AzureSqlLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "storedProcedureName": "usp_sample",
        "storedProcedureParameters": {
            "identifier": { "value": "1", "type": "Int" },
            "stringData": { "value": "str1" }

        }
    }
}

Le tableau suivant décrit ces paramètres JSON :

Propriété Description Obligatoire
nom Nom de l’activité Oui
description Texte décrivant la raison motivant l’activité. Non
type Pour l’activité de procédure stockée, le type d’activité est SqlServerStoredProcedure. Oui
linkedServiceName Référence au Azure SQL Database ou Azure Synapse Analytics ou SQL Server inscrit en tant que service lié dans Data Factory. Pour en savoir plus sur ce service lié, consultez l’article Services liés de calcul. Oui
storedProcedureName Spécifiez le nom de la procédure stockée à appeler. Oui
paramètresDeProcédureStockée Spécifiez les valeurs des paramètres de procédure stockée. Utilisez "param1": { "value": "param1Value","type":"param1Type" } pour transmettre les valeurs des paramètres et leur type pris en charge par la source de données. Pour passer la valeur Null en paramètre, utilisez "param1": { "value": null } (tout en minuscules). Non

Mappage du type de données du paramètre

Le type de données que vous spécifiez pour le paramètre est le type de service interne correspondant à celui de la source de données que vous utilisez. Vous trouverez les mappages de types de données pour votre source de données décrits dans la documentation relative aux connecteurs. Par exemple :

Consultez les articles suivants qui expliquent comment transformer des données par d’autres moyens :