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 |
✓ |
✓ |
DML |
✓ |
✓ |
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.
-
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. -
Untuk menanyakan snapshot copy-on-write tabel terbaru, gunakan perintah berikut.
SELECT * FROM
my_hudi_cow_table
spark.read.table("
my_hudi_cow_table
") -
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
_rospark.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.