Maʼlumot koʻchirish nusxa olish emas, u uch ish: tozalash, eski maydonlarni yangisiga moslashtirish va natijani eskisi bilan solishtirish. Odoo hujjatidagi misolda xato qarzni ikki joydan kiritishdan chiqadi, buning oldini oraliq hisob oladi. Yuklash tartibi muhim, import qaytarilmaydi, shuning uchun mashqlar nusxada bir necha marta oʻtkaziladi. Raqamlar eski tizim bilan mos kelmaguncha ishga tushirish kutiladi.
Odoo hujjati maʼlumot koʻchirishda eng oddiy xatoni misol qiladi. Kompaniyaning debitorlik qarzi 1000 birlik, ochiq hisob-fakturalari ham jami 1000 birlik. Agar ikkalasi ham yangi tizimga kiritilsa, tizim qarzni 2000 birlik deb koʻrsatadi. Hech kim xato qilmadi va har bir raqam eski tizimdan toʻgʻri koʻchirildi, xato esa koʻchirish usulida edi: bitta qarz ikki joydan hisobga kirdi.
Koʻchirish nusxa olish emas
Maʼlumotni koʻchirish ofis fayllarini bir diskdan boshqasiga oʻtkazishga oʻxshamaydi. Eski tizimda yozuvlar boshqa maydonlarga, boshqa qoidalarga va boshqa odatlarga muvofiq saqlangan, yangi tizim esa ularni oʻz tuzilmasida kutadi. Shu orada uch ish bajariladi: yozuvlar tozalanadi, eski maydonlar yangi maydonlarga moslashtiriladi, natija esa eski raqamlar bilan solishtirib tekshiriladi.
Ish hajmini koʻpincha kam baholashadi. Kimball guruhi maʼlumotlar omborlari tajribasidan kelib chiqib yozadi: ETL, yaʼni maʼlumotni olish, oʻzgartirish va yuklash qismi, vaqt va kuchning nomutanosib katta ulushini oladi. Guruh ETL jarayonini 34 kichik tizimga ajratadi: uchtasi olish uchun, beshtasi tozalash va moslashtirish uchun, 13 tasi yuklash uchun va yana 13 tasi ishlab turgan jarayonni boshqarish uchun. Bu raqam ish nechta aniq vazifadan iboratligini koʻrsatadi. Kimball va Ross kitobining uchinchi nashri esa shu mavzuga ikkita yangi bob bagʻishlagan, ularning biri ETL tizimlari va usullari haqida, ikkinchisi tizimni loyihalash va ishlab chiqish jarayoni haqida.
| Bosqich | Asosiy savol | Natija |
|---|---|---|
| Maʼlumotni koʻrib chiqish | Eski tizimda nima bor va qanchalik sifatli? | Maydonlar, boʻsh qiymatlar, takrorlar hisoboti |
| Tozalash | Qaysi yozuv xato, takror yoki eskirgan? | Tozalangan roʻyxat va xatolar jurnali |
| Moslashtirish | Eski maydon yangi tizimda qayerga tushadi? | Maydonlar xaritasi va qiymat jadvallari |
| Yuklash | Qaysi tartibda va qaysi bosqichma-bosqich yuklanadi? | Yuklangan yozuvlar, rad etilganlar roʻyxati |
| Tekshirish | Yangi raqamlar eskisi bilan mos keladimi? | Imzolangan solishtirish jadvali |
Avval maʼlumotga qarang
Kimball tizimlarining birinchisi maʼlumotni oʻrganish, ingliz tilida data profiling deb ataladi, va uning vazifasi manbani oʻrganib, uni koʻchirishga yaroqli yoki yaroqsizligini aniqlash. Boshqacha aytganda, yuklashdan oldin maʼlumot qanday ekanini bilib olish shart, chunki yomon maʼlumot yangi tizimda ham yomon boʻlib qoladi.
Gipotetik misol. Eski tizimdagi mijozlar jadvalida 12 400 yozuv bor. Koʻrib chiqish natijasida 1 150 yozuvda telefon yoʻqligi, 310 juft yozuv bir xil mijozga tegishli ekani va 90 yozuv besh yildan beri hech bir hujjatda ishlatilmagani aniqlanadi. Bu raqamlar koʻchirishdan oldingi qarorlarni belgilaydi: takrorlar birlashtiriladi, ishlatilmaganlar arxivda qoladi, telefonsizlar esa maxsus belgi bilan ajratiladi.
Tozalash: takrorlar va xato yozuvlar
Kimball roʻyxatida tozalashga oid bir nechta tizim bor. Tozalash tizimi sifat buzilishlarini ushlaydi, xatolarni qayd etish tizimi esa har bir xatoni yozib boradi, chunki bu yozuvlar sifatni yaxshilash uchun muhim maʼlumot. Mahsulot yoki mijoz kabi asosiy roʻyxatlardagi takrorlarni olib tashlash alohida tizim vazifasi. Shuning uchun xatoni jimgina tuzatib ketish oʻrniga, har safar uni yozib qoʻyish kerak. Aks holda manba tizimdagi muammo keyin ham takrorlanaveradi.
Takrorlarni topish alohida ilm sohasi. 1969 yilda Fellegi va Sunter yozuvlarni bogʻlash nazariyasini Journal of the American Statistical Association nashrida eʼlon qildi. Amaliy usullar «Dublikatlar va maʼlumotni tozalash» maqolasida yoritilgan, bu yerda faqat bitta fikr muhim: ikki yozuvning bir xil mijozga tegishli ekanini hal qilish xatoga moyil va xatosi qimmatga tushadi. Notoʻgʻri birlashtirilgan ikki mijoz yangi tizimda ham bir mijoz boʻlib qoladi.
Nimani koʻchirmaslik ham qaror. Microsoft qoʻllanmasi koʻchirishga tayyorgarlik uchun oldindan sozlama maʼlumotlari, asosiy maʼlumotlar, xavfsizlik sozlamalari, ochiq operatsiyalar va qoldiqlarni tayyorlashni sanaydi. Odoo hisobi hujjati bunga qoʻshimcha qiladi: oʻtgan davr uchun yo barcha yozuvlarni, yo faqat yopilish qoldiqlarini yuklash mumkin. Tarixni toʻliq koʻchirish har doim shart emas.
Moslashtirish: eski maydon yangi qayerga tushadi
Odoo hujjati 19.0 versiyasida import jarayonini shunday tasvirlaydi. Fayl CSV yoki XLSX shaklida tayyorlanadi va Odoo buning uchun tayyor shablon beradi. Fayl yuklangandan keyin har bir ustun tizim maydoniga bogʻlanadi, avtomatik bogʻlanmaganlarni qoʻlda koʻrsatish mumkin. Yuklashdan oldin «Test» tugmasi xatolarni koʻrsatadi. Tizim ustun turini faqat dastlabki oʻnta qatordan taxmin qiladi, shu sababli kam uchraydigan qiymatlar tekshiruvdan oʻtib ketishi mumkin.
Eng muhim maydon «tashqi identifikator» deyiladi va u har bir yozuvga yagona belgi beradi. Xuddi shu belgilar bilan fayl qayta yuklansa, mavjud yozuvlar yangilanadi, yangi takrorlar yaratilmaydi. Bogʻliq yozuvlar ham shu belgi orqali koʻrsatiladi, masalan hisob-fakturadagi mijoz. Eski tizimdagi kodni shu maydonda saqlash ikki foyda beradi: qayta yuklash xavfsiz boʻladi, keyin eski va yangi yozuvni solishtirish mumkin.
| Eski maydon | Yangi tizimdagi oʻrni | Qoida |
|---|---|---|
| Mijoz nomi | Nomi | Ortiqcha boʻshliq va bosh harflar bir shaklga keltiriladi |
| Telefon 1, Telefon 2 | Telefon va mobil telefon | Yagona format, notoʻgʻri raqamlar rad etilib, jurnalga yoziladi |
| Holat: 1, 2, 3 | Faol yoki arxiv | Qiymatlar jadvali: 1 faol, 2 faol, 3 arxiv |
| Qarz summasi | Ochiq hujjatlar | Maydon sifatida emas, hujjatlar shaklida koʻchiriladi |
| Eski kod | Tashqi identifikator | Oʻzgartirilmaydi, qayta yuklashda takror yaratmaslik uchun |
Yuklash tartibi hal qiladi
Odoo hisobi hujjati ochiq aytadi: maʼlumotni tizimga uzatish tartibi hal qiluvchi ahamiyatga ega, chunki bir yozuv boshqasiga tayanadi. Hisob rejasi kabi asosiy maʼlumotlar birinchi yuklanadi. Hujjat boʻlimlari shundan keyin quyidagi tartibda keladi.
- Ochiq hisob-fakturalar va xarid hisoblari, har biri qoldiq summasi boʻyicha.
- Ombor qoldigʻi: mahsulotning tannarxi avval, keyin miqdor.
- Dastlabki sinov balansi: debitorlik va kreditorlik qarzlari oraliq hisoblar orqali.
- Bank va karta hisoblarining boshlangʻich qoldiqlari.
- Yakuniy tekshiruv: oraliq hisoblar nolga tenglashganini koʻrish.
Oraliq hisoblar ikki karra hisobga olishning oldini oladi, shuning uchun ularga alohida eʼtibor beriladi. Sinov balansida debitorlik qarzi oraliq hisobga yoziladi, ochiq hisob-fakturalar esa shu hisob orqali kiradi, natijada ular bir-birini yopadi va oxirida oraliq hisob nolga teng boʻladi. Boshida keltirilgan 2000 birlik xatosi shu usul bilan hal qilinadi.
Oʻtish vaqti ham tanlov. Hujjatga koʻra, eng oson variant moliyaviy yil oxiri, chunki shunda koʻchiriladigan maʼlumot eng kam boʻladi. Soliq davri oxiri ham mumkin. Soliq davrining oʻrtasi tavsiya etilmaydi, sababi hisobot uchun ikki tizim maʼlumotini birlashtirishga toʻgʻri keladi.
Mashq bilan haqiqiy koʻchirish orasida eski tizim ishlashda davom etadi va unda yangi hujjatlar paydo boʻladi. Kimball roʻyxatida bu holat uchun alohida tizim bor: oʻzgarishlarni ushlash tizimi manbada nima oʻzgarganini ajratib, qayta ishlanadigan hajmni kamaytiradi. Kichik korxonada koʻpincha oddiyroq yoʻl tanlanadi: ish uchun oyna belgilanadi, eski tizim toʻxtatiladi va oxirgi nusxa olinadi. Odoo ham versiya yangilashda shunday ishlaydi, yangilanish davomida ishlab turgan baza foydalanuvchilarga mavjud boʻlmaydi.
Tekshirish: raqamlar bir-biriga mos kelishi kerak
Yuklashdan keyin eng muhim bosqich boshlanadi. Odoo hujjati tekshiruv qoidalarini aniq beradi. Ochiq hisob-fakturalar minus kredit eslatmalar debitorlik qoldigʻiga teng boʻlishi kerak, ombor mahsulotlarining miqdor va tannarx koʻpaytmalari yigʻindisi esa sinov balansidagi ombor hisobiga teng boʻlishi kerak. Quyidagi jadval shu qoidalarni gipotetik raqamlarda koʻrsatadi.
| Nazorat | Eski tizim | Yangi tizim | Farq |
|---|---|---|---|
| Mijozlar soni, takrorlar birlashtirilgandan keyin | 11 650 | 11 650 | 0 |
| Ochiq hisob-fakturalar minus kredit eslatmalar | 418 200 minus 18 200 = 400 000 | 400 000 | 0 |
| Debitorlik qarzi, sinov balansi | 400 000 | 400 000 | 0 |
| Ombor: miqdor x tannarx yigʻindisi | 906 750 | 906 750 | 0 |
| Uch mahsulotning jismoniy sanoq qoldigʻi | 120, 45, 300 | 120, 45, 290 | 10 dona farq |
Jadvaldagi oxirgi qator tekshiruvning mazmunini koʻrsatadi. Jami summalar mos kelsa ham, alohida pozitsiyalarda farq chiqishi mumkin, shu sababli nafaqat jamini, balki tanlangan yozuvlarni ham solishtirish kerak. Farq topilganda uning sababi aniqlanadi: yuklashda yoʻqolgan yozuvmi yoki eski tizimning oʻzidagi xatomi.
Microsoft joriy etish roʻyxati tekshirishni bir martalik ish deb hisoblamaydi. Koʻchirish ishga tushirishdan oldin bir necha marta sinab koʻriladi, takror yoki buzilgan yozuvlar aniqlanadi, ish ishga tushirish vaqt oraligʻiga sigʻishi tekshiriladi, skriptlarni esa biznes tomoni imzolaydi. Odoo hujjati amaliy sabab beradi: import qaytarilmaydi. Shu bois barcha mashq nusxada bajariladi. Odoo hisobi hujjati ham bu jarayonni sinov bazasida mashq qilishni tavsiya qiladi.
Koʻchirishda qayerda xato qilinadi
Xatolar roʻyxati manbalardagi qoidalarning teskarisidan tuzildi, bu tahririyat xulosasi.
- Hamma narsa koʻchiriladi, shu jumladan yillar davomida yigʻilgan takrorlar va eskirgan yozuvlar.
- Qoldiq va ochiq hujjatlar ikki marta kiritiladi, chunki oraliq hisob ishlatilmaydi.
- Birinchi urinish ishlab turgan bazada oʻtkaziladi, import esa qaytarilmaydi.
- Eski tizim kodi saqlanmaydi, qayta yuklashda takrorlar paydo boʻladi.
- Tekshirishni dasturchi oʻzi bajaradi va imzo qoʻyadi, biznes tomoni esa raqamlarni koʻrmaydi.
Amalda nima qilish mumkin
Quyidagi qadamlar manbalardan chiqarilgan tahririyat xulosasi, tayyor protokol emas.
- Yuklashdan oldin eski maʼlumotni koʻrib chiqing: yozuvlar soni, boʻsh maydonlar, takrorlar.
- Nimani koʻchirmaslikni oldindan hal qiling va qarorni yozib qoʻying.
- Maydonlar xaritasini tuzing, har bir yozuvga eski tizim kodini tashqi identifikator sifatida saqlang.
- Yuklash tartibini belgilang, mashqni nusxada bir necha marta bajaring va har safar solishtirish jadvalini toʻldiring.
- Raqamlar mos kelmaguncha ishga tushirmang, imzoni esa maʼlumot egasi qoʻysin.
Kichik korxonada bu ishning koʻp qismini bir kishi bajaradi. Shunda ham nazorat jadvalini yozib qoʻyish kerak: kimdir keyinroq «nega qoldiq mos kelmayapti» deb soʻrasa, javob xotiraga emas, hujjatga tayanadi.
Koʻchirishning sifati yuklangan yozuvlar soni bilan emas, tekshirilgan raqamlar bilan oʻlchanadi. Avval maʼlumotga qarab, takrorlarni tozalab, tartibni oldindan belgilab, mashqni nusxada bajarsangiz, ishga tushirish paytida ajablanish kam boʻladi. Oʻzingizdan soʻrang: qaysi nazorat raqami nolga teng boʻlmaguncha ishga tushirmaysiz?
Asosiy atamalar
- Koʻchirish
- Maʼlumotni eski tizimdan yangisiga oʻtkazish. Bu nusxa olish emas: yozuvlar tozalanadi, moslashtiriladi va tekshiriladi.
- ETL
- Maʼlumotni olish, oʻzgartirish va yuklash jarayoni. Koʻchirishda ham xuddi shu uch qadam bajariladi.
- Maʼlumotni koʻrib chiqish
- Yuklashdan oldin manbada nima borligini oʻrganish: yozuvlar soni, boʻsh joylar, takrorlar.
- Takror yozuv
- Bir xil mijoz yoki mahsulotning ikki marta yozilgani. Koʻchirishdan oldin birlashtirilishi kerak.
- Maydonlar xaritasi
- Eski jadvaldagi har bir maydon yangi tizimda qayerga tushishini koʻrsatuvchi jadval.
- Tashqi identifikator
- Yozuvga berilgan yagona belgi. Fayl qayta yuklanganda tizim yozuvni yangilaydi, takror yaratmaydi.
- Oraliq hisob
- Ikki karra hisobga olishning oldini oluvchi vaqtinchalik hisob. Koʻchirish oxirida nolga tenglashishi kerak.
- Sinov balansi
- Barcha hisoblar qoldiqlari roʻyxati. Yigʻindi debet va kredit tomonida teng boʻlishi shart.
- Qayta yuklash
- Bir xil faylni ikkinchi marta yuklash. Tashqi identifikator boʻlsa, u yozuvlarni yangilaydi.
- Mashq koʻchirish
- Haqiqiy koʻchirishdan oldin nusxada oʻtkaziladigan sinov. Unda xatolar va vaqt oldindan aniqlanadi.
Manbalar
Maqola quyidagi manbalarga tayanadi:
- Kimball Group. ETL Architecture: The 34 Subsystems of ETL (Kimball Techniques). Sahifa guruhlar boʻyicha 3 + 5 + 13 + 13 tizimni sanaydi. https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/etl-architecture-34-subsystems/ (koʻrilgan: 20-oktabr, 2026)
- Bob Becker. Subsystems of ETL Revisited. Kimball Group, 2007-yil 21-oktyabr. Tizimlar: maʼlumotni koʻrib chiqish, tozalash, xatolarni qayd etish, takrorlarni olib tashlash, moslashtirish. https://www.kimballgroup.com/2007/10/subsystems-of-etl-revisited/ (koʻrilgan: 20-oktabr, 2026)
- R. Kimball, M. Ross. The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd ed., John Wiley & Sons, 2013, ISBN 978-1-118-53080-1. Boblar: 19 «ETL Subsystems and Techniques», 20 «ETL System Design and Development Process and Tasks». https://www.wiley-vch.de/en/areas-interest/computing-computer-sciences/the-data-warehouse-toolkit-978-1-118-53080-1 (koʻrilgan: 20-oktabr, 2026)
- I. P. Fellegi, A. B. Sunter. A Theory for Record Linkage. Journal of the American Statistical Association, 1969, 64(328), 1183–1210. DOI 10.1080/01621459.1969.10501049. https://doi.org/10.1080/01621459.1969.10501049 (koʻrilgan: 20-oktabr, 2026)
- Odoo S.A. Export and import data, boʻlim «Import data». Odoo 19.0 documentation. https://www.odoo.com/documentation/19.0/applications/essentials/export_import_data.html (koʻrilgan: 20-oktabr, 2026)
- Odoo S.A. Accounting, Get started, boʻlimlar «When to transition», «Open invoices and bills», «Opening inventory», «Opening trial balance», «Final validation». Odoo 20.0 documentation. https://www.odoo.com/documentation/20.0/applications/finance/accounting/get_started.html (koʻrilgan: 20-oktabr, 2026)
- Microsoft Learn. Use the go-live checklist to make sure your solution is ready, boʻlim «Data migration readiness and validation». Dynamics 365 Implementation Guide (ms.date 2024-01-30). Sotuvchining oʻz mahsuloti uchun qoʻllanmasi. https://learn.microsoft.com/en-us/dynamics365/guidance/implementation-guide/prepare-go-live-checklist (koʻrilgan: 20-oktabr, 2026)
- Odoo S.A. Upgrade, boʻlim «Upgrading the production database». Odoo 20.0 documentation. https://www.odoo.com/documentation/20.0/administration/upgrade.html (koʻrilgan: 20-oktabr, 2026)