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.
ItemBatcher
Das ItemBatcher
Feld ist ein JSON-Objekt, das angibt, dass eine Gruppe von Elementen in einer einzigen untergeordneten Workflow-Ausführung verarbeitet werden soll. Verwenden Sie Batching, wenn Sie große CSV-Dateien oder JSON-Arrays oder große Gruppen von Amazon S3-Objekten verarbeiten.
Das folgende Beispiel zeigt die Syntax des ItemBatcher
Felds. In der folgenden Syntax ist die maximale Anzahl von Elementen, die jede untergeordnete Workflow-Ausführung verarbeiten soll, auf 100 festgelegt.
{
"ItemBatcher": {
"MaxItemsPerBatch": 100
}
}
Standardmäßig wird jedes Element in einem Datensatz als Eingabe an einzelne untergeordnete Workflow-Ausführungen übergeben. Nehmen wir beispielsweise an, Sie geben eine JSON-Datei als Eingabe an, die das folgende Array enthält:
[
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
},
{
"verdict": "false",
"statement_date": "6/7/2022",
"statement_source": "television"
},
{
"verdict": "true",
"statement_date": "5/18/2016",
"statement_source": "news"
},
...
]
Für die angegebene Eingabe erhält jede untergeordnete Workflow-Ausführung ein Array-Element als Eingabe. Das folgende Beispiel zeigt die Eingabe einer untergeordneten Workflow-Ausführung:
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
}
Um die Leistung und die Kosten Ihres Verarbeitungsauftrags zu optimieren, wählen Sie eine Stapelgröße, bei der die Anzahl der Artikel gegen die Verarbeitungszeit der Artikel abgewogen wird. Wenn Sie Batching verwenden, fügt Step Functions die Elemente einem Items-Array hinzu. Anschließend übergibt es das Array als Eingabe an jede untergeordnete Workflow-Ausführung. Das folgende Beispiel zeigt einen Stapel von zwei Elementen, die als Eingabe an eine untergeordnete Workflow-Ausführung übergeben werden:
{
"Items": [
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
},
{
"verdict": "false",
"statement_date": "6/7/2022",
"statement_source": "television"
}
]
}
Tipp
Um mehr über die Verwendung des ItemBatcher
Felds in Ihren Workflows zu erfahren, probieren Sie die folgenden Tutorials und Workshops aus:
Verarbeiten Sie einen ganzen Datenstapel innerhalb einer Lambda-Funktion
Iterieren Sie innerhalb von untergeordneten Workflow-Ausführungen über Elemente in einem Stapel
Großflächige Parallelisierung mit verteilter Karte
in Modul 14 - Datenverarbeitung des Workshops AWS Step Functions
Felder zur Angabe der Artikelstapelung
Um Artikel zu stapeln, geben Sie die maximale Anzahl der zu stapelnden Artikel, die maximale Stapelgröße oder beides an. Sie müssen einen dieser Werte angeben, um Artikel zu stapeln.
- Max. Artikel pro Charge
Gibt die maximale Anzahl von Elementen an, die jede untergeordnete Workflow-Ausführung verarbeitet. Der Interpreter begrenzt die Anzahl der im
Items
Array gestapelten Elemente auf diesen Wert. Wenn Sie sowohl eine Chargennummer als auch eine Chargengröße angeben, reduziert der Interpreter die Anzahl der Artikel in einem Stapel, um eine Überschreitung der angegebenen Stapelgrößenbeschränkung zu vermeiden.Wenn Sie diesen Wert nicht angeben, sondern einen Wert für die maximale Batchgröße angeben, verarbeitet Step Functions in jeder untergeordneten Workflow-Ausführung so viele Elemente wie möglich, ohne die maximale Batchgröße in Byte zu überschreiten.
Stellen Sie sich zum Beispiel vor, Sie führen eine Ausführung mit einer JSON-Eingabedatei aus, die 1130 Knoten enthält. Wenn Sie für jeden Stapel einen maximalen Artikelwert von 100 angeben, erstellt Step Functions 12 Stapel. Davon enthalten 11 Chargen jeweils 100 Artikel, während die zwölfte Charge die restlichen 30 Artikel enthält.
Alternativ können Sie die maximale Anzahl an Elementen für jeden Stapel als Referenzpfad zu einem vorhandenen Schlüssel-Wert-Paar in Ihrer Distributed-Map-Statuseingabe angeben. Dieser Pfad muss zu einer positiven Ganzzahl führen.
Beispielsweise angesichts der folgenden Eingabe:
{
"maxBatchItems"
:500
}Sie können die maximale Anzahl der zu stapelnden Elemente mithilfe eines Referenzpfads wie folgt angeben:
{ ... "Map": { "Type": "Map", "MaxConcurrency": 2000, "ItemBatcher": {
"MaxItemsPerBatchPath"
:"$.maxBatchItems"
} ... ... } }Wichtig
Sie können entweder das
MaxItemsPerBatch
oder dasMaxItemsPerBatchPath
Unterfeld angeben, aber nicht beide.- Max. KB pro Stapel
Gibt die maximale Größe eines Stapels in Byte an, bis zu 256 KB. Wenn Sie sowohl eine maximale Chargennummer als auch eine maximale Chargengröße angeben, reduziert Step Functions die Anzahl der Artikel in einem Stapel, um eine Überschreitung der angegebenen Stapelgrößenbeschränkung zu vermeiden.
Alternativ können Sie die maximale Batchgröße als Referenzpfad zu einem vorhandenen Schlüssel-Wert-Paar in Ihrer Distributed-Map-State-Eingabe angeben. Dieser Pfad muss zu einer positiven Ganzzahl führen.
Anmerkung
Wenn Sie Batching verwenden und keine maximale Batchgröße angeben, verarbeitet der Interpreter so viele Elemente, wie er verarbeiten kann, bis zu 256 KB in jeder untergeordneten Workflow-Ausführung.
Beispielsweise angesichts der folgenden Eingabe:
{
"batchSize"
:131072
}Sie können die maximale Stapelgröße mithilfe eines Referenzpfads wie folgt angeben:
{ ... "Map": { "Type": "Map", "MaxConcurrency": 2000, "ItemBatcher": {
"MaxInputBytesPerBatchPath"
:"$.batchSize"
} ... ... } }Wichtig
Sie können entweder das
MaxInputBytesPerBatch
oder dasMaxInputBytesPerBatchPath
Unterfeld angeben, aber nicht beide.- Batch-Eingabe
Optional können Sie auch eine feste JSON-Eingabe angeben, die in jeden Batch aufgenommen werden soll, der an jede untergeordnete Workflow-Ausführung übergeben wird. Step Functions führt diese Eingabe mit der Eingabe für jede einzelne untergeordnete Workflow-Ausführung zusammen. Zum Beispiel bei der folgenden festen Eingabe eines Datums für die Faktenprüfung für eine Reihe von Elementen:
"ItemBatcher": {
"BatchInput": {
"factCheck"
:"December 2022"
} }Jede untergeordnete Workflow-Ausführung erhält Folgendes als Eingabe:
{ "BatchInput": { "factCheck": "December 2022" }, "Items": [ { "verdict": "true", "statement_date": "6/11/2008", "statement_source": "speech" }, { "verdict": "false", "statement_date": "6/7/2022", "statement_source": "television" }, ... ] }