Apache Hudi dan Lake Formation dengan Amazon EMR - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Apache Hudi dan Lake Formation dengan Amazon EMR

Amazon EMR merilis 6.15.0 dan yang lebih tinggi termasuk dukungan untuk kontrol akses berbutir halus berdasarkan Apache Hudi saat Anda membaca dan menulis data AWS Lake Formation dengan Spark. SQL Amazon EMR mendukung tabel, baris, kolom, dan kontrol akses tingkat sel dengan Apache Hudi. Dengan fitur ini, Anda dapat menjalankan kueri snapshot pada copy-on-write tabel untuk menanyakan snapshot terbaru dari tabel pada saat komit atau pemadatan tertentu.

Saat ini, EMR klaster Amazon yang mendukung Lake Formation harus mengambil kolom waktu komit Hudi untuk melakukan kueri tambahan dan kueri perjalanan waktu. Itu tidak mendukung timestamp as of sintaks dan fungsinya Spark. Spark.read() Sintaks yang benar adalahselect * from table where _hoodie_commit_time <= point_in_time. Untuk informasi selengkapnya, lihat Kueri Tunjuk Waktu Perjalanan Waktu di tabel Hudi.

Matriks dukungan berikut mencantumkan beberapa fitur inti Apache Hudi dengan Lake Formation:

Salin di Tulis Gabung saat Dibaca

Kueri snapshot - Spark SQL

Kueri yang dioptimalkan baca - Spark SQL

Pertanyaan tambahan

Pertanyaan perjalanan waktu

Tabel metadata

DMLINSERTperintah

DDLperintah

Permintaan sumber data percikan

Sumber data Spark menulis

Menanyakan tabel Hudi

Bagian ini menunjukkan bagaimana Anda dapat menjalankan kueri yang didukung yang dijelaskan di atas pada kluster yang diaktifkan Lake Formation. Tabel harus berupa tabel katalog terdaftar.

  1. Untuk memulai shell Spark, gunakan perintah berikut.

    spark-sql --jars /usr/lib/hudi/hudi-spark-bundle.jar \ --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \ --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \ --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension \ --conf spark.sql.catalog.spark_catalog.lf.managed=true

    Jika Anda ingin Lake Formation menggunakan server rekaman untuk mengelola katalog Spark Anda, atur spark.sql.catalog.<managed_catalog_name>.lf.managed ke true.

  2. Untuk menanyakan snapshot copy-on-write tabel terbaru, gunakan perintah berikut.

    SELECT * FROM my_hudi_cow_table
    spark.read.table("my_hudi_cow_table")
  3. Untuk menanyakan data tabel terbaru yang dipadatkan, Anda dapat menanyakan MOR tabel yang dioptimalkan baca yang diakhiran dengan: _ro

    SELECT * FROM my_hudi_mor_table_ro
    spark.read.table("my_hudi_mor_table_ro")
catatan

Kinerja pembacaan pada cluster Lake Formation mungkin lebih lambat karena optimasi yang tidak didukung. Fitur-fitur ini termasuk daftar file berdasarkan metadata Hudi, dan melewatkan data. Kami menyarankan Anda menguji kinerja aplikasi Anda untuk memastikan bahwa itu memenuhi persyaratan Anda.