Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erstellen und Verwenden AWS Glue DataBrew recipes
In DataBrew: Ein Rezept besteht aus einer Reihe von Schritten zur Datentransformation. Sie können diese Schritte auf eine Stichprobe Ihrer Daten anwenden oder dasselbe Rezept auf einen Datensatz anwenden.
Der einfachste Weg, ein Rezept zu entwickeln, besteht darin, ein DataBrew Projekt zu erstellen, in dem Sie interaktiv mit einer Stichprobe Ihrer Daten arbeiten können. Weitere Informationen finden Sie unter. Erstellen und Verwenden AWS Glue DataBrew projects Im Rahmen des Workflows zur Projekterstellung wird ein neues (leeres) Rezept erstellt und an das Projekt angehängt. Anschließend können Sie mit der Erstellung Ihres Rezepts beginnen, indem Sie Datentransformationen hinzufügen.
Anmerkung
Sie können bis zu 100 Datentransformationen in ein einziges DataBrew Rezept aufnehmen.
Während Sie mit der Entwicklung Ihres Rezepts fortfahren, können Sie Ihre Arbeit speichern, indem Sie das Rezept veröffentlichen. DataBrew verwaltet eine Liste der veröffentlichten Versionen für Ihr Rezept. Sie können jede veröffentlichte Version in einem Rezept-Job verwenden, um das Rezept (in einem Rezept-Job) auszuführen und Ihren Datensatz zu transformieren. Sie können auch eine Kopie der Rezeptschritte herunterladen, sodass Sie das Rezept in anderen Projekten oder anderen Datensatztransformationen wiederverwenden können.
Sie können DataBrew Rezepte auch programmgesteuert entwickeln, indem Sie das AWS Command Line Interface(AWS CLI) oder eines der SDKs verwenden.AWSIn der DataBrew API werden Transformationen als Rezeptaktionen bezeichnet.
Anmerkung
In einer interaktiven DataBrew Projektsitzung führt jede Datentransformation, die Sie anwenden, zu einem Aufruf der DataBrew API. Diese API-Aufrufe erfolgen automatisch, ohne dass Sie die Details hinter den Kulissen kennen müssen.
Auch wenn Sie kein Programmierer sind, ist es hilfreich, die Struktur eines Rezepts und die DataBrew Organisation der Rezeptaktionen zu verstehen.
Veröffentlichung einer neuen Rezeptversion
Sie veröffentlichen neue Versionen eines Rezepts in einer interaktiven DataBrew Projektsitzung.
Um eine neue Rezeptversion zu veröffentlichen
-
Wählen Sie im Rezeptbereich die Option Veröffentlichen aus.
-
Geben Sie eine Beschreibung für diese Version des Rezepts ein und wählen Sie „Veröffentlichen“.
Sie können alle Ihre veröffentlichten Rezepte und deren Versionen anzeigen, indem Sie im Navigationsbereich PROJEKTE auswählen.
Definition einer Rezeptstruktur
Wenn Sie zum ersten Mal ein Projekt mit der DataBrew Konsole erstellen, definieren Sie ein Rezept, das diesem Projekt zugeordnet werden soll. Wenn Sie noch kein Rezept haben, erstellt die Konsole eines für Sie.
Während Sie in der Konsole mit Ihrem Projekt arbeiten, verwenden Sie die Transformationssymbolleiste, um Aktionen auf die Beispieldaten aus Ihrem Datensatz anzuwenden. In der Konsole werden die Rezeptschritte und die Reihenfolge dieser Schritte angezeigt, während Sie mit der Rezepturerstellung fortfahren. Sie können das Rezept wiederholen und verfeinern, bis Sie mit den Schritten zufrieden sind.
In Erste Schritte mit AWS Glue DataBrew erstellen Sie ein Rezept zur Transformation eines Datensatzes berühmter Schachpartien. Sie können eine Kopie der Rezeptschritte herunterladen, indem Sie Als JSON herunterladen oder Als YAML herunterladen wählen, wie im folgenden Screenshot gezeigt.
Die heruntergeladene JSON-Datei enthält Rezeptaktionen, die den Transformationen entsprechen, die Sie Ihrem Rezept hinzugefügt haben.
Ein neues Rezept hat keine Schritte. Sie können ein neues Rezept als leere JSON-Liste darstellen, wie im Folgenden gezeigt.
[ ]
Es folgt ein Beispiel für eine solche Datei, fürchess-project-recipe. Die JSON-Liste enthält mehrere Objekte, die die Rezeptschritte beschreiben. Jedes Objekt in der JSON-Liste ist in geschweifte Klammern () { } eingeschlossen. Die JSON-Zeilen sind durch Kommas getrennt.
[
{
"Action": {
"Operation": "REMOVE_VALUES",
"Parameters": {
"sourceColumn": "black_rating"
}
},
"ConditionExpressions": [
{
"Condition": "LESS_THAN",
"Value": "1800",
"TargetColumn": "black_rating"
}
]
},
{
"Action": {
"Operation": "REMOVE_VALUES",
"Parameters": {
"sourceColumn": "white_rating"
}
},
"ConditionExpressions": [
{
"Condition": "LESS_THAN",
"Value": "1800",
"TargetColumn": "white_rating"
}
]
},
{
"Action": {
"Operation": "GROUP_BY",
"Parameters": {
"groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]",
"sourceColumns": "[\"winner\",\"victory_status\"]",
"useNewDataFrame": "true"
}
}
},
{
"Action": {
"Operation": "REMOVE_VALUES",
"Parameters": {
"sourceColumn": "winner"
}
},
"ConditionExpressions": [
{
"Condition": "IS",
"Value": "[\"draw\"]",
"TargetColumn": "winner"
}
]
},
{
"Action": {
"Operation": "REPLACE_TEXT",
"Parameters": {
"pattern": "mate",
"sourceColumn": "victory_status",
"value": "checkmate"
}
}
},
{
"Action": {
"Operation": "REPLACE_TEXT",
"Parameters": {
"pattern": "resign",
"sourceColumn": "victory_status",
"value": "other player resigned"
}
}
},
{
"Action": {
"Operation": "REPLACE_TEXT",
"Parameters": {
"pattern": "outoftime",
"sourceColumn": "victory_status",
"value": "ran out of time"
}
}
}
]
Es ist einfacher zu erkennen, dass jede Aktion eine einzelne Zeile ist, wenn wir nur neue Zeilen für neue Aktionen hinzufügen, wie im Folgenden gezeigt.
[
{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] },
{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "white_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "white_rating" } ] },
{ "Action": { "Operation": "GROUP_BY", "Parameters": { "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]", "sourceColumns": "[\"winner\",\"victory_status\"]", "useNewDataFrame": "true" } } },
{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] },
{ "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "mate", "sourceColumn": "victory_status", "value": "checkmate" } } },
{ "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "resign", "sourceColumn": "victory_status", "value": "other player resigned" } } },
{ "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "outoftime", "sourceColumn": "victory_status", "value": "ran out of time" } } }
]
Die Aktionen werden nacheinander in derselben Reihenfolge wie in der Datei ausgeführt:
-
REMOVE_VALUES— Um alle Spiele herauszufiltern, bei denen die Bewertung eines Spielers unter 1.800 liegt, ist die Mindestwertung erforderlich, um ein Schachspieler der Klasse A zu sein. Es gibt zwei Fälle dieser Aktion: einmal, um Spieler auf der schwarzen Seite zu entfernen, die nicht mindestens Spieler der Klasse A sind, und ein anderes, um Spieler auf der weißen Seite zu entfernen, die nicht auf diesem Level sind. -
GROUP_BY— Um die Daten zusammenzufassen. In diesem Fall sortiert GROUP_BY die Zeilen anhand der Werte vonwinner(blackund) in Gruppen.whiteJede dieser Gruppen wird dann weiter unterteilt, wobei die Zeilen anhand der Werte vonvictory_status(,materesignoutoftime, und) in Untergruppen sortiert werden.drawSchließlich wird die Anzahl der Vorkommen für jede Untergruppe gezählt. Die daraus resultierende Zusammenfassung ersetzt dann die ursprüngliche Datenstichprobe. -
REMOVE_VALUES— Um die Ergebnisse von Spielen zu löschen, die mit endetendraw. -
REPLACE_TEXT— Um die Werte für zu ändernvictory_status. Es gibt drei Vorkommen dieser Aktion — jeweils eines fürmate, undresign.oufoftime
In einer interaktiven DataBrew Projektsitzung RecipeAction entspricht jede Sitzung einer Datentransformation, die Sie auf eine Datenprobe anwenden.
DataBrew bietet über 200 Rezeptaktionen. Weitere Informationen finden Sie unter Rezeptschritt und Funktionsreferenz.
Verwenden von Bedingungen
Sie können Bedingungen verwenden, um den Umfang einer Rezeptaktion einzuschränken. Bedingungen werden bei Transformationen verwendet, bei denen Daten gefiltert werden, z. B. beim Entfernen unerwünschter Zeilen auf der Grundlage eines bestimmten Spaltenwerts.
Schauen wir uns ein Rezept mit Aktionen von genauer an. chess-project-recipe
{
"Action": {
"Operation": "REMOVE_VALUES",
"Parameters": {
"sourceColumn": "black_rating"
}
},
"ConditionExpressions": [
{
"Condition": "LESS_THAN",
"Value": "1800",
"TargetColumn": "black_rating"
}
]
}
Diese Transformation liest die Werte in der black_rating Spalte. Die ConditionExpressions Liste bestimmt die Filterkriterien: Jede Zeile mit einem black_rating Wert von weniger als 1.800 wird aus dem Datensatz entfernt.
Eine nachfolgende Transformation im Rezept bewirkt dasselbe, fürwhite_rating. Auf diese Weise sind die Daten auf Spiele beschränkt, bei denen jeder Spieler (schwarz oder weiß) mit Klasse A oder höher bewertet wird.
Hier ist ein weiteres Beispiel für eine Bedingung, die auf eine Spalte mit Charakterdaten angewendet wird.
{
"Action": {
"Operation": "REMOVE_VALUES",
"Parameters": {
"sourceColumn": "winner"
}
},
"ConditionExpressions": [
{
"Condition": "IS",
"Value": "[\"draw\"]",
"TargetColumn": "winner"
}
]
}
Diese Transformation liest die Werte in der winner Spalte, sucht nach dem Wert draw und entfernt diese Zeilen. Auf diese Weise sind die Daten nur auf die Spiele beschränkt, bei denen es einen klaren Gewinner gab.
DataBrew unterstützt die folgenden Bedingungen:
-
IS— Der Wert in der Spalte entspricht dem Wert, der in der Bedingung angegeben wurde. -
IS_NOT— Der Wert in der Spalte entspricht nicht dem Wert, der in der Bedingung angegeben wurde. -
IS_BETWEEN— Der Wert in der Spalte liegt zwischen denLESS_THAN_EQUALParameternGREATER_THAN_EQUALund. -
CONTAINS— Der Zeichenkettenwert in der Spalte enthält den Wert, der in der Bedingung angegeben wurde. -
NOT_CONTAINS— Der Wert in der Spalte enthält nicht die Zeichenfolge, die in der Bedingung angegeben wurde. -
STARTS_WITH— Der Wert in der Spalte beginnt mit der Zeichenfolge, die in der Bedingung angegeben wurde. -
NOT_STARTS_WITH— Der Wert in der Spalte beginnt nicht mit der Zeichenfolge, die in der Bedingung angegeben wurde. -
ENDS_WITH— Der Wert in der Spalte endet mit der Zeichenfolge, die in der Bedingung angegeben wurde. -
NOT_ENDS_WITH— Der Wert in der Spalte endet nicht mit der Zeichenfolge, die in der Bedingung angegeben wurde. -
LESS_THAN— Der Wert in der Spalte ist kleiner als der Wert, der in der Bedingung angegeben wurde. -
LESS_THAN_EQUAL— Der Wert in der Spalte ist kleiner oder gleich dem Wert, der in der Bedingung angegeben wurde. -
GREATER_THAN— Der Wert in der Spalte ist größer als der Wert, der in der Bedingung angegeben wurde. -
GREATER_THAN_EQUAL— Der Wert in der Spalte ist größer oder gleich dem Wert, der in der Bedingung angegeben wurde. -
IS_INVALID— Der Wert in der Spalte hat einen falschen Datentyp. -
IS_MISSING— Die Spalte enthält keinen Wert.