{"id":95283,"date":"2020-09-27T19:42:23","date_gmt":"2020-09-27T17:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah"},"modified":"2020-09-27T19:42:23","modified_gmt":"2020-09-27T17:42:23","slug":"primenenie-low-code-v-analiticheskih-platformah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","title":{"rendered":"Utilizarea low-code \u00een platformele analitice","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Stima\u021bi cititori, o zi bun\u0103!<\/p>\n<p>Sarcina de a construi platforme IT pentru acumularea \u0219i analiza datelor apare mai devreme sau mai t\u00e2rziu \u00een orice companie, al c\u0103rei model de afaceri se bazeaz\u0103 pe servicii cu sarcini de inteligen\u021b\u0103 sau pe crearea de produse tehnic complicate. Construirea platformelor analitice este o sarcin\u0103 complex\u0103 \u0219i consumatoare de timp. Totu\u0219i, orice sarcin\u0103 poate fi simplificat\u0103. \u00cen acest articol, vreau s\u0103 \u00eemp\u0103rt\u0103\u0219esc experien\u021ba aplic\u0103rii instrumentelor low-code, care ajut\u0103 la crearea solu\u021biilor analitice. Aceast\u0103 experien\u021b\u0103 a fost dob\u00e2ndit\u0103 \u00een cadrul implement\u0103rii unei serii de proiecte \u00een domeniul Big Data Solutions al companiei \u201eNeoflex\u201d. Domeniul Big Data Solutions al companiei \u201eNeoflex\u201d se ocup\u0103 din 2005 cu construirea de depozite \u0219i lacuri de date, rezolv\u0103 probleme de optimizare a vitezei de procesare a informa\u021biilor \u0219i lucreaz\u0103 la metodologia de gestionare a calit\u0103\u021bii datelor.<\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/ca066793a937041577085dfb813f979e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEvitarea acumul\u0103rii con\u0219tiente de date slab \u0219i\/sau foarte structurate nu va fi posibil\u0103 pentru nimeni. Probabil, chiar dac\u0103 este vorba despre o mic\u0103 afacere. C\u0103ci, \u00een timpul scal\u0103rii afacerii, antreprenorul ar putea s\u0103 se confrunte cu \u00eentreb\u0103ri privind dezvoltarea unui program de loialitate, ar dori s\u0103 efectueze o analiz\u0103 a eficien\u021bei punctelor de v\u00e2nzare, s\u0103 se g\u00e2ndeasc\u0103 la publicitate \u021bintit\u0103, s\u0103 se preocupe de cererea pentru produsele complementare. \u00cen prima instan\u021b\u0103, sarcina poate fi rezolvat\u0103 \u201epe genunchi\u201d. Dar, odat\u0103 cu cre\u0219terea afacerii, ajungerea la o platform\u0103 analitic\u0103 devine inevitabil\u0103.<\/p>\n<p>Dar \u00een ce cazuri sarcinile de analiz\u0103 a datelor pot deveni sarcini de tip \u201eRocket Science\u201d? Probabil \u00een acel moment, c\u00e2nd vorbim despre date cu adev\u0103rat mari.<br \/>\nPentru a simplifica sarcina \u201eRocket Science\u201d, po\u021bi m\u00e2nca elefantul pe buc\u0103\u021bi. <\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/f81e7704b91a5b95303e4240d6012730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCu c\u00e2t mai mare este discre\u021bia \u0219i autonomia aplica\u021biilor\/servicilor\/microserviciilor tale, cu at\u00e2t mai u\u0219or va fi pentru tine, colegii t\u0103i \u0219i \u00eentreaga afacere s\u0103 digere elefantul.<\/p>\n<p>La aceast\u0103 afirma\u021bie au ajuns aproape to\u021bi clien\u021bii no\u0219tri, remodel\u00e2nd peisajul pe baza practicilor inginerice ale echipelor DevOps.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDar chiar \u0219i cu o diet\u0103 \u201eseparat\u0103, elephantin\u0103\u201d avem \u0219anse destul de bune de \u201esupraalimentare\u201d a peisajului IT. \u00cen acest moment, merit\u0103 s\u0103 te opre\u0219ti, s\u0103 respiri ad\u00e2nc \u0219i s\u0103 te ui\u021bi spre <b>platforma de inginerie low-code<\/b>.<\/p>\n<p>Mul\u021bi dezvoltatori se tem de perspectiva de a ajunge \u00eentr-un impas \u00een carier\u0103, trec\u00e2nd de la scrierea direct\u0103 a codului la \u201etragerea\u201d elementelor \u00een interfe\u021bele UI ale sistemelor low-code. \u00cens\u0103 apari\u021bia ma\u0219inilor nu a dus la dispari\u021bia inginerilor, ci a ridicat munca lor la un nou nivel!<\/p>\n<p>Hai s\u0103 vedem de ce.<\/p>\n<p>Analiza datelor \u00een domeniul logisticii, \u00een industria telecom, \u00een cercet\u0103rile media sau \u00een sectorul financiar, este \u00eentotdeauna asociat\u0103 cu urm\u0103toarele \u00eentreb\u0103ri: <\/p>\n<ul>\n<li>Viteza de desf\u0103\u0219urare a analizei automatizate;<\/li>\n<li>Posibilitatea desf\u0103\u0219ur\u0103rii experimentelor f\u0103r\u0103 a afecta fluxul principal al produc\u021biei de date;<\/li>\n<li>Acurate\u021bea datelor preg\u0103tite;<\/li>\n<li>Monitorizarea schimb\u0103rilor \u0219i versiune;<\/li>\n<li>Provenien\u021ba datelor, linia de date, CDC;<\/li>\n<li>Rapiditatea livr\u0103rii noilor caracteristici \u00een medii de produc\u021bie;<\/li>\n<li>\u0218i cunoscutele: costul dezvolt\u0103rii \u0219i \u00eentre\u021binerii.<\/li>\n<\/ul>\n<p>\nAceasta \u00eenseamn\u0103 c\u0103 inginerii au un num\u0103r colosal de sarcini de nivel \u00eenalt, care pot fi \u00eendeplinite cu eficien\u021b\u0103 doar cur\u0103\u021b\u00e2ndu-\u0219i mintea de sarcinile de dezvoltare de nivel jos.<\/p>\n<p>Premisele trecerii dezvoltatorilor la un nou nivel au fost evolu\u021bia \u0219i digitalizarea afacerii. Valoarea dezvoltatorului se schimb\u0103 de asemenea: exist\u0103 un deficit semnificativ de dezvoltatori capabili s\u0103 capteze esen\u021ba conceptelor de afaceri automatizate.<\/p>\n<p>S\u0103 facem o analogie \u00eentre limbajele de programare de nivel inferior \u0219i cele de nivel superior. Trecerea de la limbajele de nivel inferior la cele de nivel superior este o trecere de la scrierea \u201edirective directe \u00een limbajul hardului\u201d la \u201edirective \u00een limbajul oamenilor\u201d. Adic\u0103, ad\u0103ugarea unei anumite dimensiuni de abstractizare. \u00cen acest caz, trecerea la platformele low-code din limbajele de programare de nivel superior este o trecere de la \u201edirective \u00een limbajul oamenilor\u201d la \u201edirective \u00een limbajul afacerii\u201d. Dac\u0103 se g\u0103sesc dezvoltatori c\u0103rora acest fapt le va provoca triste\u021be, atunci ei au fost, de fapt, tri\u0219ti cu mult \u00eenainte, \u00eenc\u0103 de c\u00e2nd a ap\u0103rut JavaScript, care utilizeaz\u0103 func\u021bii de sortare a array-urilor. \u0218i aceste func\u021bii au, desigur, o implementare programatic\u0103 \u00een spate, folosind acelea\u0219i instrumente de programare de nivel \u00eenalt.<\/p>\n<p><b>Prin urmare, low-code este doar apari\u021bia unui alt nivel de abstractizare. <\/b><\/p>\n<h2>Experien\u021b\u0103 aplicat\u0103 \u00een utilizarea low-code<\/h2>\n<p>\nTema low-code este destul de vast\u0103, dar acum a\u0219 dori s\u0103 discut despre aplicarea conceptelor \"low-code\" prin exemplul unuia dintre proiectele noastre.<\/p>\n<p>Departamentul Big Data Solutions al companiei \"Neoflex\" se specializeaz\u0103 \u00een mod deosebit \u00een sectorul financiar, construind depozite \u0219i lacuri de date \u0219i automatiz\u00e2nd diverse raport\u0103ri. \u00cen acest domeniu, utilizarea low-code a devenit un standard. Printre celelalte instrumente low-code se num\u0103r\u0103 solu\u021bii pentru organizarea proceselor ETL: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Sau Oracle Apex, care serve\u0219te ca mediu de dezvoltare rapid\u0103 pentru interfe\u021be de acces \u0219i editare a datelor. Totu\u0219i, utilizarea instrumentelor de dezvoltare low-code nu este \u00eentotdeauna asociat\u0103 cu crearea de aplica\u021bii specializate pe un stack tehnologic comercial cu o dependen\u021b\u0103 clar\u0103 de furnizor.<\/p>\n<p>Cu ajutorul platformelor low-code se pot organiza, de asemenea, orchestrarea fluxurilor de date, se pot crea platforme de data science sau, de exemplu, module pentru verificarea calit\u0103\u021bii datelor. <\/p>\n<p>Unul dintre exemplele aplicate de utilizare a instrumentelor de dezvoltare low-code este colaborarea dintre \"Neoflex\" \u0219i compania Mediascope, unul dintre liderii pie\u021bei de cercetare media din Rusia. Una dintre provoc\u0103rile acestei companii este generarea de date pe baza c\u0103rora advertiserii, platformele online, canalele TV, sta\u021biile de radio, agen\u021biile de publicitate \u0219i brandurile iau decizii privind achizi\u021bia de publicitate \u0219i \u00ee\u0219i planific\u0103 comunic\u0103rile de marketing. <\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/d6410c1fe93231281bdd536798fe7c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCercetarea media este un domeniu de afaceri cu un grad tehnologic ridicat. Recunoa\u0219terea imaginilor video, colectarea de date de la dispozitive care analizeaz\u0103 vizionarea, m\u0103surarea activit\u0103\u021bii pe resursele web - toate acestea necesit\u0103 o echip\u0103 IT extins\u0103 \u0219i o experien\u021b\u0103 vast\u0103 \u00een construc\u021bia solu\u021biilor analitice. Cu toate acestea, cre\u0219terea exponen\u021bial\u0103 a cantit\u0103\u021bii de informa\u021bii, a num\u0103rului \u0219i a diversit\u0103\u021bii surselor acestora oblig\u0103 industria IT a datelor s\u0103 progreseze continuu. Cea mai simpl\u0103 solu\u021bie pentru scalarea unei platforme analitice deja \u00een func\u021biune Mediascope ar fi puterea de munc\u0103 IT extins\u0103. Dar o solu\u021bie mult mai eficient\u0103 ar fi accelerarea procesului de dezvoltare. Unul dintre pa\u0219ii care conduc \u00een aceast\u0103 direc\u021bie poate fi utilizarea platformelor low-code.<\/p>\n<p>La momentul lans\u0103rii proiectului, compania avea deja o solu\u021bie de produs func\u021bional\u0103. Cu toate acestea, implementarea solu\u021biei pe MSSQL nu putea corespunde pe deplin a\u0219tept\u0103rilor privind scalabilitatea func\u021bionalit\u0103\u021bii, men\u021bin\u00e2nd \u00een acela\u0219i timp costuri acceptabile pentru modific\u0103ri.<\/p>\n<p>Sarcina cu care ne-am confruntat a fost cu adev\u0103rat ambi\u021bioas\u0103 \u2013 \u201eNeoflex\u201d \u0219i Mediascope trebuiau s\u0103 creeze o solu\u021bie industrial\u0103 \u00een mai pu\u021bin de un an, cu condi\u021bia ca MVP-ul s\u0103 fie lansat \u00een primul trimestru de la data \u00eenceperii lucr\u0103rilor.<\/p>\n<p>Ca fundament pentru construirea noii platforme de date, bazat\u0103 pe calculul low-code, s-a ales stiva de tehnologii Hadoop. Standardul de stocare a datelor a devenit HDFS, folosind fi\u0219iere de format parquet. Accesul la datele din platform\u0103 se face prin Hive, unde toate vitrinele disponibile sunt prezentate sub form\u0103 de tabele externe. \u00cenc\u0103rcarea datelor \u00een depozit a fost realizat\u0103 cu ajutorul Kafka \u0219i Apache NiFi.<\/p>\n<p>Instrumentul low-code \u00een aceast\u0103 concep\u021bie a fost aplicat pentru a optimiza cea mai laborioas\u0103 sarcin\u0103 \u00een construirea platformei analitice \u2013 sarcina de calculare a datelor.<\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/fe62234ab0ae611a0c4a536ca68af898.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMecanismul principal pentru maparea datelor a fost ales instrumentul low-code Datagram. <b>Neoflex Datagram<\/b> este un instrument pentru dezvoltarea transform\u0103rilor \u0219i fluxurilor de date. <br \/>\nFolosind acest instrument, este posibil s\u0103 ne descurc\u0103m f\u0103r\u0103 a scrie cod \u00een Scala \u201emanual\u201d. Codul Scala este generat automat folosind abordarea Model Driven Architecture.<\/p>\n<p>Un avantaj evident al acestei abord\u0103ri este accelerarea procesului de dezvoltare. Cu toate acestea, pe l\u00e2ng\u0103 vitez\u0103, exist\u0103 \u0219i alte avantaje: <\/p>\n<ul>\n<li>Vizualizarea con\u021binutului \u0219i structurii surselor\/destina\u021biilor;<\/li>\n<li>Urm\u0103rirea originii obiectelor fluxului de date p\u00e2n\u0103 la c\u00e2mpuri individuale (lineage);<\/li>\n<li>Executarea par\u021bial\u0103 a transform\u0103rilor cu vizualizarea rezultatelor intermediare;<\/li>\n<li>Vizualizarea codului surs\u0103 \u0219i corectarea acestuia \u00eenainte de execu\u021bie;<\/li>\n<li>Validarea automat\u0103 a transform\u0103rilor;<\/li>\n<li>\u00cenc\u0103rcarea automat\u0103 a datelor 1 la 1.<\/li>\n<\/ul>\n<p>\nPragul de intrare \u00een solu\u021biile low-code pentru generarea transform\u0103rilor este destul de sc\u0103zut: un dezvoltator trebuie s\u0103 cunoasc\u0103 SQL \u0219i s\u0103 aib\u0103 experien\u021b\u0103 \u00een utilizarea instrumentelor ETL. De asemenea, este important de men\u021bionat c\u0103 generatoarele de transform\u0103ri bazate pe cod nu sunt instrumente ETL \u00een \u00een\u021belesul larg al cuv\u00e2ntului. Instrumentele low-code pot s\u0103 nu aib\u0103 un mediu propriu pentru executarea codului. Cu alte cuvinte, codul generat va fi executat \u00een acel mediu care exista pe cluster \u00eenainte de instalarea solu\u021biei low-code. Acesta este, poate, \u00eenc\u0103 un plus \u00een favoarea low-code. Deoarece \u00een paralel cu echipa low-code poate func\u021biona o echip\u0103 \u201eclasic\u0103\u201d, care implementeaz\u0103 func\u021bionalitatea, de exemplu, \u00een cod Scala pur. Integrarea modific\u0103rilor realizate de ambele echipe \u00een produc\u021bie va fi simpl\u0103 \u0219i \u201ef\u0103r\u0103 cusur\u201d.<\/p>\n<p>Probabil c\u0103 merit\u0103 s\u0103 men\u021bion\u0103m \u0219i c\u0103, pe l\u00e2ng\u0103 low-code, exist\u0103 \u0219i solu\u021bii no-code. \u0218i, \u00een esen\u021b\u0103, acestea sunt lucruri diferite. Low-code permite \u00een mare m\u0103sur\u0103 dezvoltatorului s\u0103 intervin\u0103 \u00een codul generat. \u00cen cazul Datagram, este posibil s\u0103 se vizualizeze \u0219i s\u0103 se editeze codul generat Scala, \u00een timp ce no-code poate s\u0103 nu ofere aceast\u0103 posibilitate. Aceast\u0103 diferen\u021b\u0103 este destul de semnificativ\u0103 nu doar \u00een ceea ce prive\u0219te flexibilitatea solu\u021biei, ci \u0219i \u00een ceea ce prive\u0219te confortul \u0219i motiva\u021bia \u00een munca inginerilor de date. <\/p>\n<h2>Arhitectura solu\u021biei<\/h2>\n<p>\nHaide\u021bi s\u0103 \u00eencerc\u0103m s\u0103 \u00een\u021belegem cum instrumentul low-code ajut\u0103 la rezolvarea problemei optimiz\u0103rii vitezei de dezvoltare a func\u021bionalit\u0103\u021bilor de calculare a datelor. Pentru \u00eenceput, s\u0103 analiz\u0103m arhitectura func\u021bional\u0103 a sistemului. \u00cen acest caz, un exemplu este modelul de produc\u021bie a datelor pentru cercet\u0103rile media.<\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/365f1b1cf69bf2a71854eb05c5bba809.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Sursele de date \u00een cazul nostru sunt destul de variate \u0219i diverse:<\/b><\/p>\n<ul>\n<li>Peoplemeters (TV meters) are software and hardware devices that record user behavior from respondents in the television panel \u2013 who, when and which TV channel was watched in the household participating in the study. The provided information is a stream of viewing intervals linked to the media package and media product. Data at the upload stage in the Data Lake can be enriched with demographic attributes, geographic links, time zones, and other information necessary for analyzing TV viewing of a particular media product. The measurements obtained can be used for analyzing or planning advertising campaigns, assessing audience activity and preferences, and creating broadcast schedules;<\/li>\n<li>Data can come from streaming TV monitoring systems and measuring content viewership on online video resources;<\/li>\n<li>Measurement tools in the web environment, including both site-centric and user-centric counters. A browser extension research bar and a mobile application with built-in functionality may serve as data providers for the Data Lake. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/vpn\/\"   title=\"VPN\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"133\">VPN<\/a>.<\/li>\n<li>Data may also come from platforms that consolidate the results of online survey completions and the outcomes of telephone interviews in the company's survey research;<\/li>\n<li>Additional enrichment of the data lake may occur through uploading information from partner companies' logs.<\/li>\n<\/ul>\n<p>\nThe implementation of as-is loading from source systems into the initial staging of raw data can be organized in various ways. If low-code is used for these purposes, automatic generation of loading scripts based on metadata is possible. In this case, there is no need to delve into the development of source-to-target mappings. To implement automatic loading, we need to establish a connection to the source, followed by defining the list of entities to be loaded in the loading interface. The creation of directory structures in HDFS will happen automatically and will correspond to the data storage structure in the source system.<\/p>\n<p>However, in the context of this project, we decided not to utilize this low-code platform capability due to the fact that the company Mediascope has already begun working on creating a similar service using Nifi + Kafka.<\/p>\n<p>Este important s\u0103 subliniem c\u0103 aceste instrumente nu sunt interschimbabile, ci mai degrab\u0103 se completeaz\u0103 reciproc. Nifi \u0219i Kafka pot func\u021biona at\u00e2t \u00een direc\u021bia direct\u0103 (Nifi -&gt; Kafka), c\u00e2t \u0219i invers (Kafka -&gt; Nifi). Pentru platforma de cercetare media, a fost folosit\u0103 prima variant\u0103 de leg\u0103tur\u0103.<\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/8284ef5bd6d3b947998ffd42bfb66dbd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen cazul nostru, Nifi a fost necesar pentru a procesa diferite tipuri de date din sistemele surs\u0103 \u0219i a le trimite brokerului Kafka. Direc\u021bionarea mesajelor c\u0103tre un anumit topic Kafka s-a realizat prin utilizarea procesoarelor Nifi PublishKafka. Orchestrarea \u0219i \u00eentre\u021binerea acestor pipeline-uri se face \u00eentr-o interfa\u021b\u0103 vizual\u0103. Instrumentul Nifi \u0219i utilizarea combina\u021biei Nifi + Kafka pot fi, de asemenea, considerate o abordare low-code pentru dezvoltare, av\u00e2nd un prag de intrare sc\u0103zut \u00een tehnologiile Big Data \u0219i acceler\u00e2nd procesul de dezvoltare a aplica\u021biilor. <\/p>\n<p>Urm\u0103toarea etap\u0103 \u00een implementarea proiectului a fost aducerea la un format unic de strat semantic pentru date detaliate. \u00cen cazul \u00een care entitatea are atribute istorice, calculul se face \u00een contextul parti\u021biei analizate. Dac\u0103 entitatea nu este istoric\u0103, atunci op\u021bional se poate face fie recalcularea \u00eentregului con\u021binut al obiectului, fie renun\u021barea la recalcularea acestui obiect (din cauza lipsei modific\u0103rilor). \u00cen aceast\u0103 etap\u0103, genera\u021bia de chei pentru toate entit\u0103\u021bile are loc. Cheile sunt salvate \u00een dic\u021bionarele corespunz\u0103toare obiectelor-mam\u0103 din Hbase, care con\u021bin coresponden\u021ba \u00eentre cheile din platforma analitic\u0103 \u0219i cheile din sistemele surs\u0103. Consolidarea entit\u0103\u021bilor atomice este \u00eenso\u021bit\u0103 de \u00eembog\u0103\u021birea rezultatelor din calculul preliminar al datelor analitice. Framework-ul pentru calculul datelor a fost Spark. Func\u021bionalitatea descris\u0103 pentru aducerea datelor la o semantica unitar\u0103 a fost de asemenea implementat\u0103 pe baza mapping-urilor instrumentului low-code Datagram.<\/p>\n<p>\u00cen arhitectura \u021bint\u0103, a fost necesar s\u0103 se asigure acces SQL la date pentru utilizatorii de afaceri. Pentru aceast\u0103 op\u021biune, a fost folosit Hive. \u00cenregistrarea obiectelor \u00een Hive se face automat atunci c\u00e2nd op\u021biunea \"Registr Hive Table\" este activat\u0103 \u00een instrumentul low-code.<\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/a13f7260d067d3d21b7090bd8fa10aff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Gestionarea fluxului de calcul<\/h2>\n<p>\nDatagram are interfaces for designing workflow streams. Mappings can be executed using the Oozie scheduler. The developer interface for streams allows creating schemes for parallel, sequential, or condition-dependent execution of data transformations. There is support for shell scripts and Java programs. It is also possible to use <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/server\/dts-los-angeles\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3662\">server<\/a> Apache Livy. Apache Livy is used to run applications directly from the development environment. <\/p>\n<p>If the company already has its own process orchestrator, it is possible to use REST API to integrate mappings into the existing stream. For example, we had fairly successful experience in integrating Scala mappings into orchestrators written in PLSQL and Kotlin. The REST API of the low-code tool implies operations such as generating an executable year based on mapping design, invoking mappings, calling a sequence of mappings, and of course, passing parameters in the URL to run mappings.<\/p>\n<p>Alongside Oozie, it is possible to organize the calculation stream using Airflow. I won't dwell too long on comparing Oozie and Airflow, but I will simply say that in the context of the media research project's work, the choice leaned towards Airflow. The main arguments this time were a more active community developing the product and a more advanced interface + API.<\/p>\n<p>Airflow is also good because it uses Python, which is loved by many, for describing calculation processes. Moreover, there are not so many open-source workflow management platforms. Launching and monitoring process execution (including with Gantt charts) only adds points to Airflow's karma. <\/p>\n<p>The configuration file format for launching mappings in the low-code solution became spark-submit. This is due to two reasons. First, spark-submit allows you to directly run a jar file from the console. Second, it can contain all the necessary information for configuring the workflow (which simplifies writing scripts that form the DAG).<br \/>\nThe most commonly encountered element of the Airflow workflow in our case became the SparkSubmitOperator.<\/p>\n<p>SparkSubmitOperator allows you to run jars \u2014 packaged Datagram mappings with pre-formed input parameters for them.<\/p>\n<p>Este important de men\u021bionat c\u0103 fiecare sarcin\u0103 Airflow se execut\u0103 \u00een fir de execu\u021bie separat \u0219i nu are cuno\u0219tin\u021b\u0103 despre alte sarcini. Prin urmare, interac\u021biunea dintre sarcini se realizeaz\u0103 prin operatori de control, cum ar fi DummyOperator sau BranchPythonOperator.<\/p>\n<p>Utilizarea solu\u021biei low-code Datagram \u00eempreun\u0103 cu universalizarea fi\u0219ierelor de configurare (ce formeaz\u0103 Dag) a dus la o accelerare \u0219i simplificare semnificativ\u0103 a procesului de dezvoltare a fluxurilor de \u00eenc\u0103rcare a datelor.<\/p>\n<h2>Calculul vitrinelor<\/h2>\n<p>\nProbabil, cea mai complex\u0103 etap\u0103 \u00een produc\u021bia de date analitice este pasul construc\u021biei vitrinelor. \u00cen contextul uneia dintre fluxurile de calcul al datelor ale unei companii de cercetare, \u00een aceast\u0103 etap\u0103 se realizeaz\u0103 aducerea la o traducere de referin\u021b\u0103, av\u00e2nd \u00een vedere ajustarea pe fuse orare legat\u0103 de grila de difuzare. De asemenea, este posibil\u0103 ajustarea pentru grila local\u0103 de difuzare (\u0219tiri \u0219i publicitate locale). Printre altele, \u00een aceast\u0103 etap\u0103 se face segmentarea intervalelor de vizionare continu\u0103 a produselor media, pe baza analizei intervalelor de vizionare. Aici se realizeaz\u0103 \u0219i \u201eponderea\u201d valorilor de vizionare pe baza informa\u021biilor despre relevan\u021ba acestora (calculul coeficientului de ajustare).<\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/b5f90f7d1d95c97c9819218aab9079c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUn pas distinct \u00een preg\u0103tirea vitrinelor este validarea datelor. Algoritmul de validare este asociat cu aplicarea unui set de modele matematice \u0219tiin\u021bifice. Totu\u0219i, utilizarea unei platforme low-code permite \u00eemp\u0103r\u021birea algoritmului complex \u00een map\u0103ri vizibile \u0219i u\u0219or de citit. Fiecare dintre aceste map\u0103ri \u00eendepline\u0219te o sarcin\u0103 specific\u0103. Ca urmare, este posibil\u0103 depanarea intermediar\u0103, \u00eenregistrarea \u0219i vizualizarea etapelor de preg\u0103tire a datelor. <\/p>\n<p>Algoritmul de validare a fost discretizat \u00een urm\u0103toarele sub-etape:<\/p>\n<ul>\n<li>Construirea regresiilor dependen\u021bei vizion\u0103rii re\u021belei de televiziune din regiune cu vizionarea tuturor re\u021belelor din regiune pe parcursul a 60 de zile. <\/li>\n<li>Calculul reziduurilor studentizate (devierea valorilor actuale de la cele prezise de modelul de regresie) pentru toate punctele de regresie \u0219i pentru ziua calculat\u0103.<\/li>\n<li>Selectarea perechilor anormale regiune-re\u021bea de televiziune, unde reziduul studentizat al zilei calculate dep\u0103\u0219e\u0219te norma (stabilit\u0103 prin configura\u021bia opera\u021biei).<\/li>\n<li>Recalcularea soldului studen\u021bizat corectat pentru perechile anormale regiune-re\u021bea de telecomunica\u021bii pentru fiecare respondent care a vizionat re\u021beaua \u00een regiune, determin\u00e2nd contribu\u021bia acestui respondent (m\u0103rimea schimb\u0103rii soldului studen\u021bizat) prin excluderea vizion\u0103rii acestui respondent din e\u0219antion.<\/li>\n<li>C\u0103utarea candida\u021bilor al c\u0103ror excludere aduce soldul studen\u021bizat al zilei de calcul \u00een normal. <\/li>\n<\/ul>\n<p>\nExemplul de mai sus este o confirmare a ipotezei c\u0103 un inginer de date are deja prea multe lucruri \u00een minte... \u0218i, dac\u0103 acesta este cu adev\u0103rat un \u201einginer\u201d, nu doar un \u201ecoder\u201d, frica de degradare profesional\u0103 prin utilizarea instrumentelor low-code ar trebui s\u0103 dispara complet.<\/p>\n<h2>Ce poate face low-code \u00een plus?<\/h2>\n<p>\nDomeniul de aplicare al instrumentului low-code pentru procesarea de date \u00een loturi \u0219i \u00een flux f\u0103r\u0103 a necesita scrierea manual\u0103 de cod \u00een Scala nu se sf\u00e2r\u0219e\u0219te aici.<\/p>\n<p>Utilizarea low-code \u00een dezvoltarea datalake-urilor a devenit deja un anumit standard pentru noi. Probabil se poate spune c\u0103 solu\u021biile pe stiva Hadoop urmeaz\u0103 calea de dezvoltare a DWH-urilor clasice, bazate pe RDBMS. Instrumentele low-code pe stiva Hadoop pot rezolva at\u00e2t sarcinile de procesare a datelor, c\u00e2t \u0219i sarcinile de construire a interfe\u021belor finale BI. \u00cen plus, trebuie men\u021bionat c\u0103 BI poate \u00eensemna nu doar reprezentarea datelor, ci \u0219i editarea acestora de c\u0103tre utilizatorii de afaceri. Aceast\u0103 func\u021bionalitate este adesea utilizat\u0103 de noi \u00een construirea platformelor analitice pentru sectorul financiar. <\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/cde5ce9dac9fcc9356b2b0ed291e299c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrintre altele, prin intermediul low-code \u0219i, \u00een special, Datagram, se poate rezolva problema urm\u0103ririi originii obiectelor fluxului de date cu atomicitatea p\u00e2n\u0103 la c\u00e2mpuri individuale (lineage). Pentru aceasta, instrumentul low-code a implementat conectivitate cu Apache Atlas \u0219i Cloudera Navigator. Practic, dezvoltatorul trebuie s\u0103 \u00eenregistreze un set de obiecte \u00een dic\u021bionarele Atlas \u0219i s\u0103 fac\u0103 referire la obiectele \u00eenregistrate atunci c\u00e2nd construie\u0219te mappere. Mecanismul de urm\u0103rire a originii datelor sau analiza dependen\u021belor obiectelor economise\u0219te o cantitate considerabil\u0103 de timp atunci c\u00e2nd este necesar\u0103 modificarea algoritmilor de calcul. De exemplu, \u00een construirea raport\u0103rii financiare, aceast\u0103 caracteristic\u0103 faciliteaz\u0103 mai bine perioada de schimb\u0103ri legislative. Cu c\u00e2t \u00een\u021belegem mai bine dependen\u021ba \u00eentre forme \u00een cadrul obiectelor din stratul detaliat, cu at\u00e2t ne vom confrunta cu mai pu\u021bine defecte \u201esurpriz\u0103\u201d \u0219i vom reduce num\u0103rul revizuirilor. <\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/0b351b116564090bd03f6adf3fc52616.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Calitatea Datelor &amp; Low-code<\/h2>\n<p>\nO alt\u0103 sarcin\u0103 implementat\u0103 de instrumentul low-code \u00een proiectul companiei Mediascope a fost problema clasei Calitate a Datelor. Particularitatea implement\u0103rii conveierului de verificare a datelor pentru proiectul companiei de cercetare a fost absen\u021ba influen\u021bei asupra func\u021bion\u0103rii \u0219i vitezei de lucru a fluxului principal de calcul al datelor. Pentru a putea orchestra fluxuri independente de verificare a datelor, a fost utilizat deja cunoscutul Apache Airflow. Pe m\u0103sur\u0103 ce fiecare pas \u00een produc\u021bia de date devenea disponibil, se lansa simultan o parte separat\u0103 a conveierului DQ. <\/p>\n<p>Este considerat\u0103 o bun\u0103 practic\u0103 s\u0103 se monitorizeze calitatea datelor \u00eenc\u0103 de la na\u0219terea lor \u00een platforma analitic\u0103. Av\u00e2nd informa\u021bii despre metadate, putem verifica respectarea condi\u021biilor de baz\u0103 - not null, constr\u00e2ngeri, chei externe - \u00eenc\u0103 de la momentul \u00een care informa\u021bia ajunge \u00een stratul ini\u021bial. Aceast\u0103 func\u021bionalitate este implementat\u0103 pe baza mappeslor generate automat din familia calit\u0103\u021bii datelor \u00een Datagram. Generarea codului \u00een acest caz se bazeaz\u0103, de asemenea, pe metadatele modelului. \u00cen proiectul companiei Mediascope, conectivitatea s-a realizat cu metadatele produsului Enterprise Architect. <\/p>\n<p>Datorit\u0103 conectivit\u0103\u021bii dintre instrumentul low-code \u0219i Enterprise Architect, au fost generate automat urm\u0103toarele verific\u0103ri:<\/p>\n<ul>\n<li>Verificarea prezen\u021bei valorilor \u201enull\u201d \u00een c\u00e2mpurile cu modificator \u201enot null\u201d; <\/li>\n<li>Verificarea prezen\u021bei duplicatelor cheii primare;<\/li>\n<li>Verificarea cheii externe a entit\u0103\u021bii;<\/li>\n<li>Verificarea unicit\u0103\u021bii unei linii pe baza unui set de c\u00e2mpuri.<\/li>\n<\/ul>\n<p>\nPentru verific\u0103ri mai complexe ale disponibilit\u0103\u021bii \u0219i veridicit\u0103\u021bii datelor, a fost creat un mapping cu Scala Expression, care prime\u0219te ca input codul de verificare Spark SQL, preg\u0103tit de anali\u0219ti \u00een Zeppelin.<\/p>\n<p><img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/f6dcc5719077a3186d23d7bdcb412c45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDesigur, generarea automat\u0103 a verific\u0103rilor trebuie s\u0103 se realizeze treptat. \u00cen cadrul proiectului descris, au fost urm\u0103torii pa\u0219i preceden\u021bi:<\/p>\n<ul>\n<li>DQ, realizate \u00een notele Zeppelin;<\/li>\n<li>DQ, integrate \u00een mapping;<\/li>\n<li>DQ sub form\u0103 de mapping-uri massive separate, care con\u021bin un set complet de verific\u0103ri pentru fiecare entitate;<\/li>\n<li>Mapping-uri DQ parametrizate universale, care accept\u0103 ca input informa\u021bii despre metadate \u0219i verific\u0103ri de afaceri.<\/li>\n<\/ul>\n<p>\nProbabil, principalul avantaj al cre\u0103rii unui serviciu de verific\u0103ri parametrizate este reducerea timpului de livrare a func\u021bionalit\u0103\u021bii \u00een mediu de produc\u021bie. Noile verific\u0103ri de calitate pot ocoli modelul clasic de livrare a codului prin medii de dezvoltare \u0219i testare:<\/p>\n<ul>\n<li>Toate verific\u0103rile metadatelor sunt generate automat atunci c\u00e2nd modelul \u00een EA se modific\u0103;<\/li>\n<li>Verific\u0103rile disponibilit\u0103\u021bii datelor (determinarea existen\u021bei unor date \u00eentr-un anumit moment) pot fi generate pe baza unui director care stocheaz\u0103 timpii a\u0219tepta\u021bi pentru apari\u021bia unei noi por\u021biuni de date \u00een func\u021bie de obiecte;<\/li>\n<li>Verific\u0103rile de afaceri pentru veridicitatea datelor sunt create de anali\u0219ti \u00een notele Zeppelin. De acolo, sunt direc\u021bionate direct c\u0103tre tabelele de configurare ale modulului DQ \u00een mediul de produc\u021bie. <\/li>\n<\/ul>\n<p>\nRiscurile livr\u0103rii directe a scripturilor \u00een produc\u021bie sunt practic inexistente. Chiar \u0219i \u00een cazul unei erori de sintax\u0103, cel mai r\u0103u lucru care ne-ar putea amenin\u021ba este nerealizarea unei verific\u0103ri, deoarece fluxul de calcul al datelor \u0219i fluxul lans\u0103rii verific\u0103rilor de calitate sunt separate.<\/p>\n<p>\u00cen esen\u021b\u0103, serviciul DQ este permanent activ \u00een mediul de produc\u021bie \u0219i este gata s\u0103 \u00eenceap\u0103 lucrul \u00een momentul apari\u021biei unei noi por\u021biuni de date. <\/p>\n<h2>\u00cen concluzie<\/h2>\n<p>\nAvantajul utiliz\u0103rii low-code este evident. Dezvoltatorii nu trebuie s\u0103 dezvolte o aplica\u021bie \u201ede la zero\u201d. Un programator eliberat de sarcini suplimentare ofer\u0103 rezultate mai rapid. Viteza, la r\u00e2ndul ei, elibereaz\u0103 un timp suplimentar pentru a rezolva problemele de optimizare. Prin urmare, \u00een acest caz, se poate conta pe existen\u021ba unei solu\u021bii mai calitative \u0219i rapide.<\/p>\n<p><b>Desigur, low-code nu este o solu\u021bie universal\u0103, iar magia nu se va \u00eent\u00e2mpla de la sine:<\/b><\/p>\n<ul>\n<li>Industria low-code trece printr-o etap\u0103 de \u201e\u00eent\u0103rire\u201d \u0219i momentan nu exist\u0103 standarde industriale uniforme;<\/li>\n<li>Multe solu\u021bii low-code nu sunt gratuite, iar achizi\u021bionarea acestora ar trebui s\u0103 fie un pas con\u0219tient, care trebuie f\u0103cut cu certitudinea complet\u0103 a beneficiului financiar derivat din utilizarea lor;<\/li>\n<li>Multe solu\u021bii low-code nu colaboreaz\u0103 \u00eentotdeauna bine cu GIT \/ SVN. Fiecare dintre ele poate fi incomod de utilizat \u00een cazul \u00een care codul generat este ascuns;<\/li>\n<li>Atunci c\u00e2nd se extinde arhitectura, poate fi necesar\u0103 modificarea solu\u021biei low-code \u2013 ceea ce, la r\u00e2ndul s\u0103u, provoac\u0103 un efect de \u201edependen\u021b\u0103 \u0219i ata\u0219are\u201d fa\u021b\u0103 de furnizorul solu\u021biei low-code.<\/li>\n<li>Un nivel adecvat de asigurare a securit\u0103\u021bii este posibil, dar este foarte laborios \u0219i complicat de implementat \u00een motoarele sistemelor low-code. Platformele low-code ar trebui alese nu doar pe principiul c\u0103ut\u0103rii beneficiului din utilizarea lor. La alegere, ar trebui s\u0103 ne \u00eentreb\u0103m despre func\u021bionalit\u0103\u021bile de gestionare a accesului \u0219i despre delegarea\/escaladarea datelor de identificare la nivelul \u00eentregului peisaj IT al organiza\u021biei.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Utilizarea low-code \u00een platformele analitice\" src=\"\/wp-content\/uploads\/2020\/09\/8ad44d2f71f519b70f5ae1e1fe722066.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCu toate acestea, dac\u0103 sunte\u021bi con\u0219tient de toate dezavantajele sistemului ales, iar beneficiile utiliz\u0103rii acestuia sunt, totu\u0219i, predominante, atunci trece\u021bi la low-code f\u0103r\u0103 fric\u0103. Cu at\u00e2t mai mult cu c\u00e2t trecerea la acesta este inevitabil\u0103 \u2013 la fel ca orice evolu\u021bie.<\/p>\n<p>Dac\u0103 un dezvoltator pe o platform\u0103 low-code \u00ee\u0219i va finaliza munca mai repede dec\u00e2t doi dezvoltatori f\u0103r\u0103 low-code, atunci aceasta ofer\u0103 companiei un avantaj sub toate aspectele. Pragul de intrare \u00een solu\u021biile low-code este mai sc\u0103zut dec\u00e2t \u00een tehnologiile \u201etradi\u021bionale\u201d, iar acest lucru are un impact pozitiv asupra deficitului de personal. Utilizarea instrumentelor low-code permite accelerarea interac\u021biunii \u00eentre echipele func\u021bionale \u0219i o luare mai rapid\u0103 a deciziilor privind corectitudinea direc\u021biei alese \u00een cercetarea data-science. Platformele low-code pot fi un factor declan\u0219ator pentru transformarea digital\u0103 a organiza\u021biei, deoarece solu\u021biile produse pot fi u\u0219or de \u00een\u021beles de c\u0103tre persoanele non-tehnice (\u00een special utilizatorii de afaceri). <\/p>\n<p>Dac\u0103 ave\u021bi termene limit\u0103 str\u00e2nse, o logic\u0103 de afaceri complex\u0103, un deficit de expertiz\u0103 tehnologic\u0103, \u0219i ave\u021bi nevoie s\u0103 accelera\u021bi time to market, atunci low-code este una dintre modalit\u0103\u021bile de a satisface nevoile dumneavoastr\u0103.<\/p>\n<p>Nu trebuie s\u0103 nega\u021bi importan\u021ba instrumentelor tradi\u021bionale de dezvoltare, \u00eens\u0103 \u00een multe cazuri utilizarea solu\u021biilor low-code este cea mai bun\u0103 modalitate de a spori eficien\u021ba sarcinilor abordate.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/neoflex\/blog\/520554\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0443\u0441\u043b\u0443\u0433 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432. \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u2014 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0438 \u0442\u0440\u0443\u0434\u043e\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043b\u044e\u0431\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95284,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95283","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 low-code \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-27T17:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-27T17:42:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Aplicarea low-code \u00een platformele de analiz\u0103 | ProHoster","description":"Stima\u021bi cititori, bun\u0103 ziua! Provocarea de a construi platforme IT pentru acumularea \u0219i analiza datelor apare mai devreme sau mai t\u00e2rziu \u00een cazul oric\u0103rei companii a c\u0103rei afacere se bazeaz\u0103 pe un model intelectual complex.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 low-code \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 | ProHoster","og:description":"\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-27T17:42:23+00:00","article:modified_time":"2020-09-27T17:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95283","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:08:24","updated":"2026-02-22 15:29:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/95283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=95283"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/95283\/revisions"}],"predecessor-version":[{"id":162190,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/95283\/revisions\/162190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/95284"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=95283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=95283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=95283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}