Freigeben über


Verwenden der Azure Data Factory-Befehlsaktivität zum Ausführen von Azure Data Explorer-Verwaltungsbefehlen

Azure Data Factory (ADF) ist ein cloudbasierter Datenintegrationsdienst, mit dem Sie eine Kombination von Aktivitäten für die Daten ausführen können. Verwenden Sie ADF, um datengesteuerte Workflows zur Orchestrierung und Automatisierung der Verschiebung und Transformation von Daten zu erstellen. Mit der Azure Data Explorer-Befehlsaktivität in Azure Data Factory können Sie Azure Data Explorer-Verwaltungsbefehle in einem ADF-Workflow ausführen. In diesem Artikel erfahren Sie, wie Sie eine Pipeline mit einer Nachschlageaktivität und forEach-Aktivität erstellen, die eine Azure Data Explorer-Befehlsaktivität enthält.

Voraussetzungen

Erstellen einer neuen Pipeline

  1. Wählen Sie das Autor-Bleistiftwerkzeug aus.

  2. Erstellen Sie eine neue Pipeline, indem Sie "Pipeline" aus der Dropdownliste auswählen + und dann " Pipeline" auswählen.

    Erstellen einer neuen Pipeline

Erstellen einer Lookup-Aktivität

Eine Nachschlageaktivität kann ein Dataset aus einer beliebigen von Azure Data Factory unterstützten Datenquelle abrufen. Sie können die Ausgabe aus der Nachschlageaktivität in einer ForEach- oder anderen Aktivität verwenden.

  1. Wählen Sie im Bereich Aktivitäten unter Allgemein die Aktivität Lookup aus. Ziehen Sie sie per Drag & Drop in den Hauptcanvas auf der rechten Seite.

    Auswählen der Lookup-Aktivität

  2. Der Canvas enthält jetzt die von Ihnen erstellte Lookup-Aktivität. Verwenden Sie die Registerkarten unter dem Zeichenbereich, um beliebige relevante Parameter zu ändern. Benennen Sie unter Allgemein die Aktivität um.

    Bearbeiten der Lookup-Aktivität

    Tipp

    Wählen Sie den leeren Canvasbereich aus, um die Pipelineeigenschaften anzuzeigen. Verwenden Sie die Registerkarte Allgemein, um die Pipeline umzubenennen. Die Pipeline heißt "pipeline-4-docs".

Erstellen eines Azure Data Explorer-Datasets in der Lookup-Aktivität

  1. Wählen Sie unter Einstellungen Ihr vorab erstelltes Azure Data Explorer-Quelldataset oder + Neu aus, um ein neues Dataset zu erstellen.

    Hinzufügen eines Datasets in den Lookup-Einstellungen

  2. Wählen Sie das Dataset Azur Data Explorer (Kusto) im Fenster Neues Dataset aus. Wählen Sie Weiter aus, um das neue Dataset hinzuzufügen.

    Auswählen des neuen Datasets

  3. Die neuen Azure Data Explorer-Datasetparameter werden unter Einstellungen angezeigt. Wählen Sie Bearbeiten aus, um die Parameter zu aktualisieren.

    Nachschlageeinstellungen mit Azure Data Explorer-Datensatz

  4. Die neue Registerkarte AzureDataExplorerTable wird im Hauptcanvas geöffnet.

    • Wählen Sie Allgemein aus, und bearbeiten Sie den Datasetnamen.
    • Wählen Sie Verbindung aus, um die Eigenschaften des Datasets zu bearbeiten.
    • Wählen Sie den verknüpften Dienst aus der Dropdownliste aus, oder wählen Sie +Neu aus, um einen neuen verknüpften Dienst zu erstellen.

    Bearbeiten von Azure Data Explorer-Dataseteigenschaften

  5. Beim Erstellen eines neuen verknüpften Diensts wird die Seite Neuer verknüpfter Dienst (Azure Data Explorer) geöffnet:

     Neuer verknüpfter Dienst des Azure-Daten-Explorers.

    • Wählen Sie Name für den verknüpften Azure Data Explorer-Dienst aus. Fügen Sie bei Bedarf eine Beschreibung hinzu.
    • Ändern Sie unter der Option zum Verbinden über Integration Runtime bei Bedarf die aktuellen Einstellungen.
    • Wählen Sie in der Kontoauswahlmethode Ihren Cluster mit einer von zwei Methoden aus:
      • Klicken Sie auf das Optionsfeld From Azure subscription (Aus Azure-Abonnement), und wählen Sie das Konto für Ihr Azure-Abonnement aus. Wählen Sie anschließend Ihren Cluster aus. In der Dropdownliste werden nur Cluster aufgelistet, die Ihnen gehören.
      • Sie können auch auf das Optionsfeld Manuell eingeben klicken und Ihren Endpunkt (Cluster-URL) eingeben.
    • Geben Sie den Mandanten an.
    • Geben Sie die Dienstprinzipal-ID ein. Suchen Sie diesen Wert im Azure-Portal unter app Registrations>Overview>Application (Client)-ID. Der Prinzipal muss über die entsprechenden Berechtigungen verfügen, entsprechend der Berechtigungsstufe, die vom verwendeten Befehl benötigt wird.
    • Klicken Sie auf die Schaltfläche Dienstprinzipalschlüssel, und geben Sie den Dienstprinzipalschlüssel ein.
    • Wählen Sie Ihre Datenbank im Dropdownmenü aus. Sie können auch das Kontrollkästchen Bearbeiten aktivieren und den Namen Ihrer Datenbank eingeben.
    • Wählen Sie Verbindung testen aus, um die erstellte Verbindung mit dem verknüpften Dienst zu testen. Wenn Sie eine Verbindung mit Ihrem Setup herstellen können, wird ein grünes Häkchen "Verbindung erfolgreich " angezeigt.
    • Wählen Sie Fertig stellen aus, um die Erstellung des verknüpften Diensts abzuschließen.
  6. Nachdem Sie einen verknüpften Dienst eingerichtet haben, fügen Sie in AzureDataExplorerTable>Connectionden Tabellennamen hinzu. Wählen Sie Datenvorschau aus, um sicherzustellen, dass die Daten ordnungsgemäß dargestellt werden.

    Ihr Dataset ist bereit, und Sie können die Bearbeitung der Pipeline fortsetzen.

Hinzufügen einer Abfrage zu Ihrer Lookup-Aktivität

  1. Fügen Sie in pipeline-4-Docs-Einstellungen> eine Abfrage im Textfeld "Abfrage" hinzu, z. B.:

    ClusterQueries
    | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb")
    | summarize count() by Database
    
  2. Ändern Sie bei Bedarf die Eigenschaften für Abfragetimeout oder Keine Kürzung und Nur erste Zeile. Behalten Sie in diesem Fluss das standardmäßige Abfragetimeout bei, und deaktivieren Sie die Kontrollkästchen.

    Endgültige Einstellungen der Lookup-Aktivität

Erstellen einer For-Each-Aktivität

Verwenden Sie die For-Each-Aktivität, um eine Sammlung zu durchlaufen und angegebene Aktivitäten in einer Schleife auszuführen.

  1. Fügen Sie der Pipeline eine For-Each Aktivität hinzu. Diese Aktivität verarbeitet die von der Lookup-Aktivität zurückgegebenen Daten.

    • Wählen Sie im Bereich "Aktivitäten " unter "Iteration & Bedingungen" die "ForEach "-Aktivität aus. Ziehen Sie es und legen Sie es in den Zeichenbereich ab.

    • Ziehen Sie eine Linie zwischen der Ausgabe der Lookup-Aktivität und der Eingabe der ForEach-Aktivität auf dem Canvas, um sie zu verbinden.

      ForEach-Aktivität

  2. Wählen Sie die ForEach-Aktivität auf dem Canvas aus. Auf der Registerkarte Einstellungen:

    • Aktivieren Sie das Kontrollkästchen Sequenziell für eine sequenzielle Verarbeitung der Lookup-Ergebnisse, oder lassen Sie es deaktiviert, um eine Parallelverarbeitung zu erstellen.

    • Legen Sie Batchanzahl fest.

    • Stellen Sie unter Elemente den folgenden Verweis auf den Ausgabewert bereit: @activity('Lookup1').output.value.

      Einstellungen für die ForEach-Aktivität

Erstellen einer Azure Data Explorer-Befehlsaktivität innerhalb der ForEach-Aktivität

  1. Doppelklicken Sie auf die ForEach-Aktivität im Zeichenbereich, um sie in einem neuen Zeichenbereich zu öffnen. Geben Sie die Aktivitäten in ForEach an.

  2. Wählen Sie im Bereich Aktivitäten unter Azure Data Explorer die Aktivität Azure Data Explorer-Befehl aus, und ziehen Sie sie per Drag & Drop auf den Canvas.

    Azure Data Explorer-Befehlsaktivität

  3. Wählen Sie auf der Registerkarte "Verbindung " denselben verknüpften Dienst aus, den Sie zuvor erstellt haben.

    Registerkarte „Verbindung“ der Azure Data Explorer-Befehlsaktivität

  4. Geben Sie auf der Registerkarte Befehl den folgenden Befehl ein:

    .export
    async compressed
    into csv h"http://<storageName>.blob.core.windows.net/data/ClusterQueries;<storageKey>" with (
    sizeLimit=100000,
    namePrefix=export
    )
    <| ClusterQueries | where Database == "@{item().Database}"
    

    Der Befehl weist Azure Data Explorer an, die Ergebnisse einer bestimmten Abfrage in einen Blobspeicher in einem komprimierten Format zu exportieren. Die Ausführung erfolgt asynchron (unter Verwendung des async-Modifizierers). Die Abfrage richtet sich an die Datenbankspalten der einzelnen Zeilen im Resultat der Lookup-Aktivität. Sie können das Befehls-Timeout unverändert lassen.

    Befehlsaktivität

    Hinweis

    Die Befehlsaktivität hat die folgenden Grenzwerte:

    • Größenbeschränkung: 1 MB Antwortgröße
    • Zeitlimit: 20 Minuten (Standard), 1 Stunde (maximal).
    • Bei Bedarf können Sie mithilfe von AdminThenQuery eine Abfrage an das Ergebnis anfügen, um die resultierende Größe oder Zeit zu reduzieren.
  5. Jetzt ist die Pipeline bereit. Sie können zur Hauptpipelineansicht zurückkehren, indem Sie den Pipelinenamen auswählen.

    Azure Data Explorer-Befehlspipeline

  6. Wählen Sie Debuggen aus, bevor Sie die Pipeline veröffentlichen. Sie können den Pipelinefortschritt auf der Registerkarte "Ausgabe " überwachen.

    Ausgabe der Azure Data Explorer-Befehlsaktivität

  7. Wählen Sie Alle veröffentlichen und dann Trigger hinzufügen aus, um die Pipeline auszuführen.

Ergebnisse von Management-Befehlen

Im folgenden Abschnitt wird die Struktur der Befehlsaktivitätsausgabe beschrieben. Die nächste Aktivität in der Pipeline kann diese Ausgabe verwenden.

Zurückgegebener Wert eines nicht asynchronen Verwaltungsbefehls

In einem nicht asynchronen Verwaltungsbefehl ähnelt die Struktur des zurückgegebenen Werts der Struktur des Nachschlageaktivitätsergebnisses. Das count Feld zeigt die Anzahl der zurückgegebenen Datensätze an. Ein festes Arrayfeld value enthält eine Liste von Datensätzen.

{ 
    "count": "2", 
    "value": [ 
        { 
            "ExtentId": "1b9977fe-e6cf-4cda-84f3-4a7c61f28ecd", 
            "ExtentSize": 1214.0, 
            "CompressedSize": 520.0 
        }, 
        { 
            "ExtentId": "b897f5a3-62b0-441d-95ca-bf7a88952974", 
            "ExtentSize": 1114.0, 
            "CompressedSize": 504.0 
        } 
    ] 
} 

Rückgabewert eines asynchronen Verwaltungsbefehls

In einem asynchronen Verwaltungsbefehl fragt die Aktivität die Operationstabelle im Hintergrund ab, bis der asynchrone Vorgang abgeschlossen ist oder eine Zeitüberschreitung auftritt. Deshalb enthält der zurückgegebene Wert das Ergebnis .show operations OperationId für die angegebene OperationId-Eigenschaft. Überprüfen Sie die Werte der Eigenschaften State und Status, um den erfolgreichen Abschluss des Vorgangs zu überprüfen.

{ 
    "count": "1", 
    "value": [ 
        { 
            "OperationId": "910deeae-dd79-44a4-a3a2-087a90d4bb42", 
            "Operation": "TableSetOrAppend", 
            "NodeId": "", 
            "StartedOn": "2019-06-23T10:12:44.0371419Z", 
            "LastUpdatedOn": "2019-06-23T10:12:46.7871468Z", 
            "Duration": "00:00:02.7500049", 
            "State": "Completed", 
            "Status": "", 
            "RootActivityId": "f7c5aaaf-197b-4593-8ba0-e864c94c3c6f", 
            "ShouldRetry": false, 
            "Database": "MyDatabase", 
            "Principal": "<some principal id>", 
            "User": "<some User id>" 
        } 
    ] 
}