{"id":38995,"date":"2023-10-02T12:20:32","date_gmt":"2023-10-02T12:20:32","guid":{"rendered":"https:\/\/www.conectasoftware.com\/magazine\/?p=38995"},"modified":"2023-12-15T13:10:32","modified_gmt":"2023-12-15T13:10:32","slug":"flujo-de-datos-por-lotes-versus-flujo-de-datos-en-streaming","status":"publish","type":"post","link":"https:\/\/www.conectasoftware.com\/magazine\/flujo-de-datos-por-lotes-versus-flujo-de-datos-en-streaming\/","title":{"rendered":"Flujo de Datos por Lotes versus Flujo de Datos en Streaming"},"content":{"rendered":"\n<p>La arquitectura est\u00e1ndar para un sistema ETL se basa en extracciones peri\u00f3dicas por lotes de los datos de origen, que luego fluyen a trav\u00e9s del sistema, resultando en una actualizaci\u00f3n por lotes de las tablas finales para el usuario. Sin embargo, cuando la naturaleza en tiempo real de la carga del almac\u00e9n de datos se vuelve suficientemente urgente, el enfoque por lotes se descompone. La alternativa es un flujo de datos en streaming en el que los datos a nivel de registro fluyen continuamente desde el sistema de origen hasta las bases de datos y pantallas de los usuarios.<\/p>\n\n\n\n<p>Cambiar de un flujo de datos por lotes a uno en streaming cambia todo. Aunque todav\u00eda debemos respaldar los pasos fundamentales del flujo de datos de extraer, limpiar, conformar y entregar, cada uno de estos pasos debe modificarse para el procesamiento registro por registro. Y especialmente con los flujos en streaming m\u00e1s r\u00e1pidos, muchas de las suposiciones habituales sobre la llegada de datos e incluso la integridad referencial deben revisarse.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dependencia de Tareas Horizontales versus Verticales<\/h3>\n\n\n\n<p>Un flujo de tareas organizado horizontalmente permite que cada carga final de la base de datos se ejecute de forma independiente hasta su conclusi\u00f3n. Esto suele significar que los pasos de extracci\u00f3n, limpieza, conformaci\u00f3n y entrega no est\u00e1n sincronizados entre estos dos flujos de trabajo. Por otro lado, un flujo de tareas orientado verticalmente sincroniza dos o m\u00e1s flujos de trabajo separados para que las cargas finales de la base de datos ocurran simult\u00e1neamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Automatizaci\u00f3n del Programador<\/h3>\n\n\n\n<p>Una decisi\u00f3n arquitect\u00f3nica relacionada es cu\u00e1nto controlar tu sistema ETL global con tecnolog\u00eda de programaci\u00f3n automatizada. En un extremo, todos los trabajos son iniciados por una persona que escribe en una l\u00ednea de comandos o inicia un icono. En el otro extremo, una herramienta de programaci\u00f3n maestra gestiona todos los trabajos, comprende si los trabajos se han ejecutado con \u00e9xito, espera a que se satisfagan diversos estados del sistema y maneja la comunicaci\u00f3n con supervisores humanos, como alertas de emergencia e informes de estado del flujo de trabajo. La implementaci\u00f3n de la automatizaci\u00f3n del programador puede mejorar significativamente la eficiencia y reducir los errores humanos, asegurando que los procesos se ejecuten en el momento adecuado y en el orden correcto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Manejo de Excepciones<\/h3>\n\n\n\n<p>El manejo de excepciones deber\u00eda ser un mecanismo uniforme en todo el sistema para informar todas las instancias de excepciones generadas por procesos ETL en una \u00fanica base de datos. Este registro deber\u00eda incluir el nombre del proceso, el momento de la excepci\u00f3n, su gravedad inicialmente diagnosticada, la acci\u00f3n posteriormente tomada y el estado final de resoluci\u00f3n de la excepci\u00f3n. Cada trabajo necesita ser arquitectado para escribir estos registros de informes de excepci\u00f3n en la base de datos. Un sistema de manejo de excepciones bien dise\u00f1ado puede ayudar a identificar y resolver r\u00e1pidamente los problemas, minimizando el impacto en los usuarios finales y manteniendo la integridad de los datos.<\/p>\n\n\n\n<p>Estas secciones abordan aspectos cruciales de la arquitectura ETL, desde la elecci\u00f3n entre flujos de datos por lotes y en streaming, la organizaci\u00f3n de tareas, la automatizaci\u00f3n del programador hasta el manejo de excepciones. Cada una de estas decisiones arquitect\u00f3nicas puede tener un impacto significativo en la eficacia, eficiencia y confiabilidad del sistema ETL en su conjunto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Manejo de la Calidad<\/h3>\n\n\n\n<p>De manera similar, se debe decidir una respuesta com\u00fan a los problemas de calidad que surjan durante el procesamiento de los datos. Adem\u00e1s de activar un registro de informe de excepci\u00f3n, todos los problemas de calidad necesitan generar un registro de auditor\u00eda adjunto a la dimensi\u00f3n final o a los datos de hecho. Los datos corruptos o sospechosos deben ser tratados con un peque\u00f1o n\u00famero de respuestas uniformes, como llenar los datos de texto faltantes con un signo de interrogaci\u00f3n o suministrar estimadores menos sesgados de valores num\u00e9ricos que existen pero fueron corrompidos antes de la entrega al almac\u00e9n de datos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Recuperaci\u00f3n y Reinicio<\/h3>\n\n\n\n<p>Desde el inicio, necesitas construir tu sistema ETL en torno a la capacidad de recuperarte de la finalizaci\u00f3n anormal de un trabajo y reiniciar. Los trabajos ETL necesitan ser reentrantes, de lo contrario, impermeables a actualizaciones m\u00faltiples incorrectas. Por ejemplo, no se debe permitir que un trabajo que resta un resultado de ventas de una marca particular de una categor\u00eda de producto general se ejecute dos veces. Este tipo de pensamiento necesita subyacer en cada trabajo ETL porque tarde o temprano estos trabajos terminar\u00e1n anormalmente o se ejecutar\u00e1n por error m\u00e1s de una vez. De alguna manera, de alguna forma, debes evitar que esto suceda.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Metadatos<\/h3>\n\n\n\n<p>Los metadatos de las tablas del sistema DBMS y de las herramientas de dise\u00f1o de esquemas son f\u00e1ciles de capturar, pero probablemente componen el 25 por ciento de los metadatos que necesitas para entender y controlar tu sistema. Otro 25 por ciento de los metadatos es generado por el paso de limpieza. Pero el mayor desaf\u00edo de metadatos para el equipo ETL es d\u00f3nde y c\u00f3mo almacenar la informaci\u00f3n del flujo de procesos. Una ventaja importante, aunque poco glamurosa, de las suites de herramientas ETL es que mantienen autom\u00e1ticamente estos metadatos de flujo de procesos. Si est\u00e1s codificando a mano tu sistema ETL, necesitas implementar tu propio repositorio central de metadatos de flujo de procesos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Seguridad<\/h3>\n\n\n\n<p>Anteriormente, describimos nuestra arquitectura recomendada para la seguridad basada en roles para los usuarios finales. La seguridad en el entorno ETL es menos granular que en el entorno del usuario final; sin embargo, un enfoque sistem\u00e1tico de la seguridad exige que salvaguardias f\u00edsicas y administrativas rodeen cada tabla en l\u00ednea y cada cinta de respaldo en el entorno ETL. Los conjuntos de datos m\u00e1s sensibles e importantes deben estar instrumentados con informes impresos del sistema operativo que enumeran cada acceso y cada comando realizado por todos los administradores contra estos conjuntos de datos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La arquitectura est\u00e1ndar para un sistema ETL se basa en extracciones peri\u00f3dicas por lotes de los datos de origen, que luego fluyen a trav\u00e9s del sistema, resultando en una actualizaci\u00f3n por lotes de las tablas finales para el usuario. Sin embargo, cuando la naturaleza en tiempo real de la carga del almac\u00e9n de datos se [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":38997,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[430],"tags":[],"class_list":{"0":"post-38995","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-automatizacion"},"_links":{"self":[{"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/posts\/38995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/comments?post=38995"}],"version-history":[{"count":1,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/posts\/38995\/revisions"}],"predecessor-version":[{"id":38996,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/posts\/38995\/revisions\/38996"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/media\/38997"}],"wp:attachment":[{"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/media?parent=38995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/categories?post=38995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/tags?post=38995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}