Apache Hudi e Lake Formation - Amazon EMR

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

Apache Hudi e Lake Formation

La versione di rilascio 6.9.0 e successive di Amazon EMR includono un supporto limitato per il controllo degli accessi basato su Lake Formation con Apache Hudi durante la lettura dei dati tramite Spark SQL. Amazon EMR supporta query SELECT con Spark SQL ed è limitato al controllo degli accessi a livello di colonna. Con questa funzione, ora puoi eseguire:

  • Interrogazioni istantanee su copy-on-write tabelle su cui interrogare l'ultima istantanea della tabella in un determinato commit o istante di compattazione.

  • Interrogazioni ottimizzate per la lettura su merge-on-read tabelle per interrogare i dati compattati più recenti, che potrebbero non includere gli aggiornamenti più recenti nei file di registro che non sono ancora stati compattati.

La seguente matrice di supporto elenca alcune funzioni principali di Apache Hudi con Lake Formation:

Copia su scrittura unisci in lettura

Query snapshot - Spark SQL

Y

N

Lettura di query ottimizzate - Spark SQL

Non applicabile

Y

Query incrementali

N

N

Query temporali

N

N

Query su origini dei dati Spark

N

N

Scrittura di origini dei dati Spark

N

N

DML/DDL

N

N

Tabella dei metadati

N

N

Esecuzione di query per tabelle Hudi

Questa sezione mostra come eseguire le query supportate sopra descritte su un cluster abilitato per Lake Formation. La tabella deve essere una tabella di catalogo registrata.

Questa sezione mostra come eseguire le query supportate su un cluster Lake Formation, come indicato in precedenza

  1. Per avviare la shell (interprete di comandi) Spark, utilizza i comandi seguenti.

    spark-shell --jars /usr/lib/hudi/hudi-spark-bundle.jar \ --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
    spark-sql --jars /usr/lib/hudi/hudi-spark-bundle.jar \ --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
  2. Per interrogare l'istantanea più recente di copy-on-write tabelle, utilizzare i seguenti comandi.

    select * from <my_hudi_cow_table>
    spark.read.table("<my_hudi_cow_table>")
  3. Per interrogare gli ultimi dati compattati delle tabelle MOR, puoi interrogare la tabella ottimizzata per la lettura che ha il suffisso _ro:

    SELECT * from <my_hudi_mor_table>_ro
    spark.read.table("<my_hudi_mor_table>_ro")
Nota

Le prestazioni di lettura sui cluster Lake Formation potrebbero essere più lente a causa delle ottimizzazioni non supportate. Queste funzioni includono l'elenco dei file basato sui metadati Hudi e i dati ignorati. È preferibile testare le prestazioni dell'applicazione per accertarsi che soddisfi lo SLA.