Аналитикалық платформаларда төмен кодты қолдану

Құрметті оқырмандар, қайырлы күн!

Деректерді жинау және талдау үшін АТ платформаларын құру міндеті бизнесі зияткерлік жүктелген қызмет көрсету үлгісіне немесе техникалық күрделі өнімдерді жасауға негізделген кез келген компания үшін ерте ме, кеш пе туындайды. Аналитикалық платформаларды құру күрделі және көп уақытты қажет ететін жұмыс. Дегенмен, кез келген тапсырманы жеңілдетуге болады. Бұл мақалада мен аналитикалық шешімдерді жасауға көмектесетін төмен кодты құралдарды пайдалану тәжірибеммен бөліскім келеді. Бұл тәжірибе Neoflex компаниясының Big Data Solutions бағытында бірқатар жобаларды жүзеге асыру барысында алынды. 2005 жылдан бастап Neoflex Big Data Solutions бағыты деректер қоймалары мен көлдер салу, ақпаратты өңдеу жылдамдығын оңтайландыру мәселелерін шешу және деректер сапасын басқару әдістемесі бойынша жұмыс жасау мәселелерімен айналысады.

Аналитикалық платформаларда төмен кодты қолдану

Әлсіз және/немесе күшті құрылымды деректердің саналы түрде жиналуынан ешкім де аулақ бола алмайды. Мүмкін, егер біз шағын бизнес туралы айтатын болсақ. Өйткені, бизнесті кеңейту кезінде болашағы зор кәсіпкер адалдық бағдарламасын әзірлеу мәселелеріне тап болады, сауда нүктелерінің тиімділігін талдағысы келеді, мақсатты жарнама туралы ойлайды және ілеспе өнімдерге деген сұранысқа таң қалады. . Бірінші жуықтау үшін мәселені «тізеде» шешуге болады. Бірақ бизнес өскен сайын аналитикалық платформаға келу әлі де сөзсіз.

Дегенмен, қандай жағдайда деректерді талдау тапсырмалары «Зымыран ғылымы» сыныбының мәселелеріне айналуы мүмкін? Мүмкін, біз шынымен үлкен деректер туралы айтатын кезде.
Рокет ғылымын жеңілдету үшін пілді бөлшектеп жеуге болады.

Аналитикалық платформаларда төмен кодты қолдану

Қолданбаларыңыз/қызметтеріңіз/микросервистеріңіз неғұрлым дискретті және автономды болса, сізге, әріптестеріңізге және бүкіл бизнеске пілді қорыту оңайырақ болады.

Біздің клиенттеріміздің барлығы дерлік DevOps командаларының инженерлік тәжірибелеріне негізделген ландшафтты қалпына келтіре отырып, осы постулатқа келді.

Бірақ тіпті «бөлек, піл» диетасы бар болса да, бізде IT ландшафтының «қанықтыруына» жақсы мүмкіндік бар. Осы сәтте тоқтап, дем шығару және жағына қарау керек төмен кодты инженерлік платформа.

Көптеген әзірлеушілер кодты тікелей жазудан төмен кодты жүйелердің UI интерфейстеріндегі көрсеткілерді «сүйреп апаруға» ауысқанда, мансаптағы тұйыққа тірелу мүмкіндігінен қорқады. Бірақ станоктардың пайда болуы инженерлердің жоғалуына әкелмеді, бірақ олардың жұмысын жаңа деңгейге көтерді!

Неліктен екенін анықтайық.

Логистика, телекоммуникация индустриясы, медиа-зерттеу, қаржы секторы саласындағы деректерді талдау әрқашан келесі сұрақтармен байланысты:

  • Автоматтандырылған талдау жылдамдығы;
  • Негізгі мәліметтерді өндіру ағынына әсер етпей эксперименттер жүргізу мүмкіндігі;
  • Дайындалған мәліметтердің сенімділігі;
  • Бақылау мен нұсқаны өзгерту;
  • Деректер дәлелі, Деректер линиясы, CDC;
  • Өндірістік ортаға жаңа мүмкіндіктерді жылдам жеткізу;
  • Ал атышулы: әзірлеу және қолдау құны.

Яғни, инженерлердің сана-сезімін төмен деңгейлі даму тапсырмаларынан тазарту арқылы ғана жеткілікті тиімділікпен орындауға болатын жоғары деңгейлі тапсырмалардың үлкен саны бар.

Әзірлеушілердің жаңа деңгейге өтуінің алғы шарттары бизнестің эволюциясы мен цифрлануы болды. Әзірлеушінің құндылығы да өзгеруде: автоматтандырылған бизнес тұжырымдамаларына бойлай алатын әзірлеушілердің айтарлықтай жетіспеушілігі бар.

Төмен деңгейлі және жоғары деңгейлі бағдарламалау тілдеріне аналогия салайық. Төмен деңгейлі тілдерден жоғары деңгейлі тілдерге көшу – «аппараттық құрал тілінде директиваларды» жазудан «адамдар тіліндегі директиваларға» көшу. Яғни абстракцияның кейбір қабатын қосу. Бұл жағдайда жоғары деңгейлі бағдарламалау тілдерінен төмен кодты платформаларға көшу «адамдар тіліндегі директивалардан» «бизнес тіліндегі директиваларға» көшу болып табылады. Егер осы фактіге қайғырған әзірлеушілер болса, онда олар массивтерді сұрыптау функцияларын пайдаланатын Java Script дүниеге келген сәттен бастап қайғырған шығар. Және бұл функциялар, әрине, жоғары деңгейлі бағдарламалаудың басқа құралдарымен капюшонның астында бағдарламалық жасақтаманы іске асыруға ие.

Сондықтан төмен код - бұл абстракцияның басқа деңгейінің пайда болуы.

Төмен кодты пайдалану тәжірибесі

Төмен код тақырыбы өте кең, бірақ қазір мен біздің жобаларымыздың бірінің мысалын қолдана отырып, «төмен кодты тұжырымдамаларды» практикалық қолдану туралы айтқым келеді.

Neoflex компаниясының Big Data Solutions бөлімі бизнестің қаржы секторында көбірек маманданған, деректер қоймалары мен көлдер салу және әртүрлі есептерді автоматтандыру. Бұл тауашада төмен кодты пайдалану бұрыннан стандартқа айналды. Басқа төмен кодты құралдардың арасында ETL процестерін ұйымдастыруға арналған құралдарды атап өтуге болады: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Немесе Oracle Apex, ол деректерге қол жеткізу және өңдеу үшін интерфейстерді жылдам дамытуға арналған орта ретінде әрекет етеді. Дегенмен, төмен кодты әзірлеу құралдарын пайдалану әрқашан сатушыға нақты тәуелділікпен коммерциялық технология стекінде жоғары мақсатты қолданбаларды құруды қамтымайды.

Төмен кодты платформаларды пайдалана отырып, сіз сондай-ақ деректер ағындарын ұйымдастыруды ұйымдастыра аласыз, деректер ғылымы платформаларын немесе, мысалы, деректер сапасын тексеруге арналған модульдерді жасай аласыз.

Төмен кодты әзірлеу құралдарын пайдалану тәжірибесінің қолданбалы мысалдарының бірі Neoflex және ресейлік медиа зерттеу нарығындағы көшбасшылардың бірі Mediascope арасындағы ынтымақтастық болып табылады. Бұл компанияның іскерлік мақсаттарының бірі мәліметтерді өндіру болып табылады, оның негізінде жарнама берушілер, интернет платформалар, телеарналар, радиостанциялар, жарнама агенттіктері мен брендтер жарнаманы сатып алу туралы шешім қабылдайды және маркетингтік коммуникацияларды жоспарлайды.

Аналитикалық платформаларда төмен кодты қолдану

Медиа-зерттеу - бизнестің технологиялық жүктелген саласы. Бейне тізбегін тану, қарауды талдайтын құрылғылардан деректерді жинау, веб-ресурстардағы белсенділікті өлшеу - мұның бәрі компанияда үлкен IT персоналының және аналитикалық шешімдерді құруда үлкен тәжірибесі бар екенін білдіреді. Бірақ ақпарат көлемінің экспоненциалды өсуі, оның көздерінің саны мен әртүрлілігі IT деректер индустриясын үнемі алға жылжуға мәжбүр етеді. Қазірдің өзінде жұмыс істеп тұрған Mediascope аналитикалық платформасын масштабтаудың ең қарапайым шешімі АТ қызметкерлерін көбейту болуы мүмкін. Бірақ әлдеқайда тиімді шешім - даму процесін жылдамдату. Бұл бағыттағы қадамдардың бірі төмен кодты платформаларды пайдалану болуы мүмкін.

Жоба басталған кезде компанияның жұмыс істейтін өнім шешімі болды. Дегенмен, MSSQL-де шешімді енгізу, әзірлеудің қолайлы құнын сақтай отырып, масштабтау функционалдығы бойынша күтулерді толығымен қанағаттандыра алмады.

Біздің алдымызда тұрған міндет шынымен өршіл болды - Neoflex және Mediascope іске қосу күнінің бірінші тоқсанында MVP шығарылған жағдайда бір жылдан аз уақыт ішінде өнеркәсіптік шешім жасауы керек еді.

Hadoop технологиялық стегі төмен кодты есептеулерге негізделген жаңа деректер платформасын құру үшін негіз ретінде таңдалды. HDFS паркет файлдары арқылы деректерді сақтаудың стандарты болды. Платформада орналасқан деректерге қол жеткізу үшін Hive пайдаланылды, онда барлық қолжетімді дүкендер сыртқы кестелер түрінде ұсынылған. Деректерді қоймаға жүктеу Kafka және Apache NiFi көмегімен жүзеге асырылды.

Бұл тұжырымдамадағы Lowe-код құралы аналитикалық платформаны құрудағы ең көп еңбекті қажет ететін тапсырма – деректерді есептеу тапсырмасын оңтайландыру үшін пайдаланылды.

Аналитикалық платформаларда төмен кодты қолдану

Деректерді салыстырудың негізгі механизмі ретінде төмен кодты Datagram құралы таңдалды. Neoflex Datagram түрлендірулер мен деректер ағындарын әзірлеу құралы болып табылады.
Бұл құралды пайдалана отырып, сіз Scala кодын қолмен жазбай жасай аласыз. Scala коды Модельге негізделген архитектура тәсілі арқылы автоматты түрде жасалады.

Бұл тәсілдің айқын артықшылығы - даму процесін жылдамдату. Дегенмен, жылдамдықтан басқа, келесі артықшылықтар да бар:

  • Дереккөздердің/қабылдаушылардың мазмұны мен құрылымын қарау;
  • Деректер ағынының объектілерінің жеке өрістерге (тектілік) шығуын қадағалау;
  • Аралық нәтижелерді көру арқылы түрлендірулерді ішінара орындау;
  • Бастапқы кодты қарап шығу және оны орындау алдында реттеу;
  • Трансформацияларды автоматты түрде тексеру;
  • Деректерді автоматты түрде жүктеп алу 1-де.

Трансформацияларды генерациялау үшін төмен кодты шешімдерге кіруге кедергі өте төмен: әзірлеуші ​​SQL тілін білуі және ETL құралдарымен жұмыс істеу тәжірибесі болуы керек. Айта кету керек, кодпен басқарылатын түрлендіру генераторлары сөздің кең мағынасында ETL құралдары емес. Төмен кодты құралдардың кодты орындау ортасы болмауы мүмкін. Яғни, жасалған код тіпті төмен кодты шешімді орнатқанға дейін кластерде бар ортада орындалады. Бұл төмен кодты карма үшін тағы бір плюс болуы мүмкін. Төмен кодты командамен қатар, функционалдылықты жүзеге асыратын «классикалық» команда жұмыс істей алады, мысалы, таза Scala кодында. Екі командадан да жақсартуларды өндіріске енгізу қарапайым және үздіксіз болады.

Төмен кодтан басқа, кодсыз шешімдер де бар екенін атап өткен жөн. Және олардың негізінде бұл әртүрлі нәрселер. Төмен код әзірлеушіге жасалған кодқа көбірек араласуға мүмкіндік береді. Datagram жағдайында жасалған Scala кодын қарауға және өңдеуге болады; no-code мұндай мүмкіндікті қамтамасыз етпеуі мүмкін. Бұл айырмашылық шешімнің икемділігі тұрғысынан ғана емес, сонымен қатар деректер инженерлерінің жұмысындағы жайлылық пен мотивация тұрғысынан да өте маңызды.

Шешім архитектурасы

Төмен кодты құрал деректерді есептеу функционалдығын әзірлеу жылдамдығын оңтайландыру мәселесін шешуге қалай көмектесетінін анықтауға тырысайық. Алдымен жүйенің функционалды архитектурасын қарастырайық. Бұл жағдайда мысал медианы зерттеуге арналған деректерді өндіру үлгісі болып табылады.

Аналитикалық платформаларда төмен кодты қолдану

Біздің жағдайда деректер көздері өте гетерогенді және әртүрлі:

  • Адамдарды есептегіштер (теледидар өлшегіштері) – зерттеуге қатысқан үй шаруашылығында кім, қашан және қандай телеарна қаралғанын – теледидар панеліндегі респонденттерден пайдаланушы әрекетін оқитын бағдарламалық және аппараттық құралдар. Берілген ақпарат медиа бумасына және медиа өніміне байланысты таратылатын көру аралықтарының ағыны болып табылады. Деректер көліне жүктеу кезеңіндегі деректер белгілі бір медиа өнімін теледидардан қарауды талдау үшін қажетті демографиялық атрибуттармен, геостратификациямен, уақыт белдеуімен және басқа ақпаратпен байытылуы мүмкін. Қабылданған өлшемдер жарнамалық науқандарды талдау немесе жоспарлау, аудиторияның белсенділігі мен қалауын бағалау және хабар тарату желісін құрастыру үшін пайдаланылуы мүмкін;
  • Деректер ағынды телехабарлар мен интернетте бейне ресурс мазмұнын қарауды өлшеуге арналған мониторинг жүйелерінен алынуы мүмкін;
  • Веб ортадағы өлшеу құралдары, соның ішінде сайтқа бағытталған және пайдаланушыға бағытталған есептегіштер. Деректер көлінің деректер провайдері зерттеу жолағы шолғышының қосымшасы және кірістірілген VPN бар мобильді қосымша болуы мүмкін.
  • Деректер сонымен қатар онлайн сауалнаманы толтыру нәтижелерін және компания сауалнамаларында телефон арқылы сұхбат нәтижелерін біріктіретін сайттардан алынуы мүмкін;
  • Деректер көлін қосымша байыту серіктес компаниялардың журналдарынан ақпаратты жүктеу арқылы жүзеге асырылуы мүмкін.

Бастапқы жүйелерден бастапқы деректердің бастапқы сатысына жүктеуді іске асыру әртүрлі жолдармен ұйымдастырылуы мүмкін. Егер осы мақсаттар үшін төмен код пайдаланылса, метадеректерге негізделген жүктеу сценарийлерін автоматты түрде құруға болады. Бұл жағдайда мақсатты салыстыруларға дейін әзірлеуші ​​көз деңгейіне түсудің қажеті жоқ. Автоматты жүктеуді жүзеге асыру үшін көзге қосылым орнату керек, содан кейін жүктеу интерфейсінде жүктелетін нысандар тізімін анықтау керек. HDFS ішіндегі каталог құрылымы автоматты түрде жасалады және бастапқы жүйедегі деректерді сақтау құрылымына сәйкес келеді.

Дегенмен, осы жобаның контекстінде Mediascope компаниясы Nifi + Kafka комбинациясын қолдана отырып, ұқсас сервисті шығару бойынша жұмысты өз бетінше бастағанына байланысты төмен кодты платформаның бұл мүмкіндігін пайдаланбауды шештік.

Бұл құралдардың бір-бірін алмастырмайтынын, керісінше толықтыратын екенін бірден атап өткен жөн. Nifi және Kafka тікелей (Nifi -> Kafka) және кері (Кафка -> Nifi) байланыста жұмыс істей алады. Медиа зерттеу платформасы үшін топтаманың бірінші нұсқасы пайдаланылды.

Аналитикалық платформаларда төмен кодты қолдану

Біздің жағдайда, NayFi бастапқы жүйелерден деректердің әртүрлі түрлерін өңдеп, оларды Кафка брокеріне жіберуі керек болды. Бұл жағдайда хабарлар PublishKafka Nifi процессорлары арқылы белгілі бір Кафка тақырыбына жіберілді. Бұл құбырларды ұйымдастыру және техникалық қызмет көрсету визуалды интерфейсте жүзеге асырылады. Nifi құралын және Nifi + Kafka комбинациясын пайдалануды әзірлеуге төмен кодты тәсіл деп те атауға болады, ол Big Data технологияларына енуде төмен кедергіге ие және қолданбаларды әзірлеу процесін жылдамдатады.

Жобаны жүзеге асырудың келесі кезеңі егжей-тегжейлі деректерді бір семантикалық деңгей пішіміне келтіру болды. Егер нысанның тарихи атрибуттары болса, есептеу қарастырылып отырған бөлімнің контекстінде орындалады. Егер нысан тарихи болмаса, онда объектінің барлық мазмұнын қайта есептеуге немесе осы нысанды қайта есептеуден толық бас тартуға (өзгерістердің болмауына байланысты) ерікті түрде мүмкін болады. Бұл кезеңде барлық нысандар үшін кілттер жасалады. Кілттер негізгі нысандарға сәйкес келетін Hbase каталогтарында сақталады, оларда аналитикалық платформадағы кілттер мен бастапқы жүйелердің кілттері арасындағы сәйкестік бар. Атомдық объектілерді біріктіру аналитикалық мәліметтерді алдын ала есептеу нәтижелерімен байытумен қатар жүреді. Деректерді есептеу үшін негіз Spark болды. Деректерді бір семантикаға жеткізуге арналған сипатталған функционалдылық сонымен қатар төмен кодты Datagram құралының салыстырулары негізінде жүзеге асырылды.

Мақсатты архитектура бизнес пайдаланушылары үшін деректерге SQL қатынасын қажет етеді. Бұл опция үшін Hive пайдаланылды. Төмен кодты құралда «Ұя кестесін тіркеу» опциясын қосқанда нысандар ұяшықта автоматты түрде тіркеледі.

Аналитикалық платформаларда төмен кодты қолдану

Есептеу ағынын басқару

Datagram жұмыс ағынының дизайнын жасауға арналған интерфейске ие. Салыстыруларды Oozie жоспарлаушы арқылы іске қосуға болады. Ағынды әзірлеуші ​​интерфейсінде параллельді, дәйекті немесе орындауға тәуелді деректерді түрлендіруге арналған схемаларды жасауға болады. Қабық сценарийлері мен java бағдарламаларына қолдау көрсетіледі. Сондай-ақ Apache Livy серверін пайдалануға болады. Apache Livy қолданбаларды әзірлеу ортасынан тікелей іске қосу үшін пайдаланылады.

Егер компанияда әлдеқашан өзінің процесс оркестрі болса, бар ағынға салыстыруларды ендіру үшін REST API пайдалануға болады. Мысалы, бізде Scala-да PLSQL және Kotlin-де жазылған оркестрлерге салыстыруларды енгізудің сәтті тәжірибесі болды. Төмен кодты құралдың REST API интерфейсі салыстыру дизайны негізінде орындалатын жылды жасау, салыстыруды шақыру, салыстырулар тізбегін шақыру және, әрине, салыстыруды іске қосу үшін параметрлерді URL мекенжайына жіберу сияқты операцияларды қамтиды.

Oozie-мен бірге Airflow көмегімен есептеу ағынын ұйымдастыруға болады. Мүмкін мен Oozie мен Airflow арасындағы салыстыруға көп тоқталмаймын, бірақ жай ғана айта кетейін, медиа-зерттеу жобасы бойынша жұмыс контекстінде таңдау Airflow пайдасына түсті. Бұл жолы негізгі дәлелдер өнімді дамытатын белсенді қауымдастық және дамыған интерфейс + API болды.

Ауа ағыны да жақсы, өйткені ол есептеу процестерін сипаттау үшін сүйікті Python-ды пайдаланады. Жалпы алғанда, ашық бастапқы жұмыс процесін басқару платформалары соншалықты көп емес. Процестердің орындалуын іске қосу және бақылау (Гант диаграммасын қоса) тек Airflow кармасына ұпай қосады.

Төмен кодты шешім салыстыруларын іске қосу үшін конфигурация файлының пішімі spark-submit болды. Бұл екі себепке байланысты болды. Біріншіден, spark-submit jar файлын консольден тікелей іске қосуға мүмкіндік береді. Екіншіден, ол жұмыс процесін конфигурациялау үшін барлық қажетті ақпаратты қамтуы мүмкін (бұл Dag жасайтын сценарийлерді жазуды жеңілдетеді).
Біздің жағдайда Airflow жұмыс процесінің ең көп таралған элементі SparkSubmitOperator болды.

SparkSubmitOperator банкаларды іске қосуға мүмкіндік береді - олар үшін алдын ала жасалған кіріс параметрлері бар бумаланған Datagram салыстырулары.

Әрбір Airflow тапсырмасы жеке ағында жұмыс істейтінін және басқа тапсырмалар туралы ештеңе білмейтінін атап өткен жөн. Сондықтан тапсырмалар арасындағы өзара әрекеттесу DummyOperator немесе BranchPythonOperator сияқты басқару операторларының көмегімен жүзеге асырылады.

Бірге алғанда, Datagram төмен кодты шешімін конфигурация файлдарын әмбебаптандырумен (Dag қалыптастыру) бірге пайдалану деректерді жүктеу ағындарын әзірлеу процесін айтарлықтай жеделдетуге және жеңілдетуге әкелді.

Есептерді көрсету

Мүмкін, аналитикалық деректерді өндірудегі ең интеллектуалды жүктелген кезең витриналарды құру қадамы болып табылады. Зерттеу компаниясының деректерді есептеу ағындарының бірінің контекстінде, бұл кезеңде деректер уақыт белдеулері үшін түзетулерді ескере отырып және хабар тарату торына байланыстырылған анықтамалық таратылымға дейін азаяды. Сондай-ақ жергілікті хабар тарату желісіне (жергілікті жаңалықтар мен жарнама) реттеуге болады. Басқа нәрселермен қатар, бұл қадам көру аралықтарын талдау негізінде медиа өнімдерін үздіксіз қарау аралықтарын бұзады. Бірден қарау мәндері олардың маңыздылығы туралы ақпаратқа негізделген (түзету коэффициентін есептеу) «өлшенеді».

Аналитикалық платформаларда төмен кодты қолдану

Көрмелерді дайындаудың жеке қадамы деректерді тексеру болып табылады. Валидация алгоритмі бірқатар математикалық ғылым үлгілерін пайдалануды қамтиды. Дегенмен, төмен кодты платформаны пайдалану күрделі алгоритмді бірнеше бөлек көрнекі түрде оқылатын салыстыруларға бөлуге мүмкіндік береді. Салыстырулардың әрқайсысы тар тапсырманы орындайды. Нәтижесінде деректерді дайындау кезеңдерін аралық жөндеу, тіркеу және визуализациялау мүмкін болады.

Валидация алгоритмін келесі қосалқы кезеңдерге бөлу туралы шешім қабылданды:

  • Аймақтағы барлық желілерді 60 күн бойы қарау арқылы аймақтағы теледидарлық желіні қарау тәуелділіктерінің регрессиясын құру.
  • Барлық регрессия нүктелері және есептелген күн үшін студенттік қалдықтарды есептеу (регрессия моделімен болжанған мәндерден нақты мәндердің ауытқуы).
  • Есеп айырысу күнінің студенттік балансы нормадан асатын аномальды аймақ-желі жұптарының таңдауы (операция параметрлерінде көрсетілген).
  • Аймақтағы желіні көрген әрбір респондент үшін аномальды аймақ-теледидар желісі жұптары үшін түзетілген студенттік қалдықты қайта есептеу, осы респонденттің қарауын іріктемеден алып тастаған кезде осы респонденттің үлесін (оқушылардың қалдық өзгерісінің мөлшері) анықтау. .
  • Шығарылуы жалақы күнінің студенттік балансын қалыпты жағдайға қайтаратын үміткерлерді іздеңіз.

Жоғарыда келтірілген мысал деректер инженерінің ойында тым көп нәрсе бар деген гипотезаны растайды... Ал егер бұл шынымен де «кодер» емес, «инженер» болса, онда ол төмен кодты құралдарды пайдалану кезінде кәсіби деградациядан қорқу. ақыры шегінуге тура келеді.

Төмен код тағы не істей алады?

Scala-да кодты қолмен жазуды қажет етпей, деректерді пакеттік және ағындық өңдеуге арналған төмен кодты құралды қолдану аясы мұнымен бітпейді.

Datalake әзірлеуде төмен кодты пайдалану біз үшін стандартқа айналды. Hadoop стекіне негізделген шешімдер RDBMS негізіндегі классикалық DWHs даму жолымен жүреді деп айта аламыз. Hadoop стекіндегі төмен кодты құралдар деректерді өңдеу тапсырмаларын да, соңғы BI интерфейстерін құру тапсырмасын да шеше алады. Сонымен қатар, BI деректерді ұсынуды ғана емес, сонымен қатар оларды бизнес пайдаланушылардың өңдеуін де білдіруі мүмкін екенін атап өткен жөн. Қаржы секторы үшін аналитикалық платформаларды құру кезінде біз бұл функцияны жиі қолданамыз.

Аналитикалық платформаларда төмен кодты қолдану

Басқа нәрселермен қатар, төмен кодты және, атап айтқанда, Datagram-ды пайдалана отырып, атомдылығы бар деректер ағыны объектілерінің жеке өрістерге (тектік) дейін шығуын қадағалау мәселесін шешуге болады. Ол үшін төмен кодты құрал Apache Atlas және Cloudera Navigator интерфейсін жүзеге асырады. Негізінде әзірлеушіге Atlas сөздіктеріндегі нысандар жинағын тіркеу және салыстыруларды құру кезінде тіркелген нысандарға сілтеме жасау қажет. Мәліметтердің шығу тегін қадағалау немесе объектінің тәуелділігін талдау механизмі есептеу алгоритмдерін жақсарту қажет болғанда көп уақытты үнемдейді. Мысалы, қаржылық есептілікті дайындау кезінде бұл мүмкіндік заңнамалық өзгерістер кезеңінен ыңғайлырақ өтуге мүмкіндік береді. Өйткені, біз егжей-тегжейлі қабаттың объектілері контекстіндегі формааралық тәуелділікті неғұрлым жақсы түсінсек, соғұрлым біз «кенеттен» ақауларға тап боламыз және қайта өңдеулер санын азайтамыз.

Аналитикалық платформаларда төмен кодты қолдану

Деректер сапасы және төмен код

Mediascope жобасында төмен кодты құрал жүзеге асырған тағы бір тапсырма Деректер сапасы сыныбының тапсырмасы болды. Зерттеу компаниясының жобасы үшін деректерді тексеру құбырын жүзеге асырудың ерекшелігі негізгі деректерді есептеу ағынының өнімділігі мен жылдамдығына әсер етпеуі болды. Деректерді тексерудің тәуелсіз ағындарын ұйымдастыру үшін бұрыннан таныс Apache Airflow пайдаланылды. Деректерді өндірудің әрбір қадамы дайын болғандықтан, DQ құбырының бөлек бөлігі қатар іске қосылды.

Деректердің сапасын талдау платформасында пайда болған сәттен бастап бақылау жақсы тәжірибе болып саналады. Метадеректер туралы ақпаратқа ие бола отырып, біз ақпарат бастапқы деңгейге енген сәттен бастап негізгі шарттарға сәйкестігін тексере аламыз - null емес, шектеулер, сыртқы кілттер. Бұл функция Datagram ішіндегі деректер сапасы тобының автоматты түрде жасалған салыстыруларына негізделген. Бұл жағдайда кодты жасау үлгі метадеректеріне де негізделген. Mediascope жобасында интерфейс Enterprise Architect өнімінің метадеректерімен жүзеге асырылды.

Төмен кодты құралды Enterprise Architect бағдарламасымен жұптау арқылы келесі тексерулер автоматты түрде жасалды:

  • «Нөл емес» модификаторы бар өрістерде «нөлдік» мәндердің болуын тексеру;
  • Бастапқы кілттің телнұсқаларының болуын тексеру;
  • Субъектінің сыртқы кілтін тексеру;
  • Өрістер жиыны негізінде жолдың бірегейлігін тексеру.

Деректер қолжетімділігі мен сенімділігін неғұрлым күрделі тексеру үшін Zeppelin сарапшылары дайындаған сыртқы Spark SQL тексеру кодын кіріс ретінде қабылдайтын Scala Expression көмегімен салыстыру жасалды.

Аналитикалық платформаларда төмен кодты қолдану

Әрине, чектердің автоматты генерациясына біртіндеп қол жеткізу керек. Сипатталған жоба аясында бұған дейін келесі қадамдар жасалды:

  • Zeppelin жазу кітапшаларында енгізілген DQ;
  • DQ картаға енгізілген;
  • Жеке субъектіге арналған тексерулердің тұтас жиынтығын қамтитын бөлек массивтік салыстырулар түріндегі DQ;
  • Кіріс ретінде метадеректер мен бизнесті тексерулер туралы ақпаратты қабылдайтын әмбебап параметрленген DQ салыстырулары.

Параметрленген тексеру қызметін құрудың басты артықшылығы өндіріс ортасына функционалдылықты жеткізуге кететін уақыттың қысқаруы болуы мүмкін. Жаңа сапа тексерулері әзірлеу және тестілеу орталары арқылы жанама түрде кодты жеткізудің классикалық үлгісін айналып өтуі мүмкін:

  • Барлық метадеректерді тексеру модель EA-да өзгертілгенде автоматты түрде жасалады;
  • Деректердің қолжетімділігін тексеру (кез келген деректердің белгілі бір уақытта болуын анықтау) объектілер контекстінде келесі деректер бөлігінің пайда болуының күтілетін уақытын сақтайтын каталог негізінде құрылуы мүмкін;
  • Іскерлік деректерді тексеруді Zeppelin жазу кітапшаларында талдаушылар жасайды. Сол жерден олар тікелей өндіріс ортасында DQ модулін орнату кестелеріне жіберіледі.

Сценарийлерді өндіріске тікелей жіберу қаупі жоқ. Синтаксистік қате болса да, бізге қауіп төндіретін максимум бір тексеруді орындамау болып табылады, өйткені деректерді есептеу ағыны мен сапаны тексеруді іске қосу ағыны бір-бірінен бөлінген.

Негізінде, DQ қызметі өндірістік ортада тұрақты жұмыс істейді және деректердің келесі бөлігі пайда болған кезде өз жұмысын бастауға дайын.

Орнына жасасу

Төмен кодты пайдаланудың артықшылығы айқын. Әзірлеушілер қосымшаны нөлден әзірлеудің қажеті жоқ. Ал қосымша тапсырмалардан босатылған бағдарламашы нәтижені тезірек шығарады. Жылдамдық, өз кезегінде, оңтайландыру мәселелерін шешуге қосымша уақытты босатады. Сондықтан, бұл жағдайда сіз жақсырақ және жылдамырақ шешімге сене аласыз.

Әрине, төмен код - бұл панацея емес және сиқыр өздігінен болмайды:

  • Төмен кодты сала «күшейтетін» кезеңнен өтуде, біркелкі өнеркәсіптік стандарттар әлі жоқ;
  • Көптеген төмен кодты шешімдер тегін емес және оларды сатып алу саналы қадам болуы керек, бұл оларды пайдаланудың қаржылық артықшылықтарына толық сенімділікпен жасалуы керек;
  • Көптеген төмен кодты шешімдер әрқашан GIT/SVN-мен жақсы жұмыс істей бермейді. Немесе жасалған код жасырын болса, оларды пайдалану ыңғайсыз;
  • Архитектураны кеңейту кезінде төмен кодты шешімді нақтылау қажет болуы мүмкін - бұл өз кезегінде төмен кодты шешім жеткізушісіне «қосылу және тәуелділік» әсерін тудырады.
  • Қауіпсіздіктің барабар деңгейі болуы мүмкін, бірақ ол өте көп еңбекті қажет етеді және төмен кодты жүйе қозғалтқыштарында жүзеге асыру қиын. Төмен кодты платформалар тек оларды пайдаланудан пайда іздеу принципі бойынша таңдалуы керек. Таңдау кезінде қол жеткізуді басқару және сәйкестендіру деректерін ұйымның бүкіл АТ ландшафтының деңгейіне жеткізу/эскалациялау функционалдығының болуы туралы сұрақтар қойған жөн.

Аналитикалық платформаларда төмен кодты қолдану

Дегенмен, таңдалған жүйенің барлық кемшіліктері сізге белгілі болса және оны пайдаланудың артықшылықтары басым көпшілігінде болса, қорықпай шағын кодқа көшіңіз. Оның үстіне кез келген эволюция сөзсіз болатыны сияқты оған көшу де сөзсіз.

Төмен кодты платформадағы бір әзірлеуші ​​өз жұмысын төмен коды жоқ екі әзірлеушіге қарағанда тезірек орындаса, бұл компанияға барлық жағынан бастама береді. Төмен кодты шешімдерге кіру шегі «дәстүрлі» технологияларға қарағанда төмен және бұл кадрлар тапшылығы мәселесіне оң әсер етеді. Төмен кодты құралдарды пайдаланған кезде функционалдық топтар арасындағы өзара әрекеттесуді жылдамдатуға және деректер ғылымын зерттеудің таңдалған жолының дұрыстығы туралы тезірек шешім қабылдауға болады. Төмен деңгейлі платформалар ұйымның цифрлық трансформациясын басқара алады, өйткені шығарылатын шешімдерді техникалық емес мамандар (әсіресе бизнес пайдаланушылар) түсінуі мүмкін.

Егер сізде қатаң мерзімдер, жүктелген іскерлік логика, технологиялық тәжірибенің жетіспеушілігі болса және нарыққа шығу уақытын тездету қажет болса, онда төмен код сіздің қажеттіліктеріңізді қанағаттандырудың бір жолы болып табылады.

Дәстүрлі даму құралдарының маңыздылығын жоққа шығаруға болмайды, бірақ көп жағдайда төмен кодты шешімдерді пайдалану шешілетін міндеттердің тиімділігін арттырудың ең жақсы жолы болып табылады.

Ақпарат көзі: www.habr.com

пікір қалдыру