Hinzufügen von SQL-Umwandlungen
Sie können SQL-basierte Tabellen in Umwandlungsaufgaben aufnehmen. Eine SQL-Umwandlung ermöglicht die Eingabe einer SQL SELECT-Abfrage in eine Pipeline, um komplexe oder einfache Umwandlungen zu definieren. Sie können den SQL-Assistenten eine Abfrage aus einer Texteingabe mithilfe von generativer KI erstellen lassen.Sie können auch Makros verwenden, um die auszuführende Abfrage anzupassen, wenn ein anfänglicher Ladevorgang oder ein inkrementeller Ladevorgang durchgeführt wird.
Weitere Informationen zum Erstellen einer Umwandlungsaufgabe finden Sie unter Umwandeln von Daten.
Hinzufügen einer SQL-Umwandlung
So fügen Sie eine SQL-Umwandlung in einer Umwandlungs-Datenaufgabe hinzu:
-
Wählen Sie bei Umwandeln die Datensätze, die in die Abfrage eingeschlossen werden sollen, und klicken Sie auf SQL-Umwandlung hinzufügen.
SQL-Umwandlung hinzufügen wird angezeigt. Dort können Sie Einstellungen für die Umwandlung angeben.
-
Geben Sie einen Namen für den Zieldatensatz in Name ein.
Sie können auch eine längere Beschreibung in Beschreibung hinzufügen.
-
Wählen Sie bei der Materialisierung aus, ob die umgewandelte Ausgabe materialisiert werden soll oder nicht. Sie können sich entscheiden, die Einstellung aus den Datenaufgabeneinstellungen zu übernehmen.
-
Mit Ein werden Tabellen erstellt und verbundene ELT-Prozesse verarbeitet.
-
Durch Aus werden Ansichten erstellt, die Umwandlungen spontan durchführen.
-
-
Inkrementelles Laden ermöglicht es Ihnen, die Abfrage für einen inkrementellen Datenladevorgang anzupassen, indem Sie Filter oder andere Bedingungen anwenden, um den gerade verarbeiteten Datensatz mithilfe von Makros zu reduzieren. Inkrementelles Laden ist nur verfügbar, wenn die Daten als Tabellen materialisiert werden.
-
Wenn Inkrementelles Laden auf Ein steht
Bei der ersten Ausführung der Aufgabe wird ein anfänglicher Ladevorgang durchgeführt. Dadurch werden alle Ergebnisse der Abfrage in Ihre Zieltabelle eingefügt. Nachfolgende Ausführungen führen inkrementelle Ladevorgänge durch, wobei Filter oder bestimmte Bedingungen genutzt werden, die Sie für die inkrementelle Verarbeitung definiert haben. Während des inkrementellen Ladevorgangs verarbeitet die Aufgabe nur Daten als Update oder Einfügung.Löschungen werden nicht verwaltet.
-
Wenn Inkrementelles Laden auf Ein steht
Bei der ersten Ausführung der Aufgabe wird ein anfänglicher Ladevorgang durchgeführt. Dadurch werden alle Ergebnisse der Abfrage in Ihre Zieltabelle eingefügt. Nachfolgende Ausführungen führen alle Ergebnisse der Anforderung aus, indem sie sie mit Ihrer Zieltabelle vergleichen und Datensätze verarbeiten, die neu, verändert oder gelöscht sind.
InformationshinweisSetzen Sie Inkrementelles Laden auf „Aus“, wenn die Abfrage alle Datensätze auswählt, die im Ziel vorhanden sein sollen. Nicht ausgewählte Datensätze werden im Ziel gelöscht. -
-
Klicken Sie auf Hinzufügen, wenn Sie zum Erstellen der SQL-Umwandlung bereit sind.
SQL-Umwandlung bearbeiten wird angezeigt.
-
Geben Sie die Abfrage zum Zurückgeben der SQL-basierten Tabelle in SELECT-Abfrage ein.
Die Abfrage kann nur aus den ausgewählten Quelldatensätzen gelesen werden, aber Sie können mit Hinzufügen weitere Quelldatensätze hinzufügen.
Sie können aus den Datasets und den Spalten auswählen.
Sie können auch SQL-Assistent verwenden, um eine Abfrage mithilfe von generativer KI zu erstellen. Weitere Informationen finden Sie unter Generieren einer SQL-Umwandlung anhand einer Texteingabe.
-
Falls ein inkrementeller Ladevorgang verwendet wird, können Sie Makros verwenden, um die auszuführende Abfrage anzupassen, wenn ein anfänglicher oder ein inkrementeller Ladevorgang durchgeführt wird.
Weitere Informationen finden Sie unter Verwenden von Makros zur Adaptierung der Abfrage an den Ladetyp.
-
Klicken Sie auf Parameter extrahieren, um die Parameter in der SELECT-Abfrage zu analysieren.
Die Parameter sollten zu Quell- oder Zielobjekten zugewiesen werden. Sie können eine Zuweisung durchführen auf
-
Verlaufsstrukturen des Typs 2 (_history)
-
Aktuelle Strukturen
-
Zielobjekte
Sie können Zielobjekte nur zuweisen, wenn ein Parameter innerhalb eines inkrementellen Makros definiert ist.
TipphinweisSie können einen Parameter durch eine Referenz ersetzen, um eine Abfrage zu erhalten, die einfacher lesbar ist. Ändern Sie den Wert in Parameter. Die Referenz in der SELECT-Abfrage ändert sich dann auch. -
-
Klicken Sie auf Tabelle beschreiben, um eine Vorschau der Ausgabemetadaten der Abfrage zu erhalten.
Sie können auch eine Vorschau der Ergebnisse anzeigen, die Beispieldaten verwendet.
-
Stellen Sie sicher, dass die Tabelle über einen Primärschlüssel verfügt.
Sie können auch die Metadateneinstellungen bearbeiten.
-
Legen Sie Primärschlüssel in der Spalte Schlüssel fest.
-
Legen Sie in der Spalte Nullwertfähig fest, ob die Spalte nullwertfähig ist.
-
Wählen Sie eine Spalte aus und klicken Sie auf Bearbeiten, um den Spaltennamen, die Nullwertfähigkeit und den Datentyp festzulegen.
-
-
Wenn Sie mit den Ergebnissen der Abfrage zufrieden sind, klicken Sie auf OK. Der Datensatz wird nun zur Liste der Ziele hinzugefügt und kann in einer Vorschau angezeigt werden.
Datenvorschau
Sie können eine Vorschau der Ergebnisse anzeigen, die Beispieldaten verwendet.
Ihnen müssen die folgenden Rollen zugewiesen sein, um eine Vorschau der Daten anzeigen zu können:
-
Kann Daten anzeigen in dem Bereich, in dem sich die Verbindung befindet.
-
Kann anzeigen in dem Bereich, in dem sich das Projekt befindet.
So zeigen Sie eine Vorschau der Ergebnisse an:
-
Klicken Sie auf Daten anzeigen.
Ergebnisse für Beispieldaten werden angezeigt. Mit Zeilenanzahl können Sie festlegen, wie viele Datenzeilen in das Beispiel eingeschlossen werden sollen.
Sie können die Beispieldaten auf zwei Arten filtern:
-
Verwenden Sie , um zu filtern, welche Beispieldaten abgerufen werden.
Wenn Sie beispielsweise den Filter ${OrderYear}>2023 verwenden und Zeilenanzahl auf 10 festlegen, erhalten Sie beispielhaft 10 Bestellungen des Jahres 2024.
-
Filtern Sie die Beispieldaten nach einer bestimmten Spalte.
Dies betrifft nur die vorhandenen Beispieldaten. Wenn Sie verwendet haben, um nur Bestellungen aus 2024 einzuschließen, und den Spaltenfilter auf de Anzeige von Bestellungen aus 2022 festlegen, ist das Ergebnis ein leeres Beispiel.
Sie können die Beispieldaten nach einer bestimmten Spalte filtern. Die Sortierung betrifft nur die vorhandenen Beispieldaten. Wenn Sie verwendet haben, um nur Bestellungen aus 2024 einzuschließen, und die Sortierreihenfolge umkehren, enthalten die Beispieldaten immer noch nur Bestellungen aus 2024.
Verwenden von Makros zur Adaptierung der Abfrage an den Ladetyp
Falls ein inkrementeller Ladevorgang verwendet wird, können Sie Makros verwenden, um die auszuführende Abfrage anzupassen, wenn ein anfänglicher oder ein inkrementeller Ladevorgang durchgeführt wird.
Wählen Sie das Makro und fügen Sie die Abfrage innerhalb der entsprechenden Bedingung hinzu.
-
Q_RUN_INCREMENTAL fügt eine Bedingung hinzu, bei der Sie eine Abfrage absetzen können, die nur ausgeführt wird, wenn ein inkrementeller Ladevorgang durchgeführt wird.
-
Q_RUN_INITIAL_LOAD fügt eine Bedingung hinzu, bei der Sie eine Abfrage absetzen können, die nur ausgeführt wird, wenn ein anfänglicher Ladevorgang durchgeführt wird.
Sie müssen die komplette Abfrage bei jedem Makro angeben. Sie können den Code basierend auf Ihrem Anwendungsfall anpassen oder hinzufügen.
Anwendungsfall: Inkrementeller Filter mithilfe des Datumsbereichs:
In diesem Anwendungsfall muss ein Bestelldatensatz mit benutzerdefiniertem SQL umgewandelt werden. Da es sich um einen großen Datensatz handelt, ist es ratsam, inkrementelle Filter einzuschließen, um sicherzustellen, dass der inkrementelle Ladevorgang nur Bestellungen aus den vergangenen 12 Stunden berücksichtigt.
Dies ist die grundlegende Abfrage:
Dies ist der Filter, der während des inkrementellen Laufs angewendet werden soll, wobei Sie nur Bestellungen berücksichtigen, die in den letzten 12 Stunden hinzugefügt wurden:
Dies ist die komplette Abfrage, unter Verwendung des Filtermakros und nach der Ersetzung der Tabellennamen durch die Notation ${TABLE}:
Dadurch wird eine Abfrage zum anfänglichen Laden erstellt:
Und eine Abfrage zum inkrementellen Laden:
Anwendungsfall: Inkrementeller Filter unter Verwendung von Daten im Ziel :
In diesem Anwendungsfall muss ein Bestelldatensatz mit benutzerdefiniertem SQL umgewandelt werden. Da Bestellungen große Datensätze sind, ist es ratsam, inkrementelle Filter einzuschließen, um sicherzustellen, dass der inkrementelle Ladevorgang nur Sätze aus Bestelldetails berücksichtigt, die neuer sind als die Daten in der Zieltabelle. Es wird auch empfohlen zu markieren, ob eine Zeile vom anfänglichen oder von einem inkrementellen Ladevorgang verarbeitet wurde.
Dies ist die grundlegende Abfrage:
Dies ist der Filter, der während des inkrementellen Laufs angewendet werden soll. “ORDERS_DERIVED” ist der Name des Ziel-Datensatzes.
Dies ist die komplette Abfrage, unter Verwendung des Filtermakros und nach der Ersetzung der Tabellennamen durch die Notation ${TABLE}. LOADED_BY wird auf INIT gesetzt, falls der Ladevorgang anfänglich ist, und auf INCR, falls der Ladevorgang inkrementell ist:
Dadurch wird eine Abfrage zum anfänglichen Laden erstellt:
Und eine Abfrage zum inkrementellen Laden:
Best Practices
-
Wenn Sie eine SQL-Umwandlung hinzufügen, wird nicht automatisch ein Primärschlüssel definiert. Fügen Sie auf der Registerkarte Datensatz einen Schlüssel zum Datensatz hinzu.
-
Erstellen Sie keine Spaltenüberschriften manuell in der umgewandelten Ausgabe.
-
Vermeiden Sie es, SELECT mit * zu verwenden, da in diesem Fall bei jeder Ausführung der Abfrage unterschiedliche Spalten zurückgegeben werden können. Wenn sich das Schema geändert hat, ändern Sie die Abfrage entsprechend und führen Sie Tabelle beschreiben erneut aus. Dann können Sie Spalten bearbeiten und Tabellen anpassen.