Data export — dastur yoki ma’lumotlar omboridagi ma’lumotni boshqa tizim, foydalanuvchi yoki arxiv uchun tashqi formatga chiqarish jarayoni. CSV hisobot, JSON API dump, database snapshot va analitik omborga oqim eksport misollaridir. Export consumer talabiga mos schema, xavfsizlik va izchillikni ta’minlashi kerak; oddiy SELECT * odatda yetarli emas.
Maqsad va contract
Export turi foydalanish holatidan boshlanadi. Inson ko‘radigan hisobot label va formatlangan sanani, machine import esa stable field nomi, canonical type va versionni talab qiladi. To‘liq export barcha yozuvni, incremental export faqat ma’lum checkpointdan keyingi o‘zgarishni beradi. Delete hodisalari ham incremental oqimda ifodalanishi kerak.
Schema field tartibi, encoding, delimiter, timezone va null representationni belgilaydi. Field qo‘shilishi consumerga ta’sir qilishi mumkin, ayniqsa positional CSV’da. Manifest fayl version, yaratilgan vaqt, row count, checksum va partlar ro‘yxatini saqlaydi. Consumer avval manifestni tekshirib, keyin fayllarni qayta ishlaydi.
Izchil snapshot
Uzoq export vaqtida yozuvlar o‘zgarishi mumkin. Oddiy pagination natijada duplicate yoki yo‘qolgan row beradi. Database snapshot isolation, stable high-water mark yoki transactionally captured changelog izchil kesim yaratadi. ORDER BY uchun unique, barqaror key ishlatiladi.
Katta jadvalni transactionda uzoq ushlash vacuum yoki log retentionga zarar berishi mumkin. Replica yoki snapshot storage’dan export qilish production yukini kamaytiradi. Biroq replica lag qaysi vaqtgacha data kiritilganini manifestda ko‘rsatishni talab qiladi.
Format va hajm
CSV keng mos, ammo nested structure va type metadata’si zaif. JSON o‘qilishi oson, lekin katta array butun hujjat yopilmaguncha incomplete bo‘ladi; NDJSON streaming uchun qulay. Parquet columnar analytics, predicate pushdown va compression beradi, ammo oddiy foydalanuvchi uchun bevosita ochish qiyinroq.
Fayllar belgilangan maksimal hajm bo‘yicha partlarga bo‘linadi. Compression transferni kamaytiradi, checksum esa har part yaxlitligini tekshiradi. Export xotirada to‘liq qurilmaydi; cursor yoki stream orqali yoziladi. Temporary artefakt muvaffaqiyatli tugagach atomik publish qilinadi.
Ruxsat va maxfiylik
Export yuqori xavfli amal, chunki ko‘p ma’lumotni bir marta chiqaradi. Authorization field va row scope’ni ham tekshiradi. Admin bo‘lish barcha tenant data’sini avtomatik export qilish huquqi degani emas. PII, secret va internal field allowlist bo‘yicha tanlanadi; database modelini to‘liq serialize qilish xavfli.
Katta export asynchronous job bo‘lib, requester identity va filter snapshotini saqlaydi. Tayyor fayl qisqa muddatli signed URL orqali berilishi mumkin. Link taxmin qilinmaydigan bo‘lsa ham expiry, single-use yoki qayta autentifikatsiya qo‘llanadi. Download audit qilinadi, fayl retentiondan keyin o‘chiriladi.
Formula va format xavflari
CSV office dasturida ochilganda =, +, - yoki @ bilan boshlangan cell formula sifatida ishlashi mumkin. Ishonchsiz qiymat kontekstga mos escape qilinadi yoki xavfsiz prefiks bilan chiqariladi. Bu raw data almashuvining semanticsiga ta’sir qilishi mumkin, shu sabab human-facing va machine-facing export alohida bo‘ladi.
HTML, XML va PDF exportda ham output encoding zarur. Filename va Content-Disposition header control belgilaridan tozalanadi. Export qilingan faylga klassifikatsiya, yaratilgan vaqt va egasi metadata sifatida qo‘shilishi mumkin, ammo maxfiy qiymat fayl nomiga yozilmaydi.
Tekshiruv
Row count, aggregate, schema va checksum avtomatik tekshiriladi. Import round-trip sinovi muhim fieldlar qayta o‘qilganda saqlanishini ko‘rsatadi. Sample consumer bilan compatibility test bajariladi. Export muvaffaqiyatli deb job statusi emas, manifest va barcha partlar publish qilingani tasdiqlanganda hisoblanadi.
Bog‘liq tushunchalar
Data import, Data extraction, CSV, Data serialization, Snapshot isolation, Data portability, ETL