{"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\/es\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","title":{"rendered":"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Estimados lectores, \u00a1buen d\u00eda!<\/p>\n<p>La tarea de construir plataformas de TI para la acumulaci\u00f3n y an\u00e1lisis de datos tarde o temprano surge en cualquier empresa cuyo modelo de negocio se basa en la prestaci\u00f3n de servicios intensivos en conocimiento o en la creaci\u00f3n de productos t\u00e9cnicamente complejos. La construcci\u00f3n de plataformas anal\u00edticas es una tarea compleja y que requiere mucho tiempo. Sin embargo, cualquier tarea se puede simplificar. En este art\u00edculo quiero compartir mi experiencia en el uso de herramientas de bajo c\u00f3digo que ayudan en la creaci\u00f3n de soluciones anal\u00edticas. Esta experiencia se adquiri\u00f3 al implementar una serie de proyectos en la direcci\u00f3n de Soluciones de Big Data de la empresa \"Neoflex\". Desde 2005, la direcci\u00f3n de Soluciones de Big Data de la empresa \"Neoflex\" se ocupa de la construcci\u00f3n de almacenes y lagos de datos, aborda cuestiones de optimizaci\u00f3n de la velocidad de procesamiento de informaci\u00f3n y trabaja en la metodolog\u00eda de gesti\u00f3n de la calidad de los datos.<\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/ca066793a937041577085dfb813f979e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNo habr\u00e1 manera de evitar la acumulaci\u00f3n consciente de datos d\u00e9bil y\/o fuertemente estructurados. Quiz\u00e1s, incluso si se trata de una peque\u00f1a empresa. Cuando un emprendedor prometedor escale su negocio, se encontrar\u00e1 con cuestiones sobre el desarrollo de programas de lealtad, querr\u00e1 realizar un an\u00e1lisis de la efectividad de los puntos de venta, considerar\u00e1 la publicidad dirigida y se preguntar\u00e1 sobre la demanda de productos complementarios. En un primer acercamiento, la tarea podr\u00eda resolverse de manera rudimentaria. Pero a medida que el negocio crece, la transici\u00f3n a una plataforma anal\u00edtica es inevitable.<\/p>\n<p>\u00bfPero en qu\u00e9 casos las tareas de an\u00e1lisis de datos pueden convertirse en problemas de la clase \"Rocket Science\"? Probablemente en el momento en que se trate de datos realmente grandes.<br \/>\nPara simplificar la tarea de \"Rocket Science\", se puede comer un elefante en partes. <\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/f81e7704b91a5b95303e4240d6012730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCuanto mayor sea la discreci\u00f3n y autonom\u00eda de sus aplicaciones\/servicios\/microservicios, m\u00e1s f\u00e1cil ser\u00e1 para usted, sus colegas y todo el negocio procesar el elefante.<\/p>\n<p>A esta conclusi\u00f3n han llegado pr\u00e1cticamente todos nuestros clientes, reestructurando el paisaje basado en las pr\u00e1cticas de ingenier\u00eda de los equipos de DevOps.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nPero incluso con una dieta \"separada, de elefante\", tenemos buenas probabilidades de \"sobrealimentar\" el paisaje de TI. En este momento, es recomendable detenerse, respirar y mirar hacia <b>low-code engineering platform<\/b>.<\/p>\n<p>A muchos desarrolladores les asusta la perspectiva de un estancamiento en su carrera al alejarse de la escritura directa de c\u00f3digo hacia el 'arrastre' de flechas en interfaces de usuarios de sistemas low-code. Sin embargo, la llegada de las m\u00e1quinas no signific\u00f3 la desaparici\u00f3n de los ingenieros, sino que llev\u00f3 su trabajo a un nuevo nivel.<\/p>\n<p>Veamos por qu\u00e9.<\/p>\n<p>El an\u00e1lisis de datos en los sectores de log\u00edstica, telecomunicaciones, investigaci\u00f3n de medios y el sector financiero siempre est\u00e1 relacionado con las siguientes preguntas: <\/p>\n<ul>\n<li>La velocidad de an\u00e1lisis automatizado;<\/li>\n<li>La capacidad de realizar experimentos sin afectar el flujo principal de producci\u00f3n de datos;<\/li>\n<li>La fiabilidad de los datos preparados;<\/li>\n<li>El seguimiento de cambios y la versionado;<\/li>\n<li>Proveniencia de datos, linaje de datos, CDC;<\/li>\n<li>La rapidez de entrega de nuevas funciones en el entorno de producci\u00f3n;<\/li>\n<li>Y el famoso: costo de desarrollo y mantenimiento.<\/li>\n<\/ul>\n<p>\nEs decir, los ingenieros tienen una gran cantidad de tareas de alto nivel, que solo se pueden realizar con suficiente eficacia si liberan su mente de las tareas de bajo nivel de desarrollo.<\/p>\n<p>Las premisas para que los desarrolladores pasen a un nuevo nivel son la evoluci\u00f3n y digitalizaci\u00f3n del negocio. El valor del desarrollador tambi\u00e9n est\u00e1 cambiando: hay una gran escasez de desarrolladores capaces de sumergirse en la esencia de los conceptos de negocio que se automatizan.<\/p>\n<p>Hagamos una analog\u00eda con los lenguajes de programaci\u00f3n de bajo y alto nivel. La transici\u00f3n de lenguajes de bajo nivel a lenguajes de alto nivel es un cambio de 'escritura de directivas directas en el lenguaje de hardware' hacia 'directivas en el lenguaje de personas'. Es decir, a\u00f1adir un cierto nivel de abstracci\u00f3n. En este sentido, la transici\u00f3n a plataformas low-code desde lenguajes de programaci\u00f3n de alto nivel es un cambio de 'directivas en el lenguaje de personas' hacia 'directivas en el lenguaje de negocio'. Si hay desarrolladores a quienes este hecho les preocupa, entonces probablemente ya est\u00e1n preocupados desde el momento en que apareci\u00f3 JavaScript, que utiliza funciones de ordenamiento de matrices. Y estas funciones, por supuesto, tienen detr\u00e1s implementaciones en otros medios de la misma programaci\u00f3n de alto nivel.<\/p>\n<p><b>Por lo tanto, low-code es simplemente la aparici\u00f3n de otro nivel de abstracci\u00f3n. <\/b><\/p>\n<h2>Experiencia pr\u00e1ctica en el uso de low-code.<\/h2>\n<p>\nEl tema del low-code es bastante amplio, pero ahora me gustar\u00eda hablar sobre la aplicaci\u00f3n pr\u00e1ctica de los \"conceptos de bajo c\u00f3digo\" a trav\u00e9s de uno de nuestros proyectos.<\/p>\n<p>La divisi\u00f3n de Big Data Solutions de la empresa \"Neoflex\" se especializa en gran medida en el sector financiero, construyendo almacenes y lagos de datos y automatizando varios informes. En este nicho, el uso de low-code se ha convertido en un est\u00e1ndar. Entre otras herramientas low-code, se pueden mencionar las herramientas para organizar procesos ETL: Informatica Power Center, IBM Datastage, Pentaho Data Integration. O bien, Oracle Apex, que sirve como entorno de desarrollo r\u00e1pido para interfaces de acceso y edici\u00f3n de datos. Sin embargo, el uso de herramientas de desarrollo de bajo c\u00f3digo no siempre est\u00e1 asociado con la creaci\u00f3n de aplicaciones espec\u00edficas en un stack tecnol\u00f3gico comercial con una clara dependencia del proveedor.<\/p>\n<p>Con las plataformas de low-code tambi\u00e9n se pueden organizar la orquestaci\u00f3n de flujos de datos, crear espacios de ciencia de datos o, por ejemplo, m\u00f3dulos de verificaci\u00f3n de calidad de datos. <\/p>\n<p>Uno de los ejemplos pr\u00e1cticos de la experiencia en el uso de herramientas de desarrollo de bajo c\u00f3digo es la colaboraci\u00f3n entre \"Neoflex\" y la empresa Mediascope, uno de los l\u00edderes del mercado ruso en investigaciones de medios. Una de las tareas comerciales de esta empresa es la producci\u00f3n de datos, sobre la base de los cuales los anunciantes, plataformas en Internet, canales de televisi\u00f3n, estaciones de radio, agencias de publicidad y marcas toman decisiones sobre la compra de publicidad y planifican sus comunicaciones de marketing. <\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/d6410c1fe93231281bdd536798fe7c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLas investigaciones de medios son un campo de negocio tecnol\u00f3gicamente exigente. El reconocimiento de secuencias de video, la recopilaci\u00f3n de datos de dispositivos que analizan visualizaciones, la medici\u00f3n de la actividad en recursos web: todo esto implica que la empresa tenga un gran personal de TI y una enorme experiencia en la construcci\u00f3n de soluciones anal\u00edticas. Pero el crecimiento exponencial de la cantidad de informaci\u00f3n y la diversidad de sus fuentes obliga a la industria de TI de datos a progresar constantemente. La soluci\u00f3n m\u00e1s simple para escalar la plataforma anal\u00edtica de Mediascope que ya funciona podr\u00eda haber sido aumentar el personal de TI. Pero una soluci\u00f3n mucho m\u00e1s eficiente es acelerar el proceso de desarrollo. Uno de los pasos que llevan en esta direcci\u00f3n puede ser la aplicaci\u00f3n de plataformas de low-code.<\/p>\n<p>Al momento del inicio del proyecto, la empresa ya contaba con una soluci\u00f3n de producto funcional. Sin embargo, la implementaci\u00f3n de la soluci\u00f3n en MSSQL no pod\u00eda cumplir completamente con las expectativas de escalabilidad de funcionalidades, manteniendo un costo aceptable de desarrollo.<\/p>\n<p>La tarea que ten\u00edamos ante nosotros era verdaderamente ambiciosa: Neoflex y Mediascope deb\u00edan crear una soluci\u00f3n industrial en menos de un a\u00f1o, con un MVP listo durante el primer trimestre desde el inicio del trabajo.<\/p>\n<p>Como base para construir la nueva plataforma de datos, basada en c\u00e1lculos low-code, se eligi\u00f3 la pila de tecnolog\u00edas Hadoop. El est\u00e1ndar de almacenamiento de datos fue HDFS utilizando archivos en formato parquet. Para acceder a los datos en la plataforma, se utiliz\u00f3 Hive, donde todas las vitrinas disponibles se presentan en forma de tablas externas. La carga de datos en el almacenamiento se realizaba con la ayuda de Kafka y Apache NiFi.<\/p>\n<p>La herramienta low-code en este concepto se aplic\u00f3 para optimizar la tarea m\u00e1s laboriosa en la construcci\u00f3n de la plataforma anal\u00edtica: el c\u00e1lculo de datos.<\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/fe62234ab0ae611a0c4a536ca68af898.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEl mecanismo principal para mapear datos fue la herramienta low-code Datagram. <b>Neoflex Datagram<\/b> es una herramienta para desarrollar transformaciones y flujos de datos. <br \/>\nAl utilizar esta herramienta, se puede prescindir de escribir c\u00f3digo en Scala \"manualmente\". El c\u00f3digo de Scala se genera autom\u00e1ticamente utilizando el enfoque de Model Driven Architecture.<\/p>\n<p>Una ventaja evidente de este enfoque es la aceleraci\u00f3n del proceso de desarrollo. Sin embargo, adem\u00e1s de la velocidad, hay otras ventajas: <\/p>\n<ul>\n<li>Visualizaci\u00f3n del contenido y la estructura de fuentes\/receptores;<\/li>\n<li>Rastreo del origen de los objetos del flujo de datos hasta campos individuales (lineage);<\/li>\n<li>Ejecuci\u00f3n parcial de transformaciones con visualizaci\u00f3n de resultados intermedios;<\/li>\n<li>Visualizaci\u00f3n del c\u00f3digo fuente y su modificaci\u00f3n antes de la ejecuci\u00f3n;<\/li>\n<li>Validaci\u00f3n autom\u00e1tica de transformaciones;<\/li>\n<li>Carga autom\u00e1tica de datos 1 a 1.<\/li>\n<\/ul>\n<p>\nLa barrera de entrada a las soluciones de low-code para la generaci\u00f3n de transformaciones es relativamente baja: el desarrollador necesita saber SQL y tener experiencia con herramientas de ETL. Es importante aclarar que los generadores de transformaciones impulsados por c\u00f3digo no son herramientas de ETL en el sentido amplio de la palabra. Las herramientas de low-code pueden no tener su propio entorno para ejecutar el c\u00f3digo. Esto significa que el c\u00f3digo generado se ejecutar\u00e1 en el entorno que ya exist\u00eda en el cl\u00faster antes de la instalaci\u00f3n de la soluci\u00f3n de low-code. Y este es, quiz\u00e1s, otro punto a favor del low-code. Dado que en paralelo con el equipo de low-code puede trabajar un equipo 'cl\u00e1sico' que implemente la funcionalidad, por ejemplo, en c\u00f3digo Scala puro. La incorporaci\u00f3n de mejoras de ambos equipos a producci\u00f3n ser\u00e1 simple y 'sin costuras'.<\/p>\n<p>Vale la pena mencionar que adem\u00e1s del low-code, tambi\u00e9n existen soluciones no-code. Y en esencia, son cosas diferentes. El low-code permite en mayor medida que el desarrollador intervenga en el c\u00f3digo generado. En el caso de Datagram, es posible visualizar y editar el c\u00f3digo Scala generado, mientras que en no-code esta posibilidad puede no estar disponible. Esta diferencia es bastante significativa no solo en t\u00e9rminos de flexibilidad de la soluci\u00f3n, sino tambi\u00e9n en cuanto a la comodidad y la motivaci\u00f3n en el trabajo de los ingenieros de datos. <\/p>\n<h2>Arquitectura de la soluci\u00f3n<\/h2>\n<p>\nIntentemos entender c\u00f3mo exactamente una herramienta de low-code ayuda a resolver el problema de optimizar la velocidad de desarrollo de la funcionalidad de c\u00e1lculo de datos. Primero, analicemos la arquitectura funcional del sistema. En este caso, se toma como ejemplo el modelo de producci\u00f3n de datos para investigaciones medi\u00e1ticas.<\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/365f1b1cf69bf2a71854eb05c5bba809.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Las fuentes de datos en nuestro caso son bastante diversas y variadas:<\/b><\/p>\n<ul>\n<li>Los Peoplemeters (medidores de TV) son dispositivos de hardware y software que registran el comportamiento del usuario en los encuestados de un panel de televisi\u00f3n: qui\u00e9n, cu\u00e1ndo y qu\u00e9 canal de televisi\u00f3n se vio en el hogar que participa en la investigaci\u00f3n. La informaci\u00f3n suministrada es un flujo de intervalos de visualizaci\u00f3n de la transmisi\u00f3n, vinculado al paquete de medios y al producto medi\u00e1tico. Los datos en la etapa de carga en el Data Lake pueden enriquecerse con atributos demogr\u00e1ficos, vinculaciones a estrategias geogr\u00e1ficas, zona horaria y otra informaci\u00f3n necesaria para analizar la audiencia de un determinado producto medi\u00e1tico. Las mediciones realizadas pueden ser utilizadas para el an\u00e1lisis o la planificaci\u00f3n de campa\u00f1as publicitarias, la evaluaci\u00f3n de la actividad y las preferencias de la audiencia, y la elaboraci\u00f3n de la programaci\u00f3n de emisiones;<\/li>\n<li>Los datos pueden provenir de sistemas de monitoreo de transmisi\u00f3n de televisi\u00f3n en streaming y de la medici\u00f3n de visualizaci\u00f3n de contenido en recursos de video en Internet;<\/li>\n<li>Herramientas de medici\u00f3n en el entorno web, que incluyen tanto contadores centrados en el sitio como centrados en el usuario. Un complemento del navegador research bar y una aplicaci\u00f3n m\u00f3vil integrada pueden servir como proveedor de datos para el Data Lake; <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/es\/vpn\/\"   title=\"VPN\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"133\">VPN<\/a>.<\/li>\n<li>Los datos tambi\u00e9n pueden provenir de plataformas que consolidan los resultados de encuestas en l\u00ednea y los resultados de entrevistas telef\u00f3nicas en investigaciones de encuestas de la empresa;<\/li>\n<li>El enriquecimiento adicional del lago de datos puede llevarse a cabo a trav\u00e9s de la carga de informaci\u00f3n de registros de empresas asociadas.<\/li>\n<\/ul>\n<p>\nLa implementaci\u00f3n de carga as is desde sistemas fuente a staging primario de datos en crudo puede ser organizada de diversas maneras. En caso de utilizar low-code para estos fines, es posible la generaci\u00f3n autom\u00e1tica de scripts de carga basada en metadatos. Al mismo tiempo, no es necesario descender al nivel de desarrollo de mapeos de source a target. Para llevar a cabo la carga autom\u00e1tica, necesitamos establecer una conexi\u00f3n con la fuente, despu\u00e9s de lo cual definimos en la interfaz de carga la lista de entidades a ser cargadas. La creaci\u00f3n de la estructura de directorios en HDFS se realizar\u00e1 autom\u00e1ticamente y corresponder\u00e1 a la estructura de almacenamiento de datos en el sistema fuente.<\/p>\n<p>Sin embargo, en el contexto de este proyecto, decidimos no utilizar esta capacidad de las plataformas low-code, debido a que la empresa Mediascope ya hab\u00eda comenzado a trabajar en la creaci\u00f3n de un servicio similar utilizando la combinaci\u00f3n de Nifi + Kafka.<\/p>\n<p>Es importante se\u00f1alar de inmediato que estas herramientas no son sustitutos entre s\u00ed, sino que se complementan entre ellas. Nifi y Kafka pueden funcionar en ambos sentidos (Nifi -&gt; Kafka) y (Kafka -&gt; Nifi). Para la plataforma de investigaci\u00f3n de medios se utiliz\u00f3 la primera opci\u00f3n de conexi\u00f3n.<\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/8284ef5bd6d3b947998ffd42bfb66dbd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn nuestro caso, Nifi necesitaba procesar diferentes tipos de datos de sistemas de origen y enviarlos al broker Kafka. La direcci\u00f3n de los mensajes a un t\u00f3pico espec\u00edfico de Kafka se hac\u00eda mediante la aplicaci\u00f3n de los procesadores PublishKafka de Nifi. La orquestaci\u00f3n y el mantenimiento de estas canalizaciones se realiza en una interfaz visual. La herramienta Nifi y el uso de la combinaci\u00f3n Nifi + Kafka tambi\u00e9n se pueden considerar un enfoque de low-code para el desarrollo, con una baja barrera de entrada a las tecnolog\u00edas Big Data y que acelera el proceso de desarrollo de aplicaciones. <\/p>\n<p>La siguiente etapa en la implementaci\u00f3n del proyecto fue llevar a cabo la conversi\u00f3n al formato de una capa sem\u00e1ntica unificada de datos detallados. En caso de que una entidad tenga atributos hist\u00f3ricos, el c\u00e1lculo se realiza en el contexto de la partici\u00f3n considerada. Si la entidad no es hist\u00f3rica, se puede optar por recalcular todo el contenido del objeto o renunciar completamente al recalculo de este objeto (debido a la ausencia de cambios). En esta etapa se generan las claves para todas las entidades. Las claves se almacenan en los registros correspondientes de los master-objetos Hbase, que contienen la correspondencia entre las claves en la plataforma anal\u00edtica y las claves de los sistemas de origen. La consolidaci\u00f3n de las entidades at\u00f3micas se acompa\u00f1a de un enriquecimiento con los resultados del c\u00e1lculo preliminar de datos anal\u00edticos. El framework utilizado para el c\u00e1lculo de datos fue Spark. La funcionalidad descrita para llevar los datos a una sem\u00e1ntica unificada tambi\u00e9n se implement\u00f3 con base en los mapeos de la herramienta de low-code Datagram.<\/p>\n<p>En la arquitectura objetivo, se requer\u00eda asegurar el acceso SQL a los datos para los usuarios comerciales. Para esta opci\u00f3n se utiliz\u00f3 Hive. El registro de objetos en Hive se realiza autom\u00e1ticamente al activar la opci\u00f3n 'Registr Hive Table' en la herramienta de low-code.<\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/a13f7260d067d3d21b7090bd8fa10aff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Gesti\u00f3n del flujo de c\u00e1lculo<\/h2>\n<p>\nDatagram tiene una interfaz para dise\u00f1ar flujos de trabajo. Los mapeos pueden ser ejecutados utilizando el programador Oozie. En la interfaz del desarrollador de flujos, es posible crear esquemas de transformaciones de datos en paralelo, secuencialmente o en funci\u00f3n de condiciones dadas. Hay soporte para scripts de shell y programas en Java. Tambi\u00e9n es posible usar <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/es\/server\/dts-los-angeles\/\"   title=\"servidores\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3662\">servidores<\/a> Apache Livy. Apache Livy se utiliza para ejecutar aplicaciones directamente desde el entorno de desarrollo. <\/p>\n<p>En caso de que la empresa ya cuente con su propio orquestador de procesos, es posible utilizar la API REST para integrar mapeos en el flujo existente. Por ejemplo, hemos tenido una experiencia bastante exitosa integrando mapeos en Scala en orquestadores escritos en PLSQL y Kotlin. La API REST de la herramienta de bajo c\u00f3digo implica operaciones como la generaci\u00f3n de un a\u00f1o ejecutable basado en el dise\u00f1o del mapeo, invocaci\u00f3n del mapeo, invocaci\u00f3n de una secuencia de mapeos y, por supuesto, la transmisi\u00f3n de par\u00e1metros en la URL para iniciar los mapeos.<\/p>\n<p>Junto con Oozie, es posible organizar el flujo de c\u00e1lculo utilizando Airflow. No me detendr\u00e9 mucho en la comparaci\u00f3n entre Oozie y Airflow, simplemente dir\u00e9 que en el contexto de trabajos del proyecto de investigaciones en medios, la elecci\u00f3n se incluy\u00f3 hacia Airflow. Los principales argumentos en esta ocasi\u00f3n fueron una comunidad m\u00e1s activa que desarrolla el producto y una interfaz + API m\u00e1s desarrolladas.<\/p>\n<p>Airflow tambi\u00e9n es excelente porque para describir los procesos de c\u00e1lculo, se utiliza el popular Python. Y en general, no hay tantas plataformas de gesti\u00f3n de flujos de trabajo de c\u00f3digo abierto. La ejecuci\u00f3n y monitoreo de procesos (incluyendo diagramas de Gantt) solo suman puntos a la reputaci\u00f3n de Airflow. <\/p>\n<p>El formato del archivo de configuraci\u00f3n para ejecutar mapeos de la soluci\u00f3n de bajo c\u00f3digo se convirti\u00f3 en spark-submit. Esto sucedi\u00f3 por dos razones. Primero, spark-submit permite iniciar directamente un archivo jar desde la consola. Segundo, puede contener toda la informaci\u00f3n necesaria para configurar el flujo de trabajo (lo que facilita la escritura de scripts que forman el Dag).<br \/>\nEl elemento m\u00e1s com\u00fan del flujo de trabajo de Airflow en nuestro caso fue SparkSubmitOperator.<\/p>\n<p>SparkSubmitOperator permite ejecutar archivos jar: mapeos empaquetados de Datagram con par\u00e1metros de entrada previamente definidos.<\/p>\n<p>Es importante mencionar que cada tarea de Airflow se ejecuta en un hilo separado y no tiene conocimiento de otras tareas. Por lo tanto, la interacci\u00f3n entre tareas se lleva a cabo mediante operadores de control, como DummyOperator o BranchPythonOperator.<\/p>\n<p>La combinaci\u00f3n del uso de la soluci\u00f3n low-code Datagram con la universalizaci\u00f3n de archivos de configuraci\u00f3n (que forman Dag) ha llevado a una aceleraci\u00f3n y simplificaci\u00f3n significativa del proceso de desarrollo de flujos de carga de datos.<\/p>\n<h2>C\u00e1lculo de vitrinas<\/h2>\n<p>\nProbablemente, la etapa m\u00e1s intensiva en recursos intelectuales en la producci\u00f3n de datos anal\u00edticos es el paso de construcci\u00f3n de vitrinas. En el contexto de uno de los flujos de c\u00e1lculo de datos de una empresa de investigaci\u00f3n, en esta etapa se lleva a cabo una conversi\u00f3n a la transmisi\u00f3n est\u00e1ndar teniendo en cuenta la correcci\u00f3n de zonas horarias vinculada a la red de emisi\u00f3n. Tambi\u00e9n es posible realizar ajustes para la red local de emisi\u00f3n (noticias y publicidad locales). Entre otras cosas, en este paso se lleva a cabo la segmentaci\u00f3n de intervalos de visualizaci\u00f3n continua de productos medi\u00e1ticos bas\u00e1ndose en el an\u00e1lisis de los intervalos de visualizaci\u00f3n. Aqu\u00ed tambi\u00e9n se lleva a cabo la \"ponderaci\u00f3n\" de los valores de visualizaci\u00f3n en funci\u00f3n de la informaci\u00f3n sobre su relevancia (c\u00e1lculo del coeficiente de correcci\u00f3n).<\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/b5f90f7d1d95c97c9819218aab9079c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUn paso separado en la preparaci\u00f3n de vitrinas es la validaci\u00f3n de datos. El algoritmo de validaci\u00f3n est\u00e1 relacionado con la aplicaci\u00f3n de una serie de modelos matem\u00e1ticos de ciencia. Sin embargo, el uso de una plataforma low-code permite descomponer el algoritmo complejo en una serie de mapeos visualmente legibles. Cada uno de estos mapeos realiza una tarea espec\u00edfica. Como resultado, es posible realizar una depuraci\u00f3n intermedia, registro y visualizaci\u00f3n de las etapas de preparaci\u00f3n de datos. <\/p>\n<p>Se decidi\u00f3 discretizar el algoritmo de validaci\u00f3n en los siguientes subtareas:<\/p>\n<ul>\n<li>Construcci\u00f3n de regresiones de dependencia de la visualizaci\u00f3n de la red de televisi\u00f3n en la regi\u00f3n con respecto a la visualizaci\u00f3n de todas las redes en la regi\u00f3n durante 60 d\u00edas. <\/li>\n<li>C\u00e1lculo de los residuos estandarizados (desviaciones de los valores reales de los predichos por el modelo de regresi\u00f3n) para todos los puntos de regresi\u00f3n y para el d\u00eda de c\u00e1lculo.<\/li>\n<li>Muestreo de pares an\u00f3malos regi\u00f3n-red de televisi\u00f3n, donde el residuo estandarizado del d\u00eda de c\u00e1lculo supera la norma (definida por la configuraci\u00f3n de la operaci\u00f3n).<\/li>\n<li>El rec\u00e1lculo del residuo estandarizado corregido para pares an\u00f3malos regi\u00f3n-red de televisi\u00f3n para cada encuestado que vio la red en la regi\u00f3n con la determinaci\u00f3n de la contribuci\u00f3n de dicho encuestado (cantidad de cambio del residuo estandarizado) al excluir la visualizaci\u00f3n de dicho encuestado de la muestra.<\/li>\n<li>B\u00fasqueda de candidatos cuya exclusi\u00f3n lleva el residuo estandarizado del d\u00eda de c\u00e1lculo a la norma. <\/li>\n<\/ul>\n<p>\nEl ejemplo anterior es una confirmaci\u00f3n de la hip\u00f3tesis de que un ingeniero de datos ya tiene demasiado en mente... Y, si realmente es un 'ingeniero' y no un 'programador', entonces el miedo a la degradaci\u00f3n profesional por el uso de herramientas low-code deber\u00eda desvanecerse por completo.<\/p>\n<h2>\u00bfQu\u00e9 m\u00e1s puede hacer low-code?<\/h2>\n<p>\nEl \u00e1mbito de aplicaci\u00f3n de la herramienta low-code para el procesamiento por lotes y en stream de datos sin la necesidad de escribir c\u00f3digo en Scala manualmente no termina aqu\u00ed.<\/p>\n<p>La aplicaci\u00f3n de low-code en el desarrollo de datalakes ya se ha convertido en un est\u00e1ndar para nosotros. Probablemente se puede decir que las soluciones en el stack de Hadoop siguen el camino de desarrollo de los DWH cl\u00e1sicos basados en RDBMS. Las herramientas low-code en el stack de Hadoop pueden abordar tanto tareas de procesamiento de datos como la construcci\u00f3n de interfaces BI finales. Cabe destacar que bajo BI se puede entender no solo la representaci\u00f3n de datos, sino tambi\u00e9n su edici\u00f3n por parte de usuarios de negocio. Esta funcionalidad la utilizamos con frecuencia en la construcci\u00f3n de plataformas anal\u00edticas para el sector financiero. <\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/cde5ce9dac9fcc9356b2b0ed291e299c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEntre otras cosas, con low-code y, en particular, Datagram, es posible resolver la tarea de rastrear el origen de los objetos de flujo de datos con atomicidad hasta campos individuales (lineage). Para ello, en la herramienta low-code se ha implementado la conexi\u00f3n con Apache Atlas y Cloudera Navigator. En esencia, el desarrollador debe registrar un conjunto de objetos en los diccionarios de Atlas y hacer referencia a los objetos registrados al crear mapeos. El mecanismo de rastreo del origen de los datos o an\u00e1lisis de dependencias de los objetos ahorra mucho tiempo al realizar modificaciones en los algoritmos de c\u00e1lculo. Por ejemplo, al construir informes financieros, esta caracter\u00edstica permite afrontar de manera m\u00e1s c\u00f3moda el per\u00edodo de cambios legislativos. Cuanto mejor comprendamos la dependencia inter-formal en los objetos del nivel detallado, menos nos enfrentaremos a defectos 'sorpresa' y reduciremos el n\u00famero de retrabajos. <\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/0b351b116564090bd03f6adf3fc52616.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Calidad de Datos y Low-code<\/h2>\n<p>\nOtra tarea implementada por la herramienta low-code en el proyecto de la empresa Mediascope fue la de Calidad de Datos. Una caracter\u00edstica del proceso de verificaci\u00f3n de datos para el proyecto de la empresa de investigaci\u00f3n fue la ausencia de impacto en la operatividad y velocidad del flujo principal de c\u00e1lculo de datos. Para orquestar flujos independientes de verificaci\u00f3n de datos, se utiliz\u00f3 el ya conocido Apache Airflow. A medida que cada paso en la producci\u00f3n de datos estaba listo, se lanz\u00f3 simult\u00e1neamente una parte aislada del proceso DQ. <\/p>\n<p>Se considera una buena pr\u00e1ctica monitorear la calidad de los datos desde su creaci\u00f3n en la plataforma anal\u00edtica. Al tener informaci\u00f3n sobre los metadatos, ya podemos verificar el cumplimiento de las condiciones b\u00e1sicas \u2014 not null, constraints, foreign keys \u2014 desde el momento en que la informaci\u00f3n llega a la capa primaria. Esta funcionalidad se implement\u00f3 sobre la base de mapeos generados autom\u00e1ticamente de la familia de calidad de datos en Datagram. La generaci\u00f3n de c\u00f3digo en este caso tambi\u00e9n se basa en los metadatos del modelo. En el proyecto de la empresa Mediascope, la conexi\u00f3n se realiz\u00f3 con los metadatos del producto Enterprise Architect. <\/p>\n<p>Gracias a la conexi\u00f3n entre la herramienta low-code y Enterprise Architect, se generaron autom\u00e1ticamente las siguientes verificaciones:<\/p>\n<ul>\n<li>Verificaci\u00f3n de la presencia de valores 'null' en campos con el modificador 'not null'; <\/li>\n<li>Verificaci\u00f3n de la presencia de duplicados en la clave primaria;<\/li>\n<li>Verificaci\u00f3n de clave externa de la entidad;<\/li>\n<li>Verificaci\u00f3n de la unicidad de la fila seg\u00fan un conjunto de campos.<\/li>\n<\/ul>\n<p>\nPara realizar verificaciones m\u00e1s complejas de disponibilidad y validez de los datos, se cre\u00f3 un mapeo con Scala Expression que toma como entrada el c\u00f3digo de verificaci\u00f3n de Spark SQL, preparado por los analistas en Zeppelin.<\/p>\n<p><img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/f6dcc5719077a3186d23d7bdcb412c45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPor supuesto, la autogeneraci\u00f3n de verificaciones debe abordarse de manera gradual. En el marco del proyecto descrito, se llevaron a cabo los siguientes pasos:<\/p>\n<ul>\n<li>DQ, implementados en notas de Zeppelin;<\/li>\n<li>DQ, integrados en el mapeo;<\/li>\n<li>DQ en forma de mapeos masivos separados, que contienen un conjunto completo de verificaciones por cada entidad;<\/li>\n<li>Mapeos DQ universales parametrizados que toman como entrada informaci\u00f3n sobre metadatos y verificaciones de negocios.<\/li>\n<\/ul>\n<p>\nProbablemente, la principal ventaja de crear un servicio de verificaciones parametrizadas es la reducci\u00f3n del tiempo de entrega de funcionalidad al entorno de producci\u00f3n. Nuevas verificaciones de calidad pueden eludir el patr\u00f3n cl\u00e1sico de entrega de c\u00f3digo a trav\u00e9s de entornos de desarrollo y pruebas:<\/p>\n<ul>\n<li>Todas las verificaciones de metadatos se generan autom\u00e1ticamente al modificar el modelo en EA;<\/li>\n<li>Las verificaciones de disponibilidad de datos (definici\u00f3n de la existencia de alg\u00fan dato en un momento dado) pueden generarse a partir de un directorio que almacena el tiempo esperado de aparici\u00f3n del siguiente conjunto de datos por objeto;<\/li>\n<li>Las verificaciones de negocio sobre la validez de los datos son creadas por los analistas en notas de Zeppelin. Desde ah\u00ed, se env\u00edan directamente a las tablas de configuraci\u00f3n del m\u00f3dulo DQ en el entorno de producci\u00f3n. <\/li>\n<\/ul>\n<p>\nLos riesgos de descargar scripts directamente en producci\u00f3n son pr\u00e1cticamente inexistentes. Incluso en caso de un error de s\u00edntaxis, lo m\u00e1ximo que podemos enfrentar es la no ejecuci\u00f3n de una verificaci\u00f3n, ya que el flujo de c\u00e1lculo de datos y el flujo de ejecuci\u00f3n de las verificaciones de calidad est\u00e1n separados entre s\u00ed.<\/p>\n<p>De hecho, el servicio DQ est\u00e1 permanentemente en funcionamiento en el entorno de producci\u00f3n y est\u00e1 listo para comenzar su trabajo en el momento en que aparece el siguiente conjunto de datos. <\/p>\n<h2>En conclusi\u00f3n<\/h2>\n<p>\nLa ventaja de utilizar low-code es evidente. Los desarrolladores no necesitan crear una aplicaci\u00f3n \"desde cero\". Y un programador liberado de tareas adicionales produce resultados m\u00e1s r\u00e1pido. La rapidez, a su vez, libera tiempo adicional para abordar cuestiones de optimizaci\u00f3n. Por lo tanto, en este caso, se puede esperar una soluci\u00f3n de mejor calidad y m\u00e1s r\u00e1pida.<\/p>\n<p><b>Por supuesto, el low-code no es una panacea, y la magia no suceder\u00e1 por s\u00ed sola:<\/b><\/p>\n<ul>\n<li>La industria del low-code est\u00e1 pasando por una etapa de \"maduraci\u00f3n\", y todav\u00eda no hay est\u00e1ndares industriales homog\u00e9neos;<\/li>\n<li>Muchas soluciones low-code no son gratuitas, y su adquisici\u00f3n debe ser un paso consciente, que debe darse con plena confianza en el beneficio financiero de su uso;<\/li>\n<li>Muchas soluciones low-code no siempre se llevan bien con GIT \/ SVN. O son inc\u00f3modas de usar en caso de ocultar el c\u00f3digo generado;<\/li>\n<li>Al ampliar la arquitectura, puede ser necesario ajustar la soluci\u00f3n low-code, lo que, a su vez, provoca el efecto de \"dependencia\" del proveedor de la soluci\u00f3n low-code.<\/li>\n<li>Un adecuado nivel de seguridad es posible, pero es muy laborioso y complejo de implementar en motores de sistemas low-code. Las plataformas de low-code deben ser elegidas no solo por el principio de buscar beneficios de su uso. Al elegir, es recomendable preguntarse sobre la existencia de funcionalidades de gesti\u00f3n de accesos y delegaci\u00f3n\/escalado de datos de identificaci\u00f3n a trav\u00e9s de todo el paisaje IT de la organizaci\u00f3n.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Aplicaci\u00f3n de low-code en plataformas anal\u00edticas\" src=\"\/wp-content\/uploads\/2020\/09\/8ad44d2f71f519b70f5ae1e1fe722066.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSin embargo, si conoces todas las desventajas del sistema elegido y, aun as\u00ed, los beneficios de su uso son predominantemente mayores, entonces avanza hacia el low-code sin miedo. Sobre todo, dado que la transici\u00f3n a \u00e9l es inevitable, al igual que cualquier evoluci\u00f3n.<\/p>\n<p>Si un desarrollador en una plataforma low-code puede realizar su trabajo m\u00e1s r\u00e1pido que dos desarrolladores sin low-code, eso le da a la empresa una ventaja en todos los aspectos. La barrera de entrada a las soluciones low-code es m\u00e1s baja que en las tecnolog\u00edas \"tradicionales\", lo que tiene un impacto positivo en la cuesti\u00f3n de la escasez de talento. Al utilizar herramientas de bajo c\u00f3digo, se puede acelerar la interacci\u00f3n entre equipos funcionales y tomar decisiones m\u00e1s r\u00e1pidamente sobre la idoneidad del camino elegido en las investigaciones de ciencia de datos. Las plataformas de bajo nivel pueden ser el motor de la transformaci\u00f3n digital de la organizaci\u00f3n, ya que las soluciones producidas pueden entenderse f\u00e1cilmente por los no especialistas en tecnolog\u00eda (en particular, los usuarios de negocio). <\/p>\n<p>Si tiene plazos ajustados, una l\u00f3gica de negocio compleja, escasez de experiencia tecnol\u00f3gica, y necesita acelerar el tiempo de lanzamiento al mercado, entonces el low-code es una de las maneras de satisfacer sus necesidades.<\/p>\n<p>No se puede negar la importancia de las herramientas tradicionales de desarrollo, sin embargo, en muchos casos, el uso de soluciones de bajo c\u00f3digo es la mejor manera de aumentar la eficiencia en la resoluci\u00f3n de problemas.<br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/neoflex\/blog\/520554\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0443\u0441\u043b\u0443\u0433 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432. \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u2014 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0438 \u0442\u0440\u0443\u0434\u043e\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043b\u044e\u0431\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95284,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95283","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - 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\/es\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Aplicaci\u00f3n de low-code en plataformas anal\u00edticas | ProHoster","description":"\u00a1Estimados lectores, buen d\u00eda! La tarea de construir plataformas de TI para acumular y analizar datos surge tarde o temprano en cualquier empresa cuya base de negocio est\u00e9 fundamentada en un modelo intelectualmente intensivo.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/95283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=95283"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/95283\/revisions"}],"predecessor-version":[{"id":162190,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/95283\/revisions\/162190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/95284"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=95283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=95283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=95283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}