Analitik platformalarda past kodni qo'llash

Hurmatli o'quvchilar, xayrli kun!

Ertami-kechmi ma'lumotlarni to'plash va tahlil qilish uchun IT platformalarini yaratish vazifasi intellektual yuklangan xizmat ko'rsatish modeliga yoki texnik jihatdan murakkab mahsulotlarni yaratishga asoslangan har qanday kompaniya uchun paydo bo'ladi. Analitik platformalarni qurish murakkab va ko'p mehnat talab qiladigan ishdir. Biroq, har qanday vazifani soddalashtirish mumkin. Ushbu maqolada men analitik echimlarni yaratishda yordam berish uchun past kodli vositalardan foydalanish bo'yicha tajribam bilan o'rtoqlashmoqchiman. Ushbu tajriba Neoflex kompaniyasining Big Data Solutions yo'nalishida bir qator loyihalarni amalga oshirish jarayonida orttirilgan. 2005 yildan beri Neoflex kompaniyasining Big Data Solutions yo'nalishi ma'lumotlar omborlari va ko'llarni qurish, axborotni qayta ishlash tezligini optimallashtirish muammolarini hal qilish va ma'lumotlar sifatini boshqarish metodologiyasi ustida ishlash masalalari bilan shug'ullanadi.

Analitik platformalarda past kodni qo'llash

Hech kim zaif va/yoki kuchli tuzilgan ma'lumotlarning ongli ravishda to'planishidan qochib qutula olmaydi. Ehtimol, agar biz kichik biznes haqida gapiradigan bo'lsak ham. Oxir oqibat, biznesni kengaytirishda istiqbolli tadbirkor sodiqlik dasturini ishlab chiqish masalalariga duch keladi, savdo nuqtalarining samaradorligini tahlil qilishni xohlaydi, maqsadli reklama haqida o'ylaydi va unga qo'shiladigan mahsulotlarga bo'lgan talabdan hayratda qoladi. . Birinchi taxminga ko'ra, muammoni "tizzada" hal qilish mumkin. Ammo biznes o'sishi bilan analitik platformaga kelish hali ham muqarrar.

Biroq, qanday holatda ma'lumotlar tahlili vazifalari "Rocket Science" sinf muammolariga aylanishi mumkin? Ehtimol, biz haqiqatan ham katta ma'lumotlar haqida gapirayotganimizda.
Rocket Science muammosini osonlashtirish uchun siz filni parcha-parcha yeyishingiz mumkin.

Analitik platformalarda past kodni qo'llash

Ilovalaringiz/xizmatlaringiz/mikroservislaringiz qanchalik diskret va avtonom bo'lsa, siz, hamkasblaringiz va butun biznes uchun filni hazm qilish shunchalik oson bo'ladi.

Deyarli barcha mijozlarimiz DevOps jamoalarining muhandislik amaliyotlari asosida landshaftni qayta qurib, ushbu postulatga kelishdi.

Ammo "alohida, fil" dietasi bilan ham, bizda IT landshaftining "haddan tashqari to'yinganligi" uchun yaxshi imkoniyat bor. Ayni paytda to'xtash, nafas olish va yon tomonga qarash kerak past kodli muhandislik platformasi.

Ko'pgina ishlab chiquvchilar kodni to'g'ridan-to'g'ri yozishdan past kodli tizimlarning UI interfeyslarida o'qlarni "surash" tomon o'tishda o'zlarining kareralarida boshi berk ko'chaga tushib qolish ehtimolidan qo'rqishadi. Ammo dastgohlarning paydo bo'lishi muhandislarning yo'q bo'lib ketishiga olib kelmadi, balki ularning ishini yangi bosqichga olib chiqdi!

Keling, nima uchun ekanligini aniqlaylik.

Logistika, telekommunikatsiya sanoati, media tadqiqotlari, moliya sektoridagi ma'lumotlarni tahlil qilish har doim quyidagi savollar bilan bog'liq:

  • Avtomatlashtirilgan tahlil tezligi;
  • Asosiy ma'lumotlarni ishlab chiqarish oqimiga ta'sir qilmasdan tajriba o'tkazish qobiliyati;
  • Tayyorlangan ma'lumotlarning ishonchliligi;
  • Kuzatuv va versiyani o'zgartirish;
  • Ma'lumotlarning isboti, Ma'lumotlarning nasl-nasabi, CDC;
  • Yangi xususiyatlarni ishlab chiqarish muhitiga tezkor yetkazib berish;
  • Va mashhur: ishlab chiqish va qo'llab-quvvatlash xarajatlari.

Ya'ni, muhandislar juda ko'p yuqori darajadagi vazifalarga ega bo'lib, ularni faqat past darajadagi rivojlanish vazifalaridan ongini tozalash orqali etarli samaradorlik bilan bajarish mumkin.

Ishlab chiquvchilarning yangi bosqichga o'tishlari uchun zaruriy shartlar biznesning evolyutsiyasi va raqamlanishi edi. Ishlab chiquvchining qiymati ham o'zgarib bormoqda: avtomatlashtirilgan biznes tushunchalariga singib keta oladigan ishlab chiquvchilarning sezilarli darajada etishmasligi mavjud.

Keling, past va yuqori darajali dasturlash tillari bilan o'xshashlik keltiramiz. Past darajadagi tillardan yuqori darajali tillarga o'tish - bu "apparat tilida to'g'ridan-to'g'ri ko'rsatmalar" yozishdan "odamlar tilida direktivalar" ga o'tishdir. Ya'ni, mavhumlikning bir qismini qo'shish. Bunday holda, yuqori darajadagi dasturlash tillaridan past kodli platformalarga o'tish "odamlar tilidagi direktivalar" dan "biznes tilidagi direktivalar" ga o'tishdir. Agar bu haqiqatdan xafa bo'lgan ishlab chiquvchilar bo'lsa, ular massivlarni saralash funksiyalaridan foydalanadigan Java Script yaratilgan paytdan beri xafa bo'lgandir. Va bu funktsiyalar, shubhasiz, xuddi shu yuqori darajadagi dasturlashning boshqa vositalari bilan qalpoq ostida dasturiy ta'minotni amalga oshirishga ega.

Shuning uchun, past kod - bu boshqa darajadagi abstraktsiyaning ko'rinishi.

Past kod yordamida amaliy tajriba

Past-kod mavzusi juda keng, ammo hozir men loyihalarimizdan biri misolida "past kodli tushunchalar" ning amaliy qo'llanilishi haqida gapirmoqchiman.

Neoflex kompaniyasining Big Data Solutions bo'limi ko'proq biznesning moliyaviy sektoriga ixtisoslashgan, ma'lumotlar omborlari va ko'llar qurish va turli hisobotlarni avtomatlashtirish. Ushbu joyda past koddan foydalanish uzoq vaqtdan beri standartga aylandi. Boshqa past kodli vositalar qatorida biz ETL jarayonlarini tashkil qilish vositalarini qayd etishimiz mumkin: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Yoki Oracle Apex, ma'lumotlarga kirish va tahrirlash uchun interfeyslarni jadal rivojlantirish uchun muhit bo'lib xizmat qiladi. Biroq, past kodli ishlab chiqish vositalaridan foydalanish har doim ham sotuvchiga aniq bog'liq bo'lgan tijorat texnologiya stekida yuqori maqsadli dasturlarni yaratishni o'z ichiga olmaydi.

Past kodli platformalardan foydalanib, siz shuningdek, ma'lumotlar oqimlarining orkestratsiyasini tashkil qilishingiz, ma'lumotlar fanlari platformalarini yaratishingiz yoki, masalan, ma'lumotlar sifatini tekshirish uchun modullarni yaratishingiz mumkin.

Kam kodli ishlab chiqish vositalaridan foydalanish tajribasining amaliy misollaridan biri bu Neoflex va Rossiya media tadqiqot bozorining etakchilaridan biri Mediascope o'rtasidagi hamkorlikdir. Ushbu kompaniyaning biznes maqsadlaridan biri reklama beruvchilar, Internet platformalari, telekanallar, radiostansiyalar, reklama agentliklari va brendlar reklamani sotib olish to'g'risida qaror qabul qiladigan va marketing kommunikatsiyalarini rejalashtiradigan ma'lumotlarni ishlab chiqarishdir.

Analitik platformalarda past kodni qo'llash

Media tadqiqotlari biznesning texnologik jihatdan yuklangan sohasidir. Video ketma-ketligini tan olish, ko'rishni tahlil qiluvchi qurilmalardan ma'lumotlarni yig'ish, veb-resurslardagi faollikni o'lchash - bularning barchasi kompaniyada katta IT xodimlari va analitik echimlarni yaratishda katta tajribaga ega ekanligini anglatadi. Ammo ma'lumotlar miqdori, manbalarining soni va xilma-xilligining eksponensial o'sishi IT ma'lumotlar sanoatini doimiy ravishda rivojlanishga majbur qiladi. Allaqachon ishlayotgan Mediascope tahliliy platformasini kengaytirishning eng oddiy yechimi IT xodimlarini ko'paytirish bo'lishi mumkin. Lekin ancha samarali yechim rivojlanish jarayonini tezlashtirishdir. Ushbu yo'nalishdagi qadamlardan biri past kodli platformalardan foydalanish bo'lishi mumkin.

Loyiha boshlangan paytda kompaniya allaqachon ishlab turgan mahsulot yechimiga ega edi. Biroq, MSSQL-da yechimni amalga oshirish, ishlab chiqishning maqbul narxini saqlab qolgan holda, funksionallikni kengaytirish bo'yicha kutilgan natijalarni to'liq qondira olmadi.

Bizning oldimizda turgan vazifa haqiqatan ham shuhratparast edi - Neoflex va Mediascope boshlanish sanasining birinchi choragida MVP chiqarilishi sharti bilan bir yildan kamroq vaqt ichida sanoat yechimini yaratishi kerak edi.

Hadoop texnologiya stegi past kodli hisoblashga asoslangan yangi ma'lumotlar platformasini qurish uchun asos sifatida tanlangan. HDFS parket fayllari yordamida ma'lumotlarni saqlash uchun standart bo'ldi. Platformada joylashgan ma'lumotlarga kirish uchun Hive-dan foydalanilgan, unda barcha mavjud do'konlar tashqi jadvallar shaklida taqdim etilgan. Ma'lumotlarni saqlashga yuklash Kafka va Apache NiFi yordamida amalga oshirildi.

Ushbu kontseptsiyadagi Lowe-kod vositasi analitik platformani yaratishda eng ko'p mehnat talab qiladigan vazifa - ma'lumotlarni hisoblash vazifasini optimallashtirish uchun ishlatilgan.

Analitik platformalarda past kodni qo'llash

Ma'lumotlarni xaritalashning asosiy mexanizmi sifatida past kodli Datagram vositasi tanlangan. Neoflex Datagram transformatsiyalar va ma'lumotlar oqimini ishlab chiqish uchun vositadir.
Ushbu vositadan foydalanib, siz Scala kodini qo'lda yozmasdan qilishingiz mumkin. Scala kodi Modelga asoslangan arxitektura yondashuvi yordamida avtomatik ravishda yaratiladi.

Ushbu yondashuvning aniq afzalligi rivojlanish jarayonini tezlashtirishdir. Biroq, tezlikdan tashqari, quyidagi afzalliklar ham mavjud:

  • Manbalar/qabul qiluvchilarning mazmuni va tuzilishini ko'rish;
  • Ma'lumotlar oqimi ob'ektlarining kelib chiqishini alohida maydonlar (nasab)gacha kuzatish;
  • Oraliq natijalarni ko'rish bilan o'zgartirishlarni qisman bajarish;
  • Manba kodini ko'rib chiqish va uni bajarishdan oldin sozlash;
  • O'zgarishlarni avtomatik tekshirish;
  • Avtomatik ma'lumotlarni yuklab olish 1da 1.

Transformatsiyalarni yaratish uchun past kodli echimlarga kirish uchun to'siq juda past: ishlab chiquvchi SQLni bilishi va ETL vositalari bilan ishlash tajribasiga ega bo'lishi kerak. Shuni ta'kidlash kerakki, kodga asoslangan transformatsiya generatorlari so'zning keng ma'nosida ETL vositalari emas. Past kodli vositalar o'zlarining kodlarni bajarish muhitiga ega bo'lmasligi mumkin. Ya'ni, yaratilgan kod past kodli yechimni o'rnatishdan oldin ham klasterda mavjud bo'lgan muhitda bajariladi. Va bu, ehtimol, past kodli karma uchun yana bir ortiqcha. Chunki past kodli jamoa bilan parallel ravishda, masalan, sof Scala kodida funksionallikni amalga oshiradigan "klassik" jamoa ishlashi mumkin. Ikkala jamoaning ishlab chiqarishga yaxshilanishlarini olib kelish oddiy va muammosiz bo'ladi.

Shuni ta'kidlash kerakki, past kodli echimlardan tashqari, kodsiz echimlar ham mavjud. Va ularning mohiyatiga ko'ra, bu turli xil narsalar. Past-kod ishlab chiquvchiga yaratilgan kodga ko'proq aralashish imkonini beradi. Datagram holatida yaratilgan Scala kodini ko'rish va tahrirlash mumkin; no-code bunday imkoniyatni bermasligi mumkin. Bu farq nafaqat yechimning moslashuvchanligi nuqtai nazaridan, balki ma'lumotlar muhandislari ishida qulaylik va motivatsiya nuqtai nazaridan ham juda muhimdir.

Yechim arxitekturasi

Keling, past kodli vosita ma'lumotlarni hisoblash funksiyasini ishlab chiqish tezligini optimallashtirish muammosini hal qilishga qanday yordam berishini aniqlashga harakat qilaylik. Birinchidan, tizimning funktsional arxitekturasini ko'rib chiqaylik. Bu holatda ommaviy axborot vositalari tadqiqoti uchun ma'lumotlarni ishlab chiqarish modeli misol bo'ladi.

Analitik platformalarda past kodni qo'llash

Bizning holatimizda ma'lumotlar manbalari juda xilma-xil va xilma-xildir:

  • Odamlar hisoblagichlari (televidenie hisoblagichlari) - bu tadqiqotda ishtirok etayotgan uy xo'jaligida kim, qachon va qaysi telekanal tomosha qilinganligi - televidenie panelidagi respondentlarning foydalanuvchi xatti-harakatlarini o'qiydigan dasturiy va apparat qurilmalari. Taqdim etilgan ma'lumotlar media to'plami va media mahsulotiga bog'langan translyatsiyani ko'rish intervallari oqimidir. Ma'lumotlar ko'liga yuklash bosqichidagi ma'lumotlar demografik atributlar, geostratifikatsiya, vaqt mintaqasi va ma'lum bir media-mahsulotni televizor ko'rishni tahlil qilish uchun zarur bo'lgan boshqa ma'lumotlar bilan boyitilgan bo'lishi mumkin. Qabul qilingan o'lchovlar reklama kampaniyalarini tahlil qilish yoki rejalashtirish, auditoriyaning faolligi va afzalliklarini baholash va translyatsiya tarmog'ini tuzish uchun ishlatilishi mumkin;
  • Ma'lumotlar televizion ko'rsatuvlarni translyatsiya qilish va Internetda video resurs kontentini ko'rishni o'lchash uchun monitoring tizimlaridan olinishi mumkin;
  • Veb-muhitdagi o'lchash vositalari, shu jumladan saytga va foydalanuvchiga yo'naltirilgan hisoblagichlar. Ma'lumotlar ko'li uchun ma'lumot provayderi tadqiqot paneli brauzer plaginlari va o'rnatilgan VPNga ega mobil ilova bo'lishi mumkin.
  • Ma'lumotlar, shuningdek, onlayn anketalarni to'ldirish natijalarini va kompaniya so'rovlarida telefon orqali suhbatlar natijalarini birlashtiruvchi saytlardan olinishi mumkin;
  • Ma'lumotlar ko'lini qo'shimcha boyitish hamkor kompaniyalar jurnallaridan ma'lumotlarni yuklab olish orqali amalga oshirilishi mumkin.

Manba tizimlaridan xom ma'lumotlarning birlamchi bosqichlariga yuklashni amalga oshirish turli usullar bilan tashkil etilishi mumkin. Agar ushbu maqsadlar uchun past kod ishlatilsa, metama'lumotlarga asoslangan yuklash skriptlarini avtomatik ravishda yaratish mumkin. Bunday holda, maqsadli xaritalash uchun manbani ishlab chiqish darajasiga tushishning hojati yo'q. Avtomatik yuklashni amalga oshirish uchun biz manbaga ulanishni o'rnatishimiz kerak, so'ngra yuklash interfeysida yuklanadigan ob'ektlar ro'yxatini aniqlashimiz kerak. HDFS-dagi katalog tuzilmasi avtomatik ravishda yaratiladi va manba tizimidagi ma'lumotlarni saqlash tuzilishiga mos keladi.

Biroq, ushbu loyiha doirasida biz Mediascope kompaniyasi Nifi + Kafka kombinatsiyasidan foydalangan holda shunga o'xshash xizmatni ishlab chiqarish bo'yicha mustaqil ravishda ish boshlaganligi sababli past kodli platformaning ushbu xususiyatidan foydalanmaslikka qaror qildik.

Darhol shuni ta'kidlash kerakki, bu vositalar bir-birini almashtirib bo'lmaydi, balki bir-birini to'ldiradi. Nifi va Kafka to'g'ridan-to'g'ri (Nifi -> Kafka) va teskari (Kafka -> Nifi) aloqada ishlashga qodir. Media tadqiqot platformasi uchun to'plamning birinchi versiyasi ishlatilgan.

Analitik platformalarda past kodni qo'llash

Bizning holatda, NayFi manba tizimlaridan har xil turdagi ma'lumotlarni qayta ishlash va ularni Kafka brokeriga yuborishi kerak edi. Bunday holda, xabarlar PublishKafka Nifi protsessorlari yordamida ma'lum bir Kafka mavzusiga yuborilgan. Ushbu quvurlarni tartibga solish va texnik xizmat ko'rsatish vizual interfeysda amalga oshiriladi. Nifi vositasi va Nifi + Kafka kombinatsiyasidan foydalanishni, shuningdek, Big Data texnologiyalariga kirish uchun past to'siqga ega va ilovalarni ishlab chiqish jarayonini tezlashtiradigan rivojlanishga past kodli yondashuv deb atash mumkin.

Loyihani amalga oshirishning keyingi bosqichi batafsil ma'lumotlarni yagona semantik qatlam formatiga keltirish edi. Agar ob'ekt tarixiy atributlarga ega bo'lsa, hisoblash ko'rib chiqilayotgan bo'lim kontekstida amalga oshiriladi. Agar ob'ekt tarixiy bo'lmasa, ixtiyoriy ravishda ob'ektning butun tarkibini qayta hisoblash yoki ushbu ob'ektni qayta hisoblashni butunlay rad etish mumkin (o'zgarishlar yo'qligi sababli). Ushbu bosqichda barcha ob'ektlar uchun kalitlar yaratiladi. Kalitlar asosiy ob'ektlarga mos keladigan Hbase kataloglarida saqlanadi, ularda analitik platformadagi kalitlar va manba tizimlarining kalitlari o'rtasidagi yozishmalar mavjud. Atom ob'ektlarini birlashtirish analitik ma'lumotlarni dastlabki hisoblash natijalari bilan boyitish bilan birga keladi. Ma'lumotlarni hisoblash uchun asos Spark edi. Ma'lumotlarni bitta semantikaga olib kelish uchun tavsiflangan funksionallik, shuningdek, past kodli Datagram vositasidan xaritalashlar asosida amalga oshirildi.

Maqsadli arxitektura biznes foydalanuvchilari uchun ma'lumotlarga SQL kirishini talab qildi. Ushbu parametr uchun Hive ishlatilgan. Past kodli vositada "Uyani jadvalini ro'yxatdan o'tkazish" opsiyasini yoqsangiz, ob'ektlar Hive-da avtomatik ravishda ro'yxatga olinadi.

Analitik platformalarda past kodni qo'llash

Hisoblash oqimini boshqarish

Datagram-da ish oqimi dizaynini yaratish uchun interfeys mavjud. Xaritalarni Oozie rejalashtiruvchisi yordamida ishga tushirish mumkin. Oqim ishlab chiquvchi interfeysida parallel, ketma-ket yoki bajarilishiga bog'liq bo'lgan ma'lumotlarni o'zgartirish sxemalarini yaratish mumkin. Shell skriptlari va java dasturlarini qo'llab-quvvatlash mavjud. Apache Livy serveridan foydalanish ham mumkin. Apache Livy dasturlarni to'g'ridan-to'g'ri ishlab chiqish muhitidan ishga tushirish uchun ishlatiladi.

Agar kompaniya allaqachon o'z jarayon orkestriga ega bo'lsa, mavjud oqimga xaritalarni kiritish uchun REST API dan foydalanish mumkin. Misol uchun, biz Scala-da PLSQL va Kotlin-da yozilgan orkestrlarga xaritalashlarni kiritish bo'yicha juda muvaffaqiyatli tajribaga ega bo'ldik. Past kodli vositaning REST API-si xaritalash dizayni asosida bajariladigan yilni yaratish, xaritalashni chaqirish, xaritalashlar ketma-ketligini chaqirish va, albatta, xaritalarni ishga tushirish uchun parametrlarni URL manziliga o'tkazish kabi operatsiyalarni o'z ichiga oladi.

Oozie bilan bir qatorda Airflow yordamida hisoblash oqimini tashkil qilish mumkin. Ehtimol, men Oozie va Airflow o'rtasidagi taqqoslash haqida uzoq vaqt to'xtalmayman, lekin shunchaki aytamanki, media tadqiqot loyihasi ustida ish olib borilganda, tanlov Airflow foydasiga bo'lgan. Bu safargi asosiy argumentlar mahsulotni ishlab chiqayotgan faolroq hamjamiyat va yanada rivojlangan interfeys + API edi.

Havo oqimi ham yaxshi, chunki u hisoblash jarayonlarini tasvirlash uchun sevimli Python-dan foydalanadi. Va umuman olganda, ochiq manbali ish oqimini boshqarish platformalari unchalik ko'p emas. Jarayonlarning bajarilishini boshlash va monitoring qilish (shu jumladan Gantt diagrammasi) faqat Airflow karmasiga ball qo'shadi.

Past kodli yechim xaritalarini ishga tushirish uchun konfiguratsiya fayl formati spark-submitga aylandi. Bu ikki sababga ko'ra sodir bo'ldi. Birinchidan, spark-submit to'g'ridan-to'g'ri konsoldan jar faylini ishga tushirishga imkon beradi. Ikkinchidan, u ish jarayonini sozlash uchun barcha kerakli ma'lumotlarni o'z ichiga olishi mumkin (bu Dag ni yaratadigan skriptlarni yozishni osonlashtiradi).
Bizning holatlarimizda Airflow ish oqimining eng keng tarqalgan elementi SparkSubmitOperator edi.

SparkSubmitOperator sizga bankalarni - ular uchun oldindan yaratilgan kiritish parametrlari bilan paketlangan Datagram xaritalarini ishga tushirish imkonini beradi.

Shuni ta'kidlash kerakki, har bir Airflow vazifasi alohida mavzuda ishlaydi va boshqa vazifalar haqida hech narsa bilmaydi. Shuning uchun vazifalar orasidagi o'zaro aloqa DummyOperator yoki BranchPythonOperator kabi boshqaruv operatorlari yordamida amalga oshiriladi.

Birgalikda, Datagram past kodli yechimidan konfiguratsiya fayllarini universallashtirish (Dagni shakllantirish) bilan birgalikda foydalanish ma'lumotlarni yuklash oqimlarini ishlab chiqish jarayonini sezilarli darajada tezlashtirish va soddalashtirishga olib keldi.

Hisob-kitoblarni ko'rsatish

Ehtimol, analitik ma'lumotlarni ishlab chiqarishning eng intellektual yuklangan bosqichi vitrinalar qurish bosqichidir. Tadqiqot kompaniyasining ma'lumotlarini hisoblash oqimlaridan biri kontekstida, bu bosqichda ma'lumotlar vaqt zonalari uchun tuzatishlarni hisobga olgan holda ma'lumotnoma translyatsiyasiga qisqartiriladi va translyatsiya tarmog'iga ulanadi. Mahalliy eshittirish tarmog'iga (mahalliy yangiliklar va reklama) moslash ham mumkin. Boshqa narsalar qatorida, ushbu qadam ko'rish intervallarini tahlil qilish asosida media mahsulotlarini uzluksiz ko'rish intervallarini buzadi. Darhol, ko'rish qiymatlari ularning ahamiyati to'g'risidagi ma'lumotlarga (tuzatish koeffitsientini hisoblash) asoslangan holda "vaznlanadi".

Analitik platformalarda past kodni qo'llash

Vitrinalarni tayyorlashning alohida bosqichi ma'lumotlarni tekshirishdir. Tasdiqlash algoritmi bir qator matematik fan modellaridan foydalanishni o'z ichiga oladi. Biroq, past kodli platformadan foydalanish murakkab algoritmni bir nechta alohida vizual o'qiladigan xaritalarga ajratish imkonini beradi. Xaritalarning har biri tor vazifani bajaradi. Natijada, oraliq disk raskadrovka, jurnalga yozish va ma'lumotlarni tayyorlash bosqichlarini vizuallashtirish mumkin.

Validatsiya algoritmini quyidagi kichik bosqichlarga ajratishga qaror qilindi:

  • 60 kun davomida mintaqadagi barcha tarmoqlarni ko'rish bilan mintaqada televidenie tarmog'ini ko'rishga bog'liqlik regressiyalarini yaratish.
  • Barcha regressiya nuqtalari va hisoblangan kun uchun talaba qoldiqlarini hisoblash (haqiqiy qiymatlarning regressiya modeli tomonidan bashorat qilinganidan og'ishi).
  • Hisob-kitob kunidagi talaba balansi normadan oshib ketadigan anomal mintaqa-tarmoq juftliklari tanlovi (operatsiya sozlamalarida ko'rsatilgan).
  • Mintaqadagi tarmoqni tomosha qilgan har bir respondent uchun anomal mintaqa-TV tarmog'i juftligi uchun tuzatilgan o'quvchi qoldig'ini qayta hisoblash, ushbu respondentning ko'rishni tanlamadan chiqarib tashlashda ushbu respondentning hissasini aniqlash (talaba qoldig'idagi o'zgarish miqdori). .
  • Chetlatish ish haqining talabalar balansini normal holatga keltiradigan nomzodlarni qidiring.

Yuqoridagi misol, ma'lumotlar muhandisi allaqachon aqlida juda ko'p narsa bor degan gipotezani tasdiqlaydi ... Va agar bu haqiqatan ham "koder" emas, balki "muhandis" bo'lsa, u holda past kodli vositalardan foydalanganda professional tanazzuldan qo'rqish nihoyat chekinishi kerak.

Past kod yana nima qila oladi?

Scala-da kodni qo'lda yozishni talab qilmasdan ma'lumotlarni paketli va oqimli qayta ishlash uchun past kodli vositani qo'llash doirasi shu bilan tugamaydi.

Datalake-ni ishlab chiqishda past koddan foydalanish allaqachon biz uchun standartga aylangan. Hadoop stekiga asoslangan echimlar RDBMS asosidagi klassik DWHlarning rivojlanish yo'lidan boradi, deb aytishimiz mumkin. Hadoop stekidagi past kodli vositalar ma'lumotlarni qayta ishlash vazifalarini ham, yakuniy BI interfeyslarini yaratish vazifasini ham hal qilishi mumkin. Bundan tashqari, shuni ta'kidlash kerakki, BI nafaqat ma'lumotlarni taqdim etishni, balki ularni biznes foydalanuvchilari tomonidan tahrirlashni ham anglatishi mumkin. Moliyaviy sektor uchun tahliliy platformalarni yaratishda biz ko'pincha ushbu funksiyadan foydalanamiz.

Analitik platformalarda past kodni qo'llash

Boshqa narsalar qatorida, past kodli va, xususan, Datagram-dan foydalanib, alohida maydonlar (nasab)gacha atomiklik bilan ma'lumotlar oqimi ob'ektlarining kelib chiqishini kuzatish muammosini hal qilish mumkin. Buning uchun past kodli vosita Apache Atlas va Cloudera Navigator bilan interfeysni amalga oshiradi. Asosan, ishlab chiquvchi Atlas lug'atlarida ob'ektlar to'plamini ro'yxatdan o'tkazishi va xaritalarni yaratishda ro'yxatdan o'tgan ob'ektlarga havola qilishi kerak. Ma'lumotlarning kelib chiqishini kuzatish yoki ob'ektga bog'liqlikni tahlil qilish mexanizmi hisoblash algoritmlarini takomillashtirish zarur bo'lganda ko'p vaqtni tejaydi. Masalan, moliyaviy hisobotlarni tayyorlashda ushbu xususiyat qonunchilikdagi o'zgarishlar davridan qulayroq omon qolish imkonini beradi. Axir, biz batafsil qatlam ob'ektlari kontekstida shakllararo bog'liqlikni qanchalik yaxshi tushunsak, biz "to'satdan" nuqsonlarga kamroq duch kelamiz va qayta ishlash sonini kamaytiramiz.

Analitik platformalarda past kodni qo'llash

Ma'lumotlar sifati va past kod

Mediascope loyihasida past kodli vosita tomonidan amalga oshirilgan yana bir vazifa Ma'lumotlar sifati sinf vazifasi edi. Tadqiqot kompaniyasi loyihasi uchun ma'lumotlarni tekshirish quvurini amalga oshirishning o'ziga xos xususiyati asosiy ma'lumotlarni hisoblash oqimining ishlashi va tezligiga ta'sir qilmasligi edi. Mustaqil ma'lumotlarni tekshirish oqimlarini tartibga solish uchun allaqachon tanish bo'lgan Apache Airflow ishlatildi. Ma'lumotlar ishlab chiqarishning har bir bosqichi tayyor bo'lgach, parallel ravishda DQ quvurining alohida qismi ishga tushirildi.

Analitik platformada ma'lumotlar paydo bo'lgan paytdan boshlab sifatini kuzatish yaxshi amaliyot hisoblanadi. Metadata haqida ma'lumotga ega bo'lgan holda, biz ma'lumot asosiy qatlamga kirgan paytdan boshlab asosiy shartlarga muvofiqligini tekshirishimiz mumkin - null emas, cheklovlar, xorijiy kalitlar. Ushbu funktsiya Datagram-da ma'lumotlar sifati oilasining avtomatik ravishda yaratilgan xaritalashlari asosida amalga oshiriladi. Bu holda kod yaratish ham model metama'lumotlariga asoslanadi. Mediascope loyihasida interfeys Enterprise Architect mahsulotining metama'lumotlari bilan amalga oshirildi.

Past kodli vositani Enterprise Architect bilan bog'lash orqali quyidagi tekshiruvlar avtomatik ravishda yaratildi:

  • "null emas" modifikatorli maydonlarda "null" qiymatlar mavjudligini tekshirish;
  • Birlamchi kalitning dublikatlari mavjudligini tekshirish;
  • Tashkilotning tashqi kalitini tekshirish;
  • Maydonlar to'plamiga asoslangan satrning o'ziga xosligini tekshirish.

Ma'lumotlarning mavjudligi va ishonchliligini yanada murakkab tekshirish uchun Scala Expression yordamida xaritalash yaratildi, u Zeppelin tahlilchilari tomonidan tayyorlangan tashqi Spark SQL tekshirish kodini kiritadi.

Analitik platformalarda past kodni qo'llash

Albatta, cheklarni avtomatik yaratishga bosqichma-bosqich erishish kerak. Ta'riflangan loyiha doirasida undan oldin quyidagi bosqichlar bajarildi:

  • Zeppelin noutbuklarida amalga oshirilgan DQ;
  • Xaritaga o'rnatilgan DQ;
  • Alohida ob'ekt uchun butun cheklar to'plamini o'z ichiga olgan alohida massiv xaritalar ko'rinishidagi DQ;
  • Metadata va biznes tekshiruvlari haqidagi ma'lumotlarni kirish sifatida qabul qiluvchi universal parametrlangan DQ xaritalari.

Ehtimol, parametrlashtirilgan tekshirish xizmatini yaratishning asosiy afzalligi ishlab chiqarish muhitiga funksionallikni etkazib berish vaqtini qisqartirishdir. Yangi sifat tekshiruvlari ishlab chiqish va sinov muhitlari orqali bilvosita kodni etkazib berishning klassik namunasini chetlab o'tishi mumkin:

  • Model EAda o'zgartirilganda barcha metama'lumotlar tekshiruvlari avtomatik ravishda yaratiladi;
  • Ma'lumotlar mavjudligini tekshirish (vaqtning bir nuqtasida har qanday ma'lumotlar mavjudligini aniqlash) ob'ektlar kontekstida keyingi ma'lumotlarning paydo bo'lishining kutilgan vaqtini saqlaydigan katalog asosida yaratilishi mumkin;
  • Biznes ma'lumotlarini tekshirish tekshiruvlari Zeppelin noutbuklarida tahlilchilar tomonidan yaratiladi. U yerdan ular to'g'ridan-to'g'ri ishlab chiqarish muhitida DQ modulini sozlash jadvallariga yuboriladi.

Skriptlarni ishlab chiqarishga to'g'ridan-to'g'ri jo'natish xavfi yo'q. Sintaksis xatosi bo'lsa ham, bizni tahdid qiladigan maksimal narsa bitta tekshiruvni bajarmaslikdir, chunki ma'lumotlarni hisoblash oqimi va sifatni tekshirishni ishga tushirish oqimi bir-biridan ajratilgan.

Aslini olganda, DQ xizmati ishlab chiqarish muhitida doimiy ravishda ishlaydi va keyingi ma'lumotlar paydo bo'lishi bilanoq o'z ishini boshlashga tayyor.

Xulosa o'rniga

Past kodni ishlatishning afzalligi aniq. Ishlab chiquvchilar dasturni noldan ishlab chiqishlari shart emas. Qo'shimcha vazifalardan ozod bo'lgan dasturchi esa tezroq natijalar beradi. Tezlik, o'z navbatida, optimallashtirish muammolarini hal qilish uchun qo'shimcha vaqtni bo'shatadi. Shuning uchun, bu holda, siz yaxshiroq va tezroq yechimga ishonishingiz mumkin.

Albatta, past kod - bu panatseya emas va sehr o'z-o'zidan sodir bo'lmaydi:

  • Past kodli sanoat "kuchliroq bo'lish" bosqichidan o'tmoqda va hali yagona sanoat standartlari mavjud emas;
  • Ko'pgina past kodli echimlar bepul emas va ularni sotib olish ongli qadam bo'lishi kerak, bu ulardan foydalanishning moliyaviy afzalliklariga to'liq ishonch bilan amalga oshirilishi kerak;
  • Ko'pgina past kodli echimlar GIT/SVN bilan har doim ham yaxshi ishlamaydi. Yoki yaratilgan kod yashirin bo'lsa, ulardan foydalanish noqulay;
  • Arxitekturani kengaytirishda past kodli yechimni takomillashtirish zarur bo'lishi mumkin - bu o'z navbatida past kodli yechim yetkazib beruvchiga "birikish va qaramlik" ta'sirini keltirib chiqaradi.
  • Etarli darajadagi xavfsizlikni ta'minlash mumkin, ammo bu juda ko'p mehnat talab qiladi va past kodli tizim dvigatellarida amalga oshirish qiyin. Past kodli platformalar nafaqat ulardan foydalanishdan foyda izlash printsipi asosida tanlanishi kerak. Tanlashda kirishni boshqarish va identifikatsiya ma'lumotlarini tashkilotning butun IT landshafti darajasiga ko'tarish/ko'tarish funksiyalarining mavjudligi haqida savollar berishga arziydi.

Analitik platformalarda past kodni qo'llash

Biroq, tanlangan tizimning barcha kamchiliklari sizga ma'lum bo'lsa va undan foydalanishning afzalliklari, shunga qaramay, ustun ko'pchilik bo'lsa, qo'rqmasdan kichik kodga o'ting. Bundan tashqari, unga o'tish muqarrar - har qanday evolyutsiya muqarrar bo'lgani kabi.

Agar past kodli platformadagi bitta ishlab chiquvchi o'z ishini past kodsiz ikkita dasturchiga qaraganda tezroq bajarsa, bu kompaniyaga har tomonlama boshlanish imkonini beradi. Past kodli echimlarga kirish chegarasi "an'anaviy" texnologiyalarga qaraganda pastroq va bu kadrlar etishmasligi masalasiga ijobiy ta'sir ko'rsatadi. Past kodli vositalardan foydalanganda, funktsional guruhlar o'rtasidagi o'zaro ta'sirni tezlashtirish va ma'lumotlar fanini tadqiq qilishning tanlangan yo'lining to'g'riligi haqida tezroq qaror qabul qilish mumkin. Past darajadagi platformalar tashkilotning raqamli o'zgarishiga olib kelishi mumkin, chunki ishlab chiqarilgan echimlar texnik bo'lmagan mutaxassislar (ayniqsa biznes foydalanuvchilari) tomonidan tushunilishi mumkin.

Agar sizda qat'iy muddatlar, yuklangan biznes mantig'i, texnologik tajriba etishmasligi va bozorga chiqish vaqtingizni tezlashtirishingiz kerak bo'lsa, unda past kod sizning ehtiyojlaringizni qondirishning bir usuli hisoblanadi.

An'anaviy ishlab chiqish vositalarining ahamiyatini inkor etib bo'lmaydi, lekin ko'p hollarda past kodli echimlardan foydalanish hal qilinayotgan vazifalar samaradorligini oshirishning eng yaxshi usuli hisoblanadi.

Manba: www.habr.com

a Izoh qo'shish