Material Big Data

Lanzados ppts informativos de tecnologías BigData: Hadoop, Hbase, Hive, Zookeeper...

Pentaho Analytics. Un gran salto

Ya se ha lanzado Pentaho 7 y con grandes sorpresas. Descubre con nosotros las mejoras de la mejor suite Open BI

La mejor oferta de Cusos Open Source

Después de la gran acogida de nuestros Cursos Open Source, eminentemente prácticos, lanzamos las convocatorias de 2017

31 oct. 2016

Aplicaciones de Big Data en Turismo


Interesante estudio el que presentan nuestros amigos de Territorio Creativo, donde se hace un buen repaso a las aplicaciones del Big Data en el ámbito del Turismo

Por nuestro lado, os dejamos algunos ejemplos de aplicación en Turismo y demostraciones Big Data, aplicables a diferentes áreas



27 oct. 2016

Twitter Real Time Dashboard




Buen ejemplo de aplicación de Real Time con tecnologías Big Data para la ingesta de información de redes sociales, que luego podrá ser procesada, aplicar 'sentiment analysis', cruzar con información en un Data Lake, etc...

Acceder Dashboard

Arquitectura:







El  usuario o API envía palabras de filtro mediante una conexión WebSocket; en el servidor se crea una conexión con el cliente (API o usuario) obtenida a través del componente "Stream Holder", cuya función es gestionar la conexiones solicitadas.

El "Stream Holder" solicita una credencial al "Credentials Pool", con la cual se se abre una conexión con el API público de Twitter y envía una consulta especificando los filtros, el resultado son tweets en tiempo real recibidos a través del "Message Receiver".
El "Message Receiver" es un sujeto dentro del patrón observer: cuando la conexión a Twitter recibe un tweet, lo notifica al "Message Receiver" y este, para no bloquear el hilo que lo invoca, usa una Cola de Mensajes para comunicarse con el "Server Socket", es decir, pone los mensajes en la cola y el "Server Socket" los recoge de allí.
Este proceso optimiza el tiempo de bloqueo en O(1), que es la Complejidad Computacional de insertar en una cola.
Esta solución es extensible a un número mucho mayor de nodos, en complemento con un cluster kafka como se muestra en nuestra demo con kafka.

Verlo en funcionamiento:

Migracion y Update de versiones de Pentaho


Pentaho CE lleva más de 10 años siendo implementado en muchas organizaciones. 

Afortunadamente, en la mayor parte de los casos, los usuarios le sacan un gran partido, pero conforme han ido saliendo nuevas versiones y se han ido produciendo mejoras por la comunidad, se suele hacer necesario un upgrade para mejorar:

- Rendimiento y cuellos de botella
- Mejorar el front-end y la experiencia de usuario
- Incluir nuevas funcionalidades y mejoras

Podéis echar un vistazo a las mejoras que introducen los especialistas en Pentaho de Stratebi, que incluyen:

- Mejoras en la consola (tags, search, comentarios)
- Herramientas OLAP y Reporting mejoradas
- Nuevas herramientas de generación de Dashboards y Scorecards
- Potentes Cuadros de Mando predefinidos
- Integración con entornos Big Data y Real Time

Ver las mejoras en acción:

Demo_Pentaho - Big Data



Proximo webinar de presentacion del nuevo Jedox 7
















No te pierdas el próximo webinar de Presentación de la mejor herramienta Business Intelligence para Planificación y Presupuestación. Registrate gratuitamente




25 oct. 2016

Los mejores recursos Open Source para Alfresco


Para todos los que trabajáis con Alfresco, encontrareis tremendamente útil esta recopilación:

Auditing

Authentication and Authorization

  • alfresco-agreement-filter - This extension adds a must read page for every user before starting to use Alfresco.
  • Share oAuth - Spring Surf extension allowing remote endpoints to be easily set up against OAuth 1.0 and OAuth 2.0 services
  • Share oAuth SSO - Alfresco Share OAuth SSO Support

Backup and Restore

  • Alfresco BART - Backup and Recovery Tool - Alfresco BART is a tool written in shell script on top of Duplicity for doing Alfresco backups and restore from a local file system, FTP, SCP or Amazon S3.

Benchmark

  • Alfresco Benchmark - Alfresco Benchmark framework, utilities and load tests: a scalable load test suite

Content Management Systems

  • Crafter CMS - A web CMS built on top of Alfresco as the repository

Content Management System Integrations

Content Stores

Classification and OCR

Custom Builds

  • LXCommunity ECM - Open source custom build of Alfresco Community with commercial support

Data List Management

Desktop Sync

  • CMISSync - Synchronize content between a CMIS repository and your desktop. Like Dropbox for Enterprise Content Management!

Development

  • Aikau - Aikau UI Framework
  • Alfresco SDK - The Alfresco SDK based on Apache Maven, includes support for rapid and standard development, testing, packaging, versioning and release of your Alfresco integration and extension projects
  • Alfresco Enhanced Script Environment - Provide additional functionality for the server-side JavaScript environments of both the Alfresco Repository and Alfresco Share tier.
  • Alfresco JavaScript Batch Executer- Alfresco easy bulk processing with JavaScript
  • Alfresco Javascript Console - Administration Console component for Alfresco Share, that enables the execution of arbitrary JavaScript code against the repository
  • alfresco-jscript-extensions - Alfresco repository module with helpful javascript root object extensions which are helpful in much scenarios.
  • Alfresco Maven - Base Maven setup of parent POM, common definitions and plugins for building Alfresco modules without Alfresco SDK (except for a single plugin mojo)
  • Alfresco @mvc - Enables the usage of Spring @MVC within Alfresco.
  • alfresco-ng2-components - Alfresco Angular 2 components
  • Dynamic Extensions for Alfresco - Rapid development of Alfresco repository extensions in Java. Deploy your code in seconds, not minutes. Life is too short for endless server restarts.
  • Enables Cors support for an Alfresco repository - Enables Cors support for an Alfresco repository
  • generator-alfresco - A Yeomen generator based on the Alfresco all-in-one Maven archetype with some generators and an opinionated project structure.
  • Alfresco Share ReactJS - An Alfresco AIO starter kit to start creating Alfresco Share widgets with ReactJS
  • Alfresco Utility - Project to consolidate abstract utility features that may be reused across functional Alfresco modules

Deployment and Installation

  • Alfresco Ubuntu Install - Install a production ready Alfresco on Ubuntu 14.04 onwards.
  • Chef Alfresco - A build automation tool that provides a modular, configurable and extensible way to install an Alfresco architecture
  • Docker Alfresco - Containerised Alfresco
  • Puppet Alfresco - Puppet Build Script for Alfresco
  • Vagrant Alfresco - Project for starting up an Alfresco instance inside a Vagrant VM
  • Alfresco SPK - Design, run, integrate Alfresco stacks
  • Share Announcements - Alfresco add-on that allows system announcements to be managed in the Data Dictionary and displayed on the login page.

Digital Signatures

  • Alfresco eSign Cert - Provides an Alfresco Share action for signing PDF files (PAdES-BES format) and any other file (CAdES-BES format detached) via java applet and more.
  • CounterSign - A digital signature solution for Alfresco

Documents

Email

Encryption

  • Alfresco Encryption Module - Extends features of Alfresco system, which allows users to encrypt and decrypt their data on repository.

External App Development

External Clients and Applications

Form Controls and Document Library Components

  • alfresco-colleagues-picker-form-control - Limits the people picker to show only users members of the same groups the current logged in user is member
  • alfresco-value-assistance - Configurable value assistance module for Alfresco Share that allows picklists to be managed using datalists.
  • Alvex Datagrid - Can be used in place of Alfresco default datagrid with additional features
  • Alvex Masterdata - Extends default Alfresco content model LIST constraints to use dynamic and external lists of values.
  • Alvex Orgchart - Extends standard Alfresco users and groups functionality by adding complete organizational chart that is more convenient for business users than flat groups.

Integrations

Online Editing

Mobile Clients

Localisation Tools

Language Packs

  • Serbian - Serbian Language pack for Alfresco
  • Swedish - Swedish Language pack for Alfresco

Management

Records Management

Share Add-ons

Share

Share Dashlets

Transformers and Previewers

Tutorials

Visualisations

  • Alfresco Visualization Tools - Includes dashlets to view and visualize content within Alfresco repositories using D3.js and Simile Project.
  • ContentCraft - ContentCraft is a Bukkit style plugin for Minecraft that connects, via CMIS, to an Alfresco repository.

Workflow

  • Activiti - Activiti Workflow
  • Flowable - Recent fork of Alfresco Activiti by core maintainers

Documentation

Other


  • Slack Bot for Alfresco - a simple chatbot for Slack that connects to your Alfresco instance and provides some handy functionality
  • Alfresco Tooling - Common Alfresco tooling, scripts and test setups.


20 oct. 2016

Las 6 soluciones Open Source que usan las empresas



Nos podríamos extender en este correo, pero seremos concretos. Lo que queremos reflejar es una realidad que estamos viendo en cada vez más organizaciones. Y es el uso de soluciones Open Source, cada vez de mayor calidad para gestionar el día y día y las necesidades estratégicas de las compañías

Ya no hablamos solo de sistemas operativos o soluciones de backend, sino de potentes soluciones de negocio para todo tipo de usuarios de dento de la compañía. Aquí están:

Portales (y más): Liferay
Gestor Documental (y más): Alfresco
Analytics (y más): Pentaho
ERP (y más): Odoo
CRM (y más): SuiteCRM
Data Management (y más): Talend




18 oct. 2016

Detección de fraude en comercios con Neo4J


En este pequeño ejemplo vamos a demostrar las capacidades para la detección del fraude de Neo4J (Base de datos orientada a grafos), que han hecho nuestros compañeros de Stratebi

Nuestro juego de datos incluye:
  1. 10 Personas (Nodos): Fernando, Juan, Daniel, Marcos...
  2. 13 Comercios (Nodos): Fnac, El Corte Inglés, Primark, Ikea...
  3. 64 Transacciones de compra (Relaciones) que identifican compras de una determinada persona en un comercio. Cada una de estas Relaciones tiene los siguientes atributos: cantidad de la compra en €, fecha y estado (legítima o fraudulenta).
// Crear Clientes 10
CREATE (Fernando:Persona {id:'1', nombre:'Fernando', sexo:'masculino', edad:'50'})
CREATE (Juan:Persona {id:'2', nombre:'Juan', sexo:'masculino', edad:'48'})
CREATE (Daniel:Persona {id:'3', nombre:'Daniel', sexo:'masculino', edad:'23'})
CREATE (Marcos:Persona {id:'4', nombre:'Marcos', sexo:'masculino', edad:'30'})
CREATE (Gonzalo:Persona {id:'5', nombre:'Gonzalo', sexo:'masculino', edad:'31'})
CREATE (Marta:Persona {id:'6', nombre:'Marta', sexo:'femenino', edad:'52'})
...

// Crear Comercios
CREATE (Fnac:Comercio {id:'11', nombre:'Fnac', calle:'2626 Wilkinson Court', address:'Madrid 92410'})
CREATE (El_Corte_Ingles:Comercio {id:'12', nombre:'El Corte Ingles', calle:'Nuevos Minist', address:'Madrid 92410'})
CREATE (Primark:Comercio {id:'13', nombre:'Primark', calle:'2092 Larry Street', address:'Madrid 92410'})
CREATE (MacDonalds:Comercio {id:'14', nombre:'MacDonalds', calle:'1870 Caynor Circle', address:'Madrid 92410'})
CREATE (Springfield:Comercio {id:'15', nombre:'Springfield', calle:'1381 Spruce Drive', address:'Madrid 92410'})
CREATE (Burguer_King:Comercio {id:'16', nombre:'Burguer King', calle:'826 Anmoore Road', address:'Madrid 92410'})
CREATE (Ikea:Comercio {id:'17', nombre:'Ikea', calle:'1925 Spring Street', address:'Madrid 92410'})
CREATE (Nike:Comercio {id:'18', nombre:'Nike', calle:'4209 Elsie Drive', address:'Madrid 92410'})
CREATE (Adidas:Comercio {id:'19', nombre:'Adidas', calle:'86 D Street', address:'Madrid 92410'})
CREATE (Sprinter:Comercio {id:'20', nombre:'Sprinter', calle:'945 Kinney Street', address:'Madrid 92410'})
CREATE (Starbucks:Comercio {id:'21', nombre:'Starbucks', calle:'3810 Apple Lane', address:'Madrid 92410'})
... 

A continuación se muestra un subconjunto con 25 compras.

// Crear Compras
CREATE (Fernando)-[:HA_COMPRADO_EN {cantidad:'986', fecha:'4/17/2015', estado:'Legitima'}]->(Burguer_King)
CREATE (Fernando)-[:HA_COMPRADO_EN {cantidad:'239', fecha:'5/15/2015', estado:'Legitima'}]->(Starbucks)
CREATE (Fernando)-[:HA_COMPRADO_EN {cantidad:'475', fecha:'3/28/2015', estado:'Legitima'}]->(Nike)
CREATE (Fernando)-[:HA_COMPRADO_EN {cantidad:'654', fecha:'3/20/2015', estado:'Legitima'}]->(Primark)
CREATE (Juan)-[:HA_COMPRADO_EN {cantidad:'196', fecha:'7/24/2015', estado:'Legitima'}]->(Adidas)
CREATE (Juan)-[:HA_COMPRADO_EN {cantidad:'502', fecha:'4/9/2015', estado:'Legitima'}]->(El_Corte_Ingles)
CREATE (Juan)-[:HA_COMPRADO_EN {cantidad:'848', fecha:'5/29/2015', estado:'Legitima'}]->(Primark)
CREATE (Juan)-[:HA_COMPRADO_EN {cantidad:'802', fecha:'3/11/2015', estado:'Legitima'}]->(Fnac)
CREATE (Juan)-[:HA_COMPRADO_EN {cantidad:'203', fecha:'3/27/2015', estado:'Legitima'}]->(Subway)
CREATE (Daniel)-[:HA_COMPRADO_EN {cantidad:'35', fecha:'1/23/2015', estado:'Legitima'}]->(MacDonalds)
.....



Ahora vamos a comenzar a utilizar las capacidades de Cypher el lenguaje de consultas gráficas de Neo4J

1º Mostramos todas las operaciones fraudulentas

MATCH (victima:Persona)-[r:HA_COMPRADO_EN]->(comercio)
WHERE r.estado = "Fraudulenta"RETURN 
victima.nombre AS `Nombre Cliente`, 
comercio.nombre AS `Nombre Comercio`, 
r.cantidad AS Cantidad, 
r.fecha AS `Fecha Transaccion`
ORDER BY `Fecha Transaccion` DESC
Resultado: 16 Operaciones fraudulentas



2º Hasta ahora sabemos cuales son los comercios en los que han ocurrido casos de fraude. 

Pero existe un timador que estamos buscando, para ayudarnos a encontrarlo nos apoyaremos en la fecha de la transacción.
El ladrón que buscamos ha captado el nº de tárjeta de crédito en una compra legítima. Después de robar los datos de la tarjeta el ladrón ha realizado operaciones fraudulentas.
En la siguiente consulta mostraremos para personas han sido víctimas de fraude, operaciones de compra legítimas y anteriores en el tiempo a las fraudulentas. De esta forma nos aparecerán los comercios en los que se han podido robar el nº de la tarjeta.
MATCH (victima:Persona)-[r:HA_COMPRADO_EN]->(comercio)
WHERE r.estado = "Fraudulenta"

MATCH (victima)-[t:HA_COMPRADO_EN]->(otroscomercios)
WHERE t.estado = "Legitima"AND t.fecha < r.fecha

WITH victima, otroscomercios, t 
ORDER BY t.fecha DESC

RETURN 
victima.nombre AS `Nombre Cliente`, 
otroscomercios.nombre AS `Nombre Comercio`, 
t.cantidad AS Cantidad, 
t.fecha AS `Fecha Transaccion`
ORDER BY `Fecha Transaccion` DESC

Resultado: 34 operaciones legítimas y anteriores en el tiempo a las fraudulentas



3º Ahora vamos a calcular el denominador común, agrupamos y ordenamos por el nº de personas que han comprado en cada comercio.

MATCH (victima:Persona)-[r:HA_COMPRADO_EN]->(comercio)
WHERE r.estado = "Fraudulenta"

MATCH (victima)-[t:HA_COMPRADO_EN]->(otroscomercios)
WHERE t.estado = "Legitima"AND t.fecha < r.fecha
WITH victima, otroscomercios, t ORDER BY t.fecha DESC

RETURN
DISTINCT otroscomercios.nombre AS `Comercio Sospechoso`,
count(DISTINCT t) AS Contador,
collect(DISTINCT victima.nombre) AS Victimas
ORDER BY Contador DESC

Resultado: En todas las compras fraudulentas la persona propietaria de la tarjeta había realizado alguna compra en Primark en los días anteriores. Ahora ya sabemos tanto la fecha como el comercio donde fueron robados los datos bancarios.


Visualizamos ahora ordenadas por fecha las compras de las víctimas, de esta forma sabemos la fecha del robo de los datos.




16 oct. 2016

Using Carto and Pentaho in near Real Time Dashboards


Location intelligence or spatial intelligence, is the process of deriving meaningful insight from geospatial data relationships to solve a particular problem. (Click on the above dashboard)

It involves layering multiple data sets spatially and/or chronologically, for easy reference on a map, and its applications span industries, categories and organizations It is generally agreed that more than 80% of all data has a location element to it and that location directly affects the kinds of insights that you might draw from many sets of information (Wikipedia rules)

Deploying location intelligence by analyzing data using a geographical information system (GIS) within business is becoming a critical core strategy for success in an increasingly competitive global economy.

Location intelligence is also used to describe the integration of a geographical component into business intelligence processes and tools, often incorporating spatial database and spatial OLAP tools.

Check this Online Dashboard created by our friends from Stratebi

Now, this is easier and more affordable than never thanks to tools like Carto and Pentaho

14 oct. 2016

Caso de uso de Apache Kafka en tiempo real, Big Data


Este es un buen ejemplo de uso de Apache Kafka en entornos Big Data para consultas y visualización. Ver Cuadro de Mando

En la imagen inferior se muestra el cluster de brokers 3 producers que emiten datos hacia el cluster kafka.



El componente "Kafka Producer" se conecta al stream de la wikipedia y registra un listener, que es un sujeto del patrónobserver ; cuando se genera una actualización en la wikipedia se recibe a través del "Socket" y este lo notifica al "Listener", que contiene un org.apache.clients.producer.KafkaProducer, el producer registra un callback para notificarle que se ha enviado un mensaje a kafka, la notificación contiene el offset y lapartición de cada mensaje, en este paso se envía cada minuto vía API el tiempo en milisegundos y el offset para ese tiempo.


Esta información se almacena en una Base de Datos PostgreSQL, para luego ser consultada. Cuando el usuario selecciona una fecha a partir de la cual quieren ver los mensajes, el sistema busca en la Base de Datos un offsetregistrado en la fecha solicitada, el cluster kafka mantiene los mensajes en los ficheros locales por 3 días.
Una vez obtenido el offset para la fecha requerida se solicita por medio del "Consumer Holder" un "Thread Safe Kafka Consumer" que realiza las operaciones seek y poll, para indicar el punto y consumir a partir de él respectivamente.
Pordefecto,un org.apache.kafka.clients.consumer.KafkaConsumer no es Thread Safe, por tanto para ser usado en un entorno con accesos simultáneo de usuarios se hizo una implementaciónque permite usar un Consumer por varios hilossinchronizando el acceso al objeto.