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

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!

Falls Sie noch nicht mit Azure Data Factory vertraut sind, ist es ratsam, den Artikel Einführung in Azure Data Factory zu lesen.

In diesem Tutorial 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 ein Azure Data Lake Store Gen2-Konto, um eine Parquet-Datei zu lesen und die Ergebnisse dann in Ordnern zu speichern.

Voraussetzungen

  • Azure-Abonnement. Wenn Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen, bevor Sie beginnen.
  • Azure-Speicherkonto. Sie verwenden den ADLS-Speicher als Quelldatenspeicher und Senkendatenspeicher. Wenn Sie kein Speicherkonto besitzen, finden Sie unter Informationen zu Azure-Speicherkonten Schritte zum Erstellen eines solchen Kontos.

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. Die Data Factory-Benutzeroberfläche wird derzeit 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 die Data Factory erstellt werden soll.

  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 Verwenden von Ressourcengruppen zum Verwalten von 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 (etwa Azure Storage und SQL-Datenbank) und Computeeinheiten (etwa Azure HDInsight), die von der Data Factory genutzt 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. Klicken Sie auf Erstellen und überwachen, um die Data Factory-Benutzeroberfläche auf einer separaten Registerkarte zu starten.

Erstellen einer Pipeline mit einer Datenflussaktivität

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

  1. Klicken Sie auf der Homepage von Azure Data Factory auf Orchestrate.

    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. Die Aufwärmphase von Datenflussclustern dauert 5 bis 7 Minuten. Den Benutzern wird empfohlen, zuerst den Debugmodus zu aktivieren, wenn sie die Entwicklung eines Datenflusses planen. Weitere Informationen finden Sie unter Debugmodus.

    Datenflussaktivität

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

    Screenshot des Pipeline-Canvas, auf dem die Datenflussaktivität abgelegt werden kann

Erstellen von Transformationslogik im Datenfluss-Arbeitsbereich

Sie nehmen Quelldaten (in diesem Tutorial verwenden wir eine Parquet-Dateiquelle) und nutzen eine Zieltransformation, um die Daten im Parquet-Format abzulegen, indem Sie die effektivsten Mechanismen für ETL-Prozesse im Data Lake anwenden.

Abschließender Flow

Ziele des Tutorials

  1. Wählen Sie ein beliebiges Quelldataset in einem neuen Datenfluss aus. Verwenden Sie Datenflüsse, um Ihr Zieldataset effektiv zu partitionieren.
  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 gibt jedoch geringe Leistungseinbußen, wenn Sie Ihre Ausgabe auf diese Weise 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