Freigeben über


Bewährte Methoden zum Schreiben von Dateien in eine Datenlake mit Hilfe von Datenflüssen

Gilt für: Azure Data Factory Azure Synapse Analytics

Tipp

Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.

Wenn Sie neu bei Azure Data Factory sind, lesen Sie Einführung in Azure Data Factory.

In diesem Lernprogramm lernen Sie bewährte Methoden kennen, die beim Schreiben von Dateien in ADLS Gen2 oder Azure Blob Storage mithilfe von Datenflüssen angewendet werden können. Sie benötigen Zugriff auf ein Azure Blob Storage Konto oder Azure Data Lake Store Gen2-Konto zum Lesen einer Parkettdatei und anschließendes Speichern der Ergebnisse in Ordnern.

Voraussetzungen

  • Azure-Abonnement. Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein free Azure Konto, bevor Sie beginnen.
  • Azure Speicherkonto. Sie verwenden den ADLS-Speicher als Quelldatenspeicher und Senkendatenspeicher. Wenn Sie nicht über ein Speicherkonto verfügen, lesen Sie Erstellen eines Azure-Speicherkontos, um die Schritte zur Erstellung eines solchen Kontos zu erfahren.

Bei den Schritten in diesem Tutorial wird davon ausgegangen, dass Sie

Erstellen einer Data Factory

In diesem Schritt erstellen Sie eine Data Factory und öffnen die Data Factory-Benutzeroberfläche, um eine Pipeline in der Data Factory zu erstellen.

  1. Öffnen Sie Microsoft Edge oder Google Chrome. Derzeit wird data Factory UI nur in den Webbrowsern Microsoft Edge und Google Chrome unterstützt.

  2. Wählen Sie im Menü auf der linken Seite Ressource erstellen>Integration>Data Factory aus.

  3. Geben Sie auf der Seite Neue Data Factory unter Name den Namen ADFTutorialDataFactory ein.

  4. Wählen Sie das Azure Abonnement aus, in dem Sie die Data Factory erstellen möchten.

  5. Führen Sie unter Ressourcengruppe einen der folgenden Schritte aus:

    a) Wählen Sie Use existing und dann eine vorhandene Ressourcengruppe aus der Dropdownliste aus.

    b. Wählen Sie Neu erstellen, und geben Sie den Namen einer Ressourcengruppe ein. Weitere Informationen zu Ressourcengruppen finden Sie unter Ressourcengruppen zum Verwalten Ihrer Azure Ressourcen.

  6. Wählen Sie unter Version die Option V2.

  7. Wählen Sie unter Standort einen Standort für die Data Factory aus. In der Dropdownliste werden nur unterstützte Standorte angezeigt. Datenspeicher (z. B. Azure Storage und SQL-Datenbank) und Berechnungen (z. B. Azure HDInsight), die von der Datenfactory verwendet werden, können sich in anderen Regionen befinden.

  8. Klicken Sie auf Erstellen.

  9. Nach Abschluss der Erstellung wird der Hinweis im Benachrichtigungscenter angezeigt. Wählen Sie Zu Ressource wechseln aus, um zur Data Factory-Seite zu navigieren.

  10. Wählen Sie Author & Monitor, um die Data Factory UI in einer separaten Registerkarte zu starten.

Erstellen einer Pipeline mit einer Datenflussaktivität

In diesem Schritt erstellen Sie eine Pipeline mit einer Datenflussaktivität.

  1. Wählen Sie auf der Startseite von Azure Data Factory Orchestrate aus.

    Screenshot der Data Factory-Startseite mit hervorgehobener Schaltfläche „Orchestrieren“

  2. Geben Sie auf der Registerkarte Allgemein der Pipeline DeltaLake für den Namen der Pipeline ein.

  3. Setzen Sie auf der oberen Leiste der Factory den Schieberegler Datenfluss debuggen auf „Ein“. Der Debugmodus ermöglicht das interaktive Testen von Transformationslogik mit einem aktiven Spark-Cluster. Datenfluss-Cluster benötigen 5 bis 7 Minuten zum Aufwärmen, und es wird empfohlen, dass die Benutzer zuerst das Debuggen aktivieren, wenn sie eine Datenfluss-Entwicklung durchführen möchten. Weitere Informationen finden Sie unter Debugmodus.

    Datenfluss Activity

  4. Erweitern Sie im Bereich Aktivitäten das Accordion-Element Verschieben und transformieren. Ziehen Sie die Datenfluss-Aktivität per Drag & Drop aus dem Bereich auf die Pipelinecanvas.

    Screenshot, der den Pipeline-Canvas zeigt, auf dem Sie die Datenfluss-Aktivität ablegen können.

Erstellen von Transformationslogik im Datenfluss-Arbeitsbereich

Sie verwenden alle Quelldaten (in diesem Tutorial wird eine Parquet-Dateiquelle verwendet) sowie eine Senkentransformation, um die Daten mithilfe der effektivsten Mechanismen für Data Lake ETL im Parquet-Format bereitzustellen.

Abschließender Flow

Ziele des Tutorials

  1. Auswählen eines Quelldatasets in einem neuen Datenfluss 1; Verwenden von Datenflüssen zum effektiven Partitionieren Ihres Senkendatasets
  2. Speichern Sie Ihre partitionierten Daten in ADLS Gen2 Lake-Ordnern

Starten Sie mit einer leeren Datenfluss-Leinwand

Zunächst richten Sie die Datenflussumgebung für jeden der unten beschriebenen Mechanismen zum Bereitstellen der Daten in ADLS Gen2 ein:

  1. Klicken Sie auf die Quelltransformation.
  2. Klicken Sie im unteren Bereich neben dem Dataset auf die neue Schaltfläche.
  3. Wählen Sie ein Dataset aus, oder erstellen Sie ein neues. Für diese Demo werden wir ein Parquet-Datensatz namens "Benutzerdaten" verwenden.
  4. Fügen Sie eine "Derived Column"-Transformation hinzu. Damit werden die gewünschten Ordnernamen dynamisch festgelegt.
  5. Fügen Sie eine Senkentransformation hinzu.

Hierarchische Ordnerausgabe

Es ist üblich, eindeutige Werte in Ihren Daten zu verwenden, um Ordnerhierarchien zum Partitionieren Ihrer Daten im Lake zu erstellen. Dies ist eine optimale Methode zum Organisieren und Verarbeiten von Daten im Lake und in Spark (die Compute-Engine hinter Datenflüssen). Es fallen jedoch geringe Leistungskosten an, um Ihre Ausgabe auf diese Weise zu organisieren. Mit diesem Mechanismus in der Senke wird eine geringfügige Verringerung der Gesamtleistung der Pipeline erwartet.

  1. Wechseln Sie zurück zum Datenfluss-Designer, und bearbeiten Sie den oben erstellten Datenfluss. Klicken Sie auf die Senkentransformation.
  2. Klicken Sie auf „Optimieren“ > „Partitionierung festlegen“ > „Schlüssel“.
  3. Wählen Sie die Spalte(n) aus, die Sie zum Festlegen Ihrer hierarchischen Ordnerstruktur verwenden möchten.
  4. Beachten Sie, dass im folgenden Beispiel Jahr und Monat als Spalten für die Ordnerbenennung verwendet werden. Das Ergebnis sind Ordner in der Form releaseyear=1990/month=8.
  5. Wenn Sie auf die Datenpartitionen in einer Datenflussquelle zugreifen, zeigen Sie nur auf den Ordner der obersten Ebene oberhalb von releaseyear und verwenden ein Platzhaltermuster für jeden nachfolgenden Ordner. Beispiel: **/**/*.parquet
  6. Wenn Sie die Datenwerte bearbeiten möchten oder synthetische Werte für Ordnernamen generiert werden müssen, verwenden Sie die Transformation für abgeleitete Spalten, um die Werte zu erstellen, die Sie in Ihren Ordnernamen verwenden möchten.

Schlüsselpartitionierung

Benennen Sie den Ordner als Datenwerte

Eine etwas leistungsstärkere Senkentechnik für Lake Data mithilfe von ADLS Gen2, die nicht den gleichen Vorteil wie die Schlüssel-Wert-Partitionierung bietet, ist Name folder as column data. Während der Schlüsselpartitionierungsstil der hierarchischen Struktur Ihnen die Verarbeitung von Datenslices erleichtert, handelt es sich bei dieser Technik um eine vereinfachte Ordnerstruktur, mit der Daten schneller geschrieben werden können.

  1. Wechseln Sie zurück zum Datenfluss-Designer, und bearbeiten Sie den oben erstellten Datenfluss. Klicken Sie auf die Senkentransformation.
  2. Klicken Sie auf „Optimieren“ > „Partitionierung festlegen“ > „Aktuelle Partitionierung verwenden“.
  3. Klicken Sie auf „Einstellungen“ > und benennen Sie den Ordner als Spaltendaten.
  4. Wählen Sie die Spalte aus, die Sie zum Generieren von Ordnernamen verwenden möchten.
  5. Wenn Sie die Datenwerte bearbeiten möchten oder synthetische Werte für Ordnernamen generiert werden müssen, verwenden Sie die Transformation für abgeleitete Spalten, um die Werte zu erstellen, die Sie in Ihren Ordnernamen verwenden möchten.

Ordneroptionen

Datei als Datenwerte benennen

Die in den obigen Tutorials aufgeführten Techniken sind gute Anwendungsfälle zum Erstellen von Ordnerkategorien in Ihrem Data Lake. Das standardmäßige Dateibenennungsschema, das von diesen Techniken verwendet wird, ist die Spark-Executor-Job-ID. Manchmal möchten Sie möglicherweise den Namen der Ausgabedatei in einer Datenflusstextsenke festlegen. Diese Technik wird nur für die Verwendung mit kleinen Dateien empfohlen. Das Zusammenführen von Partitionsdateien in eine einzelne Ausgabedatei ist ein zeitintensiver Prozess.

  1. Wechseln Sie zurück zum Datenfluss-Designer, und bearbeiten Sie den oben erstellten Datenfluss. Klicken Sie auf die Senkentransformation.
  2. Klicken Sie auf „Optimieren“ > „Partitionierung festlegen“ > „Einzelne Partition“. Es ist diese Anforderung einer einzelnen Partition, die einen Engpass im Ausführungsprozess verursacht, wenn Dateien zusammengeführt werden. Diese Option wird nur für kleine Dateien empfohlen.
  3. Klicken Sie auf "Einstellungen" > und benennen Sie die Datei nach den Spaltendaten.
  4. Wählen Sie die Spalte aus, die Sie zum Generieren von Dateinamen verwenden möchten.
  5. Wenn Sie die Datenwerte bearbeiten möchten oder synthetische Werte für Dateinamen generiert werden müssen, verwenden Sie die Transformation für abgeleitete Spalten, um die Werte zu erstellen, die Sie in Ihren Dateinamen verwenden möchten.

Weitere Informationen zu Datenflusssenken