Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
ItemBatcher
Le ItemBatcher
champ est un objet JSON qui indique de traiter un groupe d'éléments lors d'une seule exécution de flux de travail enfant. Utilisez le traitement par lots lors du traitement de gros fichiers CSV ou de tableaux JSON, ou de grands ensembles d'objets Amazon S3.
L'exemple suivant montre la syntaxe du ItemBatcher
champ. Dans la syntaxe suivante, le nombre maximum d'éléments que chaque exécution de flux de travail enfant doit traiter est défini sur 100.
{
"ItemBatcher": {
"MaxItemsPerBatch": 100
}
}
Par défaut, chaque élément d'un ensemble de données est transmis en tant qu'entrée aux exécutions individuelles du flux de travail pour enfants. Supposons, par exemple, que vous indiquiez un fichier JSON en entrée contenant le tableau suivant :
[
{
"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"
},
...
]
Pour l'entrée donnée, chaque exécution de flux de travail enfant reçoit un élément de tableau en tant qu'entrée. L'exemple suivant montre la saisie d'une exécution de flux de travail enfant :
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
}
Pour optimiser les performances et le coût de votre travail de traitement, sélectionnez une taille de lot qui équilibre le nombre d'articles par rapport au temps de traitement des articles. Si vous utilisez le traitement par lots, Step Functions ajoute les éléments à un tableau d'éléments. Il transmet ensuite le tableau en tant qu'entrée à chaque exécution de flux de travail enfant. L'exemple suivant montre un lot de deux éléments transmis en entrée à l'exécution d'un flux de travail enfant :
{
"Items": [
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
},
{
"verdict": "false",
"statement_date": "6/7/2022",
"statement_source": "television"
}
]
}
Astuce
Pour en savoir plus sur l'utilisation du ItemBatcher
champ dans vos flux de travail, essayez les didacticiels et l'atelier suivants :
Effectuez une itération sur les éléments d'un lot lors d'exécutions de flux de travail pour enfants
Parallélisation à grande échelle avec carte distribuée
dans le module 14 - Traitement des données de l'atelier AWS Step Functions
Table des matières
Champs permettant de spécifier le regroupement des articles
Pour regrouper des articles, spécifiez le nombre maximum d'articles à regrouper, la taille maximale du lot, ou les deux. Vous devez spécifier l'une de ces valeurs pour regrouper les articles.
- Nombre maximum d'articles par lot
Spécifie le nombre maximum d'éléments que chaque exécution de flux de travail enfant traite. L'interpréteur limite le nombre d'éléments groupés dans le
Items
tableau à cette valeur. Si vous spécifiez à la fois un numéro de lot et une taille, l'interpréteur réduit le nombre d'éléments d'un lot pour éviter de dépasser la limite de taille de lot spécifiée.Si vous ne spécifiez pas cette valeur mais que vous fournissez une valeur pour la taille de lot maximale, Step Functions traite autant d'éléments que possible lors de chaque exécution de flux de travail enfant sans dépasser la taille de lot maximale en octets.
Par exemple, imaginez que vous exécutez une exécution avec un fichier JSON d'entrée contenant 1130 nœuds. Si vous spécifiez une valeur maximale d'éléments pour chaque lot de 100, Step Functions crée 12 lots. Parmi ceux-ci, 11 lots contiennent 100 articles chacun, tandis que le douzième lot contient les 30 articles restants.
Vous pouvez également spécifier le nombre maximum d'éléments pour chaque lot en tant que chemin de référence vers une paire clé-valeur existante dans votre entrée d'état de carte distribuée. Ce chemin doit être converti en un entier positif.
Par exemple, avec les données d'entrée suivantes :
{
"maxBatchItems"
:500
}Vous pouvez spécifier le nombre maximum d'articles à regrouper à l'aide d'un chemin de référence comme suit :
{ ... "Map": { "Type": "Map", "MaxConcurrency": 2000, "ItemBatcher": {
"MaxItemsPerBatchPath"
:"$.maxBatchItems"
} ... ... } }Important
Vous pouvez spécifier le champ
MaxItemsPerBatch
ou leMaxItemsPerBatchPath
sous-champ, mais pas les deux.- Nombre maximal de Ko par lot
Spécifie la taille maximale d'un lot en octets, jusqu'à 256 Ko. Si vous spécifiez à la fois un numéro et une taille de lot maximaux, Step Functions réduit le nombre d'articles d'un lot afin d'éviter de dépasser la limite de taille de lot spécifiée.
Vous pouvez également spécifier la taille maximale du lot comme chemin de référence vers une paire clé-valeur existante dans votre entrée d'état de carte distribuée. Ce chemin doit être converti en un entier positif.
Note
Si vous utilisez le traitement par lots sans spécifier de taille de lot maximale, l'interpréteur traite autant d'éléments qu'il peut traiter jusqu'à 256 Ko lors de chaque exécution d'un flux de travail enfant.
Par exemple, avec les données d'entrée suivantes :
{
"batchSize"
:131072
}Vous pouvez spécifier la taille maximale du lot à l'aide d'un chemin de référence comme suit :
{ ... "Map": { "Type": "Map", "MaxConcurrency": 2000, "ItemBatcher": {
"MaxInputBytesPerBatchPath"
:"$.batchSize"
} ... ... } }Important
Vous pouvez spécifier le champ
MaxInputBytesPerBatch
ou leMaxInputBytesPerBatchPath
sous-champ, mais pas les deux.- Entrée par lots
Vous pouvez également spécifier une entrée JSON fixe à inclure dans chaque lot transmis à chaque exécution de flux de travail enfant. Step Functions fusionne cette entrée avec celle de chaque exécution de flux de travail enfant individuelle. Par exemple, étant donné la saisie fixe suivante d'une date de vérification des faits sur un tableau d'éléments :
"ItemBatcher": {
"BatchInput": {
"factCheck"
:"December 2022"
} }Chaque exécution d'un flux de travail enfant reçoit les informations suivantes en entrée :
{ "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" }, ... ] }