{"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\/no\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","title":{"rendered":"Bruken av low-code i analytiske plattformer","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Kj\u00e6re lesere, god dag!<\/p>\n<p>Utviklingen av IT-plattformer for \u00e5 samle og analysere data vil f\u00f8r eller siden bli aktuelt for enhver bedrift som baserer seg p\u00e5 en intellektuelt krevende tjenestemodell eller skapelsen av teknisk komplekse produkter. \u00c5 bygge analytiske plattformer er en komplisert og tidkrevende oppgave. Men enhver oppgave kan forenkles. I denne artikkelen \u00f8nsker jeg \u00e5 dele erfaringer med bruk av low-code-verkt\u00f8y som hjelper til med \u00e5 lage analytiske l\u00f8sninger. Denne erfaringen ble oppn\u00e5dd gjennom implementeringen av en rekke prosjekter innen Big Data Solutions i selskapet \u00abNeoflex\u00bb. Big Data Solutions avdelingen i \u00abNeoflex\u00bb har siden 2005 jobbet med sp\u00f8rsm\u00e5l knyttet til bygging av datalagre og dataviker, l\u00f8st oppgaver knyttet til optimalisering av hastigheten p\u00e5 informasjonsbehandling og arbeidet med metodologi for datakvalitetsstyring.<\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/ca066793a937041577085dfb813f979e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c5 unng\u00e5 bevisst akkumulering av svakt og\/eller sterkt strukturerte data vil v\u00e6re umulig for noen. Kanskje selv for sm\u00e5 bedrifter. For n\u00e5r en lovende entrepren\u00f8r skal skalere opp driften, vil han bli m\u00f8tt med sp\u00f8rsm\u00e5l om \u00e5 utvikle et lojalitetsprogram, vil \u00f8nske \u00e5 analysere effektiviteten av salgssteder, tenke p\u00e5 m\u00e5lrettet reklame og bekymre seg for ettersp\u00f8rselen etter tilleggsprodukter. I f\u00f8rste omgang kan oppgaven l\u00f8ses \"omedelbart\". Men n\u00e5r virksomheten vokser, vil overgangen til en analytisk plattform bli uunng\u00e5elig.<\/p>\n<p>Men n\u00e5r kan dataanalytiske oppgaver bli til oppgaver av klasse \u00abRocket Science\u00bb? Kanskje i det \u00f8yeblikket vi snakker om virkelig store data.<br \/>\nFor \u00e5 forenkle \u00abRocket Science\u00bb-oppgaven, kan man spise en elefant bit for bit. <\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/f81e7704b91a5b95303e4240d6012730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJo st\u00f8rre diskrete og autonome dine applikasjoner\/tjenester\/mikrotjenester er, jo lettere vil det v\u00e6re for deg, kollegene dine og hele virksomheten \u00e5 ford\u00f8ye elefanten.<\/p>\n<p>Denne posten ble bekreftet av nesten alle v\u00e5re kunder, som omorganiserte landskapet basert p\u00e5 ingeni\u00f8rpraksis fra DevOps-team.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMen selv med en \u00abseparert, elefant-diett\u00bb har vi gode sjanser for \u00abovermetting\u00bb av IT-landskapet. I dette \u00f8yeblikket er det verdt \u00e5 stoppe opp, trekke pusten og se mot <b>low-code engineering platform<\/b>.<\/p>\n<p>Mange utviklere frykter utsiktene til \u00e5 havne i en karrierestopp ved \u00e5 g\u00e5 bort fra direkte koding til \u00e5 \u00abdra\u00bb p\u00e5 grensesnitt i low-code systemer. Men fremkomsten av maskiner f\u00f8rte ikke til ingeni\u00f8rers forsvinning, men hevet arbeidet deres til et nytt niv\u00e5!<\/p>\n<p>La oss finne ut hvorfor.<\/p>\n<p>Dataanalyse innen logistikk, telekommunikasjonsbransjen, medieforskning og finanssektoren er alltid knyttet til f\u00f8lgende sp\u00f8rsm\u00e5l: <\/p>\n<ul>\n<li>Hastigheten p\u00e5 automatisert analyse;<\/li>\n<li>Muligheten for \u00e5 gjennomf\u00f8re eksperimenter uten \u00e5 p\u00e5virke hovedstr\u00f8mmen av databehandling;<\/li>\n<li>Troverdighet av de forberedte dataene;<\/li>\n<li>Sporing av endringer og versjonering;<\/li>\n<li>Data provenance, Data lineage, CDC;<\/li>\n<li>Rask levering av nye funksjoner til produksjonsmilj\u00f8et;<\/li>\n<li>Og det ber\u00f8mte: kostnadene ved utvikling og vedlikehold.<\/li>\n<\/ul>\n<p>\nDet vil si at ingeni\u00f8rer har et stort antall h\u00f8yniv\u00e5oppgaver som bare kan utf\u00f8res med tilstrekkelig effektivitet n\u00e5r de har renset tankene fra lavniv\u00e5 utviklingsoppgaver.<\/p>\n<p>Forutsetningene for at utviklere g\u00e5r over til et nytt niv\u00e5 har v\u00e6rt evolusjonen og digitaliseringen av virksomheter. Verdien av utvikleren endres ogs\u00e5: det er en betydelig mangel p\u00e5 utviklere som kan dykke inn i essensen av konseptene for automatisert virksomhet.<\/p>\n<p>La oss lage en analogi med lavniv\u00e5 og h\u00f8yniv\u00e5 programmeringsspr\u00e5k. Overgangen fra lavniv\u00e5spr\u00e5k til h\u00f8yniv\u00e5spr\u00e5k er overgangen fra \u00e5 skrive \u00abdirekte direktiver p\u00e5 maskinspr\u00e5k\u00bb til \u00e5 skrive \u00abdirektiver p\u00e5 menneskespr\u00e5k\u00bb. Dette betyr \u00e5 legge til et lag av abstraksjon. I s\u00e5 fall er overgangen til low-code plattformer fra h\u00f8yniv\u00e5 programmeringsspr\u00e5k en overgang fra \u00abdirektiver p\u00e5 menneskespr\u00e5k\u00bb til \u00abdirektiver p\u00e5 forretningsspr\u00e5k\u00bb. Skulle det finnes utviklere som blir triste av denne realiteten, s\u00e5 kan det hende de allerede har v\u00e6rt triste siden JavaScript ble introdusert, hvor sorteringsfunksjoner for arrayer benyttes. Og disse funksjonene har selvf\u00f8lgelig en programvareimplementering bak seg med andre midler fra samme h\u00f8yniv\u00e5 programmering.<\/p>\n<p><b>Derfor er low-code bare en ny niv\u00e5 av abstraksjon. <\/b><\/p>\n<h2>Praktisk erfaring med bruk av low-code.<\/h2>\n<p>\nTema low-code er ganske omfattende, men n\u00e5 vil jeg gjerne snakke om praktisk tiln\u00e6rming av \"l\u00e5gekodekonsepter\" med et eksempel fra et av v\u00e5re prosjekter.<\/p>\n<p>Avdelingen Big Data Solutions i selskapet \"Neoflex\" spesialiserer seg i stor grad p\u00e5 finanssektoren, og bygger datalager og datavann og automatiserer ulike rapporteringer. I denne nisjen har bruken av low-code lenge blitt en standard. Blant de ulike low-code-verkt\u00f8yene kan man nevne verkt\u00f8y for organisering av ETL-prosesser: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Eller Oracle Apex, som fungerer som en plattform for rask utvikling av brukergrensesnitt for tilgang til og redigering av data. Imidlertid inneb\u00e6rer bruken av lavkodeutviklingsverkt\u00f8y ikke alltid konstruksjonen av nisjeprogrammer p\u00e5 en kommersiell teknologistabel med en tydelig avhengighet av leverand\u00f8ren.<\/p>\n<p>Med low-code-plattformer kan man ogs\u00e5 organisere orkestrering av datastreamer, opprette data science-plattformer eller for eksempel moduler for datakvalitetskontroll. <\/p>\n<p>Et av de praktiske eksemplene p\u00e5 erfaringen med bruk av lavkodeutviklingsverkt\u00f8y er samarbeidet mellom \"Neoflex\" og selskapet Mediascope, en av lederne innen det russiske medieforskningsmarkedet. En av forretningsoppgavene til dette selskapet er produksjon av data som gj\u00f8r at annons\u00f8rer, nettplattformer, TV-kanaler, radiostasjoner, reklamebyr\u00e5er og merker kan ta beslutninger om kj\u00f8p av reklame og planlegge markedsf\u00f8ringskommunikasjonene sine. <\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/d6410c1fe93231281bdd536798fe7c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMedieforskning er en teknologisk kompleks virksomhet. Gjenkjenning av videoinnhold, innsamling av data fra enheter som analyserer seing, m\u00e5ling av aktivitet p\u00e5 nettressurser \u2013 alt dette inneb\u00e6rer at selskapet m\u00e5 ha stor IT-st\u00f8tte og enorm erfaring i \u00e5 bygge analytiske l\u00f8sninger. Men den eksponentielle veksten i mengden informasjon, samt antall og mangfold av kildene, tvinger data-IT-industrien til \u00e5 stadig utvikle seg. Den enkleste l\u00f8sningen for skalering av den allerede fungerende analytiske plattformen Mediascope kunne v\u00e6rt \u00e5 ansette flere IT-ansatte. Men en langt mer effektiv l\u00f8sning er \u00e5 akselerere utviklingsprosessen. Ett av stegene som kan f\u00f8re i denne retningen, kan v\u00e6re bruken av low-code-plattformer.<\/p>\n<p>Ved prosjektstart hadde selskapet allerede en fungerende produktl\u00f8sning. Imidlertid kunne l\u00f8sningen basert p\u00e5 MSSQL ikke fullt ut oppfylle forventningene om skalerbarhet med akseptable kostnader for tilpassinger.<\/p>\n<p>Oppgaven vi stod overfor var virkelig ambisi\u00f8s \u2013 Neoflex og Mediascope skulle lage en industriell l\u00f8sning p\u00e5 mindre enn ett \u00e5r, med krav om \u00e5 lansere MVP i l\u00f8pet av f\u00f8rste kvartal fra startdato.<\/p>\n<p>Som grunnlag for byggingen av den nye dataplattformen, basert p\u00e5 low-code-beregninger, ble teknologi-stakken Hadoop valgt. Standard for datalagring ble HDFS med bruk av filer i parquet-format. For tilgang til dataene i plattformen ble Hive brukt, hvor alle tilgjengelige datamodeller presenteres som eksterne tabeller. Datainnhenting i lagringen ble realisert ved hjelp av Kafka og Apache NiFi.<\/p>\n<p>Low-code-verkt\u00f8yet i dette konseptet ble brukt for \u00e5 optimalisere den mest arbeidsintensive oppgaven ved byggingen av en analyseplattform \u2013 databel\u00f8pningen.<\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/fe62234ab0ae611a0c4a536ca68af898.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHovedmekanismen for datamapping ble valgt som low-code-verkt\u00f8yet Datagram. <b>Neoflex Datagram<\/b> er et verkt\u00f8y for utvikling av transformasjoner og datastreams. <br \/>\nVed \u00e5 bruke dette verkt\u00f8yet, kan man klare seg uten \u00e5 skrive Scala-kode \u00abmanuelt\u00bb. Scala-kode genereres automatisk ved hjelp av tiln\u00e6rmingen Model Driven Architecture.<\/p>\n<p>En \u00e5penbar fordel med denne tiln\u00e6rmingen er akselerasjonen av utviklingsprosessen. Men i tillegg til hastighet er det ogs\u00e5 f\u00f8lgende fordeler: <\/p>\n<ul>\n<li>Visning av innhold og struktur av kilder\/mottakere;<\/li>\n<li>Sporing av opprinnelsen til objekter i datastreamen ned til enkeltfelt (lineage);<\/li>\n<li>Delvis utf\u00f8ring av transformasjoner med visning av mellomresultater;<\/li>\n<li>Visning av kildekoden og justering f\u00f8r utf\u00f8relse;<\/li>\n<li>Automatisk validering av transformasjoner;<\/li>\n<li>Automatisk lastet ned data 1 til 1.<\/li>\n<\/ul>\n<p>\nInngangsterskottet for low-code-l\u00f8sninger for generering av transformasjoner er ganske lavt: utvikleren m\u00e5 ha kunnskap om SQL og erfaring med ETL-verkt\u00f8y. Det er verdt \u00e5 merke seg at code-driven-transformasjonsgeneratorer ikke er ETL-verkt\u00f8y i bred forstand. Low-code-verkt\u00f8y kan mangle sitt eget milj\u00f8 for \u00e5 kj\u00f8re koden. Det vil si at den genererte koden vil bli kj\u00f8rt i det milj\u00f8et som allerede eksisterte i klyngen f\u00f8r installasjonen av low-code-l\u00f8sningen. Dette er nok en fordel for low-code, ettersom en \"klassisk\" utviklingsteam kan arbeide parallelt og implementere funksjonalitet, for eksempel i ren Scala-kode. Innf\u00f8ringen av forbedringer fra begge team i produksjon vil v\u00e6re enkel og \"s\u00f8ml\u00f8s\".<\/p>\n<p>Det er verdt \u00e5 nevne at i tillegg til low-code finnes det ogs\u00e5 no-code-l\u00f8sninger. I sin natur er de ulike. Low-code lar i st\u00f8rre grad utvikleren gripe inn i den genererte koden. I tilfelle av Datagram er det mulig \u00e5 se og redigere den genererte Scala-koden, mens no-code kanskje ikke tilbyr denne muligheten. Denne forskjellen er betydelig b\u00e5de n\u00e5r det gjelder fleksibilitet i l\u00f8sningen og komfort og motivasjon for dataingeni\u00f8rer i arbeidet. <\/p>\n<h2>L\u00f8sningens arkitektur<\/h2>\n<p>\nLa oss pr\u00f8ve \u00e5 unders\u00f8ke hvordan low-code-verkt\u00f8yet hjelper med \u00e5 l\u00f8se oppgaven med \u00e5 optimalisere hastigheten p\u00e5 utviklingen av funksjoner for databehandling. F\u00f8rst b\u00f8r vi se p\u00e5 den funksjonelle arkitekturen til systemet. I dette tilfellet er et eksempel modellen for dataproduksjon for medieforskning.<\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/365f1b1cf69bf2a71854eb05c5bba809.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Datakildene i v\u00e5rt tilfelle er sv\u00e6rt varierte og mangfoldige:<\/b><\/p>\n<ul>\n<li>Pipiemetre (TV-metre) er programvare- og maskinvarer som leser brukeratferd hos respondentene i TV-panelet \u2013 hvem, n\u00e5r og hvilken TV-kanal som ble sett i husholdningen som deltar i unders\u00f8kelsen. Den leverte informasjonen er en str\u00f8m av intervaller for TV-seing koblet til mediepakken og medieproduktet. Dataene p\u00e5 lastetrinnet til Data Lake kan berikes med demografiske attributter, kobling til geostrat, tidssone og annen informasjon som er n\u00f8dvendig for \u00e5 analysere TV-seing av et bestemt medieprodukt. M\u00e5lingene kan brukes til \u00e5 analysere eller planlegge reklamekampanjer, vurdere publikumets aktivitet og preferanser, samt lage sendeskjemaer;<\/li>\n<li>Dataene kan komme fra systemer for overv\u00e5king av str\u00f8mmende TV-sendinger og m\u00e5ling av seing av innhold p\u00e5 videoressurser p\u00e5 internett;<\/li>\n<li>M\u00e5lingsverkt\u00f8y i web-milj\u00f8et, b\u00e5de site-centric og user-centric tellere. Dataleverand\u00f8rer for Data Lake kan ogs\u00e5 v\u00e6re en nettleserutvidelse som research bar og en mobilapplikasjon med innebygde <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/no\/vpn\/\"   title=\"VPN\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"133\">VPN<\/a>.<\/li>\n<li>Data kan ogs\u00e5 komme fra plattformer som konsoliderer resultater fra utfylte nettunders\u00f8kelser og resultatene fra telefonintervjuer i selskapets sp\u00f8rreunders\u00f8kelser;<\/li>\n<li>Ytterligere berikelse av data lake kan skje ved \u00e5 laste opp informasjon fra loggene til samarbeidspartnerne.<\/li>\n<\/ul>\n<p>\nImplementeringen av as is-lasting fra kildesystemene til prim\u00e6r staging av r\u00e5data kan organiseres p\u00e5 ulike m\u00e5ter. Ved \u00e5 bruke low-code for disse form\u00e5lene er automatisk generering av lasterutiner basert p\u00e5 metadata mulig. Det er ikke n\u00f8dvendig \u00e5 g\u00e5 ned til utviklingsniv\u00e5 for mappene fra kilde til m\u00e5l. For \u00e5 realisere den automatiske lastingen m\u00e5 vi koble til kilden og deretter definere listen over enhetene som skal lastes inn i grensesnittet for lasting. Opprettelse av katalogstrukturen i HDFS vil skje automatisk og vil v\u00e6re i samsvar med datalagringsstrukturen i kildesystemet.<\/p>\n<p>Men i konteksten av dette prosjektet har vi besluttet \u00e5 ikke bruke mulighetene til low-code-plattformen, ettersom selskapet Mediascope allerede har begynt arbeidet med \u00e5 lage en tilsvarende tjeneste basert p\u00e5 Nifi + Kafka.<\/p>\n<p>Det er viktig \u00e5 merke seg at disse verkt\u00f8yene ikke er utskiftbare, men snarere komplement\u00e6re. Nifi og Kafka kan operere i b\u00e5de direkte (Nifi -&gt; Kafka) og omvendt (Kafka -&gt; Nifi) forbindelse. Den f\u00f8rste varianten ble brukt for medieforskningsplattformen.<\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/8284ef5bd6d3b947998ffd42bfb66dbd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI v\u00e5rt tilfelle m\u00e5tte Nifi behandle forskjellige datatyper fra kildesystemer og sende dem til Kafka-broker. Retningen p\u00e5 meldingene til en bestemt Kafka-topikk ble gjort ved hjelp av Nifi-prosessorer PublishKafka. Orkestrering og vedlikehold av disse pipeline'ene skjer i en visuell grensesnitt. Nifi-verkt\u00f8yet og bruken av Nifi + Kafka kan ogs\u00e5 beskrives som en lavkode-tiln\u00e6rming til utvikling, som har lav inngangsbarriere til Big Data-teknologier og akselererer utviklingsprosessen for applikasjoner. <\/p>\n<p>Neste trinn i prosjektimplementeringen var \u00e5 bringe detaljert data til et ensartet semantisk lagformat. Hvis en enhet har historiske attributter, skjer beregningen i sammenheng med den aktuelle partisjonen. Hvis enheten derimot ikke er historisk, kan enten en totalberegning av objektets innhold utf\u00f8res, eller man kan helt avst\u00e5 fra en beregning (p\u00e5 grunn av mangel p\u00e5 endringer). I denne fasen genereres n\u00f8kler for alle enheter. N\u00f8klene lagres i de relevante master-objektkatalogene i Hbase, som inneholder korrespondansen mellom n\u00f8klene i analyseplattformen og n\u00f8klene fra kildesystemene. Konsolideringen av atom\u00e6re enheter f\u00f8lger med berikelsen av resultatene fra den forel\u00f8pige beregningen av analytiske data. Frameworket for databehandlingen var Spark. Den beskrevne funksjonaliteten for \u00e5 bringe data til en enhetlig semantikk ble ogs\u00e5 implementert basert p\u00e5 kartleggingene fra lavkodeverkt\u00f8yet Datagram.<\/p>\n<p>I den m\u00e5lrettede arkitekturen var det n\u00f8dvendig \u00e5 sikre SQL-tilgang til dataene for forretningsbrukere. For dette alternativet ble Hive brukt. Registreringen av objekter i Hive skjer automatisk n\u00e5r alternativet \u00abRegistr Hive Table\u00bb er aktivert i lavkodeverkt\u00f8yet.<\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/a13f7260d067d3d21b7090bd8fa10aff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Styring av beregningsflyten<\/h2>\n<p>\nDatagram har et grensesnitt for \u00e5 designe arbeidsflyter. Kj\u00f8ring av kartlegginger kan gj\u00f8res ved hjelp av Oozie-planleggeren. I utviklergrensesnittet for arbeidsflyter kan man opprette skjemaer for parallell, sekvensiell eller betinget utf\u00f8relse av datatransformasjoner. Det er st\u00f8tte for shell scripts og java-programmer. Det er ogs\u00e5 mulig \u00e5 bruke <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/no\/server\/dts-los-angeles\/\"   title=\"serveren\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3662\">serveren<\/a> Apache Livy. Apache Livy brukes til \u00e5 kj\u00f8re applikasjoner direkte fra utviklingsmilj\u00f8et. <\/p>\n<p>Hvis selskapet allerede har sin egen prosessorkestrator, kan REST API brukes for \u00e5 integrere kartlegginger i den eksisterende arbeidsflyten. For eksempel har vi hatt ganske god erfaring med \u00e5 integrere kartlegginger skrevet i Scala inn i orkerstratorer skrevet i PLSQL og Kotlin. REST API for lavkodeverkt\u00f8yet inneb\u00e6rer operasjoner som generering av kj\u00f8rbar fil basert p\u00e5 kartleggingsdesign, kall av kartlegging, kall av sekvenser av kartlegginger, og selvf\u00f8lgelig overf\u00f8ring av URL-parametere for kj\u00f8ring av kartlegginger.<\/p>\n<p>Sammen med Oozie er det ogs\u00e5 mulig \u00e5 organisere beregningsflyt gjennom Airflow. Jeg vil ikke bruke lang tid p\u00e5 \u00e5 sammenligne Oozie og Airflow, men vil bare si at i konteksten av mediaforskningsprosjektet falt valget p\u00e5 Airflow. De viktigste argumentene denne gangen var et mer aktivt fellesskap som utvikler produktet, og et mer utviklet grensesnitt + API.<\/p>\n<p>Airflow er ogs\u00e5 bra fordi det bruker det mange elsker, Python, for \u00e5 beskrive beregningsprosesser. Generelt er det ikke s\u00e5 mange \u00e5pne kildekodeverkt\u00f8y for arbeidsflytstyring. Kj\u00f8ring og overv\u00e5king av prosessutf\u00f8relse (inkludert med Gantt-diagram) gir bare flere poeng til Airflow. <\/p>\n<p>Formatet p\u00e5 konfigurasjonsfilen for kj\u00f8ring av kartlegginger i lavkode-l\u00f8sningen ble spark-submit. Dette skjedde av to grunner. For det f\u00f8rste tillater spark-submit \u00e5 kj\u00f8re en jar-fil direkte fra konsollen. For det andre kan den inneholde all n\u00f8dvendig informasjon for \u00e5 konfigurere arbeidsflyten (som forenkler skriving av skripter som danner Dag).<br \/>\nDet mest vanlige elementet i Airflow-arbeidsflyten i v\u00e5rt tilfelle ble SparkSubmitOperator.<\/p>\n<p>SparkSubmitOperator gj\u00f8r det mulig \u00e5 kj\u00f8re jar-filer \u2014 pakkede kartlegginger fra Datagram med forh\u00e5ndsdefinerte inngangsparametere.<\/p>\n<p>Det er verdt \u00e5 merke seg at hver Airflow-oppgave kj\u00f8rer i en egen tr\u00e5d og ikke kjenner til andre oppgaver. Derfor skjer samhandling mellom oppgavene ved hjelp av kontrolloperat\u00f8rer, som DummyOperator eller BranchPythonOperator.<\/p>\n<p>Kombinasjonen av bruken av low-code-l\u00f8sningen Datagram med universaliseringen av konfigurasjonsfilene (som danner Dag) har f\u00f8rt til en betydelig akselerasjon og forenkling av utviklingsprosessen for datainnlasting.<\/p>\n<h2>Beregning av datavisninger<\/h2>\n<p>\nKanskje det mest intellektuelt krevende stadiet i produksjonen av analytiske data er trinnet med \u00e5 bygge datavisninger. I konteksten av en av databehandlingsstr\u00f8mmene til et forskningsselskap skjer det p\u00e5 dette stadiet en tilpasning til standardoversettelsen, med hensyn til tidssoner knyttet til sendenettverket. Det kan ogs\u00e5 v\u00e6re en tilpasning til det lokale sendingesystemet (lokale nyheter og reklame). I tillegg utf\u00f8res det p\u00e5 dette stadiet en oppdeling av intervaller for kontinuerlig visning av medieprodukter basert p\u00e5 analyse av visningsintervaller. Her skjer ogs\u00e5 \"vektlegging\" av seertallene basert p\u00e5 informasjon om deres betydning (beregning av korrigeringskoeffisienten).<\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/b5f90f7d1d95c97c9819218aab9079c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEt av trinnene i forberedelsen av datavisningene er validering av data. Valideringsalgoritmen er knyttet til anvendelsen av en rekke matematiske science-modeller. Imidlertid gj\u00f8r bruken av en low-code-plattform det mulig \u00e5 dele opp den komplekse algoritmen i en rekke visuelle kartlegginger som kan leses. Hver av kartleggingene utf\u00f8rer en spesifikk oppgave. Som f\u00f8lge av dette er det mulig med mellomliggende feils\u00f8king, logging og visualisering av trinnene i datatilberedningen. <\/p>\n<p>Det ble besluttet \u00e5 diskriminere valideringsalgoritmen i f\u00f8lgende undertrinn:<\/p>\n<ul>\n<li>Bygging av regresjonsavhengigheter for seertallene til TV-nettverket i regionen mot seertallene for alle nettverk i regionen over en 60-dagers periode. <\/li>\n<li>Beregning av studentiserte rester (avviket mellom faktiske verdier og de predikerte verdiene fra regresjonsmodellen) for alle regresjonspunkter og for den beregnede dagen.<\/li>\n<li>Utvelgelse av anomale par av region-TV-nettverk, der den studentiserte resten for den beregnede dagen overskrider normen (angitt av operasjonsinnstillingen).<\/li>\n<li>Gjenberegning av justert studentisert rester for anomal\u00f8se par region-teleklynge for hver respondent som s\u00e5 nettverket i regionen, med bestemmelse av bidraget fra denne respondenten (mengde endring i studentisert reste) ved ekskludering av denne respondentens visning fra utvalget.<\/li>\n<li>S\u00f8ke etter kandidater som, n\u00e5r de ekskluderes, f\u00e5r det studentiserte restetallet p\u00e5 beregningsdagen til \u00e5 normalisere seg. <\/li>\n<\/ul>\n<p>\nDet ovenst\u00e5ende eksempelet er en bekreftelse p\u00e5 hypotesen om at en dataingeni\u00f8r allerede har for mye \u00e5 tenke p\u00e5\u2026 Og hvis dette virkelig er en 'ingeni\u00f8r' og ikke bare en 'koder', s\u00e5 b\u00f8r frykten for profesjonell nedgradering ved bruk av low-code verkt\u00f8y v\u00e6re helt borte.<\/p>\n<h2>Hva mer kan low-code gj\u00f8re?<\/h2>\n<p>\nOmr\u00e5det for anvendelse av low-code verkt\u00f8yet for batch- og str\u00f8mming av databehandling uten behov for manuell koding i Scala er ikke begrenset.<\/p>\n<p>Bruken av low-code i utviklingen av datalake-er har blitt en viss standard for oss. Man kan kanskje si at l\u00f8sninger p\u00e5 Hadoop-stakken f\u00f8lger utviklingsveien til klassiske DWH basert p\u00e5 RDBMS. Low-code verkt\u00f8y p\u00e5 Hadoop-stakken kan h\u00e5ndtere b\u00e5de databehandlingsoppgaver og oppgaver knyttet til bygging av endelige BI-grensesnitt. Det er verdt \u00e5 merke seg at BI kan forst\u00e5s ikke bare som representasjon av data, men ogs\u00e5 som redigering av dem av forretningsbrukere. Denne funksjonaliteten brukes ofte av oss ved bygging av analytiske plattformer for finanssektoren. <\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/cde5ce9dac9fcc9356b2b0ed291e299c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBlant annet gj\u00f8r low-code og spesielt Datagram det mulig \u00e5 spore opprinnelsen til datastreamobjekter med atomaritet ned til individuelle felt (lineage). For dette er det implementert kobling til Apache Atlas og Cloudera Navigator i low-code-verkt\u00f8yet. I essensen m\u00e5 utvikleren registrere et sett med objekter i Atlas-ordb\u00f8ker og referere til de registrerte objektene n\u00e5r man bygger kartlegginger. Mekanismen for sporing av datatilh\u00f8righet eller analyse av objekters avhengigheter sparer betydelig tid n\u00e5r det er behov for \u00e5 gj\u00f8re endringer i beregningsalgoritmene. For eksempel, ved utarbeidelse av finansielle rapporter, gj\u00f8r dette grepet det lettere \u00e5 h\u00e5ndtere endringer i lovgivningen. Jo bedre vi forst\u00e5r mellomformelle avhengigheter n\u00e5r det gjelder objekter i detaljerte lag, desto f\u00e6rre \u00abbr\u00e5\u00bb feil vil vi m\u00f8te, og vi reduserer antall rework. <\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/0b351b116564090bd03f6adf3fc52616.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Data Kvalitet &amp; Low-code<\/h2>\n<p>\nEn annen oppgave implementert av low-code-verkt\u00f8yet i prosjektet til Mediascope, var oppgaven innen Data Kvalitet. En spesiell faktor ved implementeringen av datakontrolleren for forskningsselskapet var frav\u00e6ret av p\u00e5virkning p\u00e5 funksjonaliteten og hastigheten til den viktigste databehandlingsstr\u00f8mmen. For \u00e5 muliggj\u00f8re orkestrering av uavhengige datakontrollstr\u00f8mmer ble den velkjente Apache Airflow benyttet. S\u00e5 snart hvert trinn i dataproduksjonen var klart, ble den separate delen av DQ-linjen parallelt startet. <\/p>\n<p>Det anses som god praksis \u00e5 overv\u00e5ke datakvaliteten fra \u00f8yeblikket de blir generert i den analytiske plattformen. Med informasjon om metadatene kan vi allerede fra det \u00f8yeblikket informasjonen kommer inn i prim\u00e6rlaget, kontrollere overholdelse av grunnleggende betingelser \u2014 not null, constraints, foreign keys. Denne funksjonaliteten er basert p\u00e5 automatisk genererte kartlegginger av datakvalitetfamilien i Datagram. Kodegenereringen i dette tilfellet er ogs\u00e5 basert p\u00e5 metadata-modellen. I prosjektet til Mediascope ble koblingen gjort med metadataene fra produktet Enterprise Architect. <\/p>\n<p>Takket v\u00e6re koblingen mellom low-code-verkt\u00f8yet og Enterprise Architect ble f\u00f8lgende kontroller generert automatisk:<\/p>\n<ul>\n<li>Kontroll av tilstedev\u00e6relse av \"null\"-verdier i felt med modifikatoren \"not null\"; <\/li>\n<li>Kontroll av tilstedev\u00e6relse av duplikater av prim\u00e6rn\u00f8kkelen;<\/li>\n<li>Kontroll av enhetens fremmedn\u00f8kkel;<\/li>\n<li>Kontroll av unikhet av rader basert p\u00e5 et sett med felt.<\/li>\n<\/ul>\n<p>\nFor mer komplekse kontroller av tilgjengelighet og validitet av data, ble det laget en mapping med Scala Expression, som tar inn ekstern Spark SQL-kode for kontroller, utarbeidet av analytikere i Zeppelin.<\/p>\n<p><img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/f6dcc5719077a3186d23d7bdcb412c45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelvf\u00f8lgelig m\u00e5 man gradvis g\u00e5 frem mot autogenerering av kontroller. I forbindelse med det beskrevne prosjektet ble f\u00f8lgende trinn forut for dette:<\/p>\n<ul>\n<li>DQ, implementert i Zeppelin-notater;<\/li>\n<li>DQ, integrert i mapping;<\/li>\n<li>DQ i form av separate massive mappings, som inneholder et helt sett av kontroller per enkelt enhet;<\/li>\n<li>Universelle parameteriserte DQ-mappings, som tar inn informasjon om metadata og forretningskontroller.<\/li>\n<\/ul>\n<p>\nKanskje den st\u00f8rste fordelen ved \u00e5 opprette en tjeneste for parameteriserte kontroller er redusering av tiden det tar \u00e5 levere funksjonalitet til produksjonsmilj\u00f8et. Nye kvalitetskontroller kan omg\u00e5 den klassiske m\u00f8nsteret for levering av kode indirekte gjennom utviklings- og testmilj\u00f8er:<\/p>\n<ul>\n<li>Alle kontroller av metadata genereres automatisk ved endring av modell i EA;<\/li>\n<li>Kontroller av datatilgjengelighet (bestemmelse av om noen data er tilgjengelige p\u00e5 et bestemt tidspunkt) kan genereres basert p\u00e5 en referanse som lagrer den forventede timingen for n\u00e5r en ny datasats vil dukke opp i forhold til objektene;<\/li>\n<li>Forretningskontroller for datavaliditet opprettes av analytikere i Zeppelin-notater, og sendes direkte til innstillingstabellene til DQ-modulen i produksjonsmilj\u00f8et. <\/li>\n<\/ul>\n<p>\nRisikoen for direkte levering av skript til produksjon er i utgangspunktet frav\u00e6rende. Selv ved en syntaksfeil er det maksimalt hva vi kan v\u00e6re utsatt for \u2013 en kontroll vil ikke bli utf\u00f8rt, ettersom data beregningsstr\u00f8mmen og kvalitetskontrollstr\u00f8mmen er atskilt fra hverandre.<\/p>\n<p>I bunn og grunn er DQ-tjenesten kontinuerlig aktivert i produksjonsmilj\u00f8et og klar til \u00e5 begynne sitt arbeid ved ankomsten av en ny datasats. <\/p>\n<h2>In conclusion<\/h2>\n<p>\nFordeler ved bruk av low-code er \u00e5penbare. Utviklere trenger ikke \u00e5 utvikle applikasjonen fra bunnen av. Den avlastede programmereren gir resultater raskere. Hastigheten frigj\u00f8r i sin tur ekstra ressurser til \u00e5 h\u00e5ndtere optimaliseringssp\u00f8rsm\u00e5l. F\u00f8lgelig kan man i dette tilfellet forvente et mer kvalitetsfylt og raskt resultat.<\/p>\n<p><b>Selvf\u00f8lgelig er low-code ikke en panacea, og mirakler skjer ikke av seg selv:<\/b><\/p>\n<ul>\n<li>Low-code-industrien g\u00e5r gjennom en \u00abmodnings\u00bb-fase, og det fins forel\u00f8pig ingen enhetlige industrielle standarder;<\/li>\n<li>Mange low-code-l\u00f8sninger er ikke gratis, og anskaffelsen b\u00f8r v\u00e6re et bevisst valg, gjort med full tillit til den \u00f8konomiske gevinsten fra bruken;<\/li>\n<li>Mange low-code-l\u00f8sninger spiller ikke alltid godt sammen med GIT \/ SVN. Eller de er vanskelig \u00e5 bruke n\u00e5r den genererte koden skjules;<\/li>\n<li>Ved utvidelse av arkitekturen kan det v\u00e6re n\u00f8dvendig \u00e5 tilpasse low-code-l\u00f8sningen \u2013 noe som igjen fremkaller effekten av \u00abtilknytning og avhengighet\u00bb til leverand\u00f8ren av low-code-l\u00f8sningen.<\/li>\n<li>N\u00f8dvendig sikkerhetsniv\u00e5 er mulig, men sv\u00e6rt arbeidskrevende og komplisert \u00e5 implementere i low-code-systemer. Low-code-plattformer b\u00f8r ikke velges bare ut fra mulige gevinster. Ved valg b\u00f8r man stille sp\u00f8rsm\u00e5l om funksjonaliteten for tilgangsstyring og delegasjon\/eskalering av identitetsdata p\u00e5 tvers av hele IT-landskapet i organisasjonen.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Bruken av low-code i analytiske plattformer\" src=\"\/wp-content\/uploads\/2020\/09\/8ad44d2f71f519b70f5ae1e1fe722066.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen hvis du er klar over alle ulempene med det valgte systemet, og fordelene ved bruken likevel dominerer, s\u00e5 kan du g\u00e5 over til low-code uten frykt. Dessuten er overgangen til det uunng\u00e5elig \u2013 akkurat som enhver evolusjon.<\/p>\n<p>Hvis \u00e9n utvikler p\u00e5 en lavkodeplattform kan utf\u00f8re arbeidet sitt raskere enn to utviklere uten lavkode, gir dette selskapet en fordel p\u00e5 alle m\u00e5ter. Inngangsbarrieren til lavkode-l\u00f8sninger er lavere enn for tradisjonell teknologi, noe som har en positiv innvirkning p\u00e5 problemet med kompetansemangel. Bruken av lavkodeverkt\u00f8y kan akselerere samarbeidet mellom funksjonelle team og raskere ta beslutninger om gyldigheten av den valgte veien for data science-forskning. Lavkodeplattformer kan v\u00e6re \u00e5rsaken til digital transformasjon av organisasjonen, ettersom de produserte l\u00f8sningene kan v\u00e6re lett tilgjengelige for ikke-tekniske spesialister (spesielt for forretningsbrukere). <\/p>\n<p>Hvis du har stramme frister, tung forretningslogikk, mangel p\u00e5 teknologisk ekspertise, og trenger \u00e5 akselerere time to market, er lavkode en av m\u00e5tene \u00e5 m\u00f8te dine behov p\u00e5.<\/p>\n<p>Det er ikke riktig \u00e5 undervurdere betydningen av tradisjonelle utviklingsverkt\u00f8y, men i mange tilfeller er bruken av lavkode-l\u00f8sninger den beste m\u00e5ten \u00e5 \u00f8ke effektiviteten i oppgavene.<br \/>\n<br \/>Kilde: <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.5 - 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\/no\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"nn_NO\" \/>\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\/no\/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\udd47Bruken av lavkode i analyseteknologiene | ProHoster","description":"Kj\u00e6re lesere, god dag! Utfordringen med \u00e5 bygge IT-plattformer for innsamling og analyse av data oppst\u00e5r f\u00f8r eller senere for enhver bedrift hvis virksomhet er basert p\u00e5 intellektuelle modeller.","canonical_url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","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\/no\/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\/no\/wp-json\/wp\/v2\/posts\/95283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=95283"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/95283\/revisions"}],"predecessor-version":[{"id":162190,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/95283\/revisions\/162190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media\/95284"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=95283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=95283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=95283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}