Abilitazione dell'ottimizzatore di compattazione - AWS Glue

Abilitazione dell'ottimizzatore di compattazione

Puoi utilizzare la AWS GlueconsoleAWS CLI o l'AWSAPI per abilitare la compattazione per le tabelle Apache Iceberg presenti nel AWS Glue Catalogo dati. Per le nuove tabelle, puoi scegliere Apache Iceberg come formato di tabella e abilitare la compattazione quando crei la tabella. La compattazione è disabilitata per impostazione predefinita per le nuove tabelle.

Console
Per abilitare la compattazione
  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 in formato tabella aperta per la quale desideri abilitare la compattazione, quindi nel menu Azioni, scegli Ottimizzazione e poi Abilita.

    Puoi anche abilitare la compattazione selezionando l'Ottimizzazione della tabella nella pagina dei Dettagli della tabella. Scegli la scheda Ottimizzazione della tabella nella sezione inferiore della pagina e scegli Abilita compattazione.

    L'opzione Abilita ottimizzazione è disponibile anche quando crei una nuova tabella Iceberg nel Catalogo dati.

  4. Nella pagina Abilita ottimizzazione, scegli Compattazione in Opzioni di ottimizzazione.

    Pagina dei dettagli della tabella Apache Iceberg con l'opzione Abilita compattazione.
  5. Successivamente, seleziona un ruolo IAM dal menu a discesa con le autorizzazioni mostrate nella sezione Prerequisiti per l'ottimizzazione delle tabelle .

    Puoi anche scegliere l'opzione Crea un nuovo ruolo IAM per creare un ruolo personalizzato con le autorizzazioni necessarie per eseguire la compattazione.

    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 Aggiungi autorizzazioni, scegli Crea policy. Nella finestra del browser appena aperta, crea una nuova policy da utilizzare con il tuo ruolo.

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

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

  7. Scegliete una strategia di compattazione. Le opzioni disponibili sono:

    • Binpack: è la strategia di compattazione predefinita in Apache Iceberg. Combina file di dati più piccoli in file più grandi per prestazioni ottimali.

    • Ordinamento: l'ordinamento in Apache Iceberg è una tecnica di organizzazione dei dati che raggruppa le informazioni all'interno dei file in base a colonne specifiche, migliorando significativamente le prestazioni delle query riducendo il numero di file da elaborare. L'ordinamento viene definito nei metadati di Iceberg utilizzando il campo di ordinamento e, quando vengono specificate più colonne, i dati vengono ordinati nella sequenza in cui le colonne appaiono nell'ordine di ordinamento, assicurando che i record con valori simili vengano archiviati insieme all'interno dei file. La strategia di ordinamento e compattazione migliora l'ottimizzazione, ordinando i dati tra tutti i file all'interno di una partizione.

    • Ordinamento Z: è un modo per organizzare i dati quando è necessario ordinarli in base a più colonne con uguale importanza. A differenza dell'ordinamento tradizionale che dà priorità a una colonna rispetto alle altre, l'ordinamento Z attribuisce un peso equilibrato a ciascuna colonna, aiutando il motore di query a leggere meno file durante la ricerca di dati.

      La tecnica funziona intrecciando le cifre binarie dei valori di colonne diverse. Ad esempio, se hai i numeri 3 e 4 di due colonne, l'ordinamento Z li converte prima in binario (3 diventa 011 e 4 diventa 100), quindi esegue l'interleave di queste cifre per creare un nuovo valore: 011010. Attraverso l'interleave si crea uno schema che mantiene i dati correlati fisicamente vicini tra loro.

      L'ordinamento Z è particolarmente efficace per le query multidimensionali. Ad esempio, una tabella clienti ordinata in base a reddito, stato e codice postale può offrire prestazioni superiori rispetto all'ordinamento gerarchico quando si eseguono query su più dimensioni. Questa organizzazione consente di eseguire query mirate a combinazioni specifiche di reddito e posizione geografica per individuare rapidamente i dati pertinenti riducendo al minimo le scansioni dei file non necessarie.

  8. Numero minimo di file di input: il numero di file di dati necessari in una partizione prima che venga attivata la compattazione.

  9. Soglia di eliminazione dei file: operazioni di eliminazione minime richieste in un file di dati prima che diventi idoneo alla compattazione.

  10. Scegli Abilita ottimizzazione.

AWS CLI

L'esempio seguente mostra come abilitare la compattazione. 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 la compattazione. Puoi sostituire la strategia di compattazione sort con altre strategie supportate come z-order o binpack.

ordina” in base alle tue esigenze.

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"}, "compactionConfiguration": { "icebergConfiguration": {"strategy": "sort"} } }'\ --type compaction
AWS API

Chiama l'operazione CreateTableOptimizer per abilitare la compattazione di una tabella.

Dopo aver abilitato la compattazione, la scheda di Ottimizzazione della tabella mostra i seguenti dettagli di compattazione, una volta completata la compattazione:

Ora di inizio

L'ora in cui è iniziato il processo di compattazione all'interno del Catalogo dati. Il valore è un timestamp in formato UTC.

Ora di fine

L'ora in cui è terminato il processo di compattazione nel Catalogo dati. Il valore è un timestamp in formato UTC.

Stato

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

File compattati

Numero totale di file compattati

Byte compattati

Numero totale di byte compattati