{"id":2921,"date":"2020-06-12T08:42:56","date_gmt":"2020-06-12T07:42:56","guid":{"rendered":"https:\/\/aprenderbigdata.com\/?p=2921"},"modified":"2025-10-08T22:47:16","modified_gmt":"2025-10-08T21:47:16","slug":"stream-processing","status":"publish","type":"post","link":"https:\/\/aprenderbigdata.com\/stream-processing\/","title":{"rendered":"Stream Processing &#8211; Tecnolog\u00edas y Comparativa"},"content":{"rendered":"\n<p>\u00bfQuieres aprender qu\u00e9 es el Stream Processing? \u00bfCu\u00e1ndo debes usarlo? Explora en este art\u00edculo las tecnolog\u00edas open source m\u00e1s populares de stream processing y una comparativa analizando sus caracter\u00edsticas, ventajas y desventajas. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"#formacion\"><img decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing-1024x576.jpg\" alt=\"\" class=\"wp-image-2930\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing-1024x576.jpg 1024w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing-300x169.jpg 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing-768x432.jpg 768w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenidos<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69e1c28ab52ac\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69e1c28ab52ac\" checked aria-label=\"Alternar\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#%C2%BFQue-es-el-Stream-Processing\" >\u00bfQu\u00e9 es el Stream Processing?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Casos-de-uso-de-Streaming\" >Casos de uso de Streaming<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Conceptos-Basicos-en-Stream-Processing\" >Conceptos B\u00e1sicos en Stream Processing<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Definiciones\" >Definiciones<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Ventajas-del-Streaming-de-Eventos\" >Ventajas del Streaming de Eventos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Tecnologias-de-Stream-Processing\" >Tecnolog\u00edas de Stream Processing<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Kafka-Streams\" >Kafka Streams<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Spark-Streaming\" >Spark Streaming<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Apache-Flink\" >Apache Flink<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Conclusiones\" >Conclusiones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Formacion-Libros-y-Cursos\" >Formaci\u00f3n: Libros y Cursos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#Preguntas-Frecuentes-Stream-Processing-%E2%80%93-FAQ\" >Preguntas Frecuentes Stream Processing &#8211; FAQ<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#%C2%BFCual-es-la-diferencia-entre-batch-y-stream-processing\" >\u00bfCu\u00e1l es la diferencia entre batch y stream processing?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#%C2%BFQue-es-procesamiento-en-tiempo-real\" >\u00bfQu\u00e9 es procesamiento en tiempo real?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/#%C2%BFEs-Flink-mas-rapido-que-Spark-Streaming\" >\u00bfEs Flink m\u00e1s r\u00e1pido que Spark Streaming?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"que-es-el-stream-processing\"><span class=\"ez-toc-section\" id=\"%C2%BFQue-es-el-Stream-Processing\"><\/span>\u00bfQu\u00e9 es el Stream Processing?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>El stream processing est\u00e1 basado en la idea de <strong>procesar los datos de forma continua<\/strong>. En cuanto estos datos est\u00e1n disponibles se procesan de manera secuencial. Para ello, se usan flujos de datos infinitos y sin l\u00edmites de tiempo. La manera tradicional de procesar los datos ha sido en batches, agrupados en grandes lotes, esta t\u00e9cnica se llama batch processing.<\/p>\n\n\n\n<p>Actualmente, los servicios en tiempo real que usan estos mecanismos de stream processing cada vez tienen m\u00e1s demanda. A trav\u00e9s de estas t\u00e9cnicas es posible acelerar la velocidad a la que se obtiene valor de los datos y generar acciones para interaccionar con los clientes con poca latencia.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.databricks.com\/blog\/2022\/12\/08\/build-reliable-and-cost-effective-streaming-data-pipelines.html\" target=\"_blank\" rel=\"nofollow noopener\"><img decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/trabajos-streaming-databricks-grafica-1024x576.png\" alt=\"N\u00famero de trabajos de streaming en Databricks\" class=\"wp-image-9589\" style=\"width:512px;height:288px\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/trabajos-streaming-databricks-grafica-1024x576.png 1024w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/trabajos-streaming-databricks-grafica-300x169.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/trabajos-streaming-databricks-grafica-768x432.png 768w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/trabajos-streaming-databricks-grafica-1536x864.png 1536w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/trabajos-streaming-databricks-grafica-800x450.png 800w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/trabajos-streaming-databricks-grafica.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">N\u00famero de trabajos de streaming en Databricks [<a href=\"https:\/\/www.databricks.com\/blog\/2022\/12\/08\/build-reliable-and-cost-effective-streaming-data-pipelines.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Fuente<\/a>]<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Generalmente, las <strong>latencias<\/strong> que se consideran al hablar de los sistemas de tiempo real o de stream processing son del orden de 10 milisegundos a 1 segundo. En funci\u00f3n del caso de uso o el \u00e1mbito de su aplicaci\u00f3n, estas latencias pueden reducirse, aunque supondr\u00e1n importantes desaf\u00edos.<\/p>\n\n\n\n<p>Los requisitos m\u00e1s importantes a tener en cuenta a la hora de implementar una soluci\u00f3n anal\u00edtica en streaming son los siguientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cantidad de datos que se deben procesar de forma simult\u00e1nea (picos de carga)<\/li>\n\n\n\n<li>Latencias extremo a extremo (end to end)<\/li>\n\n\n\n<li>Garant\u00edas de entrega de mensajes que debe asegurar la soluci\u00f3n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"casos-de-uso-de-streaming\"><span class=\"ez-toc-section\" id=\"Casos-de-uso-de-Streaming\"><\/span>Casos de uso de Streaming<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Las fuentes de datos para casos de uso de stream processing pueden estar presentes en cualquier sector, a continuaci\u00f3n tienes listados los m\u00e1s populares:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Monitorizaci\u00f3n de sistemas, de redes y de aplicaciones<\/li>\n\n\n\n<li>Dispositivos Internet of Things (IoT)<\/li>\n\n\n\n<li>Sistemas de recomendaci\u00f3n y optimizaci\u00f3n de resultados<\/li>\n\n\n\n<li>Transacciones financieras, detecci\u00f3n de fraude y trading<\/li>\n\n\n\n<li>Seguimiento de usuarios en p\u00e1ginas web y comercio electr\u00f3nico<\/li>\n\n\n\n<li>Notificaciones en dispositivos y aplicaciones m\u00f3viles en tiempo real<\/li>\n<\/ul>\n\n\n\n<p>Los procesos y flujos de trabajo con datos en streaming m\u00e1s usados son <strong>los filtros, la agregaci\u00f3n y el enriquecimiento de datos<\/strong>. Los filtros permiten reducir la cantidad de informaci\u00f3n antes de almacenarla. La agregaci\u00f3n consiste en calcular agregados de datos en ventanas temporales y tambi\u00e9n reducen la cantidad de informaci\u00f3n persistida.<\/p>\n\n\n\n<p>Por \u00faltimo, el enriquecimiento consiste en agregar informaci\u00f3n a un dataset en tiempo real. Esto ofrece ventajas respecto a enriquecerla cuando ya se encuentra persistida en un almacenamiento, y es que permite tomar decisiones m\u00e1s r\u00e1pido con los datos. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conceptos-basicos-en-stream-processing\"><span class=\"ez-toc-section\" id=\"Conceptos-Basicos-en-Stream-Processing\"><\/span>Conceptos B\u00e1sicos en Stream Processing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A continuaci\u00f3n vamos a desarrollar algunos conceptos y t\u00e9rminos b\u00e1sicos que se han generado alrededor de las tecnolog\u00edas de stream processing.<\/p>\n\n\n\n<p>Los sistemas de streaming distribuidos tienen tres maneras de gestionar las <strong>garant\u00edas de entrega<\/strong> de los mensajes en sus protocolos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em><strong>At-least-once<\/strong><\/em>: Garantiza que el mensaje siempre se entregar\u00e1. Es posible que en caso de fallo se entregue varias veces, pero no se perder\u00e1 ning\u00fan mensaje en el sistema.<\/li>\n\n\n\n<li><em><strong>At-most-once<\/strong><\/em>: Garantiza que el mensaje se entregar\u00e1 una vez o no se entregar\u00e1. Un mensaje nunca se entregar\u00e1 m\u00e1s de una vez. <\/li>\n\n\n\n<li><em><strong>Exactly-once<\/strong><\/em>: Garantiza que todos los mensajes se van a entregar exactamente una vez, realizando el sistema las comprobaciones necesarias para que esto suceda.<\/li>\n<\/ul>\n\n\n\n<p>Existen numerosas aplicaciones que no se pueden permitir la existencia mensajes duplicados o perdidos debido a fallos en la comunicaci\u00f3n o en las aplicaciones. Por esta raz\u00f3n es tan importante que existan sistemas que garanticen la entrega exactamente una vez como Apache Kafka o Flink.<\/p>\n\n\n\n<p><strong>Tupla o evento<\/strong>: conjunto de elementos o de tipos de datos simples guardados de forma consecutiva. Tambi\u00e9n, los podemos llamar eventos o mensajes. Los eventos representan un cambio de estado en el sistema y normalmente tienen un orden basado en el tiempo.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" width=\"762\" height=\"672\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/tupla-procesamiento-streaming.jpg\" alt=\"Flujos de tuplas en procesamiento en Streaming\" class=\"wp-image-3999\" style=\"width:381px;height:336px\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/tupla-procesamiento-streaming.jpg 762w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/tupla-procesamiento-streaming-300x265.jpg 300w\" sizes=\"(max-width: 762px) 100vw, 762px\" \/><figcaption class=\"wp-element-caption\">Flujos de tuplas en procesamiento en Streaming<\/figcaption><\/figure>\n<\/div>\n\n\n<p><strong>Flujo de datos<\/strong>: Tambi\u00e9n llamado stream o stream de eventos. Se trata de una secuencia infinita de tuplas o de eventos en la que el orden importa. Este flujo de datos viaja desde los productores hacia los consumidores de datos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"definiciones\"><span class=\"ez-toc-section\" id=\"Definiciones\"><\/span>Definiciones<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Ventanas de procesamiento<\/strong>: Dividen los datos de entrada en partes finitas. Permiten tratar las secuencias infinitas con unos recursos limitados como la memoria del sistema. Pueden estar basadas en tiempo o en el n\u00famero de elementos y se pueden desplazar a medida que se procesa su contenido. Existen varios tipos de ventanas dependiendo de las caracter\u00edsticas del sistema.<\/p>\n\n\n\n<p><strong>Operaciones con y sin estado<\/strong>: Las operaciones sin estado permiten obtener un resultado por cada uno de los eventos procesados. Las operaciones con estado operan sobre un conjunto de elementos para generar una salida.<\/p>\n\n\n\n<p>Para mantener la tolerancia a fallos, los sistemas de streaming usan <strong><em>checkpointing<\/em><\/strong> y no eliminan los eventos del sistema una vez procesados. De esta manera, almacenan de forma persistente el estado del sistema en instantes de tiempo y el punto en el que se encuentran para poder recuperar la informaci\u00f3n en el caso de que ocurra alg\u00fan fallo de red o en los propios nodos.<\/p>\n\n\n\n<p><strong>Backpressure<\/strong>: Es el mecanismo que indica a la tecnolog\u00eda que los consumidores no pueden procesar m\u00e1s eventos en un instante concreto. Evita que el sistema se sature cuando se publican eventos a m\u00e1s velocidad que la que se consumen. Normalmente, se implementa un mecanismo de buffering. Si se excede su capacidad, se pueden eliminar los eventos con una pol\u00edtica definida de tipo LIFO, FIFO, etc. La capacidad de escalar junto a un buen mecanismo de backpressure son esenciales para garantizar la alta disponibilidad y el rendimiento del sistema. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ventajas-del-streaming-de-eventos\"><span class=\"ez-toc-section\" id=\"Ventajas-del-Streaming-de-Eventos\"><\/span>Ventajas del Streaming de Eventos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Entre las ventajas principales se encuentra el <strong>desacoplamiento<\/strong>. Por ejemplo, en una arquitectura editor-suscriptor, no es necesario que estos dos componentes se conozcan entre s\u00ed. Adem\u00e1s, puede existir un intermediario que gestione las colas de mensajes. <\/p>\n\n\n\n<p>Este desacoplamiento de los componentes genera tambi\u00e9n una <strong>independencia<\/strong> en los equipos de desarrollo. Los equipos no necesitan una gran coordinaci\u00f3n para trabajar en cada uno de los extremos. Tambi\u00e9n, las tecnolog\u00edas de streaming nos facilitan implementar una arquitectura de microservicios, con un broker de streaming como mecanismo central de comunicaci\u00f3n.<\/p>\n\n\n\n<p>Otra de las razones es la capacidad de los sistemas de streaming de eventos de proporcionar herramientas anal\u00edticas en <strong>tiempo real<\/strong>. De esta forma, los usuarios y clientes podr\u00e1n reaccionar a determinados tipos de eventos de una manera m\u00e1s \u00e1gil y continua en el tiempo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tecnologias-de-stream-processing\"><span class=\"ez-toc-section\" id=\"Tecnologias-de-Stream-Processing\"><\/span>Tecnolog\u00edas de Stream Processing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>En la actualidad existen varias tecnolog\u00edas y frameworks <a href=\"https:\/\/aprenderbigdata.com\/contribuir-open-source\/\"><strong>open source<\/strong><\/a> de stream processing, todas ellas son de reciente creaci\u00f3n, desarrolladas en los \u00faltimos a\u00f1os. <\/p>\n\n\n\n<p>Se ha dejado fuera de esta lista a <strong>Apache Storm<\/strong> debido a que otras tecnolog\u00edas han tomado la delantera en cuanto a capacidades y el proyecto est\u00e1 en desuso. Tampoco se ha querido a\u00f1adir tecnolog\u00edas puramente cloud como <strong><a href=\"https:\/\/aprenderbigdata.com\/event-hubs\/\">Azure Event Hubs<\/a><\/strong> o <strong>Amazon Kinesis<\/strong>.<\/p>\n\n\n\n<p>A continuaci\u00f3n, se comentan los aspectos m\u00e1s importantes de las m\u00e1s populares:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th><\/th><th><strong>SPARK STREAMING<\/strong><\/th><th><strong>KAFKA STREAMS<\/strong><\/th><th><strong>FLINK<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Despliegue<\/td><td>Standalone, Yarn, Mesos<\/td><td>Librer\u00eda (API Java)<\/td><td>Standalone, Yarn, Mesos, Kubernetes<\/td><\/tr><tr><td>Garant\u00edas<\/td><td>Exactly once<\/td><td>Exactly once<\/td><td>Exactly once<\/td><\/tr><tr><td>Conectores<\/td><td>M\u00faltiples<\/td><td>Dependiente de conectores de Kafka<\/td><td>M\u00faltiples<\/td><\/tr><tr><td>Gesti\u00f3n de estado<\/td><td>No<\/td><td>Si (RocksDB)<\/td><td>Si (RocksDB)<\/td><\/tr><tr><td>Abstracciones<\/td><td>Tablas, SQL, ML<\/td><td>Tablas, SQL (KSQL)<\/td><td>Tablas, SQL, CEP, ML<\/td><\/tr><tr><td>Retraso de eventos<\/td><td>Si<\/td><td>Si<\/td><td>Si<\/td><\/tr><tr><td>Modelo<\/td><td>Micro-batch<br><\/td><td>Streaming de eventos individuales<\/td><td>Streaming de eventos individuales<\/td><\/tr><tr><td>Batch<\/td><td>Si<\/td><td>No<\/td><td>Si<\/td><\/tr><tr><td>Comunidad<\/td><td>Gran comunidad, aunque m\u00e1s peque\u00f1a en streaming<\/td><td>M\u00e1s reciente, en crecimiento<\/td><td>M\u00e1s peque\u00f1a pero en r\u00e1pido crecimiento<\/td><\/tr><tr><td>Casos de uso<\/td><td>Streams ETL<\/td><td>Microservicios, dentro de otras aplicaciones<\/td><td>Todos<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>En la siguiente gr\u00e1fica podemos ver la tendencia desde el a\u00f1o 2013 en las b\u00fasquedas de Google de las tres tecnolog\u00edas de streaming m\u00e1s populares.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"981\" height=\"276\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/tendencia_streaming.jpg\" alt=\"Tendencia herramientas Stream Processing\" class=\"wp-image-3270\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/tendencia_streaming.jpg 981w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/tendencia_streaming-300x84.jpg 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/tendencia_streaming-768x216.jpg 768w\" sizes=\"(max-width: 981px) 100vw, 981px\" \/><figcaption class=\"wp-element-caption\">Tendencia herramientas Stream Processing<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kafka-streams\"><span class=\"ez-toc-section\" id=\"Kafka-Streams\"><\/span>Kafka Streams<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><a href=\"https:\/\/aprenderbigdata.com\/kafka-streams-ksql\/\"><strong>Kafka Streams<\/strong><\/a> es una librer\u00eda (API) muy popular que permite construir aplicaciones de procesamiento de flujos de datos usando Apache Kafka como sistema de almacenamiento de entrada y de salida de datos. La versi\u00f3n inicial se public\u00f3 en enero del 2011.<\/p>\n\n\n\n<p>Aunque Kafka Streams depende de <a href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/\"><strong>Apache Kafka<\/strong><\/a> puede conectarse a sistemas externos y numerosas tecnolog\u00edas para construir flujos de datos en tiempo real desacoplando aplicaciones y facilitando la <a href=\"https:\/\/aprenderbigdata.com\/microservicios\/\"><strong>implementaci\u00f3n de microservicios<\/strong><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ventajas\">Ventajas<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-medium is-resized\"><a href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/\"><img decoding=\"async\" width=\"300\" height=\"158\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/apache-kafka-logo-300x158.png\" alt=\"Apache Kafka Logo - Stream processing\" class=\"wp-image-1687\" style=\"width:271px;height:143px\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/apache-kafka-logo-300x158.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/apache-kafka-logo.png 702w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>No necesita un cl\u00faster dedicado (usa Kafka)<\/li>\n\n\n\n<li>APIs de consumidores y productores de mensajes<\/li>\n\n\n\n<li>Reprocesamiento sencillo de mensajes<\/li>\n\n\n\n<li>Desacoplamiento de aplicaciones, muy usado en microservicios<\/li>\n\n\n\n<li>Puede usarse como base de datos<\/li>\n\n\n\n<li>Procesamiento de eventos individuales, streams nativos<\/li>\n\n\n\n<li>Garant\u00edas de entrega <em>exactly-once<\/em><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"desventajas\">Desventajas<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Acoplado con Apache Kafka<\/li>\n\n\n\n<li>No tiene mucha adopci\u00f3n para cargas de trabajo pesadas<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"spark-streaming\"><span class=\"ez-toc-section\" id=\"Spark-Streaming\"><\/span>Spark Streaming<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Spark Streaming<\/strong> extiende la funcionalidad de <a href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-spark\/\"><strong>Apache Spark<\/strong><\/a> para realizar stream processing. Para ello, agrupa los datos recibidos en peque\u00f1os micro-batches e incluye operadores con y sin estado. La versi\u00f3n inicial se public\u00f3 en mayo de 2014.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ventajas\">Ventajas<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-medium is-resized\"><a href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-spark\/\"><img decoding=\"async\" width=\"300\" height=\"160\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/spark-logo-300x160.png\" alt=\"Apache Spark Streaming logo\" class=\"wp-image-2943\" style=\"width:270px;height:144px\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/spark-logo-300x160.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/spark-logo.png 376w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Facilidad de uso: APIs de alto nivel conocidas y bien mantenidas en la comunidad, con gran cantidad de documentaci\u00f3n<\/li>\n\n\n\n<li>Librer\u00edas extensas para grafos y <strong><a href=\"https:\/\/aprenderbigdata.com\/machine-learning\/\">machine learning<\/a><\/strong><\/li>\n\n\n\n<li>Lenguajes de programaci\u00f3n <strong><a href=\"https:\/\/aprenderbigdata.com\/introduccion-scala\/\">Scala<\/a><\/strong>, <strong><a href=\"https:\/\/aprenderbigdata.com\/cursos-java-udemy\/\">Java<\/a><\/strong> y <strong><a href=\"https:\/\/aprenderbigdata.com\/mejores-libros-python\/\">Python<\/a><\/strong><\/li>\n\n\n\n<li>Incluye una CLI (Interfaz de l\u00ednea de comandos) en Scala y Python<\/li>\n\n\n\n<li>Checkpointing sencillo gracias a micro-batches<\/li>\n\n\n\n<li>Mayor throughput debido a la gesti\u00f3n en micro-batches<\/li>\n\n\n\n<li>Soporta una <strong><a href=\"https:\/\/aprenderbigdata.com\/arquitectura-lambda\/\">arquitectura lambda<\/a><\/strong><\/li>\n\n\n\n<li>Garant\u00edas de entrega <em>exactly-once<\/em><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"desventajas\">Desventajas<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mayores latencias de procesamiento a causa de micro-batches<\/li>\n\n\n\n<li>Parametrizaci\u00f3n compleja y ajustes manuales<\/li>\n\n\n\n<li>Solo soporta ventanas basadas en tiempo<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"apache-flink\"><span class=\"ez-toc-section\" id=\"Apache-Flink\"><\/span>Apache Flink<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><a href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-flink\/\"><strong>Apache Flink<\/strong><\/a> es una plataforma distribuida de stream processing con alta disponibilidad y escalabilidad. Aunque puede realizar procesamiento batch y streaming, ha sido dise\u00f1ado con una arquitectura orientada al procesamiento de eventos en streaming individuales. La versi\u00f3n inicial se public\u00f3 en mayo del 2011.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ventajas\">Ventajas<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-medium is-resized\"><a href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-flink\/\"><img decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/flink_logo-300x300.png\" alt=\"Apache Flink Logo - Stream processing\" class=\"wp-image-2944\" style=\"width:161px;height:161px\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/flink_logo-300x300.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/flink_logo-150x150.png 150w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/flink_logo-768x768.png 768w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/flink_logo.png 1000w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Procesamiento de eventos individuales, streams nativos<\/li>\n\n\n\n<li>Velocidad, baja latencia y throughput configurables<\/li>\n\n\n\n<li>Ventanas de procesamiento personalizadas basadas en eventos o en tiempo<\/li>\n\n\n\n<li>Garant\u00edas de entrega <em>exactly-once<\/em><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"desventajas\">Desventajas<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comunidad m\u00e1s peque\u00f1a pero en crecimiento<\/li>\n\n\n\n<li>La adopci\u00f3n para procesamiento batch es baja<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusiones\"><span class=\"ez-toc-section\" id=\"Conclusiones\"><\/span>Conclusiones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Para elegir un buen sistema de procesamiento en streaming debemos tener muy en cuenta el caso de uso y sus particularidades. Kafka Streams es el sistema m\u00e1s ligero, que puede soportar f\u00e1cilmente aplicaciones sencillas. Por otro lado, para desarrollar aplicaciones m\u00e1s complejas y pesadas, Flink o Spark son una mejor opci\u00f3n.<\/p>\n\n\n\n<p>Adem\u00e1s del caso de uso actual, tambi\u00e9n debemos considerar la extensi\u00f3n de \u00e9stos en el futuro y las nuevas aplicaciones que desarrollemos, de forma que podamos reutilizar el mismo sistema. En el caso de Kafka, si tenemos un cl\u00faster de Kafka ya desplegado para otro prop\u00f3sito, debemos estudiar si merece la pena ampliar su uso con Kafka Streams o bien desplegar un nuevo cl\u00faster de Flink. <\/p>\n\n\n\n<p>En la actualidad, Apache Flink es un sistema m\u00e1s flexible que Apache Spark. Tambi\u00e9n puede suponer menores latencias y procesamientos m\u00e1s r\u00e1pidos debido a su arquitectura. Sin embargo, el campo del stream processing avanza muy r\u00e1pido, y es posible que las tecnolog\u00edas evolucionen o surjan alternativas interesantes. Debemos conocer estas opciones para ser capaces de tomar la mejor decisi\u00f3n.<\/p>\n\n\n\n<p>Como resumen:<\/p>\n\n\n\n<p>Cuando ya est\u00e1s usando Apache Spark en tu organizaci\u00f3n, no necesitas baja latencia, quieres unificar procesos batch y stream y deseas un alto throughput la mejor opci\u00f3n es <strong>Spark Streaming<\/strong>.<\/p>\n\n\n\n<p>En el caso de que solo necesites microservicios y Kafka con baja latencia, usa <strong>Kafka Streams<\/strong>.<\/p>\n\n\n\n<p>Si necesitas un sistema flexible, con baja latencia y caracter\u00edsticas de procesamiento en streaming avanzado dec\u00eddete por desplegar <strong>Flink<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"formacion\"><span class=\"ez-toc-section\" id=\"Formacion-Libros-y-Cursos\"><\/span>Formaci\u00f3n: Libros y Cursos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Para aprender m\u00e1s sobre estas tecnolog\u00edas, no dudes en invertir en tu formaci\u00f3n. A continuaci\u00f3n te presento mis cursos y libros recomendados:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/go.hotmart.com\/E75204047T?SCK=FLINKSTRE\" target=\"_blank\" rel=\"noopener nofollow\"><img decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/curso-apache-flink.jpg\" alt=\"\" class=\"wp-image-5084\" style=\"object-fit:cover\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/curso-apache-flink.jpg 750w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/curso-apache-flink-300x169.jpg 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center has-normal-font-size\"><a href=\"https:\/\/go.hotmart.com\/E75204047T?SCK=FLINKSTRE\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>Apache Flink desde cero:<\/strong> <strong>La gu\u00eda Esencial<\/strong><\/a><\/p>\n\n\n\n<p>Flink es una de las tecnolog\u00edas de streaming m\u00e1s potentes que existen. Con mi curso aprender\u00e1s a desarrollar aplicaciones de procesamiento en tiempo real desde cero.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/go.hotmart.com\/V75475436Dhttps:\/\/go.hotmart.com\/V75475436D?SCK=KAFKASTRE\" target=\"_blank\" rel=\"noopener nofollow\"><img decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/curso-apache-kafka-.jpg\" alt=\"Curso de Apache Kafka\" class=\"wp-image-9083\" style=\"object-fit:cover\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/curso-apache-kafka-.jpg 750w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/curso-apache-kafka--300x169.jpg 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center has-normal-font-size\"><strong><a href=\"https:\/\/go.hotmart.com\/V75475436D?SCK=KAFKASTRE\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Comienza con Kafka: Curso de Apache Kafka desde cero<\/a><\/strong><\/p>\n\n\n\n<p>Con mi curso de Apache Kafka, aprender\u00e1s esta herramienta de streaming desde cero, su arquitectura, APIs y todas sus posibilidades.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Mejores libros de procesamiento en streaming:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/amzn.to\/2V9fVPk\" target=\"_blank\" rel=\"noopener nofollow\">Kafka: La Gu\u00eda Definitiva<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/amzn.to\/34cddMR\" target=\"_blank\" rel=\"noopener nofollow\">Kafka Streams &#8211; Procesamiento en Streaming en Tiempo Real<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/amzn.to\/2wSv8Mx\" target=\"_blank\" rel=\"noopener nofollow\">Arquitectura de procesamiento en streaming<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/amzn.to\/2xNLshx\" target=\"_blank\" rel=\"noopener nofollow\">Spark: La Gu\u00eda Definitiva: Procesamiento Big data simple<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/amzn.to\/34g81Yj\" target=\"_blank\" rel=\"noopener nofollow\">Aprendiendo Spark: An\u00e1lisis de Big Data ultrar\u00e1pido<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/amzn.to\/3dVHO60\" target=\"_blank\" rel=\"noopener nofollow\">Procesamiento en Streaming con Apache Flink<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"preguntas-frecuentes-stream-processing-faq\"><span class=\"ez-toc-section\" id=\"Preguntas-Frecuentes-Stream-Processing-%E2%80%93-FAQ\"><\/span>Preguntas Frecuentes Stream Processing &#8211; FAQ<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h3><span class=\"ez-toc-section\" id=\"%C2%BFCual-es-la-diferencia-entre-batch-y-stream-processing\"><\/span>\u00bfCu\u00e1l es la diferencia entre batch y stream processing?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p id=\"el-procesamiento-batch-esta-orientado-a-procesar-agrupaciones-grandes-de-datos-con-un-tamano-finito-y-determinado-es-la-manera-tipica-de-procesar-grandes-cantidades-de-datos-con-unos-recursos-limitados-el-procesamiento-streaming-maneja-registros-individuales-o-micro-batches-con-flujos-de-datos-infinitos\">El procesamiento Batch est\u00e1 orientado a procesar agrupaciones grandes de datos con un tama\u00f1o finito y determinado. Es la manera t\u00edpica de procesar grandes cantidades de datos con unos recursos limitados. El procesamiento streaming maneja registros individuales o micro batches con flujos de datos infinitos. <\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h3><span class=\"ez-toc-section\" id=\"%C2%BFQue-es-procesamiento-en-tiempo-real\"><\/span>\u00bfQu\u00e9 es procesamiento en tiempo real?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p id=\"el-procesamiento-en-tiempo-real-proporciona-resultados-a-medida-que-entran-eventos-en-el-sistema-para-ello-realiza-las-operaciones-en-el-momento\">El procesamiento en tiempo real proporciona resultados a medida que entran eventos en el sistema. Para ello, realiza las operaciones en el momento.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h3><span class=\"ez-toc-section\" id=\"%C2%BFEs-Flink-mas-rapido-que-Spark-Streaming\"><\/span>\u00bfEs Flink m\u00e1s r\u00e1pido que Spark Streaming?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p id=\"apache-flink-puede-procesar-datos-mas-rapido-que-spark-streaming-debido-a-su-arquitectura-orientada-a-eventos-en-el-caso-de-spark-streaming-se-procesan-micro-batches-lo-que-aumenta-las-latencias-y-el-posible-throughput\">Apache Flink puede procesar datos m\u00e1s r\u00e1pido que Spark Streaming debido a su arquitectura orientada a eventos. En el caso de Spark Streaming se procesan micro-batches, lo que aumenta las latencias y el posible throughput.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"\u00bfCu\u00e1l es la diferencia entre batch y stream processing?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>El procesamiento Batch est\u00e1 orientado a procesar agrupaciones grandes de datos con un tama\u00f1o finito y determinado. Es la manera t\u00edpica de procesar grandes cantidades de datos con unos recursos limitados. El procesamiento streaming maneja registros individuales o micro batches con flujos de datos infinitos. <\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"\u00bfQu\u00e9 es procesamiento en tiempo real?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>El procesamiento en tiempo real proporciona resultados a medida que entran eventos en el sistema. Para ello, realiza las operaciones en el momento.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"\u00bfEs Flink m\u00e1s r\u00e1pido que Spark Streaming?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Apache Flink puede procesar datos m\u00e1s r\u00e1pido que Spark Streaming debido a su arquitectura orientada a eventos. En el caso de Spark Streaming se procesan micro-batches, lo que aumenta las latencias y el posible throughput.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<p class=\"responsive-video-wrap clr\"><iframe title=\"Procesamiento Streaming vs Batch - Diferencias y Ejemplos\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/55ivUqsKETI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<p class=\"responsive-video-wrap clr\"><iframe title=\"Stream Processing - Aprender BIG DATA #8\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/XCCe1_ZqvOM?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<div class=\"wp-block-group newsletter-re\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<!-- Begin Brevo Form -->\n<!-- START - We recommend to place the below code in head tag of your website html  -->\n<style>\n  @font-face {\n    font-display: block;\n    font-family: Roboto;\n  }\n\n  @font-face {\n    font-display: fallback;\n    font-family: Roboto;\n    font-weight: 600;\n  }\n\n  @font-face {\n    font-display: fallback;\n    font-family: Roboto;\n    font-weight: 700;\n  }\n\n  #sib-container input:-ms-input-placeholder {\n    text-align: left;\n    font-family: \"Helvetica\", sans-serif;\n    color: #c0ccda;\n  }\n\n  #sib-container input::placeholder {\n    text-align: left;\n    font-family: \"Helvetica\", sans-serif;\n    color: #c0ccda;\n  }\n\n  #sib-container textarea::placeholder {\n    text-align: left;\n    font-family: \"Helvetica\", sans-serif;\n    color: #c0ccda;\n  }\n<\/style>\n<link rel=\"stylesheet\" href=\"https:\/\/sibforms.com\/forms\/end-form\/build\/sib-styles.css\">\n<!--  END - We recommend to place the above code in head tag of your website html -->\n\n<!-- START - We recommend to place the below code where you want the form in your website html  -->\n<div class=\"sib-form\" style=\"text-align: center;\n         background-color: #ffffff;                                 \">\n  <div id=\"sib-form-container\" class=\"sib-form-container\">\n    <div id=\"error-message\" class=\"sib-form-message-panel\" style=\"font-size:16px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#661d1d; background-color:#ffeded; border-radius:3px; border-color:#ff4949;max-width:600px;\">\n      <div class=\"sib-form-message-panel__text sib-form-message-panel__text--center\">\n        <svg viewBox=\"0 0 512 512\" class=\"sib-icon sib-notification__icon\">\n          <path d=\"M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-11.49 120h22.979c6.823 0 12.274 5.682 11.99 12.5l-7 168c-.268 6.428-5.556 11.5-11.99 11.5h-8.979c-6.433 0-11.722-5.073-11.99-11.5l-7-168c-.283-6.818 5.167-12.5 11.99-12.5zM256 340c-15.464 0-28 12.536-28 28s12.536 28 28 28 28-12.536 28-28-12.536-28-28-28z\" \/>\n        <\/svg>\n        <span class=\"sib-form-message-panel__inner-text\">\n                          Tu suscripci\u00f3n no ha podido guardarse. Por favor vuelve a intentarlo.\n                      <\/span>\n      <\/div>\n    <\/div>\n    <div><\/div>\n    <div id=\"success-message\" class=\"sib-form-message-panel\" style=\"font-size:16px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#085229; background-color:#e7faf0; border-radius:3px; border-color:#13ce66;max-width:600px;\">\n      <div class=\"sib-form-message-panel__text sib-form-message-panel__text--center\">\n        <svg viewBox=\"0 0 512 512\" class=\"sib-icon sib-notification__icon\">\n          <path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 464c-118.664 0-216-96.055-216-216 0-118.663 96.055-216 216-216 118.664 0 216 96.055 216 216 0 118.663-96.055 216-216 216zm141.63-274.961L217.15 376.071c-4.705 4.667-12.303 4.637-16.97-.068l-85.878-86.572c-4.667-4.705-4.637-12.303.068-16.97l8.52-8.451c4.705-4.667 12.303-4.637 16.97.068l68.976 69.533 163.441-162.13c4.705-4.667 12.303-4.637 16.97.068l8.451 8.52c4.668 4.705 4.637 12.303-.068 16.97z\" \/>\n        <\/svg>\n        <span class=\"sib-form-message-panel__inner-text\">\n                          Gracias por suscribirte \ud83d\ude42\n                      <\/span>\n      <\/div>\n    <\/div>\n    <div><\/div>\n    <div id=\"sib-container\" class=\"sib-container--large sib-container--vertical\" style=\"text-align:center; background-color:rgba(249,250,251,1); max-width:600px; border-radius:7px; border-width:1px; border-color:#C0CCD9; border-style:solid; direction:ltr\">\n      <form id=\"sib-form\" method=\"POST\" action=\"https:\/\/45b7c589.sibforms.com\/serve\/MUIFAJUHX74hhdn6yVc3sScAj33FFxSgDh2U31jEyO8bXeQmVM0dKSOmYifgH3XNPOP2aDViwVBs9N6McSTxHJEzEx-3nNpomebkJUWOi7_tG2VHKFLj6EeyMplUrpj_VNPjl6BSC9WBN_uOLGnlnyKzUoB1RDaXbz1sakGbox07jJ2toYKwtJ0EyDjJmvQkZmF7Wk4iEcUMBwrU\" data-type=\"subscription\">\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-form-block\" style=\"font-size:25px; text-align:center; font-weight:700; font-family:&quot;Helvetica&quot;, sans-serif; color:#3C4858; background-color:transparent; text-align:center\">\n            <p><strong>\u00danete a la Comunidad Big Data<\/strong><\/p>\n          <\/div>\n        <\/div>\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-form-block\" style=\"font-size:16px; text-align:center; font-family:&quot;Helvetica&quot;, sans-serif; color:#3C4858; background-color:transparent; text-align:center\">\n            <div class=\"sib-text-form-block\">\n              <p>Tu conocimiento es la herramienta m\u00e1s potente. Suscr\u00edbete a la lista de correo para mantenerte al d\u00eda con los art\u00edculos m\u00e1s \u00fatiles para tu carrera en Big Data y Cloud. Sin spam, nunca.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-input sib-form-block\">\n            <div class=\"form__entry entry_block\">\n              <div class=\"form__label-row \">\n\n                <div class=\"entry__field\">\n                  <input class=\"input \" type=\"text\" id=\"EMAIL\" name=\"EMAIL\" autocomplete=\"off\" placeholder=\"TU EMAIL\" data-required=\"true\" required \/>\n                <\/div>\n              <\/div>\n\n              <label class=\"entry__error entry__error--primary\" style=\"font-size:16px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#661d1d; background-color:#ffeded; border-radius:3px; border-color:#ff4949;\">\n              <\/label>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-optin sib-form-block\" data-required=\"true\">\n            <div class=\"form__entry entry_mcq\">\n              <div class=\"form__label-row \">\n                <div class=\"entry__choice\" style=\"text-align:center;\">\n                  <label>\n                    <input type=\"checkbox\" class=\"input_replaced\" value=\"1\" id=\"OPT_IN\" name=\"OPT_IN\" required \/>\n                    <span class=\"checkbox checkbox_tick_positive\"\n            style=\"margin-left:\"\n            ><\/span><span style=\"font-size:13px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#3C4858; background-color:transparent;\"><p>Acepto la <a href=\"https:\/\/aprenderbigdata.com\/privacidad\/\" target=\"_blank\" rel=\"noopener\">pol\u00edtica de privacidad<\/a><\/p><span data-required=\"*\" style=\"display: inline;\" class=\"entry__label entry__label_optin\"><\/span><\/span> <\/label>\n                <\/div>\n              <\/div>\n              <label class=\"entry__error entry__error--primary\" style=\"font-size:16px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#661d1d; background-color:#ffeded; border-radius:3px; border-color:#ff4949;\">\n              <\/label>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-form-block\" style=\"text-align: center\">\n            <button class=\"sib-form-block__button sib-form-block__button-with-loader\" style=\"font-size:13px; text-align:center; font-weight:700; font-family:&quot;Helvetica&quot;, sans-serif; color:#FFFFFF; background-color:#13aff0; border-radius:3px; border-width:0px;\" form=\"sib-form\" type=\"submit\">\n              <svg class=\"icon clickable__icon progress-indicator__icon sib-hide-loader-icon\" viewBox=\"0 0 512 512\">\n                <path d=\"M460.116 373.846l-20.823-12.022c-5.541-3.199-7.54-10.159-4.663-15.874 30.137-59.886 28.343-131.652-5.386-189.946-33.641-58.394-94.896-95.833-161.827-99.676C261.028 55.961 256 50.751 256 44.352V20.309c0-6.904 5.808-12.337 12.703-11.982 83.556 4.306 160.163 50.864 202.11 123.677 42.063 72.696 44.079 162.316 6.031 236.832-3.14 6.148-10.75 8.461-16.728 5.01z\" \/>\n              <\/svg>\n              \u00a1SUSCR\u00cdBEME GRATIS!\n            <\/button>\n          <\/div>\n        <\/div>\n\n        <input type=\"text\" name=\"email_address_check\" value=\"\" class=\"input--hidden\">\n        <input type=\"hidden\" name=\"locale\" value=\"en\">\n      <\/form>\n    <\/div>\n  <\/div>\n<\/div>\n<!-- END - We recommend to place the below code where you want the form in your website html  -->\n\n<!-- START - We recommend to place the below code in footer or bottom of your website html  -->\n<script>\n  window.REQUIRED_CODE_ERROR_MESSAGE = 'Please choose a country code';\n  window.LOCALE = 'en';\n  window.EMAIL_INVALID_MESSAGE = window.SMS_INVALID_MESSAGE = \"La informaci\u00f3n proporcionada no es v\u00e1lida. Por favor, revisa el formato y vuelve a intentarlo.\";\n\n  window.REQUIRED_ERROR_MESSAGE = \"Este campo no puede estar vac\u00edo. \";\n\n  window.GENERIC_INVALID_MESSAGE = \"La informaci\u00f3n proporcionada no es v\u00e1lida. Por favor, revisa el formato y vuelve a intentarlo.\";\n\n  window.translation = {\n    common: {\n      selectedList: '{quantity} list selected',\n      selectedLists: '{quantity} lists selected'\n    }\n  };\n\n  var AUTOHIDE = Boolean(1);\n<\/script>\n<script defer src=\"https:\/\/sibforms.com\/forms\/end-form\/build\/main.js\"><\/script>\n\n<!-- END - We recommend to place the above code in footer or bottom of your website html  -->\n<!-- End Brevo Form -->\n\n\n\n<\/div><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En esta entrada exploramos las tecnolog\u00edas open source m\u00e1s populares de stream processing y analizamos sus ventajas y desventajas.<\/p>\n","protected":false},"author":1,"featured_media":2930,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"ocs-posts-sidebar","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[5],"tags":[170,12,173,9],"class_list":["post-2921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-big-data","tag-amazon","tag-faq","tag-hotmart","tag-video","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Stream Processing - Tecnolog\u00edas y Comparativa 2026<\/title>\n<meta name=\"description\" content=\"\u25b7 Aprende qu\u00e9 es el STREAM PROCESSING, cu\u00e1ndo usarlo, sus conceptos b\u00e1sicos y las ventajas y desventajas de las tecnolog\u00edas m\u00e1s populares\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/aprenderbigdata.com\/stream-processing\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stream Processing - Tecnolog\u00edas y Comparativa 2026\" \/>\n<meta property=\"og:description\" content=\"\u25b7 Aprende qu\u00e9 es el STREAM PROCESSING, cu\u00e1ndo usarlo, sus conceptos b\u00e1sicos y las ventajas y desventajas de las tecnolog\u00edas m\u00e1s populares\" \/>\n<meta property=\"og:url\" content=\"https:\/\/aprenderbigdata.com\/stream-processing\/\" \/>\n<meta property=\"og:site_name\" content=\"Aprender BIG DATA\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-12T07:42:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-08T21:47:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Oscar Fernandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@oscarfmdc\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oscar Fernandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/\"},\"author\":{\"name\":\"Oscar Fernandez\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#\\\/schema\\\/person\\\/321e79dd84000e4b71b0dac998d5c707\"},\"headline\":\"Stream Processing &#8211; Tecnolog\u00edas y Comparativa\",\"datePublished\":\"2020-06-12T07:42:56+00:00\",\"dateModified\":\"2025-10-08T21:47:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/\"},\"wordCount\":2260,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/stream-processing.jpg\",\"keywords\":[\"Amazon\",\"FAQ\",\"Hotmart\",\"Video\"],\"articleSection\":[\"Gu\u00edas Big Data\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/\",\"name\":\"Stream Processing - Tecnolog\u00edas y Comparativa 2026\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/stream-processing.jpg\",\"datePublished\":\"2020-06-12T07:42:56+00:00\",\"dateModified\":\"2025-10-08T21:47:16+00:00\",\"description\":\"\u25b7 Aprende qu\u00e9 es el STREAM PROCESSING, cu\u00e1ndo usarlo, sus conceptos b\u00e1sicos y las ventajas y desventajas de las tecnolog\u00edas m\u00e1s populares\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/#primaryimage\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/stream-processing.jpg\",\"contentUrl\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/stream-processing.jpg\",\"width\":1280,\"height\":720,\"caption\":\"Stream Processing Tecnolog\u00edas y comparativa\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/stream-processing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/aprenderbigdata.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stream Processing &#8211; Tecnolog\u00edas y Comparativa\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#website\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/\",\"name\":\"Aprender BIG DATA\",\"description\":\"Aprende Big Data desde cero\",\"publisher\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/aprenderbigdata.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#organization\",\"name\":\"AprenderBigData\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/cropped-favicon.png\",\"contentUrl\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/cropped-favicon.png\",\"width\":512,\"height\":512,\"caption\":\"AprenderBigData\"},\"image\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#\\\/schema\\\/person\\\/321e79dd84000e4b71b0dac998d5c707\",\"name\":\"Oscar Fernandez\",\"description\":\"Arquitecto de Datos con m\u00e1s de 10 a\u00f1os de experiencia en el sector del Big Data. Autor de cursos de formaci\u00f3n en tecnolog\u00edas Big Data, Cloud y Streaming completados por m\u00e1s de 7000 alumnos en Udemy y otras plataformas. Miembro de la Apache Software Foundation desde 2019.\",\"sameAs\":[\"instagram.com\\\/oscarfmdc\",\"linkedin.com\\\/in\\\/oscarfmdc\\\/\",\"https:\\\/\\\/x.com\\\/oscarfmdc\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCBqzJ1QI3jkkIYXLL9gVpWQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Stream Processing - Tecnolog\u00edas y Comparativa 2026","description":"\u25b7 Aprende qu\u00e9 es el STREAM PROCESSING, cu\u00e1ndo usarlo, sus conceptos b\u00e1sicos y las ventajas y desventajas de las tecnolog\u00edas m\u00e1s populares","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/aprenderbigdata.com\/stream-processing\/","og_locale":"es_ES","og_type":"article","og_title":"Stream Processing - Tecnolog\u00edas y Comparativa 2026","og_description":"\u25b7 Aprende qu\u00e9 es el STREAM PROCESSING, cu\u00e1ndo usarlo, sus conceptos b\u00e1sicos y las ventajas y desventajas de las tecnolog\u00edas m\u00e1s populares","og_url":"https:\/\/aprenderbigdata.com\/stream-processing\/","og_site_name":"Aprender BIG DATA","article_published_time":"2020-06-12T07:42:56+00:00","article_modified_time":"2025-10-08T21:47:16+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg","type":"image\/jpeg"}],"author":"Oscar Fernandez","twitter_card":"summary_large_image","twitter_image":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg","twitter_creator":"@oscarfmdc","twitter_misc":{"Escrito por":"Oscar Fernandez","Tiempo de lectura":"23 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/aprenderbigdata.com\/stream-processing\/#article","isPartOf":{"@id":"https:\/\/aprenderbigdata.com\/stream-processing\/"},"author":{"name":"Oscar Fernandez","@id":"https:\/\/aprenderbigdata.com\/#\/schema\/person\/321e79dd84000e4b71b0dac998d5c707"},"headline":"Stream Processing &#8211; Tecnolog\u00edas y Comparativa","datePublished":"2020-06-12T07:42:56+00:00","dateModified":"2025-10-08T21:47:16+00:00","mainEntityOfPage":{"@id":"https:\/\/aprenderbigdata.com\/stream-processing\/"},"wordCount":2260,"commentCount":0,"publisher":{"@id":"https:\/\/aprenderbigdata.com\/#organization"},"image":{"@id":"https:\/\/aprenderbigdata.com\/stream-processing\/#primaryimage"},"thumbnailUrl":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg","keywords":["Amazon","FAQ","Hotmart","Video"],"articleSection":["Gu\u00edas Big Data"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/aprenderbigdata.com\/stream-processing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/aprenderbigdata.com\/stream-processing\/","url":"https:\/\/aprenderbigdata.com\/stream-processing\/","name":"Stream Processing - Tecnolog\u00edas y Comparativa 2026","isPartOf":{"@id":"https:\/\/aprenderbigdata.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/aprenderbigdata.com\/stream-processing\/#primaryimage"},"image":{"@id":"https:\/\/aprenderbigdata.com\/stream-processing\/#primaryimage"},"thumbnailUrl":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg","datePublished":"2020-06-12T07:42:56+00:00","dateModified":"2025-10-08T21:47:16+00:00","description":"\u25b7 Aprende qu\u00e9 es el STREAM PROCESSING, cu\u00e1ndo usarlo, sus conceptos b\u00e1sicos y las ventajas y desventajas de las tecnolog\u00edas m\u00e1s populares","breadcrumb":{"@id":"https:\/\/aprenderbigdata.com\/stream-processing\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/aprenderbigdata.com\/stream-processing\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/aprenderbigdata.com\/stream-processing\/#primaryimage","url":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg","contentUrl":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/stream-processing.jpg","width":1280,"height":720,"caption":"Stream Processing Tecnolog\u00edas y comparativa"},{"@type":"BreadcrumbList","@id":"https:\/\/aprenderbigdata.com\/stream-processing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/aprenderbigdata.com\/"},{"@type":"ListItem","position":2,"name":"Stream Processing &#8211; Tecnolog\u00edas y Comparativa"}]},{"@type":"WebSite","@id":"https:\/\/aprenderbigdata.com\/#website","url":"https:\/\/aprenderbigdata.com\/","name":"Aprender BIG DATA","description":"Aprende Big Data desde cero","publisher":{"@id":"https:\/\/aprenderbigdata.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/aprenderbigdata.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/aprenderbigdata.com\/#organization","name":"AprenderBigData","url":"https:\/\/aprenderbigdata.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/aprenderbigdata.com\/#\/schema\/logo\/image\/","url":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/2019\/08\/cropped-favicon.png","contentUrl":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/2019\/08\/cropped-favicon.png","width":512,"height":512,"caption":"AprenderBigData"},"image":{"@id":"https:\/\/aprenderbigdata.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/aprenderbigdata.com\/#\/schema\/person\/321e79dd84000e4b71b0dac998d5c707","name":"Oscar Fernandez","description":"Arquitecto de Datos con m\u00e1s de 10 a\u00f1os de experiencia en el sector del Big Data. Autor de cursos de formaci\u00f3n en tecnolog\u00edas Big Data, Cloud y Streaming completados por m\u00e1s de 7000 alumnos en Udemy y otras plataformas. Miembro de la Apache Software Foundation desde 2019.","sameAs":["instagram.com\/oscarfmdc","linkedin.com\/in\/oscarfmdc\/","https:\/\/x.com\/oscarfmdc","https:\/\/www.youtube.com\/channel\/UCBqzJ1QI3jkkIYXLL9gVpWQ"]}]}},"_links":{"self":[{"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/posts\/2921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/comments?post=2921"}],"version-history":[{"count":1,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/posts\/2921\/revisions"}],"predecessor-version":[{"id":13617,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/posts\/2921\/revisions\/13617"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/media\/2930"}],"wp:attachment":[{"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/media?parent=2921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/categories?post=2921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/tags?post=2921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}