Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengekspor log analisis kueri
AWS Clean Rooms menjalankan kueri SQL di Apache Spark. Ketika kueri gagal atau berjalan lambat, log Spark untuk kueri tersebut berisi detail eksekusi yang Anda butuhkan untuk menemukan penyebabnya. Mereka menunjukkan tahap mana yang gagal, bagaimana pekerjaan didistribusikan di seluruh tugas, berapa banyak memori yang digunakan, dan di mana waktu dihabiskan.
Kueri berjalan di data yang disumbangkan oleh beberapa anggota kolaborasi. Oleh karena itu, log Spark mentah dapat mengungkapkan informasi tentang data anggota lain, seperti nama tabel, lokasi penyimpanan, dan nilai data. Untuk alasan itu, AWS Clean Rooms tidak memberi Anda log mentah. Sebaliknya, ia menghasilkan salinan yang disunting di mana data pelanggan dan metadata anggota disunting. AWS Clean Rooms mengekspor salinan tersebut ke bucket Amazon S3 yang Anda miliki. Anda kemudian menganalisis log yang diekspor dengan perkakas pilihan Anda, seperti Spark History Server.
penting
Log yang diekspor disunting. Nilai data dihapus, dan jumlah dan ukuran dilaporkan sebagai perkiraan sehingga tidak mengungkapkan detail tentang data dalam kolaborasi. Akibatnya, log yang diekspor tidak cocok dengan log yang dihasilkan pekerjaan Spark di luar AWS Clean Rooms. Sebelum Anda menafsirkannya, bacalahMemahami log yang disunting.
Prasyarat
Sebelum Anda dapat mengekspor log untuk kueri, semua hal berikut harus benar:
-
Keanggotaan Anda memiliki kemampuan
CAN_EXPORT_QUERY_ANALYSIS_LOGanggota. Setiap anggota kolaborasi harus menyetujui permintaan perubahan untuk memberikan kemampuan ini. Untuk informasi selengkapnya, lihat Perbarui kemampuan anggota. -
Anda adalah pelari kueri atau pembayar kueri. Memiliki kemampuan itu tidak cukup dengan sendirinya: Anda dapat mengekspor log hanya untuk kueri yang Anda jalankan atau yang Anda bayar.
-
Kueri telah mencapai status terminal. Anda dapat mengekspor log untuk kueri dengan status
SUCCESS,FAILED,CANCELLED, atauTIMED_OUT. Anda tidak dapat mengekspor log saat kueri masih berjalan.
Ekspor log tidak tersedia untuk setiap kueri. Untuk kasus yang tidak didukung, lihatPertimbangan dan batasan.
Anda tidak perlu membuat peran IAM untuk ekspor log. AWS Clean Rooms menulis log yang diekspor menggunakan identitas Anda sendiri, sehingga ia menulis log hanya jika izin Anda sendiri sudah mengizinkan. Sebagai praktik hak istimewa terkecil, berikan akses tulis hanya ke bucket dan awalan kunci yang Anda gunakan untuk log yang diekspor.
catatan
Jika bucket tujuan digunakan SSE-KMS dengan kunci yang dikelola pelanggan, Anda harus memiliki izin untuk menggunakan kunci tersebut. Jika tidak, permintaan ekspor segera gagal.
Mengekspor log untuk kueri
Ekspor log tidak sinkron. Saat Anda memulai ekspor, segera AWS Clean Rooms kembali dengan ID ekspor dan statusIN_PROGRESS, kemudian menyunting dan menyalin log di latar belakang.
Sebelum memulai ekspor, AWS Clean Rooms tulis objek zero-byte bernama validationSuccess ke bucket tujuan Anda untuk mengonfirmasi bahwa itu dapat menulis di sana. Jika pemeriksaan ini gagal, permintaan segera gagal dengan kesalahan validasi alih-alih gagal nanti di latar belakang.
Hanya satu ekspor yang dapat aktif pada satu waktu untuk kueri dan tujuan tertentu. Jika Anda memulai ekspor sementara ekspor lain untuk kueri yang sama dan tujuan Amazon S3 yang sama masih berlangsung, permintaan gagal dengan kesalahan validasi. Untuk mengekspor kueri yang sama dua kali sekaligus, gunakan awalan kunci yang berbeda untuk ekspor kedua.
Anda mengekspor secara independen dari anggota lain. Jika Anda dan anggota lain sama-sama memiliki kemampuan dan keduanya menjalankan atau membayar untuk kueri yang sama, Anda masing-masing dapat mengekspor log ke tujuan Anda sendiri.
Dimana log yang diekspor ditulis
AWS Clean Rooms menulis log yang diekspor di bawah bucket dan awalan kunci yang Anda tentukan, menggunakan struktur berikut:
s3://your-bucket/key-prefix/collaboration=collaboration-id/analysis=protected-query-id/analysis-log-export-id/
Karena jalur menyertakan ID ekspor, mengekspor kueri yang sama lebih dari satu kali tidak mengganti log dari ekspor sebelumnya.
Ekspor berisi log peristiwa Spark yang disunting untuk kueri. Log ini adalah sekumpulan catatan JSON terstruktur yang mencakup pekerjaan, tahapan, tugas, pengaturan waktu, dan rencana kueri. Spark sendiri menulis format log peristiwa ini. Anda dapat memproses ekspor dengan alat apa pun yang membaca log peristiwa Spark, termasuk perkakas Anda sendiri. AWS Clean Rooms tidak menyediakan penampil untuk log yang diekspor. Di dalam direktori ekspor, catatan mengikuti tata letak yang digunakan Spark untuk log peristiwa bergulir. Direktori bernama eventlog_v2_ menyimpan satu atau lebih protected-query-idevents_ file dan appstatus_ file yang mencatat bahwa aplikasi selesai. Direktori dan nama file menggunakan ID kueri yang dilindungi daripada AWS Clean Rooms pengenal internal.
Spark History Server adalah salah satu alat tersebut. Untuk melihat ekspor di Spark History Server, arahkan instance ke eventlog_v2_ direktori untuk kueri. Misalnya, ekspor query 6ba7b810-9dad-11d1-80b4-00c04fd430c8 ke bucket amzn-s3-demo-bucket dengan awalan kunci query-logs/ menghasilkan yang berikut.
s3://amzn-s3-demo-bucket/query-logs/ collaboration=f47ac10b-58cc-4372-a567-0e02b2c3d479/ analysis=6ba7b810-9dad-11d1-80b4-00c04fd430c8/ a1b2c3d4-e5f6-7890-abcd-ef1234567890/ eventlog_v2_6ba7b810-9dad-11d1-80b4-00c04fd430c8/ events_1_6ba7b810-9dad-11d1-80b4-00c04fd430c8 appstatus_6ba7b810-9dad-11d1-80b4-00c04fd430c8
Dalam contoh ini, atur direktori log Spark History Server ke yang berikut ini. Menunjuk ke eventlog_v2_ direktori hanya akan merender kueri yang Anda ekspor. Membaca log langsung dari Amazon S3 memerlukan konektor S3A, jadi gunakan s3a:// skema. KredenSIAL yang dijalankan Spark History Server dengan memerlukan akses baca ke bucket.
spark.history.fs.logDirectory s3a://amzn-s3-demo-bucket/query-logs/collaboration=f47ac10b-58cc-4372-a567-0e02b2c3d479/analysis=6ba7b810-9dad-11d1-80b4-00c04fd430c8/a1b2c3d4-e5f6-7890-abcd-ef1234567890/eventlog_v2_6ba7b810-9dad-11d1-80b4-00c04fd430c8/
Gunakan Spark History Server versi 3.5.0 atau yang lebih baru. Anda bertanggung jawab untuk mengatur dan menjalankan instance Anda sendiri. Untuk informasi tentang menjalankan instance Server Sejarah Spark, lihat Melihat setelah fakta
Pemecahan masalah ekspor log
- Permintaan gagal karena Anda tidak memiliki izin untuk mengekspor log
-
Keanggotaan Anda tidak memiliki
CAN_EXPORT_QUERY_ANALYSIS_LOGkemampuan. Anggota kolaborasi harus mengirimkan permintaan perubahan untuk menambahkan kemampuan, dan semua anggota harus menyetujuinya. Untuk informasi selengkapnya, lihat Perbarui kemampuan anggota. - Permintaan gagal karena bucket tidak dapat ditulis ke
-
Verifikasi bahwa bucket itu ada, bahwa itu Wilayah AWS sama dengan kolaborasi, dan bahwa Anda memiliki izin untuk menulis ke dalamnya. Jika kebijakan bucket menolak
s3:PutObject, atau membatasi penulisan ke titik akhir VPC tertentu, tidak AWS Clean Rooms dapat menulis ke bucket.Jika bucket digunakan SSE-KMS dengan kunci yang dikelola pelanggan, kesalahan ini mungkin juga berarti Anda tidak memiliki izin untuk menggunakan kunci tersebut. Konfirmasikan bahwa kebijakan utama memungkinkan Anda untuk menelep
kms:GenerateDataKeyon dankms:Decryptmelalui Amazon S3. - Ekspor gagal karena kueri tidak pernah berjalan
-
Kueri mencapai status terminal tanpa berjalan di Spark, jadi tidak ada log yang dihasilkan. Ini terjadi ketika kueri gagal validasi atau dibatalkan sebelum dimulai. Ekspor gagal dengan kode kesalahan
LOGS_NOT_AVAILABLEdan pesan yang melaporkan bahwa tidak ada log eksekusi kueri yang tersedia untuk kueri. Tidak ada yang bisa diekspor. - Permintaan gagal karena kueri berjalan sebelum ekspor log tersedia
-
Log yang disunting diproduksi saat kueri berjalan. Kueri yang berjalan sebelum ekspor log tersedia di created AWS Clean Rooms none, jadi tidak ada yang bisa diekspor. Untuk mendapatkan log untuk analisis yang sama, jalankan kueri lagi dan ekspor log untuk proses baru.
- Permintaan gagal karena kuota terlampaui
-
Anda telah mencapai jumlah maksimum ekspor yang dapat berlangsung pada saat yang bersamaan. Tunggu hingga ekspor yang sedang berlangsung selesai, lalu coba lagi.
- Ekspor dimulai tetapi kemudian gagal
-
Pemeriksaan izin awal hanya mengon AWS Clean Rooms firmasi bahwa itu dapat menulis ke bucket Anda pada saat Anda memulai ekspor. Jika izin Anda berubah, atau jika kredentif yang digunakan untuk ekspor dicabut saat ekspor sedang berjalan, ekspor gagal setelah dimulai. Panggil
GetAnalysisLogExportuntuk melihat kesalahan, menyelesaikan penyebabnya, dan memulai ekspor baru. - Ekspor gagal dan melaporkan kesalahan internal
-
Kesalahan internal mungkin berarti tidak ada log yang dihasilkan untuk kueri. Anda dapat mencoba lagi ekspor.
- Log yang diekspor tampak tidak lengkap
-
Jika kueri berakhir karena proses kehabisan memori, beberapa output log mungkin hilang, karena log yang disimpan pada host yang berhenti tiba-tiba tidak dipulihkan. Log yang sudah ditulis masih diekspor.
- Ada
validationSuccessobjek zero-byte di bucket -
AWS Clean Rooms menulis objek ini pada awalan kunci yang Anda tentukan, untuk memverifikasi bahwa objek tersebut dapat menulis ke tujuan Anda sebelum memulai ekspor. Ini terpisah dari log yang diekspor, yang ditulis di bawah direktori ekspor sendiri, dan Anda dapat menghapusnya. Akhiri awalan kunci Anda dengan garis miring sehingga objek ini dibuat di dalam awalan bukan di sampingnya.
Pertimbangan dan batasan
-
Anda dapat mengekspor log untuk kueri SQL yang dijalankan setelah 11 Agustus 2026. Ekspor log tidak mendukung PySpark pekerjaan.
-
Ekspor log tidak didukung untuk kueri yang gagal validasi atau dibatalkan sebelum mencapai
STARTEDstatus. -
Ekspor log tidak didukung untuk kueri yang menggunakan privasi diferensial. Untuk informasi selengkapnya, lihat AWS Clean Rooms Privasi Diferensial.
-
Bucket tujuan untuk ekspor log harus Wilayah AWS sama dengan kolaborasi. Cross-Region ekspor tidak didukung.
-
Mengamankan bucket tujuan untuk ekspor log adalah tanggung jawab Anda. Blokir akses publik ke bucket, dan aktifkan logging akses server jika Anda memerlukan catatan siapa yang membaca log yang diekspor.
-
AWS Clean Rooms tidak menerima AWS KMS kunci untuk ekspor log. Log yang diekspor dienkripsi menggunakan konfigurasi enkripsi default dari bucket Amazon S3 tujuan. Untuk mengenkripsi mereka dengan kunci yang dikelola pelanggan, konfigurasikan enkripsi default bucket untuk menggunakan kunci tersebut sebelum Anda mengekspor.
-
Ekspor log hanya mendukung kueri yang mencapai status terminal:
SUCCESS,FAILED,CANCELLED, atauTIMED_OUT. -
Anda tidak dapat membatalkan ekspor setelah dimulai.
Untuk kuota yang berlaku untuk ekspor log, termasuk jumlah ekspor yang dapat berjalan pada saat yang sama, lihatKuota untuk AWS Clean Rooms.