Integration von Azure Data Explorer und Azure Data Factory

Azure Data Factory (ADF) ist ein cloudbasierter Datenintegrationsdienst, der die Integration verschiedener Datenspeicher und die Durchführung von Aktivitäten für die Daten ermöglicht. Mit ADF können Sie datengesteuerte Workflows zur Orchestrierung und Automatisierung der Datenverschiebung und Transformation von Daten erstellen. Azure Data Explorer ist einer der unterstützten Datenspeicher in Azure Data Factory.

Azure Data Factory-Aktivitäten für Azure Data Explorer

Für Azure Data Explorer-Benutzer sind verschiedene Azure Data Factory-Integrationen verfügbar:

Copy-Aktivität

Die Kopieraktivität von Azure Data Factory wird verwendet, um Daten zwischen Datenspeichern zu übertragen. Azure Data Explorer wird als Quelle, aus der Daten in Azure Data Explorer in einen beliebigen unterstützten Datenspeicher kopiert werden, und als Senke unterstützt, in die Daten aus einem beliebigen unterstützten Datenspeicher in Azure Data Explorer kopiert werden. Weitere Informationen finden Sie unter Kopieren von Daten in oder aus Azure Data Explorer mithilfe von Azure Data Factory. Eine ausführliche exemplarische Vorgehensweise finden Sie unter Laden von Daten aus Azure Data Factory in Azure Data Explorer. Azure Data Explorer wird von Azure IR (Integration Runtime) unterstützt, um Daten innerhalb Azure zu kopieren. Azure Data Explorer wird von einer selbstgehosteten IR unterstützt, um von Daten aus/in Datenspeicher zu kopieren, die sich lokal oder in einem Netzwerk mit Zugriffssteuerung, z. B. in einem virtuellen Azure-Netzwerk, befinden. Weitere Informationen finden Sie in der zu verwendenden IR.

Tipp

Wenn Sie die Kopieraktivität verwenden und einen verknüpften Dienst oder ein Dataset erstellen, wählen Sie den Datenspeicher Azure Data Explorer(Kusto) und nicht den alten Datenspeicher Kusto aus.

Lookup-Aktivität

Die Lookup-Aktivität wird zum Ausführen von Abfragen in Azure Data Explorer verwendet. Das Ergebnis der Abfrage wird als Ausgabe der Lookup-Aktivität zurückgegeben und kann in der nächsten Aktivität in der Pipeline verwendet werden (siehe Beschreibung in der ADF-Lookup-Dokumentation).

Neben der Größenbeschränkung von 5.000 Zeilen und 2 MB für Antworten weist die Aktivität auch ein Abfragezeitlimit von 1 Stunde auf.

Befehlsaktivität

Die Befehlsaktivität ermöglicht die Ausführung von Azure Data Explorer-Verwaltungsbefehlen. Im Gegensatz zu Abfragen können die Verwaltungsbefehle möglicherweise Daten oder Metadaten ändern. Einige der Verwaltungsbefehle dienen zum Erfassen von Daten in Azure Data Explorer mithilfe von Befehlen wie .ingestoder .set-or-append) oder zum Kopieren von Daten aus Azure Data Explorer in externe Datenspeicher mithilfe von Befehlen wie .export. Eine ausführliche exemplarische Vorgehensweise der Befehlsaktivität finden Sie unter Verwenden Azure Data Factory Befehlsaktivität zum Ausführen von Azure Data Explorer-Verwaltungsbefehlen. Die Verwendung eines Verwaltungsbefehls zum Kopieren von Daten kann manchmal eine schnellere und kostengünstigere Option als die Copy-Aktivität sein. Weitere Informationen zum Bestimmen, wann die Befehlsaktivität und wann die Kopieraktivität verwendet werden sollte, finden Sie unter Auswählen zwischen Kopier- und Befehlsaktivitäten beim Kopieren von Daten.

Massenkopieren aus einer Datenbankvorlage

Die Azure Data Factory-Vorlage zum Massenkopieren aus einer Datenbank in Azure Data Explorer ist eine vordefinierte Azure Data Factory-Pipeline. Die Vorlage wird zum Erstellen einer Vielzahl von Pipelines für eine Datenbank oder Tabelle verwendet, damit Daten schneller kopiert werden.

Zuordnen von Datenflüssen

Azure Data Factory-Zuordnungsdatenflüsse sind visuell gestaltete Datentransformationen, mit denen Datentechniker eine grafische Datentransformationslogik entwickeln können, ohne Code schreiben zu müssen. Verwenden Sie zum Erstellen eines Datenflusses und zum Erfassen von Daten in Azure Data Explorer die folgende Methode:

  1. Erstellen Sie den Zuordnungsdatenfluss.
  2. Exportieren Sie die Daten in Azure-Blob.
  3. Definieren Sie Event Grid oder die ADF-Kopieraktivität, um die Daten in Azure Data Explorer zu erfassen.

Auswählen zwischen Kopier- und Azure Data Explorer-Befehlsaktivitäten beim Kopieren von Daten

Dieser Abschnitt unterstützt Sie bei der Auswahl der richtigen Aktivität für Ihre Anforderungen zum Kopieren von Daten.

Beim Kopieren von Daten aus oder in Azure Data Explorer stehen in Azure Data Factory zwei Optionen zur Verfügung:

  • Kopieraktivität.
  • Azure Data Explorer Command-Aktivität, die einen der Verwaltungsbefehle ausführt, die Daten in Azure Data Explorer übertragen.

Kopieren von Daten aus Azure Data Explorer

Sie können Daten aus Azure Data Explorer mit der Kopieraktivität oder mit dem Befehl .export kopieren. Der .export-Befehl führt eine Abfrage aus und exportiert dann die Ergebnisse der Abfrage.

In der folgenden Tabelle finden Sie einen Vergleich zwischen der Kopieraktivität und dem .export-Befehl zum Kopieren von Daten aus Azure Data Explorer.

Copy-Aktivität .export-Befehl
Beschreibung des Ablaufs ADF führt eine Abfrage in Kusto aus, verarbeitet das Ergebnis und sendet es an den Zieldatenspeicher.
(Azure Data Explorer > ADF-Senkendatenspeicher>)
ADF sendet einen .export Verwaltungsbefehl an Azure Data Explorer, der den Befehl ausführt, und sendet die Daten direkt an den Zieldatenspeicher.
(** Azure Data Explorer > Senkendatenspeicher**)
Unterstützte Zieldatenspeicher Eine Vielzahl von unterstützten Datenspeichern ADLSv2, Azure-Blob, SQL-Datenbank
Leistung Zentralisiert
  • Verteilt (Standard), gleichzeitiger Export von Daten aus mehreren Knoten
  • Schneller und COGS-effizient (Cost Of Goods Sold, Umsatzkosten)
Servereinschränkungen Abfragelimits können erweitert/deaktiviert werden. Standardmäßig gilt für ADF-Abfragen:
  • Größenbeschränkung von 500.000 Datensätzen oder 64 MB.
  • Zeitlimit von 10 Minuten.
  • noTruncation auf FALSE festgelegt.
Erweitert oder deaktiviert standardmäßig die Abfragelimits:
  • Größenbeschränkungen sind deaktiviert.
  • Das Serverzeitlimit wird auf 1 Stunde verlängert.
  • MaxMemoryConsumptionPerIterator und MaxMemoryConsumptionPerQueryPerNode werden auf das Maximum (5 GB, Hälfte des gesamten physischen Arbeitsspeichers) erweitert.

Tipp

Wenn das Kopierziel einer der vom .export-Befehl unterstützten Datenspeicher ist und keine Funktion der Kopieraktivität für die jeweiligen Anforderungen entscheidend ist, wählen Sie den .export-Befehl aus.

Kopieren von Daten nach Azure Data Explorer

Sie können Daten mit der Kopieraktivität oder mit den Erfassungsbefehlen, z. B. Erfassung aus Abfrage (.set-or-append, .set-or-replace, .set, .replace) und Erfassung aus Speicher (.ingest) in Azure Data Explorer kopieren.

In der folgenden Tabelle finden Sie einen Vergleich zwischen der Kopieraktivität und dem Erfassungsbefehl zum Kopieren von Daten nach Azure Data Explorer.

Copy-Aktivität Erfassung aus der Abfrage
.set-or-append / .set-or-replace / .set / .replace
Erfassung aus dem Speicher
.ingest
Beschreibung des Ablaufs ADF ruft die Daten aus dem Quelldatenspeicher ab, konvertiert sie in ein Tabellenformat und führt die erforderlichen Schemazuordnungsänderungen durch. ADF lädt die Daten dann in Azure-Blobs hoch, teilt sie in Blöcke auf und lädt die Blobs dann herunter, um sie in der Azure Data Explorer-Tabelle zu erfassen.
(Quelldatenspeicher > ADF > Azure Blobs > Azure Data Explorer)
Diese Befehle können eine Abfrage oder einen .show Befehl ausführen und die Ergebnisse der Abfrage in einer Tabelle erfassen (Azure Data Explorer > Azure Data Explorer). Mit diesem Befehl werden Daten in einer Tabelle erfasst, indem die Daten aus mindestens einem Cloudspeicherartefakt abgerufen werden (Pull).
Unterstützte Quelldatenspeicher Vielzahl verschiedener Optionen ADLS Gen 2, Azure Blob, SQL (mithilfe des sql_request()-Plug-Ins), Azure Cosmos DB (mit dem cosmosdb_sql_request-Plug-In) und alle anderen Datenspeicher, die HTTP- oder Python-APIs bereitstellt. Dateisystem, Azure Blob Storage, ADLS Gen 1, ADLS Gen 2
Leistung Erfassungen werden in die Warteschlange eingereiht und verwaltet. Dadurch werden Erfassungen mit geringer Größe sichergestellt sowie durch Lastenausgleich, Wiederholungsversuchen und Fehlerbehandlung hohe Verfügbarkeit gewährleistet.
  • Die Befehle wurden nicht für den Import großer Datenmengen konzipiert.
  • Funktioniert erwartungsgemäß und günstiger. Verwenden Sie jedoch für Produktionsszenarien und bei großen Datenverkehrsraten sowie umfangreichen Daten die Kopieraktivität.
Servereinschränkungen
  • Kein Größenlimit.
  • Maximales Timeoutlimit: Eine Stunde pro erfasstem Blob.
  • Es gibt lediglich eine Größenbeschränkung für den Abfrageteil, die durch Angeben von noTruncation=true ausgesetzt werden kann.
  • Maximales Timeoutlimit: Eine Stunde.
  • Kein Größenlimit.
  • Maximales Timeoutlimit: Eine Stunde.

Tipp

  • Verwenden Sie beim Kopieren von Daten aus ADF nach Azure Data Explorer die ingest from query-Befehle.
  • Verwenden Sie für große Datasets (>1 GB) die Copy-Aktivität.

Erforderliche Berechtigungen

In der folgenden Tabelle sind die erforderlichen Berechtigungen für verschiedene Schritte bei der Integration mit Azure Data Factory aufgeführt.

Schritt Vorgang Minimale Berechtigungsebene Notizen
Erstellen eines verknüpften Diensts Datenbanknavigation Anzeigender Datenbankbenutzer
Der angemeldete Benutzer, der ADF verwendet, muss über die Berechtigung verfügen, Datenbankmetadaten zu lesen.
Der Benutzer kann den Datenbanknamen manuell angeben.
Testen der Verbindung Datenbankmonitor oder Tabelleningestor
Der Dienstprinzipal muss über die Berechtigung verfügen, .show-Befehle auf Datenbankebene oder eine Erfassung auf Tabellenebene auszuführen.
  • TestConnection überprüft die Verbindung zum Cluster und nicht die Verbindung zur Datenbank. Die Überprüfung kann auch dann erfolgreich sein, wenn die Datenbank nicht vorhanden ist.
  • Berechtigungen als Tabellenadministrator sind nicht ausreichend.
Erstellen eines Datasets Tabellennavigation Datenbankmonitor
Der angemeldete Benutzer, der ADF verwendet, muss über die Berechtigung verfügen, .show-Befehle auf Datenbankebene auszuführen.
Der Benutzer kann den Tabellennamen manuell angeben.
Erstellen eines Datasets oder Kopieraktivität Datenvorschau Anzeigender Datenbankbenutzer
Der Dienstprinzipal muss über die Berechtigung verfügen, Datenbankmetadaten zu lesen.
Schema importieren Anzeigender Datenbankbenutzer
Der Dienstprinzipal muss über die Berechtigung verfügen, Datenbankmetadaten zu lesen.
Wenn Azure Data Explorer die Quelle einer Tabellarischen Kopie ist, importiert ADF das Schema automatisch, auch wenn der Benutzer das Schema nicht explizit importiert hat.
Azure Data Explorer als Senke Erstellen einer Spaltenzuordnung anhand der Namen Datenbankmonitor
Der Dienstprinzipal muss über die Berechtigung verfügen, .show-Befehle auf Datenbankebene auszuführen.
  • Alle obligatorischen Vorgänge funktionieren mit tabelleninternem Speicher.
  • Einige optionale Vorgänge können fehlschlagen.
  • Erstellen einer CSV-Zuordnung für die Tabelle
  • Löschen der Zuordnung
Tabelleningestor oder Datenbankadministrator
Der Dienstprinzipal muss über die Berechtigung verfügen, Änderungen an einer Tabelle vorzunehmen.
Erfassen von Daten Tabelleningestor oder Datenbankadministrator
Der Dienstprinzipal muss über die Berechtigung verfügen, Änderungen an einer Tabelle vorzunehmen.
Azure Data Explorer als Quelle Abfrage ausführen Anzeigender Datenbankbenutzer
Der Dienstprinzipal muss über die Berechtigung verfügen, Datenbankmetadaten zu lesen.
Kusto-Befehl Gemäß Berechtigungsstufe des jeweiligen Befehls.

Leistung

Wenn Azure Data Explorer die Quelle ist und Sie eine Lookup-, Kopier- oder Befehlsaktivität verwenden, die eine Abfrage enthält, finden Sie unter Bewährte Methoden für Abfragen Informationen zur Leistung. Weitere Informationen finden Sie darüber hinaus in der ADF-Dokumentation für die Kopieraktivität.

In diesem Abschnitt wird die Verwendung der Kopieraktivität behandelt, wenn Azure Data Explorer die Senke ist. Der geschätzte Durchsatz für eine Azure Data Explorer-Senke beträgt 11-13 Mbit/s. In der folgenden Tabelle sind die Parameter aufgeführt, die die Leistung der Azure Data Explorer-Senke beeinflussen.

Parameter Notizen
Geografische Anordnung der Komponenten Platzieren Sie alle Komponenten in derselben Region:
  • Quellen- und Senkendatenspeicher.
  • ADF Integration Runtime.
  • Ihr Azure Data Explorer-Cluster
Stellen Sie sicher, dass sich zumindest die Integration Runtime in derselben Region wie Ihr Azure Data Explorer-Cluster befindet.
Anzahl von DIUs Eine VM für alle vier diUs, die von ADF verwendet werden.
Das Erhöhen der DIUs ist nur hilfreich, wenn Es sich bei Ihrer Quelle um einen dateibasierten Speicher mit mehreren Dateien handelt. Die verschiedenen Dateien werden dann parallel von einer VM verarbeitet. Daher hat das Kopieren einer einzelnen großen Datei eine höhere Latenz als das Kopieren mehrerer kleinerer Dateien.
Menge und SKU Ihres Azure Data Explorer-Clusters Eine hohe Anzahl von Azure Data Explorer-Knoten erhöht die Erfassungsverarbeitungszeit. Durch die Verwendung von Entwicklungs-SKUs wird die Leistung erheblich eingeschränkt.
Parallelität Um eine große Datenmenge aus einer Datenbank zu kopieren, partitionieren Sie Ihre Daten, und verwenden Sie dann eine ForEach-Schleife, die jede Partition parallel kopiert, oder verwenden Sie die Data Explorer-Vorlage massenkopieren aus der Datenbank in Azure. Hinweis: Einstellungen>Parallelitätsgrad in der Copy-Aktivität ist für Azure Data Explorer nicht relevant.
Komplexität der Datenverarbeitung Die Latenz hängt jeweils vom Format der Quelldatei, von der Spaltenzuordnung und von der Komprimierung ab.
Die VM, auf der die Integration Runtime ausgeführt wird
  • Für Azure-interne Kopiervorgänge können ADF-VMs und Computer-SKUs nicht geändert werden.
  • Stellen Sie für lokales Kopieren in Azure fest, dass die VM, die Ihre selbstgehostete IR hostet, stark genug ist.

Tipps und häufige Probleme

Überwachen des Aktivitätsstatus

  • Bei der Überwachung des Aktivitätsfortschritts kann die geschriebene Data-Eigenschaft größer als die Data read-Eigenschaft sein, da datenlese entsprechend der Binären Dateigröße berechnet wird, während geschriebene Daten nach der Größe im Arbeitsspeicher berechnet werden, nachdem die Daten deserialisiert und dekomprimiert wurden.

  • Bei der Überwachung des Aktivitätsstatus können Sie sehen, dass Daten in die Azure Data Explorer-Senke geschrieben werden. Wenn Sie die Azure Data Explorer-Tabelle abfragen, sehen Sie, dass die Daten nicht angekommen sind. Dies liegt daran, dass das Kopieren in Azure Data Explorer in zwei Phasen erfolgt.

    • In der ersten Phase werden die Quelldaten gelesen, in Blöcke zu je 900 MB aufgeteilt und die einzelnen Blöcke in ein Azure-Blob hochgeladen. Die erste Phase ist in der Statusansicht der ADF-Aktivität sichtbar.
    • Die zweite Phase beginnt, sobald alle Daten in Azure-Blobs hochgeladen wurden. Die Knoten Ihres Clusters laden die Blobs herunter und erfassen die Daten in der Senkentabelle. Die Daten sind dann in der Azure Data Explorer-Tabelle sichtbar.

Fehler beim Erfassen von CSV-Dateien aufgrund einer unsachgemäßen Verwendung von Escapezeichen

Azure Data Explorer erwartet, dass CSV-Dateien RFC 4180 entsprechen. Voraussetzungen:

  • Felder mit Zeichen, die mit einem Escapezeichen versehen werden müssen (z. B. " und Zeilenumbrüche), müssen mit einem Anführungszeichen ( " ) ohne Leerzeichen beginnen und enden. Für alle Anführungszeichen ( " ) innerhalb des Felds wird ein weiteres Anführungszeichen ( " ) als Escapezeichen verwendet ( "" ). Beispielsweise ist "Hello, ""World""" eine gültige CSV-Datei mit einem einzelnen Datensatz, der aus einer einzelnen Spalte oder einem einzelnen Feld mit dem Inhalt Hello, "World" besteht.
  • Alle Datensätze in der Datei müssen über dieselbe Anzahl von Spalten und Feldern verfügen.

Azure Data Factory unterstützt den umgekehrten Schrägstrich (Escapezeichen). Wenn Sie mit Azure Data Factory eine CSV-Datei mit umgekehrtem Schrägstrich generieren, schlägt die Erfassung der Datei in Azure Data Explorer fehl.

Beispiel

Die Textwerte Hello, "World"
ABC DEF
"ABC\D"EF
"ABC DEF

müssen in einer funktionsfähigen CSV-Datei wie folgt aussehen: "Hello, ""World"""
"ABC DEF"
"""ABC\D""EF"
"""ABC DEF"

Wenn Sie das standardmäßige Escapezeichen (umgekehrter Schrägstrich) verwenden, wird die folgende CSV-Datei von Azure Data Explorer nicht unterstützt: "Hello, "World""
"ABC DEF"
""ABC\D"EF"
""ABC DEF"

Geschachtelte JSON-Objekte

Beachten Sie beim Kopieren einer JSON-Datei in Azure Data Explorer Folgendes:

  • Arrays werden nicht unterstützt.
  • Wenn Ihre JSON-Struktur Objektdatentypen enthält, werden die untergeordneten Elemente des Objekts von Azure Data Factory vereinfacht. Anschließend wird versucht, jedes untergeordnete Element einer anderen Spalte in der Azure Data Explorer-Tabelle zuzuordnen. Wenn das gesamte Objektelement einer einzelnen Spalte in Azure Data Explorer zugeordnet werden soll, gehen Sie wie folgt vor:
    • Erfassen Sie die gesamte JSON-Zeile in einer einzelnen dynamischen Spalte in Azure Data Explorer.
    • Bearbeiten Sie die Pipelinedefinition manuell mit dem JSON-Editor von Azure Data Factory. Unter Mappings
      • Entfernen Sie die verschiedenen Zuordnungen, die für jedes untergeordnete Element erstellt wurden, und fügen Sie eine einzelne Zuordnung hinzu, durch die der Objekttyp der Tabellenspalte zugeordnet wird.
      • Fügen Sie nach der schließenden eckigen Klammer ein Komma hinzu, auf das nachstehende Zeichenfolge folgt:
        "mapComplexValuesToString": true.

Angeben von zusätzlichen Eigenschaften beim Kopieren in Azure Data Explorer

Sie können zusätzliche Erfassungseigenschaften hinzufügen, indem Sie sie in der Pipeline angeben.

So fügen Sie Eigenschaften hinzu

  1. Wählen Sie in Azure Data Factory das Stiftwerkzeug Verfassen aus.

  2. Wählen Sie unter Pipeline die Pipeline aus, in der Sie zusätzliche Erfassungseigenschaften hinzufügen möchten.

  3. Wählen Sie in der Canvas Aktivitäten die Aktivität Daten kopieren aus.

  4. Wählen Sie in den Aktivitätsdetails Senke aus, und erweitern Sie dann Weitere Eigenschaften.

  5. Wählen Sie Neu und dann je nach Bedarf entweder Knoten hinzufügen oder Array hinzufügen aus, und geben Sie den Namen und den Wert der Erfassungseigenschaft an. Wiederholen Sie diesen Schritt, um weitere Eigenschaften hinzuzufügen.

  6. Speichern Sie anschließend Ihre Pipeline, und veröffentlichen Sie sie.

Nächster Schritt