Membaca dari tabel JDBC secara paralel - AWS Glue

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

Membaca dari tabel JDBC secara paralel

Anda dapat mengatur properti dari tabel JDBC Anda untuk memungkinkan AWS Glue membaca data secara paralel. Ketika Anda mengatur properti tertentu, Anda menginstruksikan AWS Glue untuk menjalankan kueri SQL paralel terhadap partisi logis data Anda. Anda dapat mengontrol pemartisian dengan menetapkan bidang hash atau ekspresi hash. Anda juga dapat mengontrol jumlah baca paralel yang digunakan untuk mengakses data Anda.

Membaca dari tabel JDBC secara paralel adalah teknik optimasi yang dapat meningkatkan kinerja. Untuk informasi lebih lanjut tentang proses mengidentifikasi kapan teknik ini tepat, lihat Kurangi jumlah pemindaian data dalam Praktik terbaik untuk penyetelan AWS Glue kinerja untuk panduan pekerjaan Apache Spark pada AWS Panduan Preskriptif.

Untuk memungkinkan baca paralel, Anda dapat mengatur pasangan nilai-kunci di bidang parameter struktur tabel Anda. Gunakan notasi JSON untuk menetapkan nilai untuk bidang parameter tabel Anda. Untuk informasi lebih lanjut tentang mengedit properti tabel, lihat Melihat dan mengedit detail tabel. Anda juga dapat mengaktifkan baca paralel ketika Anda memanggil metode ETL (extract, transform, dan load) create_dynamic_frame_from_options dan create_dynamic_frame_from_catalog. Untuk informasi lebih lanjut tentang menentukan opsi dalam metode ini, lihat from_options dan from_catalog.

Anda dapat menggunakan metode ini untuk tabel JDBC, yaitu, sebagian besar tabel yang data dasar-nya merupakan penyimpanan data JDBC. Properti ini diabaikan saat membaca tabel Amazon Redshift dan tabel Amazon S3.

hashfield

Atur hashfield dengan nama kolom dalam tabel JDBC yang akan digunakan untuk membagi data menjadi partisi. Untuk hasil terbaik, kolom ini harus memiliki distribusi nilai yang genap untuk menyebarkan data antar partisi. Kolom ini dapat berupa tipe data apa pun. AWS Glue menghasilkan kueri yang tidak bertumpang tindih yang berjalan secara paralel untuk membaca data yang dipartisi oleh kolom ini. Misalnya, jika data Anda didistribusikan secara merata berdasarkan bulan, Anda dapat menggunakan kolom month untuk membaca setiap bulan data secara paralel.

'hashfield': 'month'

AWS Glue membuat sebuah kueri untuk meng-hash nilai bidang ke nomor partisi dan menjalankan kueri untuk semua partisi secara paralel. Untuk menggunakan kueri Anda sendiri untuk melakukan partisi pada pembacaan tabel, berikan hashexpression, bukan sebuah hashfield.

hashexpression

Atur hashexpression dengan ekspresi SQL (sesuai dengan tata bahasa mesin basis data JDBC) yang mengembalikan bilangan bulat. Sebuah ekspresi sederhana adalah nama dari setiap kolom numerik dalam tabel. AWS Glue menghasilkan kueri SQL untuk membaca data JDBC secara paralel menggunakan hashexpression di WHERE untuk melakukan partisi data.

Misalnya, gunakan kolom numerik customerID untuk membaca data yang dipartisi berdasarkan nomor pelanggan.

'hashexpression': 'customerID'

Untuk membuat AWS Glue mengontrol partisi, berikan hashfield, bukan sebuah hashexpression.

hashpartitions

Atur hashpartitions dengan jumlah baca paralel tabel JDBC. Jika properti ini tidak diatur, maka nilai default 7 akan digunakan.

Sebagai contoh, tetapkan jumlah baca paralel ke 5 sehingga AWS Glue membaca data Anda dengan lima kueri (atau lebih sedikit).

'hashpartitions': '5'