{"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\/sv\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","title":{"rendered":"Anv\u00e4ndningen av low-code i analysplattformar","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>K\u00e4ra l\u00e4sare, god dag!<\/p>\n<p>Att bygga IT-plattformar f\u00f6r att samla och analysera data \u00e4r en utmaning som s\u00e5 gott som varje f\u00f6retag f\u00f6rr eller senare st\u00e4lls inf\u00f6r, s\u00e4rskilt de vars verksamhet baseras p\u00e5 en intellektuellt kr\u00e4vande tj\u00e4nstemodell eller skapandet av tekniskt komplexa produkter. Att bygga analytiska plattformar \u00e4r en komplex och resurskr\u00e4vande uppgift. Men alla problem kan f\u00f6renklas. I den h\u00e4r artikeln vill jag dela med mig av v\u00e5ra erfarenheter av att anv\u00e4nda verktyg med l\u00e5g kod f\u00f6r att skapa analytiska l\u00f6sningar. Dessa erfarenheter har vi f\u00e5tt genom att genomf\u00f6ra flera projekt inom Big Data Solutions p\u00e5 f\u00f6retaget \"Neoflex\". Sedan 2005 har Big Data Solutions p\u00e5 \"Neoflex\" arbetat med att bygga datalager och datavolymer, l\u00f6sa fr\u00e5gor kring hastigheten f\u00f6r informationbearbetning och utveckla metodologier f\u00f6r datakvalitetsstyrning.<\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/ca066793a937041577085dfb813f979e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet g\u00e5r inte att undvika att medvetet samla svagt och\/eller starkt strukturerade data. Kanske, \u00e4ven om det handlar om sm\u00e5f\u00f6retag. N\u00e4r ett lovande f\u00f6retag v\u00e4xer, kommer det att st\u00f6ta p\u00e5 fr\u00e5gor kring lojalitetsprogram, analysera f\u00f6rs\u00e4ljningsst\u00e4llen, t\u00e4nka p\u00e5 riktad reklam och bekymra sig \u00f6ver efterfr\u00e5gan p\u00e5 komplementprodukter. Inledningsvis kan dessa fr\u00e5gor l\u00f6sas \"p\u00e5 egen hand\". Men med f\u00f6retagets tillv\u00e4xt blir det oundvikligt att inf\u00f6ra en analytisk plattform.<\/p>\n<p>Under vilka omst\u00e4ndigheter kan dataanalysens utmaningar \u00f6verg\u00e5 till uppgifter av klassen \"Rocket Science\"? Kanske just n\u00e4r vi pratar om verkligt stora data.<br \/>\nF\u00f6r att f\u00f6renkla \"Rocket Science\"-uppgiften kan man \u00e4ta elefanten i bitar. <\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/f81e7704b91a5b95303e4240d6012730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJu mer diskreta och sj\u00e4lvst\u00e4ndiga era applikationer\/tj\u00e4nster\/mikrotj\u00e4nster \u00e4r, desto enklare blir det f\u00f6r er, era kollegor och hela f\u00f6retaget att bearbeta elefanten.<\/p>\n<p>Denna slutsats har n\u00e4stan alla v\u00e5ra kunder kommit fram till genom att omstrukturera landskapet baserat p\u00e5 ingenj\u00f6rsmetoder fr\u00e5n DevOps-team.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMen \u00e4ven med en \"separat, elefantdiet\" har vi goda chanser till \"\u00f6verskott\" i IT-landskapet. I detta \u00f6gonblick \u00e4r det v\u00e4rt att stanna upp, ta ett djupt andetag och titta i riktning mot <b>l\u00e5gniv\u00e5kodningsplattform<\/b>.<\/p>\n<p>M\u00e5nga utvecklare \u00e4r skr\u00e4mda av m\u00f6jligheten att hamna i en karri\u00e4rkris n\u00e4r de g\u00e5r ifr\u00e5n att direkt skriva kod till att \u2018dra och sl\u00e4ppa\u2019 element i UI-gr\u00e4nssnitt f\u00f6r l\u00e5gkodssystem. Men introduktionen av maskiner ledde inte till en minskning av ingenj\u00f6rer; tv\u00e4rtom h\u00f6jde den deras arbete till en ny niv\u00e5!<\/p>\n<p>L\u00e5t oss g\u00e5 igenom varf\u00f6r.<\/p>\n<p>Dataanalys inom logistik, telekommunikationsbranschen, medieforskning och finanssektorn \u00e4r alltid f\u00f6rknippad med f\u00f6ljande fr\u00e5gor: <\/p>\n<ul>\n<li>Hastigheten i den automatiserade analysprocessen;<\/li>\n<li>M\u00f6jligheten att genomf\u00f6ra experiment utan att p\u00e5verka huvudfl\u00f6det av datakapacitet;<\/li>\n<li>Tillf\u00f6rlitligheten av de f\u00f6rberedda uppgifterna;<\/li>\n<li>\u00d6vervakning av f\u00f6r\u00e4ndringar och versionering;<\/li>\n<li>Data provenance, Data lineage, CDC;<\/li>\n<li>Snabbheten i att leverera nya funktioner till produktionsmilj\u00f6n;<\/li>\n<li>Och den beryktade: kostnaden f\u00f6r utveckling och underh\u00e5ll.<\/li>\n<\/ul>\n<p>\nDet inneb\u00e4r att ingenj\u00f6rer har en m\u00e4ngd h\u00f6gre niv\u00e5uppgifter som kan utf\u00f6ras effektivt f\u00f6rst n\u00e4r de rensar tankarna fr\u00e5n l\u00e5gniv\u00e5 utvecklingsuppgifter.<\/p>\n<p>F\u00f6ruts\u00e4ttningarna f\u00f6r att utvecklare skulle g\u00e5 vidare till en ny niv\u00e5 har varit aff\u00e4rernas evolution och digitalisering. Utvecklarens v\u00e4rde f\u00f6r\u00e4ndras ocks\u00e5: det r\u00e5der en stor brist p\u00e5 utvecklare som kan f\u00f6rst\u00e5 k\u00e4rnan i koncepten f\u00f6r automatiserad verksamhet.<\/p>\n<p>L\u00e5t oss dra en parallell mellan l\u00e5gniv\u00e5- och h\u00f6gniv\u00e5programmeringsspr\u00e5k. \u00d6verg\u00e5ngen fr\u00e5n l\u00e5gniv\u00e5spr\u00e5k till h\u00f6gniv\u00e5spr\u00e5k \u00e4r en \u00f6verg\u00e5ng fr\u00e5n att skriva \u2018direkta direktiv p\u00e5 maskinspr\u00e5ket\u2019 till \u2018direktiv p\u00e5 m\u00e4nniskospr\u00e5ket\u2019. Det handlar om att l\u00e4gga till ett lager av abstraktion. I det h\u00e4r fallet inneb\u00e4r \u00f6verg\u00e5ngen fr\u00e5n h\u00f6gniv\u00e5 programmeringsspr\u00e5k till l\u00e5gkodplattformar en \u00f6verg\u00e5ng fr\u00e5n \u2018direktiv p\u00e5 m\u00e4nniskospr\u00e5ket\u2019 till \u2018direktiv p\u00e5 aff\u00e4rsspr\u00e5ket\u2019. Om det finns utvecklare som blir ledsna \u00f6ver detta faktum, kan de ha varit ledsna sedan den dag JavaScript lanserades, d\u00e4r funktioner f\u00f6r att sortera arrayer anv\u00e4nds. Dessa funktioner har givetvis en programmatisk implementation under huven med hj\u00e4lp av andra medel f\u00f6r samma h\u00f6gniv\u00e5programmering.<\/p>\n<p><b>S\u00e5ledes \u00e4r l\u00e5gkod helt enkelt ett nytt niv\u00e5 av abstraktion. <\/b><\/p>\n<h2>Praktisk erfarenhet av att anv\u00e4nda l\u00e5gkod<\/h2>\n<p>\nLow-code-temat \u00e4r ganska bred, men nu skulle jag vilja ber\u00e4tta om till\u00e4mpningen av \"low-code-koncept\" genom ett exempel fr\u00e5n ett av v\u00e5ra projekt.<\/p>\n<p>Big Data Solutions-avdelningen inom f\u00f6retaget \"Neoflex\" specialiserar sig i stor utstr\u00e4ckning p\u00e5 finanssektorn, d\u00e4r man bygger datalager och datavattendrag samt automatiserar olika rapporteringsprocesser. Inom denna nisch har anv\u00e4ndningen av low-code l\u00e4nge blivit standard. Bland andra low-code-verktyg kan vi n\u00e4mna verktyg f\u00f6r att organisera ETL-processer: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Eller Oracle Apex, som \u00e4r en plattform f\u00f6r snabb utveckling av anv\u00e4ndargr\u00e4nssnitt f\u00f6r datainmatning och redigering. Men anv\u00e4ndningen av low-code-utvecklingsmedel \u00e4r inte alltid kopplad till att bygga sn\u00e4vt inriktade applikationer p\u00e5 en kommersiell teknikstack med tydligt beroende av leverant\u00f6ren.<\/p>\n<p>Med hj\u00e4lp av low-code-plattformar kan man ocks\u00e5 organisera orkestrering av datastreams, skapa datavetenskapsplattformar eller till exempel moduler f\u00f6r datakvalitetskontroll. <\/p>\n<p>Ett exempel p\u00e5 till\u00e4mpning av low-code-utvecklingsmedel \u00e4r samarbetet mellan \"Neoflex\" och f\u00f6retaget Mediascope, en av ledarna p\u00e5 den ryska marknaden f\u00f6r medieforskning. Ett av m\u00e5len f\u00f6r denna f\u00f6retags verksamhet \u00e4r att producera data som annons\u00f6rer, internetplattformar, TV-kanaler, radiostationer, reklambyr\u00e5er och varum\u00e4rken anv\u00e4nder f\u00f6r att fatta beslut om ink\u00f6p av reklam och planera sina marknadsf\u00f6ringskommunikationer. <\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/d6410c1fe93231281bdd536798fe7c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMediaforskning \u00e4r en teknologiskt kr\u00e4vande aff\u00e4rssektor. Videoigenk\u00e4nning, insamling av data fr\u00e5n enheter som analyserar visning, m\u00e4tning av aktivitet p\u00e5 webbplatser - allt detta f\u00f6ruts\u00e4tter att f\u00f6retaget har en stor IT-stab och enorm erfarenhet av att bygga analytiska l\u00f6sningar. Men den exponentiella tillv\u00e4xten av m\u00e4ngden information, antalet och m\u00e5ngfalden av dess k\u00e4llor tvingar st\u00e4ndigt IT-industrin att utvecklas. Den enklaste l\u00f6sningen f\u00f6r att skala den redan fungerande Mediascope-analytiska plattformen skulle kunna vara att \u00f6ka antalet IT-anst\u00e4llda. Men en mycket mer effektiv l\u00f6sning \u00e4r att p\u00e5skynda utvecklingsprocessen. Ett av stegen mot detta kan vara anv\u00e4ndningen av low-code-plattformar.<\/p>\n<p>Vid projektets start hade f\u00f6retaget redan en fungerande produktl\u00f6sning. Men implementeringen av l\u00f6sningen p\u00e5 MSSQL kunde inte fullt ut motsvara f\u00f6rv\u00e4ntningarna p\u00e5 att skala funktionaliteten samtidigt som kostnaden f\u00f6r modifieringarna f\u00f6rblev acceptabel.<\/p>\n<p>Den uppgift som l\u00e5g framf\u00f6r oss var verkligen ambiti\u00f6s \u2013 Neoflex och Mediascope skulle skapa en industriell l\u00f6sning p\u00e5 mindre \u00e4n ett \u00e5r, med kravet p\u00e5 att MVP skulle lanseras inom f\u00f6rsta kvartalet fr\u00e5n projektstart.<\/p>\n<p>Som grund f\u00f6r att bygga den nya databasen, baserad p\u00e5 low-code-ber\u00e4kningar, valdes teknikstacken Hadoop. Standard f\u00f6r datalagring blev HDFS med anv\u00e4ndning av parquet-formatfiler. F\u00f6r att f\u00e5 tillg\u00e5ng till data inom plattformen anv\u00e4ndes Hive, d\u00e4r alla tillg\u00e4ngliga datak\u00e4llor representeras som externa tabeller. Data\u00f6verf\u00f6ring till lagret genomf\u00f6rdes med hj\u00e4lp av Kafka och Apache NiFi.<\/p>\n<p>Low-code-verktyget i detta koncept anv\u00e4ndes f\u00f6r att optimera den mest arbetskr\u00e4vande uppgiften i byggandet av den analytiska plattformen \u2013 databer\u00e4kningsuppgiften.<\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/fe62234ab0ae611a0c4a536ca68af898.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHuvudmekanismen f\u00f6r datamappning valdes att bli low-code-verktyget Datagram. <b>Neoflex Datagram<\/b> \u00e4r ett verktyg f\u00f6r att utveckla transformationer och datavolymer. <br \/>\nGenom att anv\u00e4nda detta verktyg kan man klara sig utan att skriva Scala-kod \"f\u00f6r hand\". Scala-koden genereras automatiskt med hj\u00e4lp av Model Driven Architecture.<\/p>\n<p>Den uppenbara f\u00f6rdelen med ett s\u00e5dant tillv\u00e4gag\u00e5ngss\u00e4tt \u00e4r att utvecklingsprocessen g\u00e5r snabbare. Men f\u00f6rutom hastigheten finns det ocks\u00e5 f\u00f6ljande f\u00f6rdelar: <\/p>\n<ul>\n<li>Visning av inneh\u00e5llet och strukturen hos k\u00e4llor\/mottagare;<\/li>\n<li>Sp\u00e5rning av ursprunget av datavolymens objekt ner till individuella f\u00e4lt (lineage);<\/li>\n<li>Delvis genomf\u00f6rande av transformationer med visning av mellanresultat;<\/li>\n<li>Visning av koden och dess justering innan k\u00f6rning;<\/li>\n<li>Automatisk validering av transformationer;<\/li>\n<li>Automatisk data\u00f6verf\u00f6ring 1 till 1.<\/li>\n<\/ul>\n<p>\nTr\u00f6skeln f\u00f6r att komma in i low-code-l\u00f6sningar f\u00f6r att generera transformationer \u00e4r ganska l\u00e5g: en utvecklare beh\u00f6ver kunna SQL och ha erfarenhet av ETL-verktyg. Det b\u00f6r ocks\u00e5 n\u00e4mnas att code-driven-generationsverktyg f\u00f6r transformationer inte \u00e4r ETL-verktyg i den breda bem\u00e4rkelsen av ordet. Low-code-verktyg kanske inte har sin egen milj\u00f6 f\u00f6r att k\u00f6ra kod. Det inneb\u00e4r att den genererade koden kommer att k\u00f6ras i den milj\u00f6 som fanns i klustret innan installationen av low-code-l\u00f6sningen. Och det h\u00e4r \u00e4r nog ytterligare en f\u00f6rdel f\u00f6r low-code, eftersom en \"klassisk\" team kan arbeta parallellt med low-code-teamet f\u00f6r att implementera funktionalitet, exempelvis p\u00e5 ren Scala-kod. Att dra in f\u00f6rb\u00e4ttringar fr\u00e5n b\u00e5da teamen till produktion kommer att vara enkelt och \"s\u00f6ml\u00f6st\".<\/p>\n<p>Det \u00e4r v\u00e4rt att notera att det f\u00f6rutom low-code \u00e4ven finns no-code-l\u00f6sningar. Och i sitt v\u00e4sen \u00e4r det olika saker. Low-code ger i h\u00f6gre grad utvecklaren m\u00f6jlighet att blanda sig i den genererade koden. I fallet med Datagram \u00e4r det m\u00f6jligt att granska och redigera den genererade Scala-koden, medan no-code kanske inte ger den m\u00f6jligheten. Denna skillnad \u00e4r mycket v\u00e4sentlig, b\u00e5de ur synpunkt av l\u00f6sningens flexibilitet och ur synpunkt av bekv\u00e4mlighet och motivation i arbete f\u00f6r datatekniker. <\/p>\n<h2>Arkitektur f\u00f6r l\u00f6sningen<\/h2>\n<p>\nL\u00e5t oss f\u00f6rs\u00f6ka f\u00f6rst\u00e5 hur low-code-verktyget hj\u00e4lper till att l\u00f6sa problemet med att optimera utvecklingshastigheten f\u00f6r databer\u00e4kningsfunktioner. F\u00f6rst ska vi titta p\u00e5 systemets funktionella arkitektur. I det h\u00e4r fallet fungerar modellen f\u00f6r dataproduktion f\u00f6r medieforskning som exempel.<\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/365f1b1cf69bf2a71854eb05c5bba809.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Datak\u00e4llorna i v\u00e5rt fall \u00e4r mycket heterogena och varierande:<\/b><\/p>\n<ul>\n<li>Peoplemetris (TV-metrar) \u00e4r programvaru- och h\u00e5rdvaruenheter som registrerar anv\u00e4ndarbeteende hos respondenter p\u00e5 tv-panelen \u2013 vem, n\u00e4r och vilken tv-kanal som visades i hush\u00e5ll som deltar i studien. Den information som levereras \u00e4r en str\u00f6m av visningstider kopplade till mediepaketet och medieprodukten. Data vid inl\u00e4sning till Data Lake kan berikas med demografiska attribut, kopplingar till geografiska omr\u00e5den, tidszoner och annan information som \u00e4r n\u00f6dv\u00e4ndig f\u00f6r att genomf\u00f6ra analys av tv-tittande av en viss medieprodukt. De gjorda m\u00e4tningarna kan anv\u00e4ndas f\u00f6r analys eller planering av reklamakampanjer, bed\u00f6mning av publik aktivitet och preferenser, samt utarbetande av s\u00e4ndningsschema;<\/li>\n<li>Data kan komma fr\u00e5n system som \u00f6vervakar str\u00f6mmande tv-s\u00e4ndningar och m\u00e4ter visning av inneh\u00e5ll p\u00e5 videoresurser p\u00e5 internet;<\/li>\n<li>M\u00e4tningsverktyg i webbmilj\u00f6, som inkluderar b\u00e5de site-centric och user-centric m\u00e4tare. Dataleverant\u00f6rer f\u00f6r Data Lake kan vara webbl\u00e4sartill\u00e4gg som research bar och mobilapplikationer med inbyggd <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sv\/vpn\/\"   title=\"VPN\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"133\">VPN<\/a>.<\/li>\n<li>Data kan ocks\u00e5 komma fr\u00e5n plattformar som konsoliderar resultat fr\u00e5n enk\u00e4ter och slutresultat fr\u00e5n telefonintervjuer i f\u00f6retagets unders\u00f6kningar;<\/li>\n<li>Ytterligare berikning av datalaket kan ske genom att ladda upp information fr\u00e5n loggar fr\u00e5n partnerf\u00f6retag.<\/li>\n<\/ul>\n<p>\nImplementeringen av as-is-laddning fr\u00e5n k\u00e4llsystem till prim\u00e4r staging av r\u00e5data kan organiseras p\u00e5 olika s\u00e4tt. Vid anv\u00e4ndning av low-code f\u00f6r dessa \u00e4ndam\u00e5l \u00e4r automatisk generation av laddningsscript m\u00f6jlig baserat p\u00e5 metadata. I detta fall \u00e4r det inte n\u00f6dv\u00e4ndigt att g\u00e5 ner p\u00e5 niv\u00e5n av utveckling av source to target-mappningar. F\u00f6r att genomf\u00f6ra automatisk laddning m\u00e5ste vi etablera en anslutning till k\u00e4llan, varefter vi i laddningsgr\u00e4nssnittet definierar listan \u00f6ver entiteter som ska laddas. Skapandet av katalogstrukturen i HDFS kommer att ske automatiskt och motsvara strukturen f\u00f6r datalagring i k\u00e4llsystemet.<\/p>\n<p>I sammanhanget av detta projekt har vi beslutat att inte anv\u00e4nda denna m\u00f6jlighet i low-code-plattformar, eftersom f\u00f6retaget Mediascope redan har p\u00e5b\u00f6rjat arbetet med att skapa en liknande tj\u00e4nst med hj\u00e4lp av Nifi + Kafka.<\/p>\n<p>Det \u00e4r viktigt att klarg\u00f6ra att dessa verktyg inte \u00e4r \u00f6msesidigt utbytbara, utan snarare kompletterar varandra. Nifi och Kafka kan arbeta b\u00e5de i direkt (Nifi -&gt; Kafka) och omv\u00e4nd (Kafka -&gt; Nifi) koppling. F\u00f6r medieforskningsplattformen anv\u00e4ndes den f\u00f6rsta kopplingen.<\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/8284ef5bd6d3b947998ffd42bfb66dbd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI v\u00e5rt fall kr\u00e4vdes det att Nifi hanterade olika datatyper fr\u00e5n k\u00e4llsystem och skickade dem till Kafka-brokern. Meddelandena riktades till en specifik Kafka-topic genom till\u00e4mpning av Nifi-processorerna PublishKafka. Orkestrering och hantering av dessa pipelines sker i det visuella gr\u00e4nssnittet. Verktyget Nifi och anv\u00e4ndningen av kopplingen Nifi + Kafka kan ocks\u00e5 kallas en l\u00e5gkodsl\u00f6sning f\u00f6r utveckling, som har en l\u00e5g tr\u00f6skel f\u00f6r att komma in i Big Data-teknologier och p\u00e5skyndar utvecklingsprocessen f\u00f6r applikationer. <\/p>\n<p>N\u00e4sta steg i projektets genomf\u00f6rande var att anpassa till en enhetlig semantisk lag av detaljerad data. I fall d\u00e4r en entitet har historiska attribut ber\u00e4knas detta i kontexten av den aktuella partitionen. Om entiteten inte \u00e4r historisk kan antingen en omr\u00e4kning av hela objektets inneh\u00e5ll g\u00f6ras, eller s\u00e5 kan man v\u00e4lja att helt avst\u00e5 fr\u00e5n omr\u00e4kningen (p\u00e5 grund av bristen p\u00e5 f\u00f6r\u00e4ndringar). I detta skede genereras nycklar f\u00f6r alla entiteter. Nycklarna sparas i motsvarande huvudobjektsregister i Hbase, som inneh\u00e5ller \u00f6verensst\u00e4mmelse mellan nycklar i den analytiska plattformen och nycklar fr\u00e5n k\u00e4llsystemen. Konsolidering av atom\u00e4ra entiteter \u00e5tf\u00f6ljs av berikning med resultat fr\u00e5n f\u00f6rhandsber\u00e4kning av analytiska data. Ramverket f\u00f6r databer\u00e4kning var Spark. Den funktionalitet som beskrivits f\u00f6r att anpassa data till en enhetlig semantik har ocks\u00e5 implementerats baserat p\u00e5 mappningar av l\u00e5gkodverktyget Datagram.<\/p>\n<p>I den m\u00e5larkitektur som beh\u00f6vdes skulle SQL-\u00e5tkomst till data s\u00e4kerst\u00e4llas f\u00f6r aff\u00e4rsanv\u00e4ndare. F\u00f6r detta alternativ anv\u00e4ndes Hive. Registreringen av objekt i Hive sker automatiskt n\u00e4r alternativet \"Registrera Hive-tabell\" aktiveras i l\u00e5gkodverktyget.<\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/a13f7260d067d3d21b7090bd8fa10aff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Hantering av ber\u00e4kningsfl\u00f6det<\/h2>\n<p>\nDatagram har ett gr\u00e4nssnitt f\u00f6r att bygga design av arbetsfl\u00f6den. Karts\u00e4ttning kan k\u00f6ras med hj\u00e4lp av Oozie-schemal\u00e4ggaren. I utvecklargr\u00e4nssnittet f\u00f6r arbetsfl\u00f6den kan man skapa scheman f\u00f6r parallell, sekventiell eller villkorsbunden datatransformation. St\u00f6d finns f\u00f6r shell-skript och Java-program. Anv\u00e4ndning av <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sv\/server\/dts-los-angeles\/\"   title=\"servern\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3662\">servern<\/a> Apache Livy. Apache Livy anv\u00e4nds f\u00f6r att k\u00f6ra applikationer direkt fr\u00e5n utvecklingsmilj\u00f6n. <\/p>\n<p>Om f\u00f6retaget redan har en egen processorkestrator kan REST API anv\u00e4ndas f\u00f6r att integrera kartl\u00e4ggningar i det befintliga fl\u00f6det. Till exempel har vi haft ganska framg\u00e5ngsrika erfarenheter av att integrera kartl\u00e4ggningar p\u00e5 Scala i orkestra skrivna i PLSQL och Kotlin. REST API f\u00f6r l\u00e5gt kodade verktyg inneb\u00e4r operationer som att generera exekverings\u00e5r baserat p\u00e5 kartl\u00e4ggningsdesign, anropa kartl\u00e4ggning, anropa sekvens av kartl\u00e4ggningar och naturligtvis \u00f6verf\u00f6ra parametrar i URL:en f\u00f6r att k\u00f6ra kartl\u00e4ggningar.<\/p>\n<p>Ut\u00f6ver Oozie g\u00e5r det ocks\u00e5 att organisera ber\u00e4kningsfl\u00f6det med hj\u00e4lp av Airflow. Jag kommer inte att g\u00e5 in p\u00e5 en l\u00e5ng j\u00e4mf\u00f6relse mellan Oozie och Airflow, utan jag kan bara s\u00e4ga att i kontexten av medieforskningsprojektet f\u00f6ll valet p\u00e5 Airflow. Huvudsk\u00e4len f\u00f6r detta var ett mer aktivt community som utvecklar produkten och ett mer avancerat gr\u00e4nssnitt + API.<\/p>\n<p>Airflow \u00e4r ocks\u00e5 bra eftersom det anv\u00e4nder det m\u00e5nga \u00e4lskar, Python, f\u00f6r att beskriva ber\u00e4kningsprocesser. Generellt finns det inte s\u00e5 m\u00e5nga plattformar f\u00f6r att hantera arbetsfl\u00f6den med \u00f6ppen k\u00e4llkod. Att k\u00f6ra och \u00f6vervaka processer (inklusive med Gantt-diagram) ger dessutom po\u00e4ng till Airflows rykte. <\/p>\n<p>Formatet f\u00f6r konfigurationsfilen f\u00f6r att k\u00f6ra l\u00e5gkod-l\u00f6sningar blev spark-submit. Detta skedde av tv\u00e5 anledningar. F\u00f6r det f\u00f6rsta till\u00e5ter spark-submit att direkt k\u00f6ra en jar-fil fr\u00e5n konsolen. F\u00f6r det andra kan det inneh\u00e5lla all n\u00f6dv\u00e4ndig information f\u00f6r att konfigurera arbetsfl\u00f6det (vilket underl\u00e4ttar skrivandet av skript som formar Dag).<br \/>\nDen mest frekvent f\u00f6rekommande komponenten i v\u00e5rt arbetsfl\u00f6de i Airflow blev SparkSubmitOperator.<\/p>\n<p>SparkSubmitOperator g\u00f6r det m\u00f6jligt att k\u00f6ra jar-filer \u2014 packade kartl\u00e4ggningar av Datagram med f\u00f6rberedda ing\u00e5ngsparametrar.<\/p>\n<p>Det \u00e4r v\u00e4rt att n\u00e4mna att varje uppgift i Airflow k\u00f6rs i en separat tr\u00e5d och vet ingenting om andra uppgifter. Interaktionen mellan uppgifter sker d\u00e4rf\u00f6r genom styroperat\u00f6rer som DummyOperator eller BranchPythonOperator.<\/p>\n<p>Sammanfattningsvis av anv\u00e4ndningen av low-code-l\u00f6sningen Datagram i kombination med standardiseringen av konfigurationsfiler (som bildar Dag) har lett till en betydande snabbbefr\u00e4mjande och f\u00f6renklande av utvecklingsprocessen f\u00f6r dataladdningsfl\u00f6den.<\/p>\n<h2>Ber\u00e4kning av dashboards<\/h2>\n<p>\nKanske det mest intellektuellt kr\u00e4vande steget i produktionen av analytiska data \u00e4r steget f\u00f6r att bygga dashboards. I samband med ett av fl\u00f6dena f\u00f6r databer\u00e4kning i det forskande f\u00f6retaget sker det p\u00e5 detta steg en anpassning till referenstranslationen med h\u00e4nsyn till tidszonsjusteringar kopplade till s\u00e4ndningsn\u00e4tet. En justering f\u00f6r det lokala s\u00e4ndningsn\u00e4tet (lokala nyheter och reklam) \u00e4r ocks\u00e5 m\u00f6jlig. Bland annat utf\u00f6rs i detta steg en uppdelning av intervall f\u00f6r kontinuerlig visning av mediaprodukter baserat p\u00e5 analys av visningsintervall. H\u00e4r sker ocks\u00e5 en \"v\u00e4gning\" av visningsv\u00e4rdena baserat p\u00e5 information om deras betydelse (ber\u00e4kning av korrigeringsfaktorn).<\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/b5f90f7d1d95c97c9819218aab9079c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEtt s\u00e4rskilt steg i f\u00f6rberedelsen av dashboards \u00e4r datavalidering. Valideringsalgoritmen \u00e4r kopplad till till\u00e4mpningen av en rad matematiska science-modeller. Men anv\u00e4ndningen av en low-code-plattform g\u00f6r det m\u00f6jligt att bryta ner den komplexa algoritmen i en rad separata visuellt avl\u00e4sbara mappningar. Varje mappning utf\u00f6r en smal uppgift. Detta m\u00f6jligg\u00f6r mellanliggande avlusning, loggning och visualisering av datberedningsstegen. <\/p>\n<p>Det beslutades att diskretisera valideringsalgoritmen p\u00e5 f\u00f6ljande delsteg:<\/p>\n<ul>\n<li>Byggande av regressionsberoenden mellan TV-n\u00e4t i regionen och tittandet p\u00e5 alla n\u00e4t i regionen under 60 dagar. <\/li>\n<li>Ber\u00e4kning av studentiserade rester (avvikelser av faktiska v\u00e4rden fr\u00e5n de predikterade v\u00e4rdena av regressionsmodellen) f\u00f6r alla regressionspunkter och f\u00f6r den ber\u00e4knade dagen.<\/li>\n<li>Uttag av anomaliska par region-TV-n\u00e4t d\u00e4r den studentiserade resten f\u00f6r den ber\u00e4knade dagen \u00f6verstiger normen (angiven av operationens inst\u00e4llning).<\/li>\n<li>Omr\u00e4kningen av det justerade studentiserade saldot f\u00f6r anomala par mellan region och TV-n\u00e4tverk f\u00f6r varje respondent som har tittat p\u00e5 n\u00e4tverket i regionen, med best\u00e4mning av denna respondents bidrag (storleken p\u00e5 f\u00f6r\u00e4ndringen av det studentiserade saldot) vid uteslutning av denna respondents tittande fr\u00e5n urvalet.<\/li>\n<li>S\u00f6kning av kandidater vars uteslutning leder till att det studentiserade saldot f\u00f6r ber\u00e4kningsdagen normaliseras. <\/li>\n<\/ul>\n<p>\nDet ovanst\u00e5ende exemplet bekr\u00e4ftar hypotesen att en dataingenj\u00f6r redan har alldeles f\u00f6r mycket att h\u00e5lla reda p\u00e5\u2026 Och om det verkligen \u00e4r en \"ingenj\u00f6r\" och inte en \"kodare\", borde r\u00e4dslan f\u00f6r professionell f\u00f6rs\u00e4mring vid anv\u00e4ndning av low-code-verktyg definitivt avta.<\/p>\n<h2>Vad mer kan low-code g\u00f6ra?<\/h2>\n<p>\nAnv\u00e4ndningsomr\u00e5det f\u00f6r low-code verktyg f\u00f6r batch- och fl\u00f6desbehandling av data utan behov av att manuellt skriva kod i Scala tar inte slut.<\/p>\n<p>Anv\u00e4ndningen av low-code i utvecklingen av datalakes har redan blivit en standard f\u00f6r oss. Man kan nog s\u00e4ga att l\u00f6sningar baserade p\u00e5 Hadoop-stacken f\u00f6ljer utvecklingsv\u00e4gen f\u00f6r klassiska DWH, baserade p\u00e5 relationsdatabaser. Low-code-verktyg p\u00e5 Hadoop-stacken kan hantera b\u00e5de databehandlingsuppgifter och uppgifter f\u00f6r att bygga slutliga BI-gr\u00e4nssnitt. Det \u00e4r v\u00e4rt att notera att BI kan f\u00f6rst\u00e5s som inte bara representation av data, utan ocks\u00e5 som deras redigering av aff\u00e4rsanv\u00e4ndare. Denna funktionalitet anv\u00e4nds ofta av oss vid uppbyggnad av analytiska plattformar f\u00f6r finanssektorn. <\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/cde5ce9dac9fcc9356b2b0ed291e299c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBland annat kan man med low-code och s\u00e4rskilt Datagram l\u00f6sa uppgiften att sp\u00e5ra ursprunget till objekt inom datastream med atomisk precision ner till enskilda f\u00e4lt (lineage). F\u00f6r detta har low-code-verktyget implementerat en koppling till Apache Atlas och Cloudera Navigator. I praktiken m\u00e5ste utvecklaren registrera en upps\u00e4ttning objekt i Atlas-ordspr\u00e5ken och h\u00e4nvisa till de registrerade objekten vid skapandet av mappningar. Mekanismen f\u00f6r att sp\u00e5ra dators ursprung eller analysera objektberoenden sparar mycket tid n\u00e4r det beh\u00f6vs \u00e4ndringar i ber\u00e4kningsalgoritmer. Till exempel, vid skapandet av finansiella rapporter g\u00f6r denna funktion det l\u00e4ttare att hantera perioder av lagf\u00f6r\u00e4ndringar. Ju b\u00e4ttre vi f\u00f6rst\u00e5r interformella beroenden i detaljerade lager, desto f\u00e4rre \"pl\u00f6tsliga\" defekter kommer vi att m\u00f6ta och vi kommer att minska antalet rework. <\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/0b351b116564090bd03f6adf3fc52616.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Data Quality &amp; Low-code<\/h2>\n<p>\nEn annan uppgift som implementerades med low-code-verktyget i Mediascope-projektet var en uppgift av klassen Data Quality. En s\u00e4rskildhet i implementeringen av datakontrollpipeline f\u00f6r forskningsf\u00f6retagets projekt var fr\u00e5nvaron av p\u00e5verkan p\u00e5 funktionalitet och hastighet i huvudber\u00e4kningstr\u00f6mmarna. F\u00f6r att kunna orkestrera oberoende datakontrollfl\u00f6den anv\u00e4ndes det v\u00e4lk\u00e4nda Apache Airflow. N\u00e4r varje steg i datatillverkningen var klart, startades parallellt en avskild del av DQ-pipelinen. <\/p>\n<p>En god praxis \u00e4r att \u00f6vervaka datakvaliteten fr\u00e5n det att de skapas p\u00e5 den analytiska plattformen. Med information om metadata kan vi redan fr\u00e5n det \u00f6gonblick informationen n\u00e5r det prim\u00e4ra lagret kontrollera efterlevnaden av grundl\u00e4ggande villkor \u2014 not null, constraints, foreign keys. Denna funktionalitet \u00e4r baserad p\u00e5 automatiskt genererade mappningar av datakvalitetsfamiljen i Datagram. Kodgenereringen i detta fall grundas ocks\u00e5 p\u00e5 metadata-modellen. I Mediascope-projektet skedde kopplingen med produktens Enterprise Architect-metadata. <\/p>\n<p>Tack vare kopplingen mellan low-code-verktyget och Enterprise Architect genererades f\u00f6ljande kontroller automatiskt:<\/p>\n<ul>\n<li>Kontroll av n\u00e4rvaron av v\u00e4rden \"null\" i f\u00e4lt med modifieraren \"not null\"; <\/li>\n<li>Kontroll av n\u00e4rvaron av dubbletter av prim\u00e4rnyckeln;<\/li>\n<li>Kontroll av entitetens fr\u00e4mmande nyckel;<\/li>\n<li>Kontroll av unika poster baserat p\u00e5 ett f\u00e4ltset.<\/li>\n<\/ul>\n<p>\nF\u00f6r mer komplexa kontroller av tillg\u00e5ng och verifiering av data har en mappning skapats med Scala Expression, som tar emot extern Spark SQL-kod f\u00f6r kontroller, f\u00f6rberedd av analytiker i Zeppelin.<\/p>\n<p><img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/f6dcc5719077a3186d23d7bdcb412c45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSj\u00e4lvklart m\u00e5ste automatgenereringen av kontroller g\u00f6ras gradvis. Inom ramen f\u00f6r det beskrivna projektet f\u00f6regicks detta av f\u00f6ljande steg:<\/p>\n<ul>\n<li>DQ, genomf\u00f6rt i Zeppelin-notebookar;<\/li>\n<li>DQ, integrerade i mappningen;<\/li>\n<li>DQ som separata massiva mappningar, som inneh\u00e5ller en komplett upps\u00e4ttning kontroller f\u00f6r en specifik entitet;<\/li>\n<li>Universella parametiserade DQ-mappningar som tar emot information om metadata och aff\u00e4rskontroller.<\/li>\n<\/ul>\n<p>\nKanske den st\u00f6rsta f\u00f6rdelen med att skapa en tj\u00e4nst f\u00f6r parametriserade kontroller \u00e4r den kortare tiden f\u00f6r att leverera funktionalitet till produktionsmilj\u00f6n. Nya kvalitetskontroller kan omg\u00e5 den klassiska kodenleveransm\u00f6nster via utvecklings- och testmilj\u00f6er:<\/p>\n<ul>\n<li>Alla metadata kontroller genereras automatiskt vid \u00e4ndring av modellen i EA;<\/li>\n<li>Tillg\u00e5ngskontroller f\u00f6r data (definiering av f\u00f6rekomsten av viss data vid en viss tidpunkt) kan genereras baserat p\u00e5 en katalog som lagrar den f\u00f6rv\u00e4ntade tidsramen f\u00f6r n\u00e4r n\u00e4sta upps\u00e4ttning data kommer att vara tillg\u00e4nglig, sett ur objektens perspektiv;<\/li>\n<li>Aff\u00e4rskontroller av dataverifiering skapas av analytiker i Zeppelin-notebookar. De skickas direkt till inst\u00e4llningstabellerna f\u00f6r DQ-modulen i produktionsmilj\u00f6n. <\/li>\n<\/ul>\n<p>\nRiskerna med direkt leverans av skript till produktion finns inte. \u00c4ven vid syntaxfel \u00e4r det v\u00e4rsta som kan h\u00e4nda att en kontroll inte genomf\u00f6rs, eftersom databer\u00e4kningsfl\u00f6det och kvalitetskontrollfl\u00f6det \u00e4r separerade.<\/p>\n<p>I sj\u00e4lva verket \u00e4r DQ-tj\u00e4nsten st\u00e4ndigt ig\u00e5ng i produktionsmilj\u00f6n och redo att b\u00f6rja sitt arbete vid ankomsten av n\u00e4sta dataupps\u00e4ttning. <\/p>\n<h2>Avslutande<\/h2>\n<p>\nF\u00f6rdelarna med att anv\u00e4nda low-code \u00e4r uppenbara. Utvecklare beh\u00f6ver inte skapa applikationen \"fr\u00e5n grunden\". Och en programmerare som befrias fr\u00e5n extra uppgifter levererar resultat snabbare. Hastigheten frig\u00f6r i sin tur extra tid f\u00f6r att optimera fr\u00e5gor. D\u00e4rf\u00f6r kan man i detta fall r\u00e4kna med ett mer kvalitativt och snabbt l\u00f6sning.<\/p>\n<p><b>Sj\u00e4lvklart \u00e4r low-code inte en universal l\u00f6sning, och magi kommer inte att intr\u00e4ffa av sig sj\u00e4lv:<\/b><\/p>\n<ul>\n<li>Den l\u00e5ga kodindustrin genomg\u00e5r en \"f\u00f6rst\u00e4rknings\"-fas, och det finns fortfarande inga homogena industriella standarder;<\/li>\n<li>M\u00e5nga low-code-l\u00f6sningar \u00e4r inte gratis, och deras inskaffande b\u00f6r vara ett genomt\u00e4nkt steg som man b\u00f6r ta med fullst\u00e4ndig s\u00e4kerhet om den ekonomiska nyttan av att anv\u00e4nda dem;<\/li>\n<li>M\u00e5nga low-code-l\u00f6sningar fungerar inte alltid bra med GIT \/ SVN. Antingen \u00e4r de obekv\u00e4ma att anv\u00e4nda om man vill d\u00f6lja den genererade koden;<\/li>\n<li>Vid utvidgning av arkitekturen kan det kr\u00e4vas anpassningar av low-code-l\u00f6sningen \u2013 vilket \u00e5 sin sida skapar en k\u00e4nsla av \"bindning och beroende\" av leverant\u00f6ren av low-code-l\u00f6sningen.<\/li>\n<li>En l\u00e4mplig s\u00e4kerhetsniv\u00e5 \u00e4r m\u00f6jlig, men det \u00e4r v\u00e4ldigt arbetsintensivt och komplext att implementera i low-code-systemens motorer. Low-code-plattformar b\u00f6r v\u00e4ljas inte bara utifr\u00e5n f\u00f6rv\u00e4ntad nytta av att anv\u00e4nda dem. N\u00e4r man v\u00e4ljer b\u00f6r man st\u00e4lla sig fr\u00e5gorna om tillg\u00e5ngshanteringsfunktionalitet och delegiering\/eskalering av identifieringsdata p\u00e5 hela organisationens IT-landskap.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Anv\u00e4ndningen av low-code i analysplattformar\" src=\"\/wp-content\/uploads\/2020\/09\/8ad44d2f71f519b70f5ae1e1fe722066.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen om alla nackdelar med det valda systemet \u00e4r k\u00e4nda, och f\u00f6rdelarna med att anv\u00e4nda det \u00e4nd\u00e5 dominerar, ska ni g\u00e5 \u00f6ver till low-code utan att vara r\u00e4dda. Speciellt eftersom \u00f6verg\u00e5ngen \u00e4r oundviklig \u2013 precis som all evolution.<\/p>\n<p>Om en utvecklare p\u00e5 en low-code-plattform utf\u00f6r sitt arbete snabbare \u00e4n tv\u00e5 utvecklare utan low-code, s\u00e5 ger det f\u00f6retaget ett f\u00f6rspr\u00e5ng p\u00e5 alla s\u00e4tt. Intr\u00e4destr\u00f6skeln f\u00f6r low-code-l\u00f6sningar \u00e4r l\u00e4gre \u00e4n f\u00f6r \"traditionell\" teknologi, vilket har en positiv inverkan p\u00e5 problemet med brist p\u00e5 arbetskraft. Genom att anv\u00e4nda l\u00e5gkodverktyg kan samarbetet mellan funktionella team snabbas upp, och beslut om riktigheten av den valda v\u00e4gen i data science-forskning kan fattas snabbare. L\u00e5gkodsplattformar kan bli en drivkraft f\u00f6r digital transformation av organisationen, eftersom de l\u00f6sningar som skapas kan f\u00f6rst\u00e5s av icke-tekniska specialister (s\u00e4rskilt f\u00f6retagsanv\u00e4ndare). <\/p>\n<p>Om du har tight tidsramar, komplex aff\u00e4rslogik, brist p\u00e5 teknisk expertis och beh\u00f6ver snabba upp time to market, \u00e4r low-code ett av s\u00e4tten att tillfredsst\u00e4lla dina behov.<\/p>\n<p>Det \u00e4r sv\u00e5rt att f\u00f6rneka betydelsen av traditionella utvecklingsverktyg, men i m\u00e5nga fall \u00e4r anv\u00e4ndningen av l\u00e5gkods-l\u00f6sningar det b\u00e4sta s\u00e4ttet att \u00f6ka effektiviteten i de uppgifter som ska l\u00f6sas.<br \/>\n<br \/>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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\udd47Anv\u00e4ndning av low-code i analysplattformar | ProHoster","description":"B\u00e4sta l\u00e4sare, god dag! Att bygga IT-plattformar f\u00f6r insamling och analys av data \u00e4r en uppgift som f\u00f6rr eller senare uppst\u00e5r f\u00f6r alla f\u00f6retag vars verksamhet bygger p\u00e5 en intellektuell modell.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/95283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=95283"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/95283\/revisions"}],"predecessor-version":[{"id":162190,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/95283\/revisions\/162190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/95284"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=95283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=95283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=95283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}