

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

# Manutenzione delle tabelle
<a name="s3-tables-maintenance"></a>

Tabelle S3 consente di usufruire di operazioni di manutenzione in grado di migliorare la gestione e le prestazioni delle singole tabelle. Le seguenti opzioni sono abilitate per impostazione predefinita per tutte le tabelle nei bucket di tabelle. È possibile modificarle o disattivarle specificando i file di configurazione della manutenzione per la tabella S3.

Per modificare questa configurazione sono necessarie le autorizzazioni `s3tables:GetTableMaintenanceConfiguration` e `s3tables:PutTableMaintenanceConfiguration`.

**Nota**  
Puoi tenere traccia delle operazioni di manutenzione automatizzata di S3 Tables sulle tue tabelle tramite CloudTrail i log, per ulteriori informazioni, consulta. [CloudTrail eventi di gestione per la manutenzione di S3 Tables](s3-tables-logging.md#s3-tables-maintenance-events)

**Topics**
+ [Compattazione](#s3-tables-maintenance-compaction)
+ [Gestione degli snapshot](#s3-tables-maintenance-snapshot)
+ [Considerazioni e limitazioni](#s3-tables-considerations-see-more)

## Compattazione
<a name="s3-tables-maintenance-compaction"></a>

La compattazione è configurata a livello di tabella e combina più oggetti più piccoli in un numero inferiore di oggetti più grandi per migliorare le prestazioni delle query Apache Iceberg. Per combinare gli oggetti, la compattazione applica anche gli effetti delle eliminazioni a livello di riga alla tabella.

La compattazione è abilitata per impostazione predefinita per tutte le tabelle, con una dimensione del file di destinazione predefinita di 512 MB oppure un valore personalizzato specificato compreso tra 64 MB e 512 MB. I file compattati vengono scritti come la snapshot più recente della tabella.

**Nota**  
La compattazione è supportata sui file di tipo Apache Parquet, Avro e ORC.

### Strategie di compattazione
<a name="s3-tables-maintenance-compaction-strategies"></a>

È possibile scegliere tra diverse strategie di compattazione che possono aumentare ulteriormente le prestazioni delle query a seconda dei modelli di query e dell’ordinamento delle tabelle.

Tabelle S3 supporta le seguenti strategie di compattazione per le tabelle:
+ **Auto (impostazione predefinita)**
  + Amazon S3 seleziona la migliore strategia di compattazione in base all’ordinamento delle tabelle. Questa è la strategia di compattazione predefinita per tutte le tabelle.
  + Per le tabelle con un ordinamento definito nei metadati, `auto` applicherà automaticamente la compattazione `sort`.
  + Per le tabelle senza un ordinamento, `auto` per impostazione predefinita utilizzerà la compattazione `binpack`.
+ **Binpack**
  + Combina file di piccole dimensioni in file più grandi, in genere con dimensioni superiori a 100 MB, applicando eventuali eliminazioni in sospeso. Questa è la strategia di compattazione predefinita per le tabelle non ordinate.
+ **Ordina**
  + Organizza i dati in base a colonne specifiche che automaticamente vengono ordinate gerarchicamente durante la compattazione, migliorando le prestazioni delle query per le operazioni di filtro. Questa strategia è consigliata quando le query vengono spesso filtrate in base a colonne specifiche. Quando si utilizza questa strategia, Tabelle S3 applica automaticamente l’ordinamento gerarchico alle colonne quando `sort_order` è definito nelle proprietà della tabella.
+ **Z-order**
  + Ottimizza l’organizzazione dei dati fondendo più attributi in un unico valore scalare che può essere utilizzato per l’ordinamento, consentendo query efficienti su più dimensioni. Questa strategia è consigliata quando è necessario eseguire query sui dati su più dimensioni contemporaneamente. Questa strategia richiede la definizione di un ordinamento nelle proprietà della tabella Iceberg utilizzando la proprietà della tabella `sort_order`.

La compattazione comporta costi aggiuntivi. Le strategie di compattazione `z-order` e `sort` possono comportare un costo maggiore rispetto a `binpack`. Per ulteriori informazioni, consulta i prezzi in [Prezzi di Amazon S3](https://aws.amazon.com/s3/pricing/).

### Esempi di compattazione
<a name="tables-compaction-examples"></a>

I seguenti esempi mostrano come configurare la compattazione delle tabelle.

**Per configurare la dimensione del file di destinazione della compattazione utilizzando AWS CLI**  
La dimensione minima del file di compattazione di destinazione è 64 MB, la massima è 512 MB.  
Il seguente esempio cambierà la dimensione del file di destinazione in 256 MB utilizzando l'API `PutTableMaintenanceConfiguration`.  

```
aws s3tables put-table-maintenance-configuration \
   --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-bucket1}} \
   --type icebergCompaction \
   --namespace {{mynamespace}} \
   --name {{testtable}} \
   --value='{"status":"enabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'
```
Per ulteriori informazioni, consulta [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) nella *documentazione di riferimento dei comandi della AWS CLI *.

**Per configurare la strategia di compattazione utilizzando AWS CLI**  
L’esempio seguente cambia la strategia di compattazione in `sort` utilizzando l’API `PutTableMaintenanceConfiguration`. Quando si imposta la compattazione, è possibile scegliere tra le seguenti strategie di compattazione: `auto`, `binpack`, `sort` o `z-order`  
Per impostare la strategia di compattazione su `sort` o `z-order` sono necessari i seguenti prerequisiti:  
+ Un ordinamento definito nelle proprietà delle tabelle Iceberg.
+ L’autorizzazione `s3tables:GetTableData`.

```
aws s3tables put-table-maintenance-configuration \
   --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/amzn-s3-demo-table-bucket \
   --type icebergCompaction \
   --namespace {{mynamespace}} \
   --name {{testtable}} \
   --value='{"status":"enabled","settings":{"icebergCompaction":{"strategy":"sort"}}}'
```
Per ulteriori informazioni, consulta [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) nella *documentazione di riferimento dei comandi della AWS CLI *.

**Per disattivare la compattazione utilizzando il AWS CLI**  
Il seguente esempio disattiverà la compattazione utilizzando l'API `PutTableMaintenanceConfiguration`.  

```
aws s3tables put-table-maintenance-configuration \
   --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/amzn-s3-demo-table-bucket \
   --type icebergCompaction \
   --namespace {{mynamespace}} \
   --name {{testtable}} \
   --value='{"status":"disabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'
```
Per ulteriori informazioni, consulta [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) nella *documentazione di riferimento dei comandi della AWS CLI *.

## Gestione degli snapshot
<a name="s3-tables-maintenance-snapshot"></a>

La gestione degli snapshot determina il numero di snapshot attivi per la tabella. Si basa su `MinimumSnapshots` (1 per impostazione predefinita) e `MaximumSnapshotAge` (120 ore per impostazione predefinita). La gestione degli snapshot scade e rimuove gli snapshot delle tabelle in base a queste configurazioni.

Quando uno snapshot scade, Amazon S3 contrassegna come non correnti tutti gli oggetti a cui fa riferimento tale snapshot. Tali oggetti non correnti vengono eliminati dopo il numero di giorni specificato dalla proprietà `NoncurrentDays` nella policy di rimozione dei file senza riferimenti.

**Nota**  
L'eliminazione di oggetti non correnti è permanente, pertanto gli oggetti non possono essere recuperati.

Per visualizzare o recuperare oggetti contrassegnati come non correnti, è necessario contattare Supporto AWS. Per informazioni su come contattare Supporto AWS, vedere [Contatti AWS](https://aws.amazon.com/contact-us/) o la [Supporto AWS documentazione](https://aws.amazon.com/documentation/aws-support/).

La gestione degli snapshot determina gli oggetti da eliminare dalla tabella che fanno riferimento solo a tale tabella. I riferimenti a questi oggetti esterni alla tabella non impediscono alla gestione degli snapshot di eliminare un oggetto.

**Nota**  
La gestione delle istantanee non supporta i valori di conservazione configurati come proprietà della Apache Iceberg tabella nel `metadata.json` file o tramite un comando `ALTER TABLE SET TBLPROPERTIES` SQL. Se si verifica una delle seguenti condizioni, la gestione degli snapshot avrà esito negativo per l'intera tabella e Amazon S3 non scadrà né rimuoverà alcuna istantanea:  
**Tag o rami definiti dall'utente**: se nella tabella è presente un tag o un ramo definito dall'utente, la gestione degli snapshot avrà esito negativo per l'intera tabella. Questo vale anche se il tag o il ramo hanno un periodo di conservazione breve. Per ripristinare la scadenza automatica degli snapshot, rimuovi tutti i tag e i rami definiti dall'utente dalla tabella.
**Proprietà della tabella di conservazione delle istantanee di Iceberg**: se la `history.expire.min-snapshots-to-keep` proprietà `history.expire.max-snapshot-age-ms` or è impostata come proprietà della Apache Iceberg tabella, la gestione delle istantanee avrà esito negativo per l'intera tabella indipendentemente dal valore configurato. Per ripristinare la scadenza automatica degli snapshot, rimuovi queste proprietà:  

  ```
  ALTER TABLE {{mydb}}.{{mytable}} UNSET TBLPROPERTIES ('history.expire.max-snapshot-age-ms');
  ALTER TABLE {{mydb}}.{{mytable}} UNSET TBLPROPERTIES ('history.expire.min-snapshots-to-keep');
  ```
Per diagnosticare gli errori di gestione delle istantanee, utilizza l'`GetTableMaintenanceJobStatus`API o esegui il comando seguente. AWS CLI Se la gestione delle istantanee non è riuscita, la risposta include uno `FAILED` stato con un messaggio che descrive la causa dell'errore.  

```
aws s3tables get-table-maintenance-job-status \
    --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}} \
    --namespace {{my_namespace}} \
    --name {{my_table}}
```

È possibile configurare la gestione degli snapshot solo a livello di tabella. Per ulteriori informazioni, consulta i prezzi in [Prezzi di Amazon S3](https://aws.amazon.com/s3/pricing/).

### Esempi di gestione degli snapshot
<a name="tables-snapshot-examples"></a>

I seguenti esempi mostrano come configurare la gestione degli snapshot delle tabelle.

**Per configurare la gestione delle istantanee utilizzando AWS CLI**  
Il seguente esempio imposterà `MinimumSnapshots` su 10 e `MaximumSnapshotAge` su 2.500 ore utilizzando l'API `PutTableMaintenanceConfiguration`.  

```
aws s3tables put-table-maintenance-configuration \
--table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/amzn-s3-demo-table-bucket \
--namespace {{my_namespace}} \
--name {{my_table}} \
--type icebergSnapshotManagement \
--value '{"status":"enabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":10,"maxSnapshotAgeHours":2500}}}'
```

**Per disabilitare la gestione delle istantanee utilizzando il AWS CLI**  
Il seguente esempio disabilita la gestione degli snapshot utilizzando l’API `PutTableMaintenanceConfiguration`.  

```
aws s3tables put-table-maintenance-configuration \
--table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/amzn-s3-demo-table-bucket \
--namespace {{my_namespace}} \
--name {{my_table}} \
--type icebergSnapshotManagement \
--value '{"status":"disabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":1,"maxSnapshotAgeHours":120}}}'
```

Per ulteriori informazioni, consulta [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) nella *documentazione di riferimento dei comandi della AWS CLI *.

## Considerazioni e limitazioni
<a name="s3-tables-considerations-see-more"></a>

Per ulteriori informazioni su considerazioni e limitazioni aggiuntive relative alla compattazione e alla gestione degli snapshot, consulta [Considerazioni e limitazioni per i processi di manutenzione](s3-tables-considerations.md).

**Nota**  
S3 Tables applica la row-group-default dimensione del parquet di 128 MB.