Gesaan dan konteks
Soalan ini menguji sama ada anda boleh mengubah persoalan "berapa lama kita perlu mengekalkannya?" kepada sistem kitaran hayat data yang boleh dilaksanakan, boleh dijelaskan dan boleh dipulihkan. Versi, snapshot, replika, sandaran dan eksport downstream tidak berkongsi satu semantik pemadaman; tamat tempoh snapshot Apache Iceberg juga memerlukan semakan bahawa fail tidak lagi dirujuk oleh snapshot yang dikekalkan. Rangkumi sumber dasar, keutamaan, pelaksana (executors), penemuan kebergantungan, bukti pemadaman dan pemulihan kegagalan. Tempoh pengekalan bergantung pada undang-undang dan kontrak tertentu, jadi sistem harus menyokong semakan undang-undang dan bukannya menggantikan pertimbangan undang-undang.
Perkara yang dinilai oleh penemu bual
- Sama ada anda membezakan pengekalan perniagaan, pegangan undang-undang (legal hold), permintaan pemadaman, tetingkap sandaran dan pembersihan teknikal.
- Sama ada anda mereka bentuk dasar yang berversi, berskop, diluluskan dan peka terhadap pengecualian berbanding mengekod keras satu TTL.
- Sama ada anda mengendalikan rujukan tersembunyi dalam snapshot, replika, cache, eksport, jadual downstream dan fail yatim (orphan files).
- Sama ada anda menyediakan dry run, pelaksanaan yang boleh diperhatikan, bukti pemadaman, percubaan semula, sempadan rollback dan jejak audit.
Soalan penjelasan untuk ditanya terlebih dahulu
Sahkan kelas data, skop subjek atau penyewa (tenant), tujuan perniagaan, rantau, kontrak dan sumber undang-undang. Adakah dasar terpakai pada jadual, lajur, rekod, objek atau peristiwa? Siapa yang meluluskan dan melepaskan legal hold apabila ia bercanggah dengan permintaan pemadaman? Apakah salinan dan laluan pemulihan yang wujud untuk snapshot lakehouse, topik, storan objek, sandaran dan indeks carian? Adakah sistem mesti membuktikan pemadaman fizikal, atau membuktikan penyingkiran daripada permukaan pertanyaan dalam talian sementara sandaran tamat tempoh secara semula jadi? Apabila berlaku kegagalan, adakah pelaksanaan boleh dijeda, dicuba semula atau me-rollback metadata?
Rangka jawapan 30 saat
Saya akan memodelkan dasar dengan sumber, versi, skop, keutamaan dan kesahan, memisahkan pengekalan biasa, legal hold, permintaan pemadaman dan pengecualian sandaran. Pengkompil memetakan entiti katalog kepada pelaksana snapshot, topik, objek, indeks dan sandaran serta terlebih dahulu menghasilkan dry-run yang menunjukkan impak dan konflik. Pelaksanaan menggunakan graf kebergantungan dan semakan rujukan supaya fail yang diperlukan oleh snapshot atau pemulihan tidak dipadamkan, melakukan komit secara berkelompok (batch) dan merekodkan setiap langkah. Bukti yang terhasil merangkumi skop, masa, kegagalan dan baki tetingkap sandaran. Sebarang ketidakpastian akan menjeda rancangan untuk semakan dan bukannya melangkaunya secara senyap.
Pecahan terperinci langkah demi langkah
1. Memodelkan sumber dasar dan keutamaan
Dasar harus merangkumi skop subjek, label data, tujuan pemprosesan, tempoh pengekalan, peristiwa permulaan, rantau, sumber, versi, pelulus dan pengecualian. Wakili permintaan pemadaman, legal hold, tempoh kontrak dan tamat tempoh sandaran semula jadi sebagai kekangan berbeza dengan laluan konflik dan eskalasi yang didokumenkan. Kekalkan snapshot input yang digunakan untuk setiap pengiraan supaya sistem dapat menerangkan sebab rekod dikekalkan.
2. Membina katalog entiti dan rujukan
Katalog menghubungkan jadual, partisi, snapshot, objek, topik, indeks, eksport dan sandaran kepada pemilik dan salasilah (lineage). Bagi lakehouse, kenal pasti fail yang dirujuk oleh snapshot, cawangan atau tag yang dikekalkan; bagi saluran paip tak segerak (asynchronous), rekodkan sama ada peristiwa pemadaman sampai kepada pengguna downstream. Apabila rujukan tidak dapat dipastikan, simpan data tersebut dan buat item kerja dan bukannya membuat andaian.
3. Mengkompilasi rancangan yang boleh dilaksanakan
Pengkompil mencipta masa tamat tempoh, tindakan, semakan prasyarat, keperluan kelulusan dan sempadan rollback untuk setiap entiti. Tindakan mungkin menyekat penulisan baharu, menyembunyikan data daripada pertanyaan, menamatkan tempoh snapshot, mengalih keluar fail yatim, memancarkan peristiwa pemadaman downstream atau menunggu tetingkap sandaran. Sertakan versi rancangan dan kunci kedidaksamaan (idempotency key) supaya percubaan semula tidak menduplikasi kesan sampingan; dry run melaporkan konflik, anggaran kiraan objek dan risiko.
4. Mereka bentuk pelaksanaan berkelompok dan kawalan keselamatan (guardrails)
Bahagikan pelaksanaan mengikut penyewa, rantau, jadual atau partisi dan hadkan konkurensi serta pemadaman setiap kelompok. Sebelum pemadaman fizikal, semak semula snapshot aktif, kerja pemulihan, legal hold dan penulisan terkini; tindakan berisiko tinggi memerlukan kelulusan dwi-pihak atau tetingkap pembekuan yang singkat. Sokong jeda, sambung semula dan exponential backoff supaya perkhidmatan storan atau katalog tidak dibebani secara berlebihan. Rekodkan versi rancangan, ringkasan input (digest), hasil dan kelas ralat bagi setiap kelompok.
5. Menghasilkan bukti pemadaman yang boleh disahkan
Bukti adalah lebih daripada sekadar log "kerja berjaya". Ia menyenaraikan versi dasar, entiti yang diliputi, masa mula dan tamat, kiraan diproses dan gagal, semakan rujukan, pengakuan (acknowledgements) downstream, tamat tempoh sandaran dan sempadan yang tidak boleh disahkan. Rekodkan penamatan tempoh snapshot, pemadaman fail dan pembersihan indeks secara berasingan. Jika sandaran tidak boleh dipadamkan secara fizikal serta-merta, nyatakan bahawa permukaan dalam talian telah dialih keluar, bila sandaran tamat tempoh dan siapa yang meluluskan sempadan tersebut.
6. Mengendalikan kegagalan, pemulihan dan audit berterusan
Komit perubahan metadata dan pemadaman fizikal secara berperingkat, mengekalkan snapshot yang diperlukan atau tetingkap pemadaman lembut (soft-delete) untuk pemulihan. Jika sesuatu dasar tidak betul, hentikan kelompok seterusnya, tandakan entiti yang terjejas dan laksanakan rancangan pampasan. Data yang dipadam secara fizikal tidak boleh dianggap boleh diterbalikkan; pulihkannya daripada replika yang dibenarkan atau bina semula upstream. Pantau tunggakan tamat tempoh, sekatan pemadaman, kelewatan pengakuan downstream, sisa sandaran dan konflik dasar, serta semak sumber dasar dan kebenaran secara berkala.
Contoh jawapan berkualiti tinggi
Saya akan memodelkan label data, tujuan, skop subjek, peristiwa permulaan, pengekalan, rantau, sumber, versi, pelulus dan pengecualian, kemudian mentakrifkan konflik antara pengekalan biasa, legal hold, permintaan pemadaman dan tetingkap sandaran. Katalog akan menghubungkan jadual, partisi, snapshot lakehouse, topik, indeks, eksport dan sandaran; rujukan yang tidak diketahui akan kekal dilindungi. Pengkompil mencipta rancangan berversi dan idempoten serta menjalankan dry run sebelum membuat kelompok mengikut penyewa dan partisi. Sebelum pemadaman, ia menyemak semula snapshot aktif, kerja pemulihan, legal hold dan penulisan terkini, serta merekodkan setiap hasil. Bukti menyenaraikan skop, versi dasar, pemadaman dan pengakuan downstream, kegagalan dan tamat tempoh sandaran, membezakan penyingkiran dalam talian daripada pemadaman fizikal. Sebarang anomali akan menjeda kelompok seterusnya untuk pampasan atau kelulusan. Audit berterusan menjejaki tunggakan, pemadaman yang disekat, sisa dan kebenaran.
Kesilapan biasa
- Menganggap setiap sistem storan sebagai satu stor nilai kunci dengan TTL.
- Hanya menyimpan tarikh tamat tempoh akhir dan kehilangan konteks tujuan, sumber, versi, kelulusan dan konflik.
- Mengabaikan snapshot, cawangan, sandaran, indeks dan salinan downstream sebelum pemadaman.
- Memanggil kerja yang berjaya sebagai bukti pemadaman tanpa skop atau sempadan kegagalan.
- Meniadakan dry run, jeda, pelaksanaan berkelompok, keidempotenan dan kawalan keselamatan kelulusan manusia.
- Mendakwa bahawa pemadaman fizikal boleh diterbalikkan serta-merta atau mengabaikan tamat tempoh sandaran secara semula jadi.
- Membentangkan konfigurasi sistem sebagai nasihat undang-undang dan kehilangan sumber undang-undang atau kontrak.
Soalan susulan dan jawapan
Bagaimana jika pegangan undang-undang (legal hold) bercanggah dengan permintaan pemadaman?
Modelkan ia sebagai kekangan berasingan, gunakan keutamaan yang disahkan oleh dasar undang-undang, dan rekodkan pelulus, sebab, masa mula dan masa pelepasan. Sistem boleh membekukan pemadaman atau menyekat akses dalam talian, tetapi ia tidak boleh mereka-reka pengecualian undang-undang.
Bagaimanakah anda membuktikan bahawa tamat tempoh snapshot tidak akan memadamkan fail yang dirujuk?
Baca snapshot aktif, cawangan, tag dan rujukan kerja pemulihan sebelum pelaksanaan dan hanya proses snapshot dan fail di luar set yang dikekalkan. Imbas sekali lagi selepas penghantaran dan rekodkan semakan tersebut. Rujukan yang tidak diketahui kekal dilindungi dan menjadi item kerja.
Bagaimana jika sandaran tidak boleh dipadamkan serta-merta?
Wakili penyingkiran dalam talian, ketiadaan sandaran dan tamat tempoh media fizikal sebagai keadaan berasingan. Rekodkan pengekalan sandaran, rancangan pemusnahan penyulitan atau tamat tempoh semula jadi, serta sekatan akses. Bukti mesti menyatakan sempadan dan pemilik bagi data yang belum dipadamkan secara fizikal.
Apakah yang berlaku selepas pemadaman tidak sengaja?
Hentikan dasar dan kelompok seterusnya, bekukan versi rancangan dan bukti audit, serta nilaikan entiti yang terjejas. Pulihkan daripada snapshot yang dibenarkan, sandaran atau pembinaan semula upstream, kemudian gunakan dasar yang telah diperbetulkan dan rekodkan pemulihan, kelulusan serta pemberitahuan.