StreamTools: Una herramienta para analizar streams
3 min de lectura

StreamTools: Una herramienta para analizar streams

572 palabras

Todos los días escuchamos hablar de Big Data, IoT, Smart Data, Machine Learning, semantic data, etc. Gran parte de las veces fuera de contexto o simplemente utilizadas porque “están de moda”.

Uno de los mejores ejemplos es “Big Data”, donde se habla siempre de ingentes cantidades de información, que si sistemas, plataformas, consultas, pero con el error, desde mi punto de vista, de tomar eso como información, no, no es información, son datos, datos en bruto o datos tratados, la información es la que se extrae de esos datos. Se pierden muchas veces, con el termino “Big Data” en sólo la parte de guardar ingentes cantidades de datos, replicados y en volumenes astronómicos. Eso no es “Big Data” eso es sólo hablar de una parte, la más mecánica, y la que menos aporta a lo que se busca “Información”, es sólo “almacenaje y gestión de datos”, una pata de una mesa mucho más amplia.

Entiendo el error como que se tiende a centrar más en los componentes que en la solución requerida.

Me encantan las pruebas de concepto (esas pequeñas o no tan pequeñas herramientas/soluciones para algo ya existente o nuevo pero aplicando una solución diferente) y es ahí donde he descubierto el proyecto de New York Times R&D: Streamtools.

Para New York Times R&D Streamtools se basa en tres predicciones a 3-5 años vista:

**1) Los datos serán proporcionados como streams (Flujo de datos): **Debido al volumen de datos estos serán obtenidos mediante “sensores” donde APIs basadas en streams prevalecerán sobre datos obtenidos de Bases de datos. En gran medida los origenes de datos “emitirán” datos. Poner una base de datos entre ese emisor y las personas/maquinas que los procesarán será algo demasiado caro (por los volúmenes).

2) El uso de streams cambiará como sacaremos conclusiones en el mundo: Siendo este cambio de paradigma el que nos haga empezar a pensar en términos de análisis, modelado, toma de decisiones y visualización.  Cada nuevo stream que llegue nos afectará instantaneamente a nuestra visión del mundo (lo puede cambiar).

3) Las herramientas adaptables nos inferirán nuevas formas de semantizar y obtener información: El analisis de datos tenderá al “Abductive Reasoning“: El investigar empezará a explorar y observar los datos y mediante hipótesis tratará de razonarlos.

Con esto en mente crearon Streamtools, una herramienta que, con un interface gráfico, permite definir y gestionar estos streams, y no sólo trabajar con ellos sino incluso definir nuevos streams a partir de datos u orígenes aparentemente “estáticos”.

68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3539373839372f323434333539372f62316332343131652d616533392d313165332d396662342d3432396533393534383632302e676966 De esta forma se pueden marcar cada cuanto tiempo deben leer y de que sitio y el proceso de limpieza, filtros, acciones para gestionar ese stream.

Casos de uso que han puesto a modo de ejemplo son:

  • análisis de las visitas de NYT mediante un Queue para generar informes automáticos diarios.
  • Un tracker de terremotos utilizando los datos en tiempo real del USGS.
  • Un sistema para ver los “objetos” perdidos de los sistemas de tránsito de NY.
  • Disponibilidad de bicicletas de Citibike en la parada más cercana a las oficinas de NYT.

Ver ejemplos

Además de los ejemplos tenemos origenes de datos potenciales (potencial su uso) para el paradigma de Streamtools:  Data Sources

Streamtools tiene licencia Apache 2 ( Open Source ) y está hecha en Go.  Como proyecto de investigación es una plataforma para explorar nuevos algoritmos y métodos de análisis. Streamtools permite ser extremadamente expresivos (claros y visuales) a la hora de crear prototipos de analisis de datos.

Comentarios

Últimas Entradas

3 min

523 palabras

Every day we hear about Big Data, IoT, Smart Data, Machine Learning, semantic data, etc. Many times out of context or simply used because they’re “trendy”.

One of the best examples is “Big Data”, where we always talk about huge amounts of information, systems, platforms, queries, but with the error, from my point of view, of taking that as information, no, no it’s not information, they’re data, raw data or processed data, information is what is extracted from that data. Many times, with the term “Big Data”, we get lost in only the part of storing huge amounts of data, replicated and in astronomical volumes. That’s not “Big Data”, that’s only talking about one part, the most mechanical one, and the one that contributes least to what we’re looking for “Information”, it’s only “data storage and management”, one leg of a much broader table.

4 min

703 palabras

Una revelación en forma de algoritmo

Gracias a un artículo de System Design Academy que me llegó esta semana, he estado reflexionando sobre algo que me parece curioso y simple a la vez: cómo ordenar datasets masivos de manera distribuida. Y sabes qué? Estos patrones son tan elegantes que se pueden aplicar a muchísimos otros problemas que enfrentamos día a día.

Como desarrollador que ha pasado de JavaScript a PHP, luego Python, y ahora está completamente inmerso en Golang, me llama la atención cómo ciertos patrones trascienden lenguajes y frameworks. La ordenación distribuida es uno de esos casos donde la arquitectura importa más que la implementación.

1 min

126 palabras

El primero es el muy sencillo, que no limitado, sistemas de interfaces de Go.

How to use interfaces in Go

El segundo, que no menos importante, dejando bien claro y mostrando el código en C# vs Go.

Statements are statements, and expressions are expressions (in Go)

Como siempre necesitaremos algo de depuración:

Scheduler Tracing In Go

Un proyecto, verde, pero prometedor, para (entre otros) ejecución distribuida:

hyflow-go: A geo-replicated, main-memory, highly consistent datastore