Templates are here!

Templates were definitely ranked #1 in our most-requested features, far ahead of #2. Yet, it took a while to appear, and it was never our desire to rush this important feature, because we really…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Procesando datos en tiempo real con IBM Streams

Una vision general sobre la herramienta.

IBM Streams es un sistema de procesamiento distribuido creado hace mas de 10 años por IBM a pedido del Gobierno de los Estado Unidos para analizar y correlacionar grandes volumes de información a gran velocidad.

Contenido de temas:

La herramienta es licenciada y actualmente se encuentra disponible en las siguientes versiones:

La herramienta permite la ingestión de información (estructurada o no) desde diversas fuentes y formatos. Cómo así también transmitir los resultados a otros sistemas.

Para lograr esto IBM Streams provee de operadores -encargados de procesar los datos- y toolkits -como si fueran librerías- que son conjuntos de operadores con un propósito determinado. Algunos toolkits son:

SPL Standard Toolkit

Toolkits Especializados

Open Source Toolkits

Streams permite la creación de procesadores y toolkits custom. En el GitHub de la herramienta se pueden descargar y contribuir con toolkits open source como los siguientes:

La curva de aprendizaje es rápida, mas tiempo lleva conocer los mas de 160 operadores -con sus propiedades- aunque no usaremos todos ellos.

IBM Streams nos facilita de un lenguaje de programación de alto nivel denominado SPL (Streams Programing Language) muy fácil de aprender. También soporta programar en Java, Scala y Python.

El entorno de desarrollo es un IDE Eclipse customizado que permite también trabajar con drag and drop. Para la versión Cloud existe una extensión para Visual Studio Code.

Una comodidad de la IDE, es poder lanzar desde la misma las aplicaciones Streams directamente a un ambiente de desarrollo o testing en un servidor remoto.

La documentación que a la hora de aprender e investigar es tan importante esta organizada de una forma muy practica y concisa. Los ejemplos de proyectos de aplicaciones que se disponen en el GitHub son muy valiosos a la hora practicar, aprender y escribir código.

Los componentes básicos de una aplicación Streams son los siguientes:

Operador

El operador es el componente fundamental y se encarga de realizar operaciones especificas sobre los datos.

Un operador recibe una secuencia de registros que fluyen hacia el puerto de entrada (input port). Esta secuencia de registros se denomina stream.

Los operadores pueden tener 1 o mas puertos de entrada, o alguno en particular ninguno.

A medida que ingresan los registros del stream, estos se procesan en memoria generando una nueva secuencia de registros que se emitirá por el puerto de salida (output port) del operador. Puede haber 1 o varios puertos de salida, o incluso ninguno, por ejemplo en un operador que escriba logs a disco.

Job, Tupla y Esquema

Una aplicación Streams (job) es una secuencia de Operadores conectados por streams de registros.

Los stream están formados por secuencias de registros individuales que fluyen de un operador a otro. Estos registros individuales son las Tuplas.

Un Esquema es la especificación de tipos de datos y atributos en una tupla. En el ejemplo anterior el esquema de las tuplas esta definido por tres campos:

Un operador puede recibir en su puerto de entrada tuplas de un Esquema A, realizar el procesamiento, y generar nuevas tuplas para el puerto de salida con un Esquema B.

SPL

La sintaxis del lenguaje de programación de la herramienta es muy clara y fácil de entender. A continuación el código fuente de la imagen anterior.

Dentro de un composite se define la clausula graph donde concatenamos todas las secuencias de operadores.

Los stream unen los operadores a través de los puertos de salida — puertos de entrada.

La aplicación realizará las siguientes acciones:

El dataset completo fue procesado leyendo desde el disco en 2 minutos.

El entorno de ejecución fue el siguiente:

Add a comment

Related posts:

FANCHAIN

The influx of people into the cryptocurrency market has made an astronomical rise in the adoption of blockchain technology. Numerous supporters, investors from different field of professions and…

Would You Still Call 911 if it Ignored Your Escalations?

In our Try It Series, we will explain a common Agile or company problem, and provide solutions that have worked for us in the past. We’ll also include complete job aides and coaching materials for…

The 5 Love Languages of Clients

Sometimes we feel like we’re dating our clients. We’re always talking to them and thinking about them, trying to impress them, making sure they’re happy. After going through many, many of these…