Un poco de Pulsar CEP

eBay acaba de liberar bajo licencia Apache 2 Pulsar.

Sus creadores lo definen así:

Pulsar es un es plataforma para el procesamiento de streams y analítica en tiempo real. Pulsar puede usarse para recolectar y procesar eventos de usuario y de negocio en tiempo real y para generar métricas y agregaciones sobre ventanas temporales todo esto siguiendo un lenguaje SQL-like.

Pulsar escala a millones de eventos por segundo en alta disponibilidad, se integra fácilmente con strores como Cassandra.

(Vamos lo que de toda la vida se define como un CEP :D)

Pulsar fue creado con estos objetivos:

· Escalabilidad: escalando a millones de eventos por segundo

· Latencia: procesamiento y entrada en órdenes menores de segundo

· Disponibilidad: sin caída del cluster durante actualización del software, actualización de las reglas y cambios en la topología

· Felxibilidad: facilidad para definir y cambias la lógica de procesamiento, ruteado de eventos, topologís

· Productividad: soporte para CEP y un lenguaje 4GL para filtrado de datos, agregación y procesamiento stateful

· 99,9% Data Delivery

· Despliegue en Cloud: los nodos pueden distribuirse entre data centers

FLUJO:

El flujo de Pulsar consiste en varios estados no acoplados.

Los eventos se transportan de forma asíncrona entre el pipeline lo que simplifica la escalabilidad permitiendo que cada estado pueda construirse y operarse de forma independiente.

LENGUAJE DE CONSULTAS:

Al estilo de los CEPs más tradicionales Pulsar ofrece un lenguaje de consultas SQL-like:

DESPLIEGUE:

La lógica CEP de Pulsar se despliega en diversos nodos (CEP cells = celda CEP), cada celda CEP se configure con un canal de entrada, un canal de salida y una lógica de proceso.

Los eventos se particionan por una clave (usuario por ejemplo) de modo que todos los eventos con una misma clave se rutean a la misma celda CEP.

En cada estado los eventos pueden particionarse por una clave diferente permitiendo agregación en varias dimensiones:

Con esta arquitectura para escalar a más eventos simplemente tengo que meter más celdas CEP.

Pulsar CEP usa Apache ZooKeeper para detectar nuevas celdas y rebalancear el tráfico, de la misma forma si una celda se cae Pulsar reenruta el tráfico a otros nodos…

Pulsar CEP soporta varios modelos de mensajería entre estados, pudiendo elegir modelo Push o Pull. Pulsar permite persistir los eventos en Kafka para garantizar el procesado.

Opinión:

Pulsar CEP resulta una solución muy interesante en el ámbito “Real Time Big Data”, se me ocurren diversos escenarios de uso:

· los que hayáis usado Storm habréis echado en falta un lenguaje estilo SQL para procesar los streams (algunos hasta hemos integrado un CEP con Storm)

· los que necesitéis un CEP con licencia Apache (y no GPL como Esper) hasta ahora teníais poca elección: Siddhi CEP

Pentaho report designer: una solución para crear informes a partir de mongodb

Originalmente publicado en about:

Pentaho Report Designer(PRD) es una herramienta de reporting fácil de utilizar y con multitud de aplicaciones. Los informes que genera se dividen en secciones o grupos de datos en los que los elementos del informe pueden ser posicionados. Esta forma de trabajar tiene algunas limitaciones, que se pueden superar con el uso de subinformes.

Pentaho Report Designer nos permite trabajar con múltiples orígenes de datos. (JDBC, Olap4J, Pentaho Analysis, Pentaho Data Integration, XML) incluido el metadata que tengamos definido en nuestro sistema. En particular y para este ejemplo vamos a utilizar una colección de MongoDB. El resultado de los informes que hemos diseñado se puede ver con las opciones de previsualización, y nos permite la salida de resultados en diferentes formatos como PDF, HTML, XLS, RTF y CSV.

Para realizar un informe necesitamos:

  • MongoDB: Necesitaremos que esté arrancada la base de datos y saber la dirección y el puerto.
  • Kettle:

Ver original 353 palabras más

Comparación de API Automation Tools: Apache UserGrid vs WSO2 API Manager

El equipo de acaba de publicar una comparación de varias herramientas para el desarrollo automatizado de APIs.

De entre las seleccionadas en el estudio:

· Apache UserGrid version 1.1.0

· WSO2 API Manager version 1.8.0

· Cumulocity (SaaS)

· MuleSoft API Gateway version 3.5

· StrongLoop Server version 2.0

Finalmente se seleccionan Apache UserGrid y WSO2 API Manager para un studio más detallado, resultando en:

“If you are building an API-based project on Cloud Foundry from scratch and the community edition of Cassandra satisfies your requirements, Apache UserGrid will be a great choice. It can help you to save resources by automating development and support of the backend, including data storage management. Unlike WSO2, Apache UserGrid has its own PaaS platform that provides API automation, e.g. API methods are generated for each object you create. Paid and limited free accounts are available. In addition, UserGrid supports Apache Tomcat, while WSO2 API Manager uses WSO2 Application Server. If the existing limitations of Apache UserGrid are critical, you should take a closer look at WSO2 API Manager.”

JetBrain WebStorm: por fin un IDE Javascript en condiciones!!!

JetBrains WebStorm es el IDE para Javascript desarrollado por JetBrains (los mismos del IntelliJ).

Es un IDEA que permite el desarrollo de capa cliente en JS pero también de la capa servidor con Node.js, de hecho ofrece soporte para todas estas tecnologías.

La falta de un gran IDE Javascript (y las herramientas de navegador no lo son, y los plugins de Eclipse no lo son) siempre ha sido una deficiencia para el desarrollo de Javascript, y además no lograba entender el motivo!!!

Si WebStorm es la mitad de la mitad de lo bueno que es el IntelliJ sin duda que merece la pena! (yo lo pongo en mis lista de TODOS!!!…actualizado…

Ya he hecho una prueba básica…he importado unos HTMLs + JS que tenía en mi local (y no precisamente sencillos), he puesto a depurar el proyecto, me ha pedido instalar el JetBrains IDE Support:

Y voilá…aquí estamos depurando Javascript al estilo Java!!!

Si os ha interesado podéis echar un primer vistazo aquí: https://www.jetbrains.com/webstorm/quickstart/

JSONSchema.net: Generar nuestro JSON-Schema desde JSON con Javascript

JSONSchema.net es un portal web que es capaz de generar un Schema-JSON a partir de un JSON, todo a través de librerías Javascript:

Tiene bastantes opciones de parametrización, aunque no permite indicar tratamientos de fechas, enumeraciones,…en cualquier caso es una herramienta muy útil.

Existen otras librerías que hacen esto mismo, como:

JSON Schema Generator en Python: https://github.com/perenecabuto/json_schema_generator

GenSON también en Python: https://github.com/wolverdude/GenSON/

Otro en Ruby: https://github.com/maxlinc/json-schema-generator

La ventaja de JSONSchema es que es 100% Javascript, de hecho si queréis reutilizar su código tiene una versión previa en el que las librerías Javascript no están ofuscadas y podéis seguirlo más fácilmente:

http://jsonschema.net/previous/#

PREDATOR: Bloquea tu PC con un USB

PREDATOR es una utilidad que permite bloquear tu PC cuando no estás, para eso usa un drive USB.

Su funcionamiento es el siguiente:

Al arrancar Windows se ejecuta PREDATOR, insertas el drive USB de control, cuando sale simplemente quitas el drive, esto deshabiita el teclado, ratón y la pantalla se pone a negro.

Cuando vueleves pones el drive USB y listo.

Hay 2 versiones, una gratuita y una profesional por 15 dólares y funcionalidades avanzadas:

Usando Google Scripting con Google Hoja de Cálculo

Google Scripting es el equivalente en Google Drive al VBA (Visual Basic for Applications) de Microsoft Office.

Aún recuerdo las virguerías que se programaban en Excel, en Access y hasta en Word hace unos años…pero eran otros tiempos, ahora todo es Cloud…y con Google Scripting podéis hacer lo mismo.

Vamos a ver un ejemplo sobre una hoja de cálculo Google.

1. Primero vamos a Google Drive:

2. Luego selecciono crear Hoja de cálculo

Introduzco algunos datos:

Ya podemos ponernos a desarrollar el script, vamos a marcar en rojo los gastos mayores de 100.

3. En el menú selecciono Herramientas>Editor de secuencias de comandos

En la siguiente pantalla puedo seleccionar Hoja de cálculo que me crea un script de ejemplo.

4. Creo una nueva función checkGastos

Guardo el script .gs. Si hay fallos de compilación me lo dirá.

5. Lo depuro pulsando el botón (me pedirá permiso)

Puedo poner puntos de interrupción.

6. Al acabar la ejecución tendré marcadas:

7. Para acabar este script se puede publicar como aplicación web o como complemento.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 565 seguidores

A %d blogueros les gusta esto: