Considerazioni e limitazioni - AWS Glue

Considerazioni e limitazioni

Quando si utilizza Lake Formation con AWS Glue, tenere conto delle seguenti considerazioni e limitazioni.

AWS Glue con Lake Formation è disponibile in tutte le regioni supportate ad eccezione di AWS GovCloud (Stati Uniti Orientali) AWS e GovCloud (Stati Uniti Occidentali).

  • AWS Glue supporta il controllo granulare degli accessi tramite Lake Formation solo per le tabelle Apache Hive e Apache Iceberg. I formati Apache Hive includono Parquet, ORC e CSV.

  • Si può usare Lake Formation solo con i processi Spark.

  • AWS Glue con Lake Formation supporta solo una singola sessione Spark per tutta la durata di un processo.

  • Quando Lake Formation è abilitato, AWS Glue richiede un numero maggiore di worker perché richiede un driver di sistema, esecutori di sistema, un driver utente e, facoltativamente, gli esecutori utente (necessari quando il processo ha UDF o spark.createDataFrame).

  • AWS Glue con Lake Formation supporta solo le query delle tabelle tra account condivise tramite link alle risorse. Il link alla risorsa deve avere lo stesso nome della risorsa dell'account di origine.

  • Per abilitare il controllo granulare degli accessi per i processi AWS Glue, passare il parametro del processo --enable-lakeformation-fine-grained-access.

  • È possibile configurare i processi AWS Glue in modo tale che funzionino con la gerarchia multicatalogo di AWS Glue. Per informazioni sui parametri di configurazione da utilizzare con l'API AWS Glue StartJobRun, consultare Lavorare con la gerarchia multicatalogo di AWS Glue su EMR Serverless.

  • I seguenti elementi non sono supportati:

    • Resilient Distributed Dataset (RDD)

    • Streaming di Spark

    • Scrivere con le autorizzazioni concesse da Lake Formation

    • Controllo degli accessi per colonne annidate

  • AWS Glue blocca le funzionalità che potrebbero compromettere il completo isolamento del driver di sistema, tra cui:

    • UDT, HiveUDF e qualsiasi funzione definita dall'utente che coinvolga classi personalizzate

    • Origini dati personalizzate

    • Fornitura di jar aggiuntivi per l'estensione, il connettore o il metastore di Spark

    • Comando ANALYZE TABLE

  • Per applicare i controlli di accesso, EXPLAIN PLAN e le operazioni DDL, come DESCRIBE TABLE non espongono informazioni riservate.

  • AWS Glue limita l'accesso ai log di Spark del driver di sistema sulle applicazioni abilitate per Lake Formation. Poiché il driver di sistema viene eseguito con più accessi, gli eventi e i log generati da quest'ultimo possono includere informazioni riservate. Per impedire a utenti o codici non autorizzati di accedere a questi dati sensibili, AWS Glue ha disabilitato l'accesso ai registri dei driver di sistema. Per la risoluzione dei problemi, contattare il supporto di AWS.

  • Se è stata registrata una posizione di tabella con Lake Formation, il percorso di accesso ai dati passa attraverso le credenziali archiviate di Lake Formation indipendentemente dall'autorizzazione IAM per il ruolo di runtime del processo di AWS Glue. Se si configura erroneamente il ruolo registrato con la posizione della tabella, i processi inviati che utilizzano il ruolo con l'autorizzazione S3 IAM per la posizione della tabella avranno esito negativo.

  • La scrittura su una tabella Lake Formation utilizza l'autorizzazione IAM anziché le autorizzazioni concesse da Lake Formation. Se il ruolo di runtime del processo dispone delle autorizzazioni S3 necessarie, è possibile utilizzarlo per eseguire operazioni di scrittura.

Di seguito sono riportate considerazioni e limitazioni per l'utilizzo di Apache Iceberg:

  • È possibile utilizzare Apache Iceberg solo con il catalogo delle sessioni e non con i cataloghi con nomi arbitrari.

  • Le tabelle Iceberg registrate in Lake Formation supportano solo le tabelle di metadati history, metadata_log_entries, snapshots, files, manifests e refs. AWS Glue nasconde le colonne che potrebbero contenere dati sensibili, come partitions, path e summaries. Questa limitazione non si applica alle tabelle Iceberg che non sono registrate in Lake Formation.

  • Le tabelle non registrate in Lake Formation supportano tutte le stored procedure di Iceberg. Le procedure di register_table e migrate non sono supportate per nessuna tabella.

  • Consigliamo di utilizzare Iceberg DataFrameWriterV2 anziché V1.

Esempio di allocazione dei worker

Per un processo configurato con i seguenti parametri:

--enable-lakeformation-fine-grained-access=true --number-of-workers=20

L'assegnazione di worker sarebbe:

  • Un worker per il driver utente.

  • Un worker per il driver di sistema.

  • Il 10% dei restanti 18 worker (ovvero 2 worker) era riservato agli esecutori degli utenti.

  • Fino a 16 worker assegnati agli esecutori di sistema.

Con il dimensionamento automatico abilitato, gli esecutori degli utenti possono utilizzare qualsiasi capacità non allocata dagli esecutori di sistema, se necessario.

Controllo dell'allocazione degli esecutori degli utenti

È possibile modificare la percentuale di prenotazione per gli esecutori degli utenti utilizzando la seguente configurazione:

--conf spark.dynamicAllocation.maxExecutorsRatio=<value between 0 and 1>

Questa configurazione consente un controllo ottimizzato sul numero di esecutori degli utenti riservati rispetto alla capacità totale disponibile.