Running a cluster with Apache Nifi and Docker

Sobre Apache NiFi hemos hablado mucho, ya sea en ejemplos de #DataStreaming ejecutados en RealTime o bien, en la construcción de Data Pipeline más simples. En todos los casos anteriores, nuestro Apache NiFi, era “Single node”. El post de hoy es lanzarlo mediante su opción de Cluster y mediante Docker. Veamos: Preparando el docker-compose.yml Lo primero será construir nuestro “docker-compose.yml” con todo aquello requerido. Como por ejemplo añadiendo un ZooKeeper para la gestión de la información entre los nodos de forma automatizada y, luego, la configuración de Apache NiFi. [Leer más]

Strategy: Cold, Warm, Hot Data Storage & Data Warehouse vs Data Lake Architecture

Ya por aquí hemos hablado, y mucho, de #Data-Pipeline o #Data-Streaming. Por ejemplo fue el caso del Banco ING Direct, donde a partir de una Pipeline podían extraer el fruto y conectar su proceso de datos basado en #Real-Time con su reporting o sus bases de datos más operacionales. También hemos hablado de CQRS, que no es lo mismo que la construcción de Pipeline basadas en #Real-Time sinó, basadas en un método para optimizar escrituras en bases de datos (write) y leerlas (read). [Leer más]

Apache Beam: construyendo Data Pipelines en Python

Apache Beam es una evolución del modelo Dataflow creado por Google para procesar grandes cantidades de datos. Los programas escritos con Apache Beam pueden ejecutarse en diferentes estructuras de procesamiento utilizando un conjunto de IOs diferentes. Ya hemos hablado aquí sobre otros frameworks como Hadoop, Spark, Flink, Google Cloud Dataflow, etc… Pero no ha habido una API unificada que vincule todos estos marcos y fuentes de datos, y proporcione una abstracción de la lógica de la aplicación desde un gran ecosistema de datos. [Leer más]

Apache Airflow: Batch Processing platform

Airflow es una plataforma de Batch Processing donde podremos crear, programar y supervisar dichos flujos de trabajo y todo mediante DAGs. Airflow ejecuta las tareas en un conjunto de workers mientras continúa con las dependencias especificadas. Dispone de una más que completa línea de comandos que permite realizar configuraciones un tanto complejas en los DAGs, como también de una correcta interfaz de usuario que facilita la visualización de las pipelines que se están ejecutando en producción, para su monitoreo y aplicar resolución de problemas cuando sea necesario. [Leer más]

Faust: Stream Processing for Python

Faust es una librería de procesamiento en flujo distribuido que ha sido diseñada y construida para manejar el procesamiento de grandes cantidades de datos en tiempo real. Se inspira en Kafka Streams, pero adopta un enfoque ligeramente diferente en el procesamiento de los flujos. Faust está escrito en Python 3, aprovechando así sus notables mejoras de rendimiento y se integra con su librería asyncio (Asynchronous I/O), escrita para facilitar los procesos asíncronos de alto rendimiento. [Leer más]

Real-Time: Data Streaming

Desde hace ya un tiempo que vamos hablando sobre #Data-Streaming, publicando casos reales como el de ING Direct. Aunque hoy queremos hacer una “review” general para ir enfocando próximos capítulos ya que, más que nunca, está de “moda” el tener Real-Time en nuestras plataformas de analítica. Por ejemplo en el caso anterior, del Banco ING, podemos ver como las transacciones online que están realizando sus clientes, rápidamente, están disponibles para sus equipos de Customer Support, vital para una eficiente atención al cliente. [Leer más]

Oozie vs Airflow, Open Source Data Pipeline

Anteriormente ya hemos hablado sobre sistemas de ingestión de datos, como es Apache NiFi o, también, de transformación de la información, como Apache Flink. Pero hoy venimos con sistemas de Data Pipeline o, también conocidos como Workflows. Hablaremos sobre Oozie y Airflow. Oozie Oozie es un sistema para la gestión de flujos de trabajo de código abierto escrito en Java para sistemas Hadoop. Oozie se centra, mayormente, en la flexibilidad y en la creación de flujos de trabajo complejos, permitiéndonos tener trabajos activos por tiempo, por eventos o tener disponibilidad de datos según las situaciones en que la disponibilidad de los mismos pueda ser impredecible. [Leer más]

Introduction to CQRS (segregando la tipología de uso y del dato)

En anteriores post hemos hablado sobre Data streaming como también de escalar bases de datos. Pero hoy vengo a darte una introducción, clara y concisa, sobre CQRS y su aplicación; utilizando un tanto los posts mencionados anteriormente. CQRS es un método para optimizar escrituras en bases de datos (write) y leerlas (read). Hoy en día, algunas más que otras, las empresas están ya acostumbradas a trabajar con grandes volúmenes de datos y, por lo tanto, con grandes bases de datos. [Leer más]

Democratización de datos, Data Self-Service con Druid + Imply.io

Tanto las herramientas de Bi (Business Intelligence), más tradicionales, como las más novedosas y nacidas a partir de la “irrupción” del BigData como son por ejemplo: Tableau, PowerBI, entre muchas otras… han transformado fundamentalmente la forma en que operamos los datos las organizaciones. Los directivos de todas las industrias ahora están utilizando la tecnología de análisis Big Data para una amplia gama de procesos, objetivos y necesidades de gestión. Y las aplicaciones potenciales de las herramientas de BI modernas son prácticamente infinitas, ya que han irradiado en casi todos los aspectos de la gestión operativa y la supervisión estratégica como, se han podido beneficiar de conocimientos más potentes y rápidos. [Leer más]

Kafka data structures, Zookeeper Offsets

Desde la versión 0.9 (current: 1.1.0), Kafka proporciona la capacidad de almacenar y distinguir los cambios sucedidos en los respectivos “topic” (offsets) directamente en Kafka en lugar de depender del Zookeeper. Los datos en Zookeeper, aunque son similares a un típico sistema de directorios, pueden tener datos asociados a los nodos. Estos datos pueden variar desde datos de configuración, detalles de estado, marcas de tiempo, etc… que ayudan a Zookeeper a hacer lo que mejor sabe hacer. [Leer más]