Dela via


Transformera data med hjälp av SQL Server Stored Procedure-aktiviteten i Azure Data Factory eller Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Du använder datatransformeringsaktiviteter i en Data Factory- eller Synapse-pipeline för att transformera och bearbeta rådata till förutsägelser och insikter. Aktiviteten Lagrad procedur är en av de transformeringsaktiviteter som pipelines stöder. Den här artikeln bygger på artikeln transformeringsdata , som visar en allmän översikt över datatransformering och de omvandlingsaktiviteter som stöds.

Kommentar

Om du inte har använt Azure Data Factory tidigare läser du Introduktion till Azure Data Factory och gör självstudien: Självstudie: transformera data innan du läser den här artikeln. Mer information om Synapse Analytics finns i Vad är Azure Synapse Analytics?

Du kan använda aktiviteten Lagrad procedur för att anropa en lagrad procedur i något av följande datalager i företaget eller på en virtuell Azure-dator (VM):

  • Azure SQL Database
  • Azure Synapse Analytics
  • SQL Server Database. Om du använder SQL Server installerar du lokalt installerad integrationskörning på samma dator som är värd för databasen eller på en separat dator som har åtkomst till databasen. Lokalt installerad integrationskörning är en komponent som ansluter datakällor lokalt/på en virtuell Azure-dator med molntjänster på ett säkert och hanterat sätt. Mer information finns i artikeln om lokalt installerad integrationskörning .

Viktigt!

När du kopierar data till Azure SQL Database eller SQL Server kan du konfigurera SqlSink i kopieringsaktiviteten så att den anropar en lagrad procedur med hjälp av egenskapen sqlWriterStoredProcedureName. Mer information om egenskapen finns i följande anslutningsartiklar: Azure SQL Database, SQL Server. Det går inte att anropa en lagrad procedur när du kopierar data till en Azure Synapse Analytics med hjälp av en kopieringsaktivitet. Men du kan använda aktiviteten lagrad procedur för att anropa en lagrad procedur i Azure Synapse Analytics.

När du kopierar data från Azure SQL Database, SQL Server eller Azure Synapse Analytics kan du konfigurera SqlSource i kopieringsaktiviteten för att anropa en lagrad procedur för att läsa data från källdatabasen med hjälp av egenskapen sqlReaderStoredProcedureName . Mer information finns i följande anslutningsartiklar: Azure SQL Database, SQL Server, Azure Synapse Analytics

När den lagrade proceduren har utdataparametrar, i stället för att använda lagrad proceduraktivitet, använder du uppslagsaktivitet och skriptaktivitet. Aktiviteten lagrad procedur stöder inte anropande SPs med utdataparametern ännu.

Om du anropar en lagrad procedur med utdataparametrar med hjälp av aktiviteten lagrad procedur uppstår följande fel.

Körningen misslyckas mot SQL Server. Kontakta SQL Server-teamet om du behöver ytterligare support. Sql-felnummer: 201. Felmeddelande: Proceduren eller funktionen "sp_name" förväntar sig parametern "@output_param_name", som inte angavs.

Skapa en aktivitet för lagrad procedur med användargränssnittet

Utför följande steg för att använda en lagrad proceduraktivitet i en pipeline:

  1. Sök efter Lagrad procedur i fönstret Pipelineaktiviteter och dra en aktivitet för lagrad procedur till pipelinearbetsytan.

  2. Välj den nya aktiviteten Lagrad procedur på arbetsytan om den inte redan är markerad och fliken Inställningar för att redigera dess information.

    Visar användargränssnittet för en lagrad proceduraktivitet.

  3. Välj en befintlig eller skapa en ny länkad tjänst till en Azure SQL Database, Azure Synapse Analytics eller SQL Server.

  4. Välj en lagrad procedur och ange eventuella parametrar för dess körning.

Syntaxinformation

Här är JSON-formatet för att definiera en aktivitet för lagrad procedur:

{
    "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" }

        }
    }
}

I följande tabell beskrivs dessa JSON-egenskaper:

Property Beskrivning Obligatoriskt
name Namnet på aktiviteten Ja
description Text som beskriver vad aktiviteten används för Nej
type För lagrad proceduraktivitet är aktivitetstypen SqlServerStoredProcedure Ja
linkedServiceName Referens till Azure SQL Database eller Azure Synapse Analytics eller SQL Server som registrerats som en länkad tjänst i Data Factory. Mer information om den här länkade tjänsten finns i artikeln Compute linked services (Beräkningslänkade tjänster ). Ja
storedProcedureName Ange namnet på den lagrade procedur som ska anropas. Ja
storedProcedureParameters Ange värden för lagrade procedureparametrar. Använd "param1": { "value": "param1Value","type":"param1Type" } för att skicka parametervärden och deras typ som stöds av datakällan. Om du behöver skicka null för en parameter använder du "param1": { "value": null } (alla gemener). Nej

Mappning av parameterdatatyp

Den datatyp som du anger för parametern är den interna tjänsttyp som mappar till datatypen i den datakälla som du använder. Du hittar datatypsmappningar för datakällan som beskrivs i dokumentationen för anslutningsappar. Till exempel:

Se följande artiklar som förklarar hur du transformerar data på andra sätt: