Verwenden der Azure Data Factory-Befehlsaktivität zum Ausführen von Azure Data Explorer-Verwaltungsbefehlen
Azure Data Factory (ADF) ist ein cloudbasierter Datenintegrationsservice, der es Ihnen ermöglicht, eine Kombination von Aktivitäten mit den Daten durchzuführen. 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 Lookup- und einer ForEach-Aktivität erstellen, die eine Azure Data Explorer-Befehlsaktivität enthält.
Voraussetzungen
- Ein Azure-Abonnement. Erstellen Sie ein kostenloses Azure-Konto.
- Schnellstart: Erstellen eines Azure Data Explorer-Clusters und einer Datenbank. Erstellen eines Clusters und einer Datenbank
- Eine Datenquelle
- Eine Data Factory Erstellen Sie eine Data Factory.
Erstellen einer neuen Pipeline
Wählen Sie das Stiftwerkzeug Verfassen aus.
Erstellen Sie eine neue Pipeline, indem Sie + und dann Pipeline aus dem Dropdownmenü auswählen.
Erstellen einer Lookup-Aktivität
Mithilfe einer Lookup-Aktivität kann ein Dataset aus einer von Azure Data Factory unterstützten Datenquelle abgerufen werden. Die Ausgabe der Lookup-Aktivität kann in einer ForEach- oder anderen Aktivität verwendet werden.
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.
Der Canvas enthält jetzt die von Ihnen erstellte Lookup-Aktivität. Verwenden Sie die Registerkarten unter dem Canvas, um alle relevanten Parameter zu ändern. Benennen Sie unter Allgemein die Aktivität um.
Tipp
Klicken Sie auf den leeren Canvasbereich, um die Eigenschaften der Pipeline anzuzeigen. Verwenden Sie die Registerkarte Allgemein, um die Pipeline umzubenennen. Unsere Pipeline erhält den Namen pipeline-4-docs.
Erstellen eines Azure Data Explorer-Datasets in der Lookup-Aktivität
Wählen Sie unter Einstellungen Ihr vorab erstelltes Azure Data Explorer-Quelldataset oder + Neu aus, um ein neues Dataset zu erstellen.
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.
Die neuen Azure Data Explorer-Datasetparameter werden unter Einstellungen angezeigt. Wählen Sie Bearbeiten aus, um die Parameter zu aktualisieren.
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 oder + Neu aus, um einen neuen verknüpften Dienst zu erstellen.
Beim Erstellen eines neuen verknüpften Diensts wird die Seite Neuer verknüpfter Dienst (Azure Data Explorer) geöffnet:
- Wählen Sie den Namen für den neuen 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 aufgeführt, die dem Benutzer 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. Dieser Wert finden Sie im Azure-Portal unter App-Registrierungsübersicht>>Anwendungs-ID (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.
Nachdem Sie einen verknüpften Dienst eingerichtet haben, fügen Sie in AzureDataExplorerTable>Verbindung den Tabellennamen hinzu. Wählen Sie Datenvorschau aus, um sicherzustellen, dass die Daten ordnungsgemäß dargestellt werden.
Ihr Dataset ist jetzt bereit, und Sie können die Bearbeitung Ihrer Pipeline fortsetzen.
Hinzufügen einer Abfrage zu Ihrer Lookup-Aktivität
Fügen Sie in pipeline-4-docs>Einstellungen eine Abfrage im Textfeld Abfrage hinzu. Beispiel:
ClusterQueries | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb") | summarize count() by Database
Ändern Sie bei Bedarf die Eigenschaften für Abfragetimeout oder Keine Kürzung und Nur erste Zeile. In diesem Flow behalten wir den Standardwert für Abfragetimeout bei und deaktivieren die Kontrollkästchen.
Erstellen einer For-Each-Aktivität
Diese ForEach-Aktivität wird verwendet, um eine Sammlung zu durchlaufen und die angegebenen Aktivitäten in einer Schleife auszuführen.
Nun fügen Sie der Pipeline eine ForEach-Aktivität hinzu. Diese Aktivität verarbeitet die Daten, die von der Lookup-Aktivität zurückgegeben werden.
Wählen Sie im Bereich Aktivitäten unter Iteration & Bedingungen die Aktivität ForEach aus, und ziehen Sie sie per Drag & Drop auf den Canvas.
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.
Wählen Sie die ForEach-Aktivität auf dem Canvas aus. Auf der nachfolgenden 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.
Erstellen einer Azure Data Explorer-Befehlsaktivität innerhalb der ForEach-Aktivität
Doppelklicken Sie auf die ForEach-Aktivität auf dem Canvas, um sie auf einem neuen Canvas zu öffnen und die Aktivitäten in „ForEach“ anzugeben.
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.
Wählen Sie auf der Registerkarte Verbindung denselben verknüpften Dienst aus, der zuvor erstellt wurde.
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 (mit dem asynchronen Modifizierer). Die Abfrage richtet sich an die Datenbankspalte der einzelnen Zeilen im Ergebnis der Lookup-Aktivität. Der Befehlstimeout kann unverändert beibehalten werden.
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 mit AdminThenQuery eine Abfrage an das Ergebnis anfügen, um die resultierende Größe/Zeit zu verringern.
Jetzt ist die Pipeline bereit. Sie können zur Hauptansicht der Pipeline zurückkehren, indem Sie auf den Namen der Pipeline klicken.
Wählen Sie Debuggen aus, bevor Sie die Pipeline veröffentlichen. Der Fortschritt der Pipeline kann auf der Registerkarte Ausgabe überwacht werden.
Sie können Alle veröffentlichen und dann Trigger hinzufügen auswählen, um die Pipeline auszuführen.
Ausgabe von Verwaltungsbefehlen
Die Struktur der Ausgabe der Befehlsaktivität wird im Folgenden erläutert. Diese Ausgabe kann bei der nächsten Aktivität in der Pipeline verwendet werden.
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 Feld count
gibt 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 Vorgangstabelle hinter den Kulissen ab, bis der asynchrone Vorgang abgeschlossen oder Zeitüberschreitung erfolgt. Daher enthält der zurückgegebene Wert das Ergebnis .show operations OperationId
für diese 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>"
}
]
}