Transformieren von Daten mit der SQL Server Stored Procedure-Aktivität in Azure Data Factory oder Synapse Analytics

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Sie verwenden Transformationsaktivitäten in einer Data Factory- oder Synapse-Pipeline, um Rohdaten in Vorhersagen und Erkenntnisse zu transformieren und zu verarbeiten. Die Stored Procedure-Aktivität ist eine der Transformationsaktivitäten, die Pipelines unterstützen. Dieser Artikel baut auf dem Artikel Transformieren von Daten auf, der eine allgemeine Übersicht über die Datentransformation und die unterstützten Transformationsaktivitäten bietet.

Hinweis

Wenn Sie noch nicht mit Azure Data Factory vertraut sind, sollten Sie zunächst den Artikel Einführung in Azure Data Factory lesen und anschließend das Tutorial zum Thema Tutorial: Transformieren von Daten durcharbeiten. Weitere Informationen zu Synapse Analytics finden Sie unter Was ist Azure Synapse Analytics.

Sie können die Aktivität „Gespeicherte Prozedur“ verwenden, um eine gespeicherte Prozedur in einem der folgenden Datenspeicher in Ihrem Unternehmen oder auf einem virtuellen Azure-Computer (VM) aufzurufen:

  • Azure SQL-Datenbank
  • Azure Synapse Analytics
  • SQL Server-Datenbank. Wenn Sie SQL Server verwenden, müssen Sie die selbstgehostete Integration Runtime auf dem Computer installieren, der die Datenbank hostet, oder auf einem separaten Computer, der Zugriff auf die Datenbank hat. Die selbstgehostete Integration Runtime ist eine Komponente, die lokale Datenquellen bzw. Datenquellen auf virtuellen Azure Computern mit Clouddiensten auf sichere und verwaltete Weise verbindet. Im Artikel Selbstgehostete Integration Runtime finden Sie Details.

Wichtig

Beim Kopieren von Daten nach Azure SQL-Datenbank oder SQL Server können Sie SqlSink in der Kopieraktivität für das Aufrufen einer gespeicherten Prozedur mit der sqlWriterStoredProcedureName-Eigenschaft konfigurieren. Ausführliche Informationen zur Eigenschaft finden Sie in folgenden Artikeln zu Connectors: Azure SQL-Datenbank, SQL Server. Das Aufrufen einer gespeicherten Prozedur im Rahmen des Kopierens von Daten in Azure Synapse Analytics mithilfe einer Kopieraktivität wird nicht unterstützt. Sie können jedoch mithilfe der Aktivität „Gespeicherte Prozedur“ eine gespeicherte Prozedur in Azure Synapse Analytics aufrufen.

Beim Kopieren von Daten aus Azure SQL-Datenbank, SQL Server oder Azure Synapse Analytics können Sie SqlSource in der Kopieraktivität mit der Eigenschaft sqlReaderStoredProcedureName konfigurieren, um eine gespeicherte Prozedur zum Lesen von Daten aus der Quelldatenbank aufzurufen. Weitere Informationen finden Sie in den folgenden Artikeln zu Connectors: Azure SQL-Datenbank, SQL Server, Azure Synapse Analytics

Wenn die gespeicherte Prozedur über Ausgabeparameter verfügt, anstatt gespeicherte Prozeduraktivitäten zu verwenden, verwenden Sie Lookupaktivitäten und Skriptaktivitäten. Die Aktivität der gespeicherten Prozedur unterstützt das Aufrufen von SPs mit Ausgabeparametern noch nicht.

Wenn Sie eine gespeicherte Prozedur mit Ausgabeparametern mithilfe der Aktivität der gespeicherten Prozedur aufrufen, tritt der folgende Fehler auf.

Bei der Ausführung für SQL Server tritt ein Fehler auf. Wenden Sie sich an das SQL Server-Team, wenn Sie weitere Unterstützung benötigen. SQL-Fehlernummer: 201. Fehlermeldung: Die Prozedur oder Funktion „sp_name“ erwartet den Parameter „@output_param_name“, der nicht angegeben wurde.

Erstellen einer Aktivität „gespeicherte Prozedur“ mit Benutzeroberfläche

Führen Sie die folgenden Schritte aus, um eine Aktivität „gespeicherte Prozedur“ in einer Pipeline zu verwenden:

  1. Suchen Sie im Bereich mit den Pipelineaktivitäten nach Gespeicherte Prozedur, und ziehen Sie eine Aktivität „gespeicherte Prozedur“ in den Pipelinebereich.

  2. Wählen Sie in diesem Bereich die neue Aktivität „gespeicherte Prozedur“ aus (wenn sie noch nicht ausgewählt wurde), und wählen Sie anschließend die Registerkarte Einstellungen aus, um die Details zu bearbeiten.

    Shows the UI for a Stored Procedure activity.

  3. Wählen Sie einen vorhandenen verknüpften Dienst aus, oder erstellen Sie einen neuen verknüpften Dienst für eine Azure SQL-Datenbank, Azure Synapse Analytics oder SQL Server.

  4. Wählen Sie eine gespeicherte Prozedur aus, und geben Sie alle Parameter für ihre Ausführung an.

Syntaxdetails

So sieht das JSON-Format zum Definieren der Aktivität „Gespeicherte Prozedur“ aus:

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

        }
    }
}

In der folgenden Tabelle werden diese JSON-Eigenschaften beschrieben:

Eigenschaft Beschreibung Erforderlich
name Der Name der Aktivität Ja
description Ein Text, der beschreibt, wofür die Aktivität verwendet wird. Nein
type Für die Aktivität „Gespeicherte Prozedur“ lautet der Aktivitätstyp SqlServerStoredProcedure. Ja
linkedServiceName Verweis auf die Azure SQL-Datenbank-, Azure Synapse Analytics- oder SQL Server-Instanz, die in Data Factory als verknüpfter Dienst registriert ist. Weitere Informationen zu diesem verknüpften Dienst finden Sie im Artikel Von Azure Data Factory unterstützten Compute-Umgebungen. Ja
storedProcedureName Geben Sie den Namen der gespeicherten Prozedur an, die aufgerufen werden soll. Ja
storedProcedureParameters Geben Sie die Werte für Parameter der gespeicherten Prozedur an. Verwenden Sie "param1": { "value": "param1Value","type":"param1Type" } zum Übergeben von Parameterwerten und deren Typ, der von der Datenquelle unterstützt wird. Wenn Sie für einen Parameter „null“ übergeben müssen, verwenden Sie die folgende Syntax: "param1": { "value": null } (nur Kleinbuchstaben). Nein

Zuordnen des Parameterdatentyps

Der Datentyp, den Sie für den Parameter angeben, ist der interne Diensttyp, der dem Datentyp in der verwendeten Datenquelle zugeordnet ist. Sie finden die Datentypzuordnungen für Ihre Datenquelle in der Dokumentation zu Connectors. Zum Beispiel:

In den folgenden Artikeln erfahren Sie, wie Daten auf andere Weisen transformiert werden: