Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah Kesalahan percikan
Jika Anda mengalami kesalahan AWS Glue, gunakan informasi berikut untuk membantu Anda menemukan sumber masalah dan memperbaikinya.
catatan
Topik
- Kesalahan: Sumber daya tidak tersedia
- Kesalahan: Tidak dapat menemukan titik akhir atau NAT gateway S3 untuk di subnetId VPC
- Kesalahan: Aturan masuk dalam grup keamanan diperlukan
- Kesalahan: Aturan keluar dalam grup keamanan diperlukan
- Kesalahan: Job run gagal karena peran yang diteruskan harus diberikan izin peran untuk layanan AWS Glue
- Kesalahan: DescribeVpcEndpoints tindakan tidak sah. tidak dapat memvalidasi ID vpc-id VPC
- Kesalahan: DescribeRouteTables tindakan tidak sah. tidak dapat memvalidasi subnet id: Subnet-ID di id: vpc-id VPC
- Kesalahan: Gagal memanggil ec2: DescribeSubnets
- Kesalahan: Gagal memanggil ec2: DescribeSecurityGroups
- Kesalahan: Tidak dapat menemukan subnet untuk AZ
- Kesalahan: Pengecualian Job run saat menulis ke JDBC target
- Kesalahan: Amazon S3: Operasi tidak valid untuk kelas penyimpanan objek
- Kesalahan: Batas waktu Amazon S3
- Kesalahan: Akses Amazon S3 ditolak
- Kesalahan: ID kunci akses Amazon S3 tidak ada
- Kesalahan: Job run gagal saat mengakses Amazon S3 dengan s3a:// URI
- Kesalahan: Token layanan Amazon S3 kedaluwarsa
- Kesalahan: Tidak ada pribadi DNS untuk antarmuka jaringan yang ditemukan
- Kesalahan: Penyediaan titik akhir pengembangan gagal
- Kesalahan: Server Notebook CREATE _ FAILED
- Kesalahan: Notebook lokal gagal memulai
- Kesalahan: Menjalankan crawler gagal
- Kesalahan: Partisi tidak diperbarui
- Kesalahan: Pembaruan bookmark Job gagal karena ketidakcocokan versi
- Kesalahan: Pekerjaan memproses ulang data saat bookmark pekerjaan diaktifkan
- Kesalahan: Perilaku failover antara VPCs in AWS Glue
Kesalahan: Sumber daya tidak tersedia
Jika AWS Glue menampilkan pesan sumber daya yang tidak tersedia, Anda dapat melihat pesan kesalahan atau log untuk membantu Anda mempelajari lebih lanjut tentang masalah tersebut. Tugas berikut menjelaskan metode umum untuk menyelesaikan masalah.
-
Untuk koneksi dan titik akhir pengembangan yang Anda gunakan, periksa apakah klaster Anda tidak kehabisan antarmuka jaringan elastis.
Kesalahan: Tidak dapat menemukan titik akhir atau NAT gateway S3 untuk di subnetId VPC
Periksa subnet ID dan VPC ID dalam pesan untuk membantu Anda mendiagnosis masalah.
-
Periksa apakah Anda memiliki pengaturan VPC titik akhir Amazon S3, yang diperlukan dengan. AWS Glue Selain itu, periksa NAT gateway Anda jika itu bagian dari konfigurasi Anda. Untuk informasi selengkapnya, lihat Amazon VPC endpoint untuk Amazon S3.
Kesalahan: Aturan masuk dalam grup keamanan diperlukan
Setidaknya harus ada satu grup keamanan yang membuka semua port ingress-nya. Untuk membatasi lalu lintas, grup keamanan sumber dalam aturan inbound Anda dapat dibatasi untuk grup keamanan yang sama.
-
Untuk setiap koneksi yang Anda gunakan, periksa grup keamanan Anda apakah ada aturan inbound yang self-referencing. Untuk informasi selengkapnya, lihat Menyiapkan akses jaringan ke penyimpanan data.
-
Ketika Anda menggunakan titik akhir pengembangan, periksa grup keamanan Anda apakah ada aturan inbound yang self-referencing. Untuk informasi selengkapnya, lihat Menyiapkan akses jaringan ke penyimpanan data.
Kesalahan: Aturan keluar dalam grup keamanan diperlukan
Setidaknya harus ada satu grup keamanan yang membuka semua port egress-nya. Untuk membatasi lalu lintas, grup keamanan sumber dalam aturan outbound Anda dapat dibatasi untuk grup keamanan yang sama.
-
Untuk setiap koneksi yang Anda gunakan, periksa grup keamanan Anda apakah ada aturan outbound yang self-referencing. Untuk informasi selengkapnya, lihat Menyiapkan akses jaringan ke penyimpanan data.
-
Ketika Anda menggunakan titik akhir pengembangan, periksa grup keamanan Anda apakah ada aturan outbound yang self-referencing. Untuk informasi selengkapnya, lihat Menyiapkan akses jaringan ke penyimpanan data.
Kesalahan: Job run gagal karena peran yang diteruskan harus diberikan izin peran untuk layanan AWS Glue
Pengguna yang mendefinisikan tugas harus memiliki izin untuk iam:PassRole
untuk AWS Glue.
-
Saat pengguna membuat AWS Glue pekerjaan, konfirmasikan bahwa peran pengguna berisi kebijakan yang berisi
iam:PassRole
untuk AWS Glue. Untuk informasi selengkapnya, lihat Langkah 3: Lampirkan kebijakan ke pengguna atau grup yang mengakses AWS Glue.
Kesalahan: DescribeVpcEndpoints tindakan tidak sah. tidak dapat memvalidasi ID vpc-id VPC
-
Periksa kebijakan yang diteruskan AWS Glue untuk
ec2:DescribeVpcEndpoints
mendapatkan izin.
Kesalahan: DescribeRouteTables tindakan tidak sah. tidak dapat memvalidasi subnet id: Subnet-ID di id: vpc-id VPC
-
Periksa kebijakan yang diteruskan AWS Glue untuk
ec2:DescribeRouteTables
mendapatkan izin.
Kesalahan: Gagal memanggil ec2: DescribeSubnets
-
Periksa kebijakan yang diteruskan AWS Glue untuk
ec2:DescribeSubnets
mendapatkan izin.
Kesalahan: Gagal memanggil ec2: DescribeSecurityGroups
-
Periksa kebijakan yang diteruskan AWS Glue untuk
ec2:DescribeSecurityGroups
mendapatkan izin.
Kesalahan: Tidak dapat menemukan subnet untuk AZ
-
Availability Zone mungkin tidak tersedia untuk AWS Glue. Membuat dan menggunakan subnet baru di Availability Zone yang berbeda dari yang ditentukan dalam pesan.
Kesalahan: Pengecualian Job run saat menulis ke JDBC target
Saat Anda menjalankan pekerjaan yang menulis ke JDBC target, pekerjaan tersebut mungkin mengalami kesalahan dalam skenario berikut:
-
Jika pekerjaan Anda menulis ke tabel Microsoft SQL Server, dan tabel memiliki kolom yang didefinisikan sebagai tipe
Boolean
, maka tabel harus ditentukan sebelumnya dalam database SQL Server. Saat Anda menentukan pekerjaan di AWS Glue konsol menggunakan target SQL Server dengan opsi Buat tabel di target data Anda, jangan memetakan kolom sumber apa pun ke kolom target dengan tipe dataBoolean
. Anda mungkin mengalami kesalahan saat tugas berjalan.Anda dapat menghindari kesalahan tersebut dengan melakukan hal berikut:
-
Pilih tabel yang ada yang mempunyai kolom Boolean.
-
Edit transformasi
ApplyMapping
dan petakan kolom Boolean di sumber ke nomor atau string dalam target. -
Edit transformasi
ApplyMapping
untuk menghapus kolom Boolean dari sumber.
-
-
Jika tugas Anda menulis ke tabel Oracle, maka Anda mungkin perlu menyesuaikan panjang nama objek Oracle. Dalam beberapa versi Oracle, panjang pengenal maksimum terbatas pada 30 byte atau 128 byte. Batas ini mempengaruhi nama tabel dan nama kolom dari penyimpanan data target Oracle.
Anda dapat menghindari kesalahan tersebut dengan melakukan hal berikut:
-
Berikan nama pada tabel target Oracle dengan panjang yang masih dalam batas untuk versi Anda.
-
Nama kolom default dihasilkan dari nama bidang dalam data. Untuk menangani kasus ketika nama kolom lebih panjang dari batas yang berlaku, gunakan transformasi
ApplyMapping
atauRenameField
untuk mengubah nama kolom sehingga masih dalam batas.
-
Kesalahan: Amazon S3: Operasi tidak valid untuk kelas penyimpanan objek
Jika AWS Glue mengembalikan kesalahan ini, AWS Glue pekerjaan Anda mungkin membaca data dari tabel yang memiliki partisi di seluruh tingkatan kelas penyimpanan Amazon S3.
-
Dengan menggunakan pengecualian kelas penyimpanan, Anda dapat memastikan bahwa AWS Glue pekerjaan Anda akan bekerja pada tabel yang memiliki partisi di seluruh tingkatan kelas penyimpanan ini. Tanpa pengecualian, pekerjaan yang membaca data dari tingkatan ini gagal dengan kesalahan berikut:.
AmazonS3Exception: The operation is not valid for the object's storage class
Untuk informasi selengkapnya, lihat Tidak termasuk kelas penyimpanan Amazon S3.
Kesalahan: Batas waktu Amazon S3
Jika AWS Glue mengembalikan kesalahan kehabisan waktu koneksi, itu mungkin karena mencoba mengakses bucket Amazon S3 di AWS Wilayah lain.
-
VPCEndpoint Amazon S3 hanya dapat merutekan lalu lintas ke bucket dalam suatu Wilayah. AWS Jika Anda perlu terhubung ke bucket di Wilayah lain, solusi yang mungkin adalah menggunakan gateway. NAT Untuk informasi lebih lanjut, lihat NATGateway.
Kesalahan: Akses Amazon S3 ditolak
Jika AWS Glue mengembalikan kesalahan akses ditolak ke bucket atau objek Amazon S3, itu mungkin karena IAM peran yang diberikan tidak memiliki kebijakan dengan izin ke penyimpanan data Anda.
-
ETLPekerjaan harus memiliki akses ke penyimpanan data Amazon S3 yang digunakan sebagai sumber atau target. Sebuah crawler harus memiliki akses ke penyimpanan data Amazon S3 yang di-crawling-nya. Untuk informasi selengkapnya, lihat Langkah 2: Buat IAM peran untuk AWS Glue.
Kesalahan: ID kunci akses Amazon S3 tidak ada
Jika AWS Glue mengembalikan ID kunci akses tidak ada kesalahan saat menjalankan pekerjaan, itu mungkin karena salah satu alasan berikut:
-
ETLPekerjaan menggunakan IAM peran untuk mengakses penyimpanan data, mengonfirmasi bahwa IAM peran untuk pekerjaan Anda tidak dihapus sebelum pekerjaan dimulai.
-
IAMPeran berisi izin untuk mengakses penyimpanan data Anda, mengonfirmasi bahwa kebijakan Amazon S3 terlampir
s3:ListBucket
yang berisi sudah benar.
Kesalahan: Job run gagal saat mengakses Amazon S3 dengan s3a://
URI
Jika job run mengembalikan kesalahan seperti Gagal mengurai XML dokumen dengan kelas handler, itu mungkin karena kegagalan mencoba membuat daftar ratusan file menggunakan file. s3a://
URI Akses penyimpanan data Anda menggunakan sebagai s3://
URI gantinya. Jejak pengecualian berikut menyoroti kesalahan untuk mencari:
1. com.amazonaws.SdkClientException: Failed to parse XML document with handler class com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$ListBucketHandler 2. at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseXmlInputStream(XmlResponsesSaxParser.java:161) 3. at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseListBucketObjectsResponse(XmlResponsesSaxParser.java:317) 4. at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:70) 5. at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:59) 6. at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62) 7. at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:31) 8. at com.amazonaws.http.response.AwsResponseHandlerAdapter.handle(AwsResponseHandlerAdapter.java:70) 9. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleResponse(AmazonHttpClient.java:1554) 10. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1272) 11. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056) 12. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743) 13. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717) 14. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) 15. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) 16. at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) 17. at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) 18. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4325) 19. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4272) 20. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4266) 21. at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:834) 22. at org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:971) 23. at org.apache.hadoop.fs.s3a.S3AFileSystem.deleteUnnecessaryFakeDirectories(S3AFileSystem.java:1155) 24. at org.apache.hadoop.fs.s3a.S3AFileSystem.finishedWrite(S3AFileSystem.java:1144) 25. at org.apache.hadoop.fs.s3a.S3AOutputStream.close(S3AOutputStream.java:142) 26. at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:74) 27. at org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:108) 28. at org.apache.parquet.hadoop.ParquetFileWriter.end(ParquetFileWriter.java:467) 29. at org.apache.parquet.hadoop.InternalParquetRecordWriter.close(InternalParquetRecordWriter.java:117) 30. at org.apache.parquet.hadoop.ParquetRecordWriter.close(ParquetRecordWriter.java:112) 31. at org.apache.spark.sql.execution.datasources.parquet.ParquetOutputWriter.close(ParquetOutputWriter.scala:44) 32. at org.apache.spark.sql.execution.datasources.FileFormatWriter$SingleDirectoryWriteTask.releaseResources(FileFormatWriter.scala:252) 33. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:191) 34. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:188) 35. at org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1341) 36. at org.apache.spark.sql.execution.datasources.FileFormatWriter$.org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask(FileFormatWriter.scala:193) 37. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:129) 38. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:128) 39. at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) 40. at org.apache.spark.scheduler.Task.run(Task.scala:99) 41. at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282) 42. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 43. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 44. at java.lang.Thread.run(Thread.java:748)
Kesalahan: Token layanan Amazon S3 kedaluwarsa
Saat memindahkan data ke dan dari Amazon Redshift dengan menggunakan kredensial Amazon S3 sementara yang kedaluwarsa setelah 1 jam. Jika Anda memiliki tugas yang berjalan lama, ia mungkin gagal. Untuk informasi tentang cara menyiapkan tugas yang berjalan lama Anda untuk memindahkan data ke dan dari Amazon Redshift, lihat aws-glue-programming-etl-connect-redshift-home.
Kesalahan: Tidak ada pribadi DNS untuk antarmuka jaringan yang ditemukan
Jika tugas gagal atau titik akhir pengembangan gagal untuk penyediaan, hal itu mungkin karena masalah dalam penyiapan jaringan.
-
Jika Anda menggunakan Amazon yang disediakanDNS, nilai
enableDnsHostnames
harus disetel ke true. Untuk informasi lebih lanjut, lihat DNS.
Kesalahan: Penyediaan titik akhir pengembangan gagal
Jika AWS Glue gagal menyediakan titik akhir pengembangan dengan sukses, itu mungkin karena masalah dalam pengaturan jaringan.
-
Saat Anda menentukan titik akhir pengembangan, grup, subnetVPC, dan keamanan divalidasi untuk mengonfirmasi bahwa mereka memenuhi persyaratan tertentu.
-
Jika Anda memberikan kunci SSH publik opsional, periksa apakah itu adalah kunci SSH publik yang valid.
-
Periksa di VPC konsol bahwa Anda VPC menggunakan set DHCP opsi yang valid. Untuk informasi selengkapnya, lihat set DHCP opsi.
-
Jika cluster tetap dalam PROVISIONING keadaan, hubungi AWS Support.
Kesalahan: Server Notebook CREATE _ FAILED
Jika AWS Glue gagal membuat server notebook untuk titik akhir pengembangan, itu mungkin karena salah satu masalah berikut:
-
AWS Glue meneruskan IAM peran ke Amazon EC2 saat menyiapkan server notebook. IAMPeran tersebut harus memiliki hubungan kepercayaan dengan AmazonEC2.
-
IAMPeran harus memiliki profil instance dengan nama yang sama. Saat Anda membuat peran untuk Amazon EC2 dengan IAM konsol, profil instance dengan nama yang sama akan dibuat secara otomatis. Periksa kesalahan dalam log terkait dengan nama profil instans
iamInstanceProfile.name
yang tidak valid. Untuk informasi selengkapnya, lihat Menggunakan Profil Instance. -
Periksa apakah peran Anda memiliki izin untuk mengakses bucket
aws-glue*
dalam kebijakan yang Anda berikan untuk membuat notebook server.
Kesalahan: Notebook lokal gagal memulai
Jika notebook lokal Anda gagal untuk memulai dan melaporkan kesalahan bahwa direktori atau folder tidak dapat ditemukan, hal itu mungkin karena terjadinya salah satu masalah berikut:
-
Jika Anda menjalankan pada Microsoft Windows, pastikan bahwa variabel lingkungan
JAVA_HOME
mengarahkan ke direktori Java yang benar. Dimungkinkan untuk memperbarui Java tanpa memperbarui variabel ini, dan jika menunjuk ke folder yang tidak ada lagi, notebook Jupyter gagal untuk memulai.
Kesalahan: Menjalankan crawler gagal
Jika AWS Glue gagal menjalankan crawler dengan sukses untuk membuat katalog data Anda, itu mungkin karena salah satu alasan berikut. Pertama periksa apakah ada kesalahan yang tercantum dalam daftar crawler konsol AWS Glue . Periksa apakah ada ikon tanda seru di samping nama crawler dan arahkan kursor ke ikon tersebut untuk melihat pesan terkait.
-
Periksa log untuk crawler yang dijalankan di CloudWatch Log di bawah
/aws-glue/crawlers
.
Kesalahan: Partisi tidak diperbarui
Jika partisi Anda tidak diperbarui di Katalog Data saat Anda menjalankan ETL pekerjaan, pernyataan log ini dari DataSink
kelas di CloudWatch log dapat membantu:
-
“
Attempting to fast-forward updates to the Catalog - nameSpace:
" — Menunjukkan database, tabel, dan catalogId yang dicoba untuk dimodifikasi oleh pekerjaan ini. Jika pernyataan ini tidak ada, periksa apakahenableUpdateCatalog
diatur ke BETUL dan diberikan dengan semestinya sebagai parametergetSink()
atau diadditional_options
. -
"
Schema change policy behavior:
" — Menunjukkan nilai skemaupdateBehavior
yang Anda berikan. -
"
Schemas qualify (schema compare):
" — Bisa BETUL atau SALAH. -
"
Schemas qualify (case-insensitive compare):
" — Bisa BETUL atau SALAH. -
Jika keduanya salah dan Anda tidak
updateBehavior
disetel keUPDATE_IN_DATABASE
, maka DynamicFrame skema Anda harus identik atau berisi subset kolom yang terlihat dalam skema tabel Katalog Data.
Untuk informasi selengkapnya tentang memperbarui partisi, lihatMemperbarui skema, dan menambahkan partisi baru di Katalog Data menggunakan AWS Glue ETLLowongan.
Kesalahan: Pembaruan bookmark Job gagal karena ketidakcocokan versi
Anda mungkin mencoba membuat parameter AWS Glue pekerjaan untuk menerapkan transformasi/logika yang sama pada kumpulan data yang berbeda di Amazon S3. Anda ingin melacak file yang diproses di lokasi yang disediakan. Saat Anda menjalankan pekerjaan yang sama pada bucket sumber yang sama dan menulis ke tujuan yang sama/berbeda secara bersamaan (konkurensi> 1) pekerjaan gagal dengan kesalahan ini:
py4j.protocol.Py4JJavaError: An error occurred while callingz:com.amazonaws.services.glue.util.Job.commit.:com.amazonaws.services.gluejobexecutor.model.VersionMismatchException: Continuation update failed due to version mismatch. Expected version 2 but found version 3
Solusi: atur konkurensi ke 1 atau jangan menjalankan pekerjaan secara bersamaan.
Saat ini AWS Glue bookmark tidak mendukung proses pekerjaan bersamaan dan komit akan gagal.
Kesalahan: Pekerjaan memproses ulang data saat bookmark pekerjaan diaktifkan
Mungkin ada kasus ketika Anda telah mengaktifkan bookmark AWS Glue pekerjaan, tetapi ETL pekerjaan Anda adalah memproses ulang data yang sudah diproses dalam proses sebelumnya. Periksa penyebab-penyebab umum kesalahan ini:
Konkurensi Maksimum
Menyetel jumlah maksimum proses bersamaan untuk pekerjaan yang lebih besar dari nilai default 1 dapat mengganggu bookmark pekerjaan. Hal ini dapat terjadi ketika bookmark pekerjaan memeriksa waktu modifikasi terakhir dari objek untuk memverifikasi objek mana yang perlu diproses ulang. Untuk informasi selengkapnya, lihat pembahasan konkurensi maksimum di Mengkonfigurasi properti pekerjaan untuk pekerjaan Spark di AWS Glue.
Objek Tugas Tidak Ada
Pastikan bahwa skrip eksekusi tugas Anda berakhir dengan melakukan commit berikut:
job.commit()
Saat Anda menyertakan objek ini, AWS Glue catat stempel waktu dan jalur pekerjaan yang dijalankan. Jika Anda menjalankan pekerjaan lagi dengan jalur yang sama, hanya AWS Glue memproses file baru. Jika Anda tidak menyertakan objek ini dan bookmark tugas diaktifkan, maka tugas akan memproses ulang file yang sudah diproses bersama dengan file baru dan membuat redundansi di penyimpanan data target tugas.
Parameter Konteks Transformasi Tidak Ada
Konteks transformasi adalah parameter opsional dalam GlueContext
, namun bookmark tugas tidak akan berfungsi jika Anda tidak memasukkannya. Untuk mengatasi kesalahan ini, tambahkan parameter konteks transformasi saat Anda membuat DynamicFrame, seperti yang ditunjukkan berikut:
sample_dynF=create_dynamic_frame_from_catalog(database, table_name,transformation_ctx="sample_dynF")
Sumber Input
Jika Anda menggunakan database relasional (JDBCkoneksi) untuk sumber input, bookmark pekerjaan hanya berfungsi jika kunci utama tabel berada dalam urutan berurutan. Bookmark tugas bekerja untuk baris baru, tetapi tidak untuk baris yang diperbarui. Hal itu karena bookmark tugas mencari kunci primer, yang sudah ada. Hal ini tidak berlaku jika sumber input Anda adalah Amazon Simple Storage Service (Amazon S3).
Waktu Terakhir Dimodifikasi
Untuk sumber input Amazon S3, bookmark tugas memeriksa waktu modifikasi terakhir atas objek, bukan nama file, untuk memverifikasi objek mana yang perlu diproses ulang. Jika data sumber masukan Anda telah dimodifkasi sejak eksekusi tugas terakhir Anda, maka file akan diproses kembali ketika Anda menjalankan tugas itu lagi.
Kesalahan: Perilaku failover antara VPCs in AWS Glue
Proses berikut digunakan untuk failover untuk pekerjaan di AWS Glue 4.0 dan versi sebelumnya.
Ringkasan: AWS Glue koneksi dipilih pada saat pekerjaan dijalankan. Jika job run mengalami beberapa masalah, (kurangnya alamat IP, konektivitas ke sumber, masalah routing), job run akan gagal. Jika percobaan ulang dikonfigurasi, AWS Glue akan mencoba lagi dengan koneksi yang sama.
-
Untuk setiap upaya run, AWS Glue akan memeriksa kesehatan koneksi dalam urutan yang tercantum dalam konfigurasi pekerjaan, diberikan sampai menemukan satu yang dapat digunakan. Dalam kasus kegagalan Availability Zone (AZ), koneksi dari AZ tersebut akan gagal dalam pemeriksaan dan akan dilewati.
-
AWS Glue memvalidasi koneksi dengan yang berikut:
memeriksa VPC id dan subnet Amazon yang valid.
memeriksa apakah NAT gateway atau VPC titik akhir Amazon ada.
memeriksa bahwa subnet memiliki lebih dari 0 alamat IP yang dialokasikan.
memeriksa apakah AZ sehat.
AWS Glue tidak dapat memverifikasi konektivitas pada saat pengajuan pekerjaan dijalankan.
-
Untuk pekerjaan yang menggunakan AmazonVPC, semua driver dan pelaksana akan dibuat di AZ yang sama dengan koneksi yang dipilih pada saat pengiriman pekerjaan dijalankan.
-
Jika percobaan ulang dikonfigurasi, AWS Glue akan mencoba lagi dengan koneksi yang sama. Ini karena kami tidak dapat menjamin masalah dengan koneksi ini berjalan lama. Jika AZ gagal, pekerjaan yang ada berjalan (tergantung pada tahap pekerjaan yang dijalankan) di AZ tersebut dapat gagal. Coba lagi harus mendeteksi kegagalan AZ dan memilih AZ lain untuk proses baru.