Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan format Avro di AWS Glue
AWSGlue mengambil data dari sumber dan menulis data ke target yang disimpan dan diangkut dalam berbagai format data. Jika data Anda disimpan atau diangkut dalam format data Avro, dokumen ini memperkenalkan fitur yang tersedia untuk menggunakan data Anda di Glue. AWS
AWSGlue mendukung menggunakan format Avro. Format ini adalah format data berbasis baris yang berorientasi kinerja. Untuk pengenalan format oleh otoritas standar lihat, Apache Avro 1.8.2
Anda dapat menggunakan AWS Glue untuk membaca file Avro dari Amazon S3 dan dari sumber streaming serta menulis file Avro ke Amazon S3. Anda dapat membaca dan menulis bzip2
dan gzip
mengarsipkan yang berisi file Avro dari S3. Selain itu, Anda dapat menulisdeflate
,snappy
, dan xz
arsip yang berisi file Avro. Anda mengonfigurasi perilaku kompresi pada Parameter koneksi S3 alih-alih dalam konfigurasi yang dibahas di halaman ini.
Tabel berikut menunjukkan operasi AWS Glue umum mana yang mendukung opsi format Avro.
Baca | Tulis | Streaming dibaca | Kelompokkan file kecil | Bookmark tugas |
---|---|---|---|---|
Didukung | Didukung | Didukung * | Tidak didukung | Didukung |
* Didukung dengan batasan. Untuk informasi selengkapnya, lihat Catatan dan batasan untuk sumber streaming Avro.
Contoh: Baca file atau folder Avro dari S3
Prasyarat: Anda akan memerlukan jalur S3 (s3path
) ke file atau folder Avro yang ingin Anda baca.
Konfigurasi: Dalam opsi fungsi Anda, tentukanformat="avro"
. Dalam Andaconnection_options
, gunakan paths
kunci untuk menentukans3path
. Anda dapat mengonfigurasi bagaimana pembaca berinteraksi dengan S3 di file. connection_options
Untuk detailnya, lihat Opsi format data untuk input dan output ETL di GlueAWS:. Referensi opsi koneksi Amazon S3 Anda dapat mengonfigurasi bagaimana pembaca menafsirkan file Avro di file Anda. format_options
Untuk detailnya, lihat Referensi Konfigurasi Avro.
Skrip AWS Glue ETL berikut menunjukkan proses membaca file atau folder Avro dari S3:
Contoh: Tulis file dan folder Avro ke S3
Prasyarat: Anda akan memerlukan initialized DataFrame () atau ()dataFrame
. DynamicFrame dynamicFrame
Anda juga akan membutuhkan jalur output S3 yang Anda harapkan,s3path
.
Konfigurasi: Dalam opsi fungsi Anda, tentukanformat="avro"
. Dalam Andaconnection_options
, gunakan paths
kunci untuk menentukan Andas3path
. Anda selanjutnya dapat mengubah cara penulis berinteraksi dengan S3 di. connection_options
Untuk detailnya, lihat Opsi format data untuk input dan output ETL di GlueAWS:. Referensi opsi koneksi Amazon S3 Anda dapat mengubah cara penulis menafsirkan file Avro di file Anda. format_options
Untuk detailnya, lihat Referensi Konfigurasi Avro.
Skrip AWS Glue ETL berikut menunjukkan proses penulisan file Avro atau folder ke S3.
Referensi konfigurasi Avro
Anda dapat menggunakan format_options
nilai-nilai berikut di mana pun pustaka AWS Glue menentukanformat="avro"
:
version
— Menentukan versi format pembaca/penulis Apache Avro yang didukung. Default-nya adalah "1.7". Anda dapat menentukanformat_options={"version": “1.8”}
untuk mengaktifkan jenis membaca dan menulis logis Avro. Untuk informasi lebih lanjut, lihat Spesifikasi Apache Avro 1.7.7dan Spesifikasi Apache Avro 1.8.2 . Konektor Apache Avro 1.8 mendukung konversi tipe logis berikut:
Untuk pembaca: tabel ini menunjukkan konversi antara tipe data Avro (tipe logis dan tipe primitif Avro) dan tipe AWS Glue DynamicFrame
data untuk pembaca Avro 1.7 dan 1.8.
Tipe Data Avro: Tipe Logis |
Tipe Data Avro: Jenis Primitif Avro |
GlueDynamicFrame Tipe Data: Pembaca Avro 1.7 |
GlueDynamicFrame Tipe Data: Pembaca Avro 1.8 |
---|---|---|---|
Decimal | byte | BINER | Decimal |
Decimal | tetap | BINER | Decimal |
Tanggal | int | INT | Tanggal |
Waktu (milidetik) | int | INT | INT |
Waktu (mikrodetik) | long | LONG | LONG |
Timestamp (milidetik) | long | LONG | Timestamp |
Timestamp (mikrodetik) | long | LONG | LONG |
Durasi (bukan tipe logis) | tetap 12 | BINER | BINER |
Untuk penulis: tabel ini menunjukkan konversi antara tipe AWS Glue DynamicFrame
data dan tipe data Avro untuk Avro writer 1.7 dan 1.8.
AWS GlueDynamicFrame Tipe Data |
Tipe Data Avro: Penulis Avro 1.7 |
Tipe Data Avro: Penulis Avro 1.8 |
---|---|---|
Decimal | String | decimal |
Tanggal | String | tanggal |
Timestamp | String | timestamp-micros |
Dukungan Avro Spark DataFrame
Untuk menggunakan Avro dari Spark DataFrame API, Anda perlu menginstal plugin Spark Avro untuk versi Spark yang sesuai. Versi Spark yang tersedia di pekerjaan Anda ditentukan oleh versi AWS Glue Anda. Untuk informasi selengkapnya tentang versi Spark, lihatAWS Glue versi. Plugin ini dikelola oleh Apache, kami tidak membuat jaminan dukungan khusus.
Di AWS Glue 2.0 - gunakan versi 2.4.3 dari plugin Spark Avro. Anda dapat menemukan JAR ini di Maven Central, lihat org.apache.spark:spark-avro_2. 12:2.4 .3
Di AWS Glue 3.0 - gunakan versi 3.1.1 dari plugin Spark Avro. Anda dapat menemukan JAR ini di Maven Central, lihat org.apache.spark:spark-avro_2. 12:3.1 .1
Untuk memasukkan JAR tambahan dalam pekerjaan AWS Glue ETL, gunakan parameter --extra-jars
pekerjaan. Untuk informasi selengkapnya tentang parameter pekerjaan, lihatMenggunakan parameter pekerjaan dalam pekerjaan AWS Glue. Anda juga dapat mengonfigurasi parameter ini di fileAWS Management Console.