

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à.

# Partizionamento del carico di lavoro con esecuzione delimitata
<a name="bounded-execution"></a>

Gli errori nelle applicazioni Spark derivano in genere da script Spark inefficienti, esecuzione in memoria di trasformazioni su larga scala e anomalie del set di dati. Esistono molte ragioni che possono causare problemi di memoria del driver o dell'executor, ad esempio una differenza di dati, un elenco di troppi oggetti o una riproduzione casuale di dati di grandi dimensioni. Questi spesso si verificano nell'elaborazione di enormi quantità di dati backlog con Spark.

AWS Glue consente di risolvere i problemi di eccezione di memoria e semplificare l'elaborazione ETL con il partizionamento del carico di lavoro. Quando il partizionamento del carico di lavoro è abilitato, ogni esecuzione del processo ETL seleziona solo i dati non elaborati, con il limite superiore impostato sulla dimensione del set di dati o sul numero di file da elaborare nell'esecuzione del processo. Le future esecuzioni dei processi elaboreranno i dati rimanenti. Ad esempio, se sono presenti 1000 file da elaborare, è possibile impostare il numero di file su 500 e dividerli in due esecuzioni del processo.

Il partizionamento del carico di lavoro è supportato solo per le origini dati di Amazon S3.

## Abilitazione del partizionamento del carico di lavoro
<a name="bounded-execution-enable"></a>

È possibile abilitare l'esecuzione delimitata impostando manualmente le opzioni nello script o aggiungendo le proprietà della tabella catalogo.

**Per abilitare il partizionamento del carico di lavoro con esecuzione delimitata nello script:**

1. Per evitare di rielaborare i dati, abilitare i segnalibri di processo nel nuovo processo o nel processo esistente. Per ulteriori informazioni, consulta [Monitoraggio dei dati elaborati mediante segnalibri di processo](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html).

1. Modifica lo script e imposta il limite nelle opzioni aggiuntive nella finestra API `getSource` AWS Glue. Devi inoltre impostare il contesto di trasformazione per il segnalibro di processo affinché memorizzi l'elemento `state`. Ad esempio:

   Python

   ```
   glueContext.create_dynamic_frame.from_catalog(
       database = "database",
       table_name = "table_name",
       redshift_tmp_dir = "",
       transformation_ctx = "datasource0",
       additional_options = {
           "boundedFiles" : "500", # need to be string
         # "boundedSize" : "1000000000" unit is byte
       }
   )
   ```

   Scala

   ```
   val datasource0 = glueContext.getCatalogSource(
       database = "database", tableName = "table_name", redshiftTmpDir = "", 
       transformationContext = "datasource0",
       additionalOptions = JsonOptions(
           Map("boundedFiles" -> "500") // need to be string
         //"boundedSize" -> "1000000000" unit is byte
       ) 
   ).getDynamicFrame()
   ```

   ```
   val connectionOptions = JsonOptions(
       Map("paths" -> List(baseLocation), "boundedFiles" -> "30")
   )
   val source = glueContext.getSource("s3", connectionOptions, "datasource0", "")
   ```

**Per abilitare il partizionamento del carico di lavoro con esecuzione delimitata nella tabella del catalogo dati:**

1. Imposta le coppie di chiave-valore nel campo `parameters` della struttura della tabella nel catalogo dati. Per ulteriori informazioni, consulta [Visualizzazione e modifica dei dettagli tabella](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html#console-tables-details).

1. Imposta il limite superiore per la dimensione del set di dati o il numero di file elaborati:
   + Imposta`boundedSize` alla dimensione target del set di dati in byte. L'esecuzione del processo si interromperà dopo aver raggiunto la dimensione target dalla tabella.
   + Imposta `boundedFiles` al numero target dei file. L'esecuzione del processo si interromperà dopo aver elaborato il numero target dei file.
**Nota**  
Devi impostare solo uno tra `boundedSize` e `boundedFiles`, in quanto è supportato un solo limite.

## Configurazione di un trigger AWS Glue per l'esecuzione automatica del processo
<a name="bounded-execution-trigger"></a>

Una volta abilitata l'esecuzione delimitata, è possibile impostare un trigger AWS Glue per eseguire automaticamente il processo e caricare in modo incrementale i dati in esecuzioni sequenziali. Accedi alla console AWS Glue e crea un trigger, imposta l'orario di pianificazione e allegalo al tuo lavoro. Attiverà automaticamente la successiva esecuzione del processo ed elaborerà il nuovo batch di dati. 

È possibile utilizzare i flussi di lavoro AWS Glue anche per orchestrare più processi allo scopo di elaborare dati da partizioni diverse in parallelo. Per ulteriori informazioni, consulta [Trigger AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/about-triggers.html) e [Flussi di lavoro AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html).

Per ulteriori informazioni sui casi d'uso e sulle opzioni, consulta il blog [Optimizing Spark applications with workload partitioning in AWS Glue](https://aws.amazon.com/blogs/big-data/optimizing-spark-applications-with-workload-partitioning-in-aws-glue/).