Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
ItemBatcher (Mappa)
Il ItemBatcher
campo è un JSON oggetto che specifica di elaborare un gruppo di elementi in un'unica esecuzione del flusso di lavoro secondario. Utilizza il batch per elaborare CSV file o JSON array di grandi dimensioni o set di oggetti Amazon S3 di grandi dimensioni.
L'esempio seguente mostra la sintassi del campo. ItemBatcher
Nella sintassi seguente, il numero massimo di elementi che ogni esecuzione del workflow secondario deve elaborare è impostato su 100.
{
"ItemBatcher": {
"MaxItemsPerBatch": 100
}
}
Per impostazione predefinita, ogni elemento di un set di dati viene passato come input alle singole esecuzioni dei flussi di lavoro secondari. Ad esempio, si supponga di specificare come input un JSON file contenente il seguente array:
[
{
"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"
},
...
]
Per l'input specificato, ogni esecuzione del workflow secondario riceve un elemento dell'array come input. L'esempio seguente mostra l'input dell'esecuzione di un workflow secondario:
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
}
Per ottimizzare le prestazioni e i costi del processo di elaborazione, selezionate una dimensione del batch che bilanci il numero di articoli rispetto al tempo di elaborazione degli articoli. Se si utilizza il batching, Step Functions aggiunge gli elementi a un array Items. Quindi passa l'array come input a ogni esecuzione del flusso di lavoro secondario. L'esempio seguente mostra un batch di due elementi passati come input all'esecuzione di un workflow secondario:
{
"Items": [
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
},
{
"verdict": "false",
"statement_date": "6/7/2022",
"statement_source": "television"
}
]
}
Suggerimento
Per saperne di più sull'utilizzo del ItemBatcher
campo nei flussi di lavoro, prova i seguenti tutorial e workshop:
Elabora un intero batch di dati all'interno di una funzione Lambda
Esegui iterazioni sugli elementi di un batch all'interno di esecuzioni di workflow secondarie
Parallelizzazione su larga scala con mappa distribuita
nel Modulo 14 - Elaborazione dei dati di The AWS Step Functions Workshop
Campi per specificare il raggruppamento degli articoli
Per raggruppare gli articoli, specificare il numero massimo di articoli da raggruppare, la dimensione massima del batch o entrambi. È necessario specificare uno di questi valori per raggruppare gli articoli.
- Numero massimo di articoli per batch
Speciifica il numero massimo di elementi elaborati dall'esecuzione di ogni workflow secondario. L'interprete limita il numero di elementi raggruppati nell'
Items
array a questo valore. Se si specificano sia il numero che la dimensione del batch, l'interprete riduce il numero di articoli in un batch per evitare di superare il limite di dimensione del batch specificato.Se non si specifica questo valore ma si fornisce un valore per la dimensione massima del batch, Step Functions elabora il maggior numero possibile di elementi in ogni esecuzione del workflow secondario senza superare la dimensione massima del batch in byte.
Ad esempio, immaginate di eseguire un'esecuzione con un JSON file di input che contiene 1130 nodi. Se si specifica un valore massimo di articoli per ogni batch di 100, Step Functions crea 12 batch. Di questi, 11 batch contengono 100 articoli ciascuno, mentre il dodicesimo batch contiene i restanti 30 articoli.
In alternativa, è possibile specificare il numero massimo di elementi per ogni batch come percorso di riferimento a una coppia chiave-valore esistente nell'input di stato della Mappa distribuita. Questo percorso deve risolversi in un numero intero positivo.
Ad esempio, con il seguente input:
{
"maxBatchItems"
:500
}È possibile specificare il numero massimo di articoli da raggruppare utilizzando un percorso di riferimento come segue:
{ ... "Map": { "Type": "Map", "MaxConcurrency": 2000, "ItemBatcher": {
"MaxItemsPerBatchPath"
:"$.maxBatchItems"
} ... ... } }Importante
È possibile specificare il
MaxItemsPerBatchPath
campoMaxItemsPerBatch
o il sottocampo, ma non entrambi.- Massimo KBs per batch
Specifica la dimensione massima di un batch in byte, fino a 256. KBs Se si specificano sia il numero di lotto che la dimensione massimi, Step Functions riduce il numero di articoli in un batch per evitare di superare il limite di dimensione del batch specificato.
In alternativa, è possibile specificare la dimensione massima del batch come percorso di riferimento per una coppia chiave-valore esistente nell'input di stato della Mappa Distribuita. Questo percorso deve risolversi in un numero intero positivo.
Nota
Se si utilizza il batch e non si specifica una dimensione massima per il batch, l'interprete elabora il maggior numero di elementi possibile elaborare, fino a 256 KB per ogni esecuzione del workflow secondario.
Ad esempio, con il seguente input:
{
"batchSize"
:131072
}È possibile specificare la dimensione massima del batch utilizzando un percorso di riferimento come segue:
{ ... "Map": { "Type": "Map", "MaxConcurrency": 2000, "ItemBatcher": {
"MaxInputBytesPerBatchPath"
:"$.batchSize"
} ... ... } }Importante
È possibile specificare il
MaxInputBytesPerBatchPath
campoMaxInputBytesPerBatch
o il sottocampo, ma non entrambi.- Input in batch
Facoltativamente, è anche possibile specificare un JSON input fisso da includere in ogni batch passato a ogni esecuzione del workflow secondario. Step Functions unisce questo input con l'input per ogni singola esecuzione del workflow secondario. Ad esempio, dato il seguente inserimento fisso di una data di verifica dei fatti su una serie di elementi:
"ItemBatcher": {
"BatchInput": {
"factCheck"
:"December 2022"
} }Ogni esecuzione del flusso di lavoro secondario riceve quanto segue come input:
{ "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" }, ... ] }