View a markdown version of this page

Mengekspor log analisis kueri - AWS Clean Rooms

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_LOG anggota. 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 statusSUCCESS,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.

Console
Untuk mengekspor log untuk kueri (konsol)
  1. Masuk ke Konsol Manajemen AWS dan buka AWS Clean Rooms konsol.

  2. Di panel navigasi kiri, pilih Kolabor asi.

  3. Pilih kolaborasi yang berisi kueri.

  4. Pilih tab Analisis.

  5. Lakukan salah satu dari langkah berikut:

    • Dalam tabel kueri, pilih kueri, pilih Tind akan, lalu pilih Ekspor log analisis kueri.

    • Pilih kueri untuk membuka halaman detailnya, lalu pilih Ekspor log analisis.

  6. Di kotak dialog, pilih bucket Amazon S3 tujuan dan, secara opsional, awalan kunci.

  7. Pilih Ekspor.

Jika opsi Ekspor log analisis kueri tidak tersedia, konsol menjelaskan alasannya. Tabel berikut mencantumkan pesan dan cara menyelesaikannya.

Pesan Resolusi
Kueri harus mencapai status terminal sebelum log dapat diekspor. Tunggu hingga kueri selesai berjalan.
Anda tidak memiliki kemampuan untuk mengekspor log analisis kueri. Minta anggota kolaborasi untuk mengirimkan permintaan perubahan yang menambahkan kemampuan ke keanggotaan Anda.
Ekspor log tidak didukung untuk kueri yang menggunakan privasi diferensial. Tidak ada. Ekspor log tidak tersedia untuk kueri ini.
Hanya pelari kueri atau pembayar kueri yang dapat mengekspor log analisis. Minta anggota yang menjalankan atau membayar kueri untuk mengekspor log.

Halaman detail kueri menyertakan tabel ri wayat Ekspor yang mencantumkan setiap ekspor dan statusnya. Pilih ekspor yang gagal untuk melihat kesalahan, atau pilih Lihat tujuan untuk membuka log yang diekspor di Amazon S3.

API

Untuk mengekspor log untuk kueri (API)

PanggilStartAnalysisLogExport, tentukan keanggotaan, kueri yang dilindungi, dan tujuan Anda.

aws cleanrooms start-analysis-log-export \ --membership-identifier membership-id \ --analysis-id protected-query-id \ --analysis-type PROTECTED_QUERY \ --result-configuration '{ "outputConfiguration": { "s3": { "bucket": "amzn-s3-demo-bucket", "keyPrefix": "query-logs/" } } }'

Respons mengembalikan analysisLogExport objek yang berisi an analysisLogExportId dan a status ofIN_PROGRESS.

Untuk memeriksa ekspor, hubungi GetAnalysisLogExport dengan pengenal keanggotaan dan pengenal ekspor, dan jajak pendapat hingga statusnya SUCCESS atauFAILED. Ketika ekspor gagal, respons menyertakan error bidang dengan kode dan pesan.

aws cleanrooms get-analysis-log-export \ --membership-identifier membership-id \ --analysis-log-export-identifier analysis-log-export-id

Untuk mencantumkan ekspor untuk keanggotaan, hubungiListAnalysisLogExports. Anda dapat memfilter hasil berdasarkan kueri menggunakananalysisIdentifier, dan berdasarkan status ekspor menggunakanstatus. statusFilter menerimaIN_PROGRESS,SUCCESS, atauFAILED, dan mengambil satu nilai pada satu waktu. Ini adalah status ekspor itu sendiri, bukan dari kueri yang lognya Anda ekspor. Hasilnya dipaginasi.

aws cleanrooms list-analysis-log-exports \ --membership-identifier membership-id \ --analysis-identifier protected-query-id \ --status SUCCESS

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_protected-query-id menyimpan satu atau lebih events_ 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 di situs web Apache Spark.

Pemecahan masalah ekspor log

Permintaan gagal karena Anda tidak memiliki izin untuk mengekspor log

Keanggotaan Anda tidak memiliki CAN_EXPORT_QUERY_ANALYSIS_LOG kemampuan. 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 menolaks3: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:GenerateDataKey on dan kms:Decrypt melalui 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_AVAILABLE dan 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 GetAnalysisLogExport untuk 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 validationSuccess objek 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 STARTED status.

  • 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.