Abilitazione dell'ottimizzatore per la conservazione degli snapshot - AWS Glue

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

Abilitazione dell'ottimizzatore per la conservazione degli snapshot

Puoi utilizzare la console AWS Glue, AWS CLI o l'API AWS per abilitare gli ottimizzatori per la conservazione degli snapshot per le tabelle Apache Iceberg presenti nel Catalogo dati. Per le nuove tabelle, puoi scegliere Apache Iceberg come formato di tabella e abilitare l'ottimizzatore dell'eliminazione dei file orfani quando crei la tabella. La conservazione degli snapshot è disabilitata per impostazione predefinita per le nuove tabelle.

Console
Abilitazione dell'ottimizzatore per la conservazione degli snapshot
  1. Apri la console AWS Glue all'indirizzo https://console.aws.amazon.com/glue/ e accedi come amministratore del data lake, creatore della tabella o utente a cui sono state concesse le autorizzazioni lakeformation:GetDataAccess e glue:UpdateTable sulla tabella.

  2. Nel pannello di navigazione, in Catalogo dati, seleziona Tabelle.

  3. Nella pagina Tabelle, scegli una tabella Iceberg per la quale desideri abilitare l'ottimizzatore di conservazione degli snapshot, quindi nel menu Azioni, scegli Abilita in Ottimizzazione.

    Puoi anche abilitare l'ottimizzazione selezionando la tabella e aprendo la pagina dei Dettagli della tabella. Scegli la scheda Ottimizzazione della tabella nella sezione inferiore della pagina e scegli Abilita la conservazione degli snapshot.

  4. Nella pagina Abilita ottimizzazione , in Configurazione dell'ottimizzazione, sono disponibili due opzioni: Usa l'impostazione predefinita o Personalizza le impostazioni. Se scegli di utilizzare le impostazioni predefinite, AWS Glue utilizza le proprietà definite nella configurazione della tabella Iceberg per determinare il periodo di conservazione degli snapshot e il numero di snapshot da conservare. In assenza di questa configurazione, AWS Glue conserva uno snapshot per cinque giorni ed elimina i file associati agli snapshot scaduti.

  5. Quindi, scegli un ruolo IAM che AWS Glue può essere assunto per conto dell'utente per eseguire l'ottimizzatore. Per ulteriori informazioni sulle autorizzazioni necessarie per il ruolo IAM, consulta la sezione Prerequisiti per l'ottimizzazione delle tabelle .

    Segui la procedura riportata di seguito per aggiornare un ruolo IAM esistente:

    1. Per aggiornare la politica di autorizzazione per il ruolo IAM, nella console IAM, vai al ruolo IAM utilizzato per eseguire la compattazione.

    2. Nella sezione Autorizzazioni, scegli Aggiungi policy bucket. Nella finestra del browser appena aperta, crea una nuova policy da utilizzare con il tuo ruolo.

    3. Nella pagina Crea policy, scegli la scheda JSON. Copia il codice JSON mostrato nei Prerequisiti nel campo dell'editor delle policy.

  6. Se preferisci impostare manualmente i valori per la Configurazione della conservazione degli snapshot, scegli Personalizza impostazioni.

    Pagina dei dettagli della tabella Apache Iceberg con l'opzione Abilita conservazione>Personalizza impostazioni.
  7. Scegli la casella Applica il ruolo IAM selezionato agli ottimizzatori selezionati per utilizzare un singolo ruolo IAM per tutti, abilitando tutti gli ottimizzatori.

  8. Se hai configurazioni di policy di sicurezza in cui l'ottimizzatore di tabelle Iceberg deve accedere ai bucket Amazon S3 da un cloud privato virtuale (VPC) specifico, crea una AWS Glue connessione di rete o usane una esistente.

    Se non hai già configurato una Connessione AWS Glue VPC, creane una nuova seguendo i passaggi nella sezione Creazione di connessioni per connettori utilizzando la AWS Glue console o AWS CLI/SDK.

  9. Successivamente, in Configurazione della conservazione degli snapshot, scegli di utilizzare i valori specificati nella Configurazione della tabella Iceberg o specifica valori personalizzati per il periodo di conservazione degli snapshot (history.expire.max-snapshot-age-ms), il numero minimo di snapshot (history.expire.min-snapshots-to-keep) da mantenere e il tempo in ore tra le esecuzioni consecutive dei processi di eliminazione degli snapshot.

  10. Scegli Elimina file associati per eliminare i file sottostanti quando l'ottimizzatore di tabella elimina i vecchi snapshot dai metadati della tabella.

    Se non scegli questa opzione, quando gli snapshot più vecchie vengono rimosse dai metadati della tabella, i file associati rimarranno nell'archivio come file orfani.

  11. Quindi, leggi l'avviso di avvertenza e scegli Confermo per procedere.

    Nota

    Nel Catalogo dati, l'ottimizzatore di conservazione degli snapshot rispetta il ciclo di vita controllato da politiche di conservazione a livello di filiale e tag. Per ulteriori informazioni, consultare la sezione Ramificazione e tagging nella documentazione di Apache Iceberg.

  12. Rivedi la configurazione e scegli Abilita ottimizzazione.

    Attendi qualche minuto che l'ottimizzatore di conservazione venga eseguito e i vecchi snapshot scadano in base alla configurazione.

AWS CLI

Per abilitare la conservazione degli snapshot per le nuove tabelle Iceberg in AWS Glue, devi creare un ottimizzatore di tabelle di tipo retention e impostare il campo enabled su true in table-optimizer-configuration. Per farlo, utilizza il AWS CLI comando create-table-optimizer o update-table-optimizer. Inoltre, è necessario specificare i campi di configurazione della conservazione in modo analogo snapshotRetentionPeriodInDays e numberOfSnapshotsToRetain in base alle proprie esigenze.

L'esempio seguente mostra come abilitare l'ottimizzatore per la conservazione degli snapshot. Sostituisci l'ID dell'account con un ID dell'account AWS valido. Sostituisci il nome del database e della tabella con quello effettivo della tabella Iceberg e del database. Sostituisci roleArn con il nome della risorsa (ARN) AWS del ruolo IAM e il nome del ruolo IAM che dispone delle autorizzazioni necessarie per eseguire l'ottimizzatore di conservazione degli snapshot.

aws glue create-table-optimizer \ --catalog-id 123456789012 \ --database-name iceberg_db \ --table-name iceberg_table \ --table-optimizer-configuration '{"roleArn":"arn:aws:iam::123456789012:role/optimizer_role","enabled":'true', "vpcConfiguration":{ "glueConnectionName":"glue_connection_name"}, "retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":7,"numberOfSnapshotsToRetain":3,"cleanExpiredFiles":'true'}}}'\ --type retention

Questo comando crea un ottimizzatore di conservazione per la tabella Iceberg nel catalogo, nel database e nella regione specificati. La configurazione dell'ottimizzatore di tabella specifica il ruolo IAM ARN da utilizzare, abilita l'ottimizzatore e imposta la configurazione di conservazione. In questo esempio, conserva gli snapshot per 7 giorni, mantiene almeno 3 snapshot e pulisce i file scaduti.

  • snapshotRetentionPeriodInDays: il numero di giorni per mantenere gli snapshot prima che scadano. Il valore predefinito è 5.

  • numberOfSnapshotStoreTain: il numero minimo di snapshot da conservare, anche se sono più vecchi del periodo di conservazione. Il valore predefinito è 1.

  • cleanExpiredFiles: un valore booleano che indica se eliminare i file di dati scaduti dopo la scadenza degli snapshot. Il valore predefinito è true.

    Se impostato su true, gli snapshot più vecchi vengono rimossi dai metadati della tabella e i relativi file sottostanti vengono eliminati. Se questo parametro è impostato su false, gli snapshot più vecchi vengono rimossi dai metadati della tabella ma i relativi file sottostanti rimangono nell'archivio come file orfani.

AWS API

Chiama l'operazione CreateTableOptimizer per abilitare l'ottimizzatore di conservazione degli snapshot per una tabella.

Dopo aver abilitato la compattazione, la scheda di Ottimizzazione della tabella mostra i seguenti dettagli di compattazione, dopo circa 15-20 minuti:

Ora di inizio

L'ora in cui è stato avviato l'ottimizzatore per la conservazione degli snapshot. Il valore è un timestamp in formato UTC.

Tempo di esecuzione

Il tempo indica il tempo impiegato dall'ottimizzatore per completare l'operazione. Il valore è un timestamp in formato UTC.

Stato

Lo stato dell'esecuzione dell'ottimizzatore. I valori sono esito positivo o negativo.

File di dati eliminati

Numero totale di file eliminati.

File manifesto eliminati

Numero totale di file manifesto eliminati.

Elenchi manifesto eliminati

Numero totale di elenchi manifesto eliminati.