Eine Schemaabweichung liegt vor, wenn Ihre Quellen Metadaten häufig ändern. Felder, Spalten und Typen können bei laufendem Betrieb hinzugefügt, entfernt oder geändert werden. Ohne Vorkehrungen bei Schemaabweichungen wird Ihr Datenfluss anfällig für Änderungen an vorgelagerten Datenquellen. Wenn sich eingehende Spalten und Felder ändern, treten bei typischen ETL-Mustern Fehler auf, da sie dazu neigen, an diesen Quellennamen gebunden zu sein.
Zum Schutz gegen Schemaabweichung muss ein Datenflusstool Funktionen bieten, die Ihnen als Datentechniker Folgendes ermöglichen:
Definieren von Quellen mit änderbaren Feldnamen, Datentypen, Werte und Größen
Definieren von Transformationsparametern, die anstelle von hartcodierten Feldern und Werten mit Datenmustern arbeiten können
Definieren von Ausdrücken, die Muster verstehen, um sie mit Eingangsfeldern abzugleichen, anstatt benannte Felder zu verwenden
Flexible und sich von Ausführung zu Ausführung ändernde Schemas werden von Azure Data Factory nativ unterstützt, sodass Sie eine generische Datentransformationslogik erstellen können, ohne die Datenflüsse erneut kompilieren zu müssen.
Sie müssen eine architektonische Entscheidung in Ihrem Datenfluss treffen, um die Schemaabweichung in Ihrem Fluss zu akzeptieren. Wenn Sie dies tun, können Sie Schutz gegen Schemaänderungen aus den Quellen bieten. Allerdings verlieren Sie die frühe Bindung Ihrer Spalten und Typen im gesamten Datenfluss. Azure Data Factory behandelt Schemaabweichungsflüsse als Flüsse mit später Bindung, sodass die abweichenden Spaltennamen bei der Erstellung Ihrer Transformationen Ihnen nicht im gesamten Fluss in den Schemaansichten zur Verfügung stehen.
Dieses Video bietet eine Einführung in einige der komplexen Lösungen, die Sie in Azure Data Factory oder Synapse Analytics-Pipelines mit der Data Flow-Funktion Schema Drift leicht erstellen können. In diesem Beispiel erstellen wir basierend auf flexiblen Datenbankschemas wiederverwendbare Muster:
Schemaabweichung in der Quelle
Spalten, die Ihrem Datenfluss aus Ihrer Quelldefinition hinzugefügt werden, sind als abweichende Spalten definiert, wenn sie nicht in Ihrer Quellprojektion vorhanden sind. Ihre Quellprojektion können Sie sich auf der Registerkarte „Projektion“ der Quelltransformation ansehen. Wenn Sie ein Dataset als Quelle auswählen, übernimmt der Dienst automatisch das Schema aus dem Dataset und erstellt eine Projektion aus dieser Schemadefinition des Datasets.
In einer Quellentransformation wird die Schemaabweichung als das Lesen von Spalten definiert, die in Ihrem Datasetschema nicht definiert sind. Um Schemaabweichung zu ermöglichen, wählen Sie in Ihrer Quellentransformation Allow Schema Drift (Schemaabweichung zulassen) aus.
Bei aktivierter Schemaabweichung werden während der Ausführung alle eingehenden Felder aus Ihrer Quelle gelesen und durch den gesamten Datenfluss zur Senke geleitet. Alle neu erkannten Spalten (abweichende Spalten genannt) werden standardmäßig mit dem Datentyp „String“ empfangen. Wenn Sie möchten, dass der Datenfluss automatisch Datentypen abweichender Spalten ableiten kann, aktivieren Sie in Ihren Quelleinstellungen die Option Infer drifted column types (Abweichende Spaltentypen ableiten).
Schemaabweichung in Senke
Bei einer Senkentransformation erfolgt eine Schemabweichung, wenn Sie zusätzliche Spalten zusätzlich zu dem schreiben, was im Datenschema der Senke definiert ist. Um die Schemaabweichung zu ermöglichen, wählen Sie in Ihrer Senkentransformation Allow Schema Drift (Schemaabweichung zulassen) aus.
Wenn die Schemaabweichung aktiviert ist, stellen Sie sicher, dass auf der Registerkarte „Mapping“ (Zuordnung) der Schieberegler Auto-Mapping (Automatische Zuordnung) aktiviert ist. Wenn dieser Schieberegler eingeschaltet ist, werden alle eingehenden Spalten in Ihr Ziel geschrieben. Andernfalls müssen Sie die regelbasierte Zuordnung verwenden, um abweichende Spalten zu schreiben.
Transformieren abweichender Spalten
Wenn Ihr Datenfluss abweichende Spalten aufweist, können Sie in Ihren Transformationen mit den folgenden Methoden auf diese zugreifen:
Verwenden der Ausdrücke byPosition und byName, um auf eine Spalte explizit über Name oder Positionsnummer zu verweisen
Hinzufügen eines Spaltenmusters in einer Transformation des Typs „Abgeleitete Spalte“ oder „Aggregat“, um es mit einer beliebigen Kombination aus Name, Datenstrom, Position, Ursprung oder Typ abzugleichen
Hinzufügen einer regelbasierten Zuordnung in einer Auswahl- oder Senkentransformation, um abweichende Spalten über ein Muster mit Spaltenaliasen abzugleichen
Um explizit auf abweichende Spalten zu verweisen, können Sie in kürzester Zeit Zuordnungen für diese Spalten über eine Schnellaktion zur Datenvorschau erzeugen. Nach Aktivierung des Debugmodus wechseln Sie zur Registerkarte „Datenvorschau“ und klicken auf Aktualisieren, um eine Datenvorschau abzurufen. Wenn Data Factory feststellt, dass abweichende Spalten vorhanden sind, können Sie auf Map Drifted (Abweichende zuordnen) klicken und eine abgeleitete Spalte erzeugen, mit der Sie in nachgelagerten Schemaansichten auf alle abweichenden Spalten verweisen können.
In der generierten Transformation des Typs „Abgeleitete Spalten“ werden alle abweichenden Spalten dem erkannten Namen und Datentyp zugeordnet. In der obigen Datenvorschau wird die Spalte „movieId“ als ganze Zahl erkannt. Nach Klicken auf Map Drifted (Abweichende zuordnen) wird movieId in der abgeleiteten Spalte als toInteger(byName('movieId')) definiert und bei nachgelagerten Transformationen in Schemaansichten berücksichtigt.
Zugehöriger Inhalt
In der Datenfluss-Ausdruckssprache finden Sie zusätzliche Funktionen für Spaltenmuster und Schemaabweichung einschließlich byName und byPosition.
Zeigen Sie Ihre Kenntnisse von allgemeinen Datentechnikaufgaben zum Implementieren und Verwalten von Datentechnikworkloads in Microsoft Azure unter Verwendung verschiedener Azure-Dienste.
Erfahren Sie, wie Sie Pipelines und Aktivitäten in Azure Data Factory und Azure Synapse Analytics verwenden, um datengesteuerte Workflows für Datenbewegungen und Verarbeitungsszenarien zu erstellen.
Transformieren oder Verarbeiten von Daten in Azure Data Factory oder Azure Synapse Analytics mithilfe von Hadoop, ML Studio (klassisch) oder Azure Data Lake Analytics.
Erfahren Sie mehr über die Copy-Aktivität in Azure Data Factory und Azure Synapse Analytics. Mit der dieser Aktivität können Sie Daten aus einem unterstützten Quelldatenspeicher in einen unterstützten Senkendatenspeicher kopieren.
Hier erfahren Sie, wie Sie die Lookupaktivität in Azure Data Factory und Azure Synapse Analytics verwenden, um einen Wert in einer externen Quelle zu suchen. Auf die Ausgabe kann durch nachfolgende Aktivitäten verwiesen werden.