{"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\/da\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","title":{"rendered":"Anvendelse af low-code i analysesystemer","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>K\u00e6re l\u00e6sere, god dag!<\/p>\n<p>Opgaven med at opbygge IT-platforme til indsamling og analyse af data opst\u00e5r f\u00f8r eller siden for enhver virksomhed, hvis forretningsmodel er baseret p\u00e5 intellektuel servicelevering eller udvikling af teknisk komplekse produkter. At bygge analytiske platforme er en kompleks og tidskr\u00e6vende opgave. Men enhver opgave kan forenkles. I denne artikel vil jeg dele erfaringer med brugen af low-code-v\u00e6rkt\u00f8jer, der hj\u00e6lper med at skabe analytiske l\u00f8sninger. Denne erfaring er blevet erhvervet gennem implementeringen af en r\u00e6kke projekter inden for Big Data Solutions hos NeoFlex. Big Data Solutions hos NeoFlex har siden 2005 arbejdet med opbygning af datalagre og data-s\u00f8er, optimering af hastigheden af informationsbehandling og udvikling af metodologier til data governance.<\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/ca066793a937041577085dfb813f979e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet er umuligt at undg\u00e5 bevidst opsamling af svagt og\/eller st\u00e6rkt strukturerede data. M\u00e5ske endda selv for sm\u00e5 virksomheder. For n\u00e5r en lovende iv\u00e6rks\u00e6tter skal skalere sin forretning, vil han eller hun st\u00f8de p\u00e5 sp\u00f8rgsm\u00e5l om udvikling af loyalitetsprogrammer, \u00f8nsker at analysere effektiviteten af salgssteder, overveje m\u00e5lrettet reklame og bekymre sig om eftersp\u00f8rgslen p\u00e5 supplerende produkter. I f\u00f8rste omgang kan opgaven l\u00f8ses ad hoc. Men n\u00e5r virksomheden vokser, bliver det uundg\u00e5eligt at g\u00e5 til en analytisk platform.<\/p>\n<p>Men hvorn\u00e5r kan dataanalytikopgaver udvikle sig til opgaver, der kan karakteriseres som \u00abRocket Science\u00bb? M\u00e5ske i det \u00f8jeblik, hvor der virkelig er tale om store datam\u00e6ngder.<br \/>\nFor at forenkle opgaven \u00abRocket Science\u00bb kan man spise elefanten i bidder. <\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/f81e7704b91a5b95303e4240d6012730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJo st\u00f8rre diskrethed og autonomi dine applikationer\/tilbud\/mikrotjenester har, desto lettere bliver det for dig, dine kolleger og hele virksomheden at h\u00e5ndtere elefanten.<\/p>\n<p>Denne konklusion har n\u00e6sten alle vores kunder n\u00e5et, idet de har omstruktureret landskabet baseret p\u00e5 ingeni\u00f8rpraksis fra DevOps-teams.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMen selv med en \u00abadskilt, elefant-di\u00e6t\u00bb har vi stadig gode chancer for \u00aboverbelastning\u00bb af IT-landskabet. P\u00e5 dette tidspunkt er det v\u00e6rd at stoppe, tage en dyb ind\u00e5nding og se mod <b>low-code engineering platform<\/b>.<\/p>\n<p>Mange udviklere er bange for udsigten til at ende i en karrierem\u00e6ssig blindgyde ved at g\u00e5 v\u00e6k fra direkte kodning til at \"tr\u00e6kke\" pilene i UI-interface i low-code-systemer. Men introduktionen af maskiner f\u00f8rte ikke til ingeni\u00f8rernes forsvinden, men l\u00f8ftede deres arbejde til et nyt niveau!<\/p>\n<p>Lad os finde ud af hvorfor.<\/p>\n<p>Analyse af data inden for logistik, telekommunikationsindustrien, medieforskning og finanssektoren er altid forbundet med f\u00f8lgende sp\u00f8rgsm\u00e5l: <\/p>\n<ul>\n<li>Hastigheden af automatiseret analyse;<\/li>\n<li>Muligheden for at udf\u00f8re eksperimenter uden at p\u00e5virke hovedproduktionsstr\u00f8mmen af data;<\/li>\n<li>P\u00e5lideligheden af de forberedte data;<\/li>\n<li>Sporing af \u00e6ndringer og versionering;<\/li>\n<li>Data provenance, Data lineage, CDC;<\/li>\n<li>Hurtigheden ved at levere nye funktioner til produktionsmilj\u00f8et;<\/li>\n<li>Og den berygtede: omkostningerne ved udvikling og support.<\/li>\n<\/ul>\n<p>\nDet vil sige, at ingeni\u00f8rerne har et v\u00e6ld af h\u00f8jniveaufunktioner, som kun effektivt kan udf\u00f8res ved at rense sindet for lave niveau udviklingsopgaver.<\/p>\n<p>Foruds\u00e6tningerne for udvikleres overgang til et nyt niveau er evolution og digitalisering af forretningen. V\u00e6rdien af en udvikler \u00e6ndrer sig ogs\u00e5: der er en betydelig mangel p\u00e5 udviklere, der kan forst\u00e5 essensen af de automatiserede forretningskoncepter.<\/p>\n<p>Lad os lave en analogi mellem lavniveau- og h\u00f8j-niveau programmeringssprog. Overgangen fra lavniveau-sprog til h\u00f8j-niveau-sprog er et skifte fra at skrive \"direkte direktiver p\u00e5 maskinsproget\" til \"direktiver p\u00e5 menneskesprog\". Det vil sige, at der tilf\u00f8jes et lag af abstraktion. I s\u00e5 fald er overgangen til low-code-platforme fra h\u00f8j-niveau programmeringssprog et skifte fra \"direktiver p\u00e5 menneskesprog\" til \"direktiver p\u00e5 forretningssprog\". Hvis der er udviklere, der bliver kede af dette faktum, s\u00e5 har de m\u00e5ske v\u00e6ret kede af det siden JavaScript kom til verden, hvor array-sorteringsfunktioner bruges. Og disse funktioner har naturligvis en programmatisk implementering bag kulisserne med de samme h\u00f8j-niveau programmeringsmidler.<\/p>\n<p><b>Derfor er low-code blot en yderligere form for abstraktion. <\/b><\/p>\n<h2>Anvendelsesm\u00e6ssig erfaring med low-code<\/h2>\n<p>\nLow-code-temaen er ganske omfattende, men nu vil jeg gerne tale om anvendelsen af \"low-code-koncepter\" i et af vores projekter.<\/p>\n<p>Big Data Solutions-afdelingen hos \"Neoflex\" specialiserer sig prim\u00e6rt i den finansielle sektor, hvor de bygger datalagre og dataseer og automatiserer forskellige rapporteringer. I denne niche er brugen af low-code blevet en standard. Blandt andre low-code-v\u00e6rkt\u00f8jer kan n\u00e6vnes v\u00e6rkt\u00f8jer til organisering af ETL-processer: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Eller Oracle Apex, som fungerer som en hurtig udviklingsplatform til adgangs- og dataredigeringsinterfaces. Men anvendelsen af low-code-udviklingsv\u00e6rkt\u00f8jer er ikke altid forbundet med at bygge specifikke applikationer p\u00e5 en kommerciel teknologistak med en tydelig afh\u00e6ngighed af en leverand\u00f8r.<\/p>\n<p>Med low-code-platforme kan man ogs\u00e5 organisere orkestrering af datastreams, skabe data science-platforme eller for eksempel moduler til kvalitetskontrol af data. <\/p>\n<p>Et af de praktiske eksempler p\u00e5 brugen af low-code-udviklingsv\u00e6rkt\u00f8jer er samarbejdet mellem \"Neoflex\" og Mediascope, en af de f\u00f8rende akt\u00f8rer p\u00e5 det russiske marked for medieforskning. En af virksomhedens opgaver er produktion af data, p\u00e5 baggrund af hvilke annonc\u00f8rer, onlineplatforme, tv-stationer, radiostationer, reklamebureauer og brands tr\u00e6ffer beslutninger om indk\u00f8b af reklame og planl\u00e6gger deres marketingkommunikation. <\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/d6410c1fe93231281bdd536798fe7c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMedieforskning er et teknologisk intensivt omr\u00e5de. Genkendelse af videomateriale, indsamling af data fra enheder, der analyserer visning, m\u00e5ling af aktivitet p\u00e5 webressourcer \u2013 alt dette kr\u00e6ver, at virksomheden har en stor IT-stab og colossalt erfaring med at bygge analytiske l\u00f8sninger. Men den eksponentielle v\u00e6kst i informationsm\u00e6ngden, antallet og mangfoldigheden af dens kilder kr\u00e6ver konstant udvikling af IT-databranchens industri. Den enkleste l\u00f8sning til at skalere den allerede fungerende analytiske platform Mediascope kunne v\u00e6re at \u00f8ge IT-staben. Men en langt mere effektiv l\u00f8sning er at fremskynde udviklingsprocessen. Et af skridtene, der f\u00f8rer i denne retning, kunne v\u00e6re anvendelsen af low-code-platforme.<\/p>\n<p>Ved projektets start havde virksomheden allerede en fungerende produktl\u00f8sning. Implementeringen af l\u00f8sningen p\u00e5 MSSQL kunne dog ikke leve op til forventningerne om skalerbarhed af funktionaliteten, samtidig med at omkostningerne til tilpasning skulle v\u00e6re acceptable.<\/p>\n<p>Opgaven foran os var virkelig ambiti\u00f8s \u2013 \u00abNeoflex\u00bb og Mediascope havde til opgave at skabe en industriel l\u00f8sning p\u00e5 mindre end et \u00e5r, med det krav at MVP skulle lanceres i l\u00f8bet af f\u00f8rste kvartal fra projektstart.<\/p>\n<p>Som fundament for opbygningen af den nye dataplatform, baseret p\u00e5 low-code beregninger, blev tech-stakken Hadoop valgt. Standarden for datalagring blev HDFS med anvendelse af filformatet parquet. For at f\u00e5 adgang til dataene p\u00e5 platformen blev Hive brugt, hvor alle tilg\u00e6ngelige datavisninger pr\u00e6senteres som eksterne tabeller. Dataindl\u00e6sningen i lageret blev gennemf\u00f8rt ved hj\u00e6lp af Kafka og Apache NiFi.<\/p>\n<p>Low-code v\u00e6rkt\u00f8jet i dette koncept blev anvendt til at optimere den mest arbejdskr\u00e6vende opgave i opbygningen af den analytiske platform \u2013 databeskrivningsopgaven.<\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/fe62234ab0ae611a0c4a536ca68af898.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet prim\u00e6re v\u00e6rkt\u00f8j til datamapping blev low-code v\u00e6rkt\u00f8jet Datagram. <b>Neoflex Datagram<\/b> \u2013 er et v\u00e6rkt\u00f8j til udvikling af transformationer og datastreams. <br \/>\nVed at anvende dette v\u00e6rkt\u00f8j kan man undg\u00e5 at skrive Scala-kode \"manuelt\". Scala-koden genereres automatisk ved hj\u00e6lp af Model Driven Architecture-tilgangen.<\/p>\n<p>Den \u00e5benlyse fordel ved denne tilgang er, at udviklingsprocessen fremskyndes. Men udover hastigheden er der ogs\u00e5 f\u00f8lgende fordele: <\/p>\n<ul>\n<li>Visning af indholdet og strukturen af kilder\/m\u00e5l;<\/li>\n<li>Sporing af oprindelsen af objekter i datastreams ned til individuelle felter (lineage);<\/li>\n<li>Delvis udf\u00f8relse af transformationer med visning af mellemliggende resultater;<\/li>\n<li>Visning af kildekoden og dens redigering f\u00f8r udf\u00f8relse;<\/li>\n<li>Automatisk validering af transformationer;<\/li>\n<li>Automatisk indl\u00e6sning af data 1 til 1.<\/li>\n<\/ul>\n<p>\nIndgangen til low-code-l\u00f8sninger til generering af transformationer er relativt lav: udvikleren skal have kendskab til SQL og erfaring med ETL-v\u00e6rkt\u00f8jer. Det skal bem\u00e6rkes, at code-driven transformation generators ikke er ETL-v\u00e6rkt\u00f8jer i den brede forstand af ordet. Low-code-v\u00e6rkt\u00f8jer har muligvis ikke deres eget milj\u00f8 til k\u00f8rsel af kode. Det vil sige, at den genererede kode vil blive k\u00f8rt i det milj\u00f8, der allerede eksisterede p\u00e5 klyngen f\u00f8r installationen af low-code-l\u00f8sningen. Og det er m\u00e5ske endnu en fordel ved low-code. Da der kan arbejde et 'klassisk' team parallelt med low-code-teamet, der implementerer funktionalitet, for eksempel i ren Scala-kode. Integrationen af forbedringer fra begge teams til produktion vil v\u00e6re enkel og 's\u00f8ml\u00f8s'.<\/p>\n<p>Det er sikkert v\u00e6rd at bem\u00e6rke, at udover low-code er der ogs\u00e5 no-code l\u00f8sninger. Og i sin essens er dette forskellige ting. Low-code giver i h\u00f8jere grad udvikleren mulighed for at blande sig i den genererede kode. I tilf\u00e6ldet med Datagram er det muligt at se og redigere den genererede Scala-kode, mens no-code muligvis ikke tilbyder denne mulighed. Denne forskel er betydelig, ikke kun hvad ang\u00e5r l\u00f8sningen fleksibilitet, men ogs\u00e5 med hensyn til komfort og motivation i arbejdet for dataingeni\u00f8rer. <\/p>\n<h2>L\u00f8sningsarkitektur<\/h2>\n<p>\nLad os fors\u00f8ge at forst\u00e5, hvordan low-code-v\u00e6rkt\u00f8jet bidrager til at l\u00f8se opgaven med at optimere hastigheden af udviklingen af databehandlingsfunktionalitet. F\u00f8rst skal vi se p\u00e5 systemets funktionsarkitektur. I dette tilf\u00e6lde er eksemplet en datamodel til mediaforskning.<\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/365f1b1cf69bf2a71854eb05c5bba809.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Datakilderne i vores tilf\u00e6lde er meget forskellige og mangfoldige:<\/b><\/p>\n<ul>\n<li>Peoplemetre (TV-metres) er software- og hardware-enheder, der afl\u00e6ser brugernes adf\u00e6rd hos respondenterne i tv-panelet \u2013 hvem, hvorn\u00e5r og hvilken tv-kanal der blev set i husholdninger, der deltager i unders\u00f8gelsen. De leverede oplysninger er en str\u00f8m af seerintervaller knyttet til mediepakken og medieproduktet. Dataene under upload til Data Lake kan beriges med demografiske attributter, geografisk tilknytning, tidszone og andre oplysninger, der er n\u00f8dvendige for at analysere tv-seing af et bestemt medieprodukt. De indsamlede m\u00e5linger kan bruges til analyse eller planl\u00e6gning af reklamekampagner, vurdering af publikums aktiviteter og pr\u00e6ferencer, samt til at lave programoversigter;<\/li>\n<li>Data kan komme fra overv\u00e5gningssystemer for streaming-tv og m\u00e5ling af visningen af indhold p\u00e5 videoressourcer p\u00e5 internettet;<\/li>\n<li>M\u00e5leinstrumenter i web-milj\u00f8et, herunder b\u00e5de site-centric og user-centric t\u00e6llere. En dataleverand\u00f8r til Data Lake kan v\u00e6re en browserudvidelse kaldet research bar og en mobilapplikation med indbygget; <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/da\/vpn\/\"   title=\"VPN\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"133\">VPN<\/a>.<\/li>\n<li>Data kan ogs\u00e5 komme fra platforme, der konsoliderer resultaterne af udfyldelse af online-unders\u00f8gelser og resultaterne af telefoninterviews i unders\u00f8gelsesfirmaerne;<\/li>\n<li>Yderligere berigelse af datalaget kan finde sted ved at uploade oplysninger fra logs fra partnerfirmaer.<\/li>\n<\/ul>\n<p>\nImplementeringen af as is upload fra kildesystemer til prim\u00e6r staging af r\u00e5data kan organiseres p\u00e5 forskellige m\u00e5der. Ved anvendelse af low-code til disse form\u00e5l er det muligt at generere upload-scripts automatisk baseret p\u00e5 metadata. Her er der ikke behov for at g\u00e5 ned p\u00e5 niveauet for udvikling af source to target mapping. For at realisere automatisk upload skal vi etablere forbindelse til kilden og derefter specificere i upload-gr\u00e6nsefladen listen over entiteter, der skal uploades. Oprettelse af katalogstrukturen i HDFS vil ske automatisk og vil svare til dataopbevaringsstrukturen i kildesystemet.<\/p>\n<p>Dog har vi i forbindelse med dette projekt besluttet ikke at benytte denne mulighed for low-code-platformen, da virksomheden Mediascope allerede er begyndt at arbejde p\u00e5 at skabe en tilsvarende service med Nifi + Kafka.<\/p>\n<p>Det er vigtigt at understrege, at disse v\u00e6rkt\u00f8jer ikke er erstatninger for hinanden, men snarere supplerer hinanden. Nifi og Kafka kan arbejde i b\u00e5de direkte (Nifi -&gt; Kafka) og omvendte (Kafka -&gt; Nifi) forbindelser. Den f\u00f8rste variant af forbindelsen blev anvendt til medieforskningsplatformen.<\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/8284ef5bd6d3b947998ffd42bfb66dbd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI vores tilf\u00e6lde var det n\u00f8dvendigt for Nifi at behandle forskellige datatyper fra kildesystemer og sende dem til Kafka-brokeren. Meddelelsesretningen til et bestemt Kafka-emne blev udf\u00f8rt ved hj\u00e6lp af Nifi-processorerne PublishKafka. Orkestreringen og vedligeholdelsen af disse pipelines udf\u00f8res i det visuelle interface. Nifi-v\u00e6rkt\u00f8jet og brugen af kombinationen Nifi + Kafka kan ogs\u00e5 kaldes en low-code-tilgang til udvikling, som har en lav indgangsbarriere til Big Data-teknologier og fremskynder udviklingsprocessen for applikationer. <\/p>\n<p>Det n\u00e6ste skridt i projektets implementering var at bringe detaljerne til et ensartet semantisk lag. I tilf\u00e6lde af at entiteten har historiske attributter, udf\u00f8res beregningen i konteksten af den betragtede partition. Hvis entiteten ikke er historisk, er der valgfrit mulighed for enten at omberegne alt indholdet af objektet eller helt at undlade at omberegne dette objekt (pga. manglende \u00e6ndringer). P\u00e5 dette stadium genereres n\u00f8gler for alle entiteter. N\u00f8glerne gemmes i de relevante master-objekter i Hbase-referencer, som indeholder match mellem n\u00f8glerne i den analytiske platform og n\u00f8glerne fra kildesystemerne. Konsolideringen af atom\u00e6re entiteter ledsages af berigelse med resultaterne af den forudg\u00e5ende beregning af de analytiske data. Frameworket til databehandling var Spark. Den beskrevne funktionalitet til at bringe data til ensartet semantik blev ogs\u00e5 implementeret baseret p\u00e5 mappingene af low-code-v\u00e6rkt\u00f8jet Datagram.<\/p>\n<p>I den m\u00e5lrettede arkitektur var det n\u00f8dvendigt at sikre SQL-adgang til dataene for forretningsbrugere. Til denne mulighed blev Hive anvendt. Registreringen af objekter i Hive sker automatisk, n\u00e5r indstillingen \"Registr Hive Table\" aktiveres i low-code-v\u00e6rkt\u00f8jet.<\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/a13f7260d067d3d21b7090bd8fa10aff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>H\u00e5ndtering af beregningsstr\u00f8mmen<\/h2>\n<p>\nDatagram har et interface til at bygge workflow-designs. K\u00f8rsel af mappinger kan udf\u00f8res ved hj\u00e6lp af Oozie-planl\u00e6ggeren. I udviklerens interface til workflows er det muligt at oprette skemaer for parallelle, sekventielle eller betingede datatransformationsprocesser. Der er support for shell scripts og java-programmer. Det er ogs\u00e5 muligt at bruge <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/da\/server\/dts-los-angeles\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3662\">server<\/a> Apache Livy. Apache Livy bruges til at k\u00f8re applikationer direkte fra udviklingsmilj\u00f8et. <\/p>\n<p>Hvis virksomheden allerede har sin egen procesorkestrator, er det muligt at bruge REST API til at integrere mappinger i den eksisterende str\u00f8m. For eksempel har vi haft en ret succesfuld erfaring med at integrere mappinger i Scala i orkestratorer skrevet i PLSQL og Kotlin. REST API til det lavkode-v\u00e6rkt\u00f8j omfatter operationer som generering af k\u00f8rsel i henhold til designet for mappingen, kald af mappingen, kald af sekvensen fra mappinger og naturligvis overf\u00f8rsel af URL-parametre til at starte mappingerne.<\/p>\n<p>Sammen med Oozie kan der opstilles en beregningsstr\u00f8m ved hj\u00e6lp af Airflow. Jeg vil ikke bruge alt for lang tid p\u00e5 at sammenligne Oozie og Airflow, men blot sige, at valget i forbindelse med arbejdet i medieforskningsprojektet faldt p\u00e5 Airflow. De vigtigste argumenter var et mere aktivt f\u00e6llesskab, der udvikler produktet, samt et mere udviklet interface + API.<\/p>\n<p>Airflow er ogs\u00e5 godt, fordi det bruger det meget elskede Python til at beskrive beregningsprocesser. Generelt er der ikke s\u00e5 mange open source workflow management platforme. K\u00f8rsel og overv\u00e5gning af processer (herunder med Gantt-diagram) tilf\u00f8jer kun flere points til Airflows karma. <\/p>\n<p>Konfigurationsfilformatet til at k\u00f8re mappinger i lavkode-l\u00f8sningen blev spark-submit. Dette skete af to grunde. For det f\u00f8rste tillader spark-submit at k\u00f8re en jar-fil direkte fra konsollen. For det andet kan det indeholde alle n\u00f8dvendige oplysninger til konfiguration af arbejdsgangen (hvilket g\u00f8r det lettere at skrive scripts, der danner Dag).<br \/>\nDen hyppigst forekommende komponent i Airflow pipeline i vores tilf\u00e6lde blev SparkSubmitOperator.<\/p>\n<p>SparkSubmitOperator giver mulighed for at k\u00f8re jar-filer - pakkede mappinger fra Datagram med foruddefinerede inddata.<\/p>\n<p>Det skal n\u00e6vnes, at hver Airflow-opgave udf\u00f8res i en separat tr\u00e5d og ikke har kendskab til andre opgaver. Derfor foreg\u00e5r interaktionen mellem opgaverne ved hj\u00e6lp af kontroloperatorer som DummyOperator eller BranchPythonOperator.<\/p>\n<p>Sammenh\u00e6ngen mellem brugen af low-code-l\u00f8sningen Datagram og universaleringen af konfigurationsfilerne (som danner Dag) har f\u00f8rt til en betydelig forkortelse og forenkling af udviklingsprocessen for dataindl\u00e6sningsstr\u00f8mme.<\/p>\n<h2>Beregning af vitrinene<\/h2>\n<p>\nDet mest intellektuelt kr\u00e6vende trin i produktionen af analytiske data er opbygningen af vitrinene. I konteksten af en dataudregningsstr\u00f8m i et forskningsfirma sker der p\u00e5 dette trin en tilpasning til den standardiserede overs\u00e6ttelse med hensyntagen til tidszonekorrektion i forhold til udsendelsesnettet. Der kan ogs\u00e5 v\u00e6re en justering for det lokale udsendelsesnet (lokale nyheder og reklame). Blandt andet udf\u00f8res der p\u00e5 dette trin en opdeling af intervallerne for kontinuerlig visning af medieprodukter baseret p\u00e5 analyse af visningsintervaller. Her udf\u00f8res der ogs\u00e5 en 'v\u00e6gting' af visningsv\u00e6rdierne baseret p\u00e5 oplysninger om deres betydning (beregning af v\u00e6gtkoefficienten).<\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/b5f90f7d1d95c97c9819218aab9079c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEt s\u00e6rskilt trin i forberedelsen af vitrinene er validering af dataene. Valideringsalgoritmen er knyttet til anvendelsen af en r\u00e6kke matematiske science-modeller. Men brugen af en low-code-platform g\u00f8r det muligt at opdele den komplekse algoritme i en r\u00e6kke separate visuelt l\u00e6selige mappinger. Hver mapping udf\u00f8rer en specifik opgave. Som f\u00f8lge heraf er det muligt med mellemdebugging, logf\u00f8ring og visualisering af datapr\u00e6parationsstadierne. <\/p>\n<p>Valideringsalgoritmen blev besluttet at blive diskretiseret i f\u00f8lgende deltr\u00e6k:<\/p>\n<ul>\n<li>Opbygning af regressioner for visning af tv-netv\u00e6rk i regionen i forhold til visningen af alle netv\u00e6rk i regionen over 60 dage. <\/li>\n<li>Beregning af studenizerede rester (afvigelsen af de faktiske v\u00e6rdier fra de forudsagte v\u00e6rdier fra regressionsmodellen) for alle regressionspunkter og for den beregnede dag.<\/li>\n<li>Udv\u00e6lgelse af anomale par region-tv-netv\u00e6rk, hvor det studenizerede reste for den beregnede dag overstiger normen (fastsat af operationens indstilling).<\/li>\n<li>Omregningen af den justerede studentiserede saldo for anomale par region-tele netv\u00e6rk for hver respondent, der s\u00e5 nettet i regionen med bestemmelse af denne respondents bidrag (\u00e6ndringsst\u00f8rrelse af den studentiserede saldo) ved at udelukke denne respondents visning fra stikpr\u00f8ven.<\/li>\n<li>S\u00f8gning efter kandidater, hvis udelukkelse bringer den studentiserede saldo for beregningsdagen tilbage til normalen. <\/li>\n<\/ul>\n<p>\nDet ovenfor n\u00e6vnte eksempel er en bekr\u00e6ftelse p\u00e5 hypotesen om, at en dataingeni\u00f8r har alt for meget at t\u00e6nke p\u00e5... Og hvis det virkelig er en \"ingeni\u00f8r\" og ikke en \"koder\", s\u00e5 b\u00f8r frygten for professionel forringelse ved brug af low-code v\u00e6rkt\u00f8jer endelig forsvinde.<\/p>\n<h2>Hvad mere kan low-code?<\/h2>\n<p>\nAnvendelsesomr\u00e5det for low-code v\u00e6rkt\u00f8jer til batch- og streambehandling af data uden behov for manuelt at skrive kode i Scala stopper ikke her.<\/p>\n<p>Anvendelsen af low-code i udviklingen af datalakes er allerede blevet en standard for os. Man kan sikkert sige, at l\u00f8sninger baseret p\u00e5 Hadoop-stakken f\u00f8lger udviklingsvejen for klassiske DWH, baseret p\u00e5 RDBMS. Low-code v\u00e6rkt\u00f8jer p\u00e5 Hadoop-stakken kan h\u00e5ndtere b\u00e5de databehandlingsopgaver og opgaver vedr\u00f8rende opbygning af slut-BI-gr\u00e6nseflader. Det skal bem\u00e6rkes, at BI ikke kun kan forst\u00e5s som repr\u00e6sentation af data, men ogs\u00e5 som redigering udf\u00f8rt af forretningsbrugere. Denne funktionalitet anvender vi ofte i opbygningen af analytiske platforme til den finansielle sektor. <\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/cde5ce9dac9fcc9356b2b0ed291e299c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBland andet kan opgaven med at spore oprindelsen af dataflowobjekter med atomaritet ned til enkelte felter (lineage) l\u00f8ses ved hj\u00e6lp af low-code og specifikt Datagram. For dette er der implementeret en tilkobling til Apache Atlas og Cloudera Navigator i low-code v\u00e6rkt\u00f8jet. I bund og grund skal udvikleren registrere et s\u00e6t objekter i Atlas' ordb\u00f8ger og henvise til de registrerede objekter, n\u00e5r der bygges mapping. Mekanismen til at spore datters oprindelse eller analysere afh\u00e6ngigheder mellem objekter sparer en stor m\u00e6ngde tid, n\u00e5r der er behov for at foretage \u00e6ndringer i beregningsalgoritmerne. For eksempel muligg\u00f8r denne funktionalitet en mere komfortabel h\u00e5ndtering af \u00e6ndringer i lovgivningen, n\u00e5r der udarbejdes finansielle rapporter. Jo bedre vi forst\u00e5r den interformelle afh\u00e6ngighed af detaljerede lagobjekter, desto f\u00e6rre <\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/0b351b116564090bd03f6adf3fc52616.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Datakvalitet &amp; Low-code<\/h2>\n<p>\nEn anden opgave, der blev implementeret med et low-code v\u00e6rkt\u00f8j i Mediascope's projekt, var Data Quality-klassens opgave. En s\u00e6rlig funktion ved implementeringen af datavalideringsstr\u00f8mmen for det forskningsfirma-projekt var frav\u00e6ret af indflydelse p\u00e5 funktionaliteten og hastigheden af de prim\u00e6re databehandlingsstr\u00f8mme. For muligheden for at orkestrere uafh\u00e6ngige datavalideringsstr\u00f8mme blev den velkendte Apache Airflow anvendt. I takt med at hvert trin i dataproduktionen var klart, blev en separat del af DQ-str\u00f8mmen startet parallelt. <\/p>\n<p>Det betragtes som en god praksis at overv\u00e5ge datakvaliteten fra det \u00f8jeblik, de opst\u00e5r i den analytiske platform. Med oplysninger om metadata kan vi allerede fra f\u00f8rste lag af informationen begynde at kontrollere overholdelsen af de grundl\u00e6ggende betingelser \u2014 not null, constraints, foreign keys. Denne funktionalitet er baseret p\u00e5 automatisk genererede mappings af data quality familien i Datagram. I Mediascope-projektet skete tilkoblingen til metadataene fra produktet Enterprise Architect. <\/p>\n<p>Takket v\u00e6re tilkoblingen mellem low-code v\u00e6rkt\u00f8jet og Enterprise Architect blev f\u00f8lgende kontroller automatisk genereret:<\/p>\n<ul>\n<li>Kontrol af tilstedev\u00e6relsen af \"null\" v\u00e6rdier i felter med \"not null\" modifikatoren; <\/li>\n<li>Kontrol af tilstedev\u00e6relsen af dubletter af prim\u00e6rn\u00f8glen;<\/li>\n<li>Kontrol af den eksterne n\u00f8gle i entiteten;<\/li>\n<li>Kontrol af unikke r\u00e6kker baseret p\u00e5 et s\u00e6t felter.<\/li>\n<\/ul>\n<p>\nFor mere komplekse kontroller af tilg\u00e6ngelighed og validitet af data blev der oprettet en mapping med Scala Expression, der accepterer indgangskode for eksterne Spark SQL-kontroller, forberedt af analytikere i Zeppelin.<\/p>\n<p><img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/f6dcc5719077a3186d23d7bdcb412c45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelvf\u00f8lgelig skal man gradvist overg\u00e5 til automatisk generering af kontroller. I forbindelse med det beskrevne projekt gik der f\u00f8lgende trin forud:<\/p>\n<ul>\n<li>DQ implementeret i Zeppelin-notesb\u00f8ger;<\/li>\n<li>DQ indbygget i mapping;<\/li>\n<li>DQ i form af separate massive mappings, der indeholder et helt s\u00e6t kontroller for en enkelt enhed;<\/li>\n<li>Universelle parametrede DQ-mappings, der accepterer oplysninger om metadata og forretningskontroller.<\/li>\n<\/ul>\n<p>\nM\u00e5ske er den st\u00f8rste fordel ved at oprette en tjeneste med parameterede kontroller reduktion af tiden til levering af funktionalitet til produktionsmilj\u00f8et. Nye kvalitetskontroller kan omg\u00e5 den klassiske kodeleveringsm\u00f8nster gennem udviklings- og testmilj\u00f8er:<\/p>\n<ul>\n<li>Alle metadata kontroller genereres automatisk ved \u00e6ndringer i model i EA;<\/li>\n<li>Kontroller af datatilg\u00e6ngelighed (bestemmelse af tilstedev\u00e6relsen af nogle data p\u00e5 et givet tidspunkt) kan genereres baseret p\u00e5 et register, der opbevarer den forventede timing for fremkomsten af en ny datam\u00e6ngde efter objekter;<\/li>\n<li>Forretningskontroller for datavaliditet oprettes af analytikere i Zeppelin-notesb\u00f8ger. De sendes direkte til konfigurationstabellerne i DQ-modulet i produktionsmilj\u00f8et. <\/li>\n<\/ul>\n<p>\nRisikoen ved direkte levering af scripts til produktion er ikke-eksisterende. Selv ved syntaksfejl er det maksimalt, hvad vi risikerer, ikke at udf\u00f8re en kontrol, da dataudregningsstr\u00f8mmen og kvalitetskontrolstr\u00f8mmen er adskilt.<\/p>\n<p>I princippet er DQ-tjenesten permanent aktiv i produktionsmilj\u00f8et og klar til at begynde sit arbejde ved ankomsten af en ny datam\u00e6ngde. <\/p>\n<h2>Afslutning<\/h2>\n<p>\nFordelen ved at anvende low-code er indlysende. Udviklere beh\u00f8ver ikke at udvikle en applikation \"fra bunden\". En programmerer, der er frigjort fra ekstra opgaver, leverer resultater hurtigere. Hastigheden frig\u00f8r i sin tur ekstra tidsressourcer til at l\u00f8se optimeringssp\u00f8rgsm\u00e5l. Derfor kan man forvente en mere kvalitetsrig og hurtigere l\u00f8sning i dette tilf\u00e6lde.<\/p>\n<p><b>Selvf\u00f8lgelig er low-code ikke en universal l\u00f8sning, og magien sker ikke af sig selv:<\/b><\/p>\n<ul>\n<li>Low-code-industrien gennemg\u00e5r en fase med \"styrkelse\", og indtil videre er der ingen ensartede standarder inden for branchen;<\/li>\n<li>Mange low-code-l\u00f8sninger er ikke gratis, og deres anskaffelse b\u00f8r v\u00e6re et velovervejet skridt, som man b\u00f8r tage, n\u00e5r man er helt sikker p\u00e5 den \u00f8konomiske gevinst ved deres anvendelse;<\/li>\n<li>Mange low-code-l\u00f8sninger fungerer ikke altid godt sammen med GIT \/ SVN. Enten er de besv\u00e6rlige at bruge, hvis den genererede kode er skjult;<\/li>\n<li>Ved udvidelse af arkitekturen kan der v\u00e6re behov for tilpasning af low-code-l\u00f8sningen \u2013 hvilket i sin tur kan medf\u00f8re en effekt af \"bundethed og afh\u00e6ngighed\" af leverand\u00f8ren af low-code-l\u00f8sningen.<\/li>\n<li>Et passende sikkerhedsniveau er muligt, men det er meget arbejdskr\u00e6vende og komplekst at implementere low-code-systemmotorer. Low-code-platforme b\u00f8r v\u00e6lges ikke kun ud fra \u00f8nsket om at finde fordele ved deres anvendelse. Ved valg b\u00f8r man stille sp\u00f8rgsm\u00e5l ved tilg\u00e6ngeligheden af funktionalitet til adgangsstyring og delegation\/eskalering af identifikationsdata p\u00e5 tv\u00e6rs af hele IT-landskabet i organisationen.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Anvendelse af low-code i analysesystemer\" src=\"\/wp-content\/uploads\/2020\/09\/8ad44d2f71f519b70f5ae1e1fe722066.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen hvis alle ulemper ved det valgte system er kendte for dig, og fordelene ved dets brug trods alt er i overv\u00e6ldende flertal, s\u00e5 g\u00e5 over til low-code uden frygt. Endda mere fordi overgangen er uundg\u00e5elig \u2013 ligesom enhver evolution.<\/p>\n<p>Hvis \u00e9n udvikler p\u00e5 en low-code platform kan udf\u00f8re sit arbejde hurtigere end to udviklere uden low-code, giver det virksomheden en fordel p\u00e5 alle fronter. Indgangsbarrieren for low-code-l\u00f8sninger er lavere end for 'traditionelle' teknologier, og det p\u00e5virker positivt sp\u00f8rgsm\u00e5let om mangel p\u00e5 arbejdskraft. Ved brug af low-code v\u00e6rkt\u00f8jer er det muligt at accelerere samarbejdet mellem funktionelle teams og hurtigere tr\u00e6ffe beslutninger om rigtigheden af den valgte retning inden for data science-forskning. Lavniveau platforme kan v\u00e6re \u00e5rsagen til digital transformation i organisationen, da de l\u00f8sninger, der produceres, kan v\u00e6re tilg\u00e6ngelige for forst\u00e5else af ikke-tekniske specialister (is\u00e6r forretningsbrugere). <\/p>\n<p>Hvis du har stramme tidsfrister, en kompleks forretningslogik, mangel p\u00e5 teknisk ekspertise, og du har brug for at accelerere time to market, s\u00e5 er low-code en m\u00e5de at im\u00f8dekomme dine behov p\u00e5.<\/p>\n<p>Man kan ikke ben\u00e6gte betydningen af traditionelle udviklingsv\u00e6rkt\u00f8jer, men i mange tilf\u00e6lde er anvendelsen af low-code l\u00f8sninger den bedste m\u00e5de at \u00f8ge effektiviteten af de opgaver, der skal l\u00f8ses.<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.3 - 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\/da\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Anvendelsen af low-code i analytiske platforme | ProHoster","description":"K\u00e6re l\u00e6sere, goddag! Opgaven med at opbygge IT-platforme til indsamling og analyse af data opst\u00e5r f\u00f8r eller siden i enhver virksomhed, hvis forretningsmodel er baseret p\u00e5 intellektuelle aktiviteter.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/95283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=95283"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/95283\/revisions"}],"predecessor-version":[{"id":162190,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/95283\/revisions\/162190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/95284"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=95283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=95283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=95283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}