ItemBatcher (Peta) - AWS Step Functions

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

ItemBatcher (Peta)

ItemBatcherBidang adalah JSON objek, yang menentukan untuk memproses sekelompok item dalam eksekusi alur kerja anak tunggal. Gunakan batching saat memproses CSV file besar atau JSON array, atau set besar objek Amazon S3.

Contoh berikut menunjukkan sintaks ItemBatcher bidang. Dalam sintaks berikut, jumlah maksimum item yang harus diproses oleh setiap eksekusi alur kerja anak diatur ke 100.

{ "ItemBatcher": { "MaxItemsPerBatch": 100 } }

Secara default, setiap item dalam kumpulan data diteruskan sebagai input ke eksekusi alur kerja anak individu. Misalnya, asumsikan Anda menentukan JSON file sebagai masukan yang berisi array berikut:

[ { "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" }, ... ]

Untuk input yang diberikan, setiap eksekusi alur kerja anak menerima item array sebagai inputnya. Contoh berikut menunjukkan masukan eksekusi alur kerja anak:

{ "verdict": "true", "statement_date": "6/11/2008", "statement_source": "speech" }

Untuk membantu mengoptimalkan kinerja dan biaya pekerjaan pemrosesan Anda, pilih ukuran batch yang menyeimbangkan jumlah item terhadap waktu pemrosesan item. Jika Anda menggunakan batching, Step Functions menambahkan item ke array Items. Kemudian meneruskan array sebagai input ke setiap eksekusi alur kerja anak. Contoh berikut menunjukkan batch dari dua item yang diteruskan sebagai masukan ke eksekusi alur kerja anak:

{ "Items": [ { "verdict": "true", "statement_date": "6/11/2008", "statement_source": "speech" }, { "verdict": "false", "statement_date": "6/7/2022", "statement_source": "television" } ] }
Tip

Untuk mempelajari lebih lanjut tentang menggunakan ItemBatcher bidang dalam alur kerja Anda, coba tutorial dan lokakarya berikut:

Bidang untuk menentukan pengelompokan item

Untuk mengelompokkan item, tentukan jumlah maksimum item yang akan dikumpulkan, ukuran batch maksimum, atau keduanya. Anda harus menentukan salah satu nilai ini ke item batch.

Maks item per batch

Menentukan jumlah maksimum item yang setiap proses eksekusi alur kerja anak. Penerjemah membatasi jumlah item yang dikumpulkan dalam Items array ke nilai ini. Jika Anda menentukan nomor dan ukuran batch, penerjemah mengurangi jumlah item dalam batch untuk menghindari melebihi batas ukuran batch yang ditentukan.

Jika Anda tidak menentukan nilai ini tetapi memberikan nilai untuk ukuran batch maksimum, Step Functions akan memproses sebanyak mungkin item dalam setiap eksekusi alur kerja anak tanpa melebihi ukuran batch maksimum dalam byte.

Misalnya, bayangkan Anda menjalankan eksekusi dengan JSON file input yang berisi 1130 node. Jika Anda menentukan nilai item maksimum untuk setiap batch 100, Step Functions akan membuat 12 batch. Dari jumlah tersebut, 11 batch berisi 100 item masing-masing, sedangkan batch kedua belas berisi 30 item yang tersisa.

Atau, Anda dapat menentukan item maksimum untuk setiap batch sebagai jalur referensi ke pasangan nilai kunci yang ada di masukan status Peta Terdistribusi Anda. Jalur ini harus menyelesaikan ke bilangan bulat positif.

Misalnya, diberikan input berikut:

{ "maxBatchItems": 500 }

Anda dapat menentukan jumlah maksimum item yang akan dikumpulkan menggunakan jalur referensi sebagai berikut:

{ ... "Map": { "Type": "Map", "MaxConcurrency": 2000, "ItemBatcher": { "MaxItemsPerBatchPath": "$.maxBatchItems" } ... ... } }
penting

Anda dapat menentukan salah satu MaxItemsPerBatch atau MaxItemsPerBatchPath sub-bidang, tetapi tidak keduanya.

Maks KBs per batch

Menentukan ukuran maksimum batch dalam byte, hingga 256. KBs Jika Anda menentukan nomor dan ukuran batch maksimum, Step Functions mengurangi jumlah item dalam batch untuk menghindari melebihi batas ukuran batch yang ditentukan.

Atau, Anda dapat menentukan ukuran batch maksimum sebagai jalur referensi ke pasangan nilai kunci yang ada di masukan status Peta Terdistribusi Anda. Jalur ini harus menyelesaikan ke bilangan bulat positif.

catatan

Jika Anda menggunakan batching dan tidak menentukan ukuran batch maksimum, interpreter memproses sebanyak mungkin item yang dapat diproses hingga 256 KB di setiap eksekusi alur kerja anak.

Misalnya, diberikan input berikut:

{ "batchSize": 131072 }

Anda dapat menentukan ukuran batch maksimum menggunakan jalur referensi sebagai berikut:

{ ... "Map": { "Type": "Map", "MaxConcurrency": 2000, "ItemBatcher": { "MaxInputBytesPerBatchPath": "$.batchSize" } ... ... } }
penting

Anda dapat menentukan salah satu MaxInputBytesPerBatch atau MaxInputBytesPerBatchPath sub-bidang, tetapi tidak keduanya.

Masukan Batch

Secara opsional, Anda juga dapat menentukan JSON input tetap untuk disertakan dalam setiap batch yang diteruskan ke setiap eksekusi alur kerja anak. Step Functions menggabungkan input ini dengan input untuk setiap eksekusi alur kerja anak individu. Misalnya, diberikan masukan tetap berikut dari tanggal pemeriksaan fakta pada array item:

"ItemBatcher": { "BatchInput": { "factCheck": "December 2022" } }

Setiap eksekusi alur kerja anak menerima yang berikut ini sebagai masukan:

{ "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" }, ... ] }