S wine_analytics wine_analytics MEMORIA Begoña Boloqui José Miguel Espinosa Mónica Manrique Carlos Valencia S wine_analytics S wine_analytics Introducción ............................................................................................................................... 3 Motivación.................................................................................................................................. 3 El Problema y la Oportunidad de Negocio ................................................................................. 4 Contexto ................................................................................................................................. 4 Definición del problema ......................................................................................................... 4 Oportunidad de Negocio ........................................................................................................ 5 Situación actual .......................................................................................................................... 6 Big Data y Analytics en el sector agroalimentario .................................................................. 6 Análisis de la competencia ..................................................................................................... 6 Nuestra propuesta...................................................................................................................... 9 Modelo de Negocio ................................................................................................................ 9 Propuesta de valor................................................................................................................ 11 Mapa Estratégico .................................................................................................................. 12 Balanced Scorecard .............................................................................................................. 13 Prueba de concepto ................................................................................................................. 14 Resultados ............................................................................................................................ 15 Marco Temporal ....................................................................................................................... 17 Solución Tecnológica ................................................................................................................ 19 Objetivo ................................................................................................................................ 19 Estrategia tecnológica .......................................................................................................... 21 Propuesta técnica a alto nivel .............................................................................................. 25 Fase 1- Adquisición de datos ............................................................................................ 26 Fase 2 - Procesado de datos ............................................................................................. 32 Fase 3 - Explotación y exportación de los datos .............................................................. 35 Patrón de arquitectura para la solución ............................................................................... 36 Soluciones para la Analítica .................................................................................................. 42 Herramienta de visualización ............................................................................................... 43 Análisis financiero..................................................................................................................... 43 Cuenta de resultados ............................................................................................................ 44 1 S wine_analytics Balance de situación ............................................................................................................. 47 Cash Flow .............................................................................................................................. 47 Rentabilidad .......................................................................................................................... 48 ANEXOS .................................................................................................................................... 50 Marco temporal – ciclo vegetativo de la vid ............................................................................ 51 Datos enológicos técnicos ........................................................................................................ 54 Comparativa de Bases de datos NoSQL ................................................................................... 57 Comparativa de Soluciones Big Data en Cloud ........................................................................ 96 Referencias (de los anexos tecnológicos)............................................................................... 114 2 wine_analytics S Introducción Wine_analytics es un proyecto innovador, que nace como proyecto final del Programa Ejecutivo en Big Data y Business Analytics 2014-2015. Esta memoria es el documento que explica detalladamente el proyecto wine_analytics y complementa el Resumen Ejecutivo del mismo. A través de este proyecto queremos aplicar los conocimientos adquiridos durante el programa, así como afianzar nuestras habilidades de comunicación y el trabajo en equipo. Además de los conocimientos mencionados, los principales componentes de este trabajo han sido la pasión y motivación que nos ha llevado en un principio a participar en este programa, así como la buena amistad desarrollada por este equipo a lo largo del curso. Motivación La industria de bebidas y alimentación es, junto al turismo, el primer sector industrial en España, y se erige uno de los principales motores económicos del país. En este contexto, la industria vinícola representa el 14% de toda la industria alimentaria española y supone el 1% del PIB. El vino español representa un factor importante en la imagen de nuestro país en el exterior y es una de las claves del éxito de España como destino del turismo gastronómico. Por todo ello es un sector de extraordinaria relevancia. Wine_analytics pretende aprovechar la analítica de inteligencia de negocio así como hacer uso de las tecnologías Big Data con dos objetivos principales: aumentar la eficiencia de los procesos, reducir la incertidumbre asociada a la toma de decisiones en una industria con fuerte dependencia de factores de difícil o limitado control, como es el caso del sector agroalimentario. Inicialmente se trata de un proyecto piloto interno de un grupo agroalimentario, centrado concretamente en la rama de la viticultura. Confiando en el éxito nuestro proyecto, el objetivo a medio y largo plazo es ampliarlo para que pueda utilizarse en otras áreas de negocio del grupo, tales como aceites, zumos o cafés y, en un futuro más lejano, ofrecerlo a terceras empresas del sector. 3 wine_analytics S El Problema y la Oportunidad de Negocio Contexto El grupo agroalimentario Pérez Cristóbal fue creado a finales del siglo XIX y se ha dedicado desde sus inicios a la manipulación y elaboración de productos agrícolas derivados. Está estructurado en varias divisiones: zumos, aceites, vinos, cafés y bebidas vegetales. El Grupo tiene su origen en el mundo del vino y es ahí donde es una referencia a escala mundial. A lo largo de su historia el Grupo se ha convertido en líder absoluto en los mercados de vinos y zumos en España. Es uno de los grupos de referencia de Europa y en este contexto es la segunda marca de zumos del continente. Su actividad comercial se extiende a más de 100 países de los 5 continentes, posicionándose en el quinto lugar a nivel mundial. Definición del problema Dentro de la división de vinos existen varias bodegas que producen vinos en distintas denominaciones de origen españolas. Entre ellas se encuentra Abadía de Haza, que está ubicada en el corazón de la Ribera del Duero y se basa en la variedad de uva autóctona Tempranillo para la elaboración de sus vinos. Esta bodega es la tercera del grupo por volumen de fabricación e ingresos y cuenta con varios tintos de diverso envejecimiento (roble, crianza, reserva y selección), posicionados en los tres canales de venta de la bodega: alimentación moderna horeca (hoteles, restaurantes y cafeterías) exportación El excedente de uva que no alcanza la calidad exigida por la dirección técnica de la bodega se vende a terceros, lo que supone un máximo del 10% del total de la producción de tempranillo. A pesar de la calidad extraordinaria de los vinos de esta bodega, Abadía de Haza se enfrenta a varios problemas: mejorar la uva de máxima calidad. Actualmente, ésta se sitúa en un 10% de la producción. Esta uva tan demandada es la que le confiere a los vinos de Abadía de Haza una marca distintiva que le ha hecho históricamente destacar y ser líder en el mercado; la consolidación de sus vinos Premium en restaurantes; 4 wine_analytics S la penetración en mercados americanos (Estados Unidos, México y Brasil principalmente), para cualquiera de sus vertientes, especialmente los de mayor envejecimiento (crianza, reserva y selección). La dirección del grupo es exigente con todas las divisiones y en especial con el sector del vino, que como ya hemos mencionado, fue el origen de este grupo empresarial. Por este motivo necesita posicionar adecuadamente sus vinos de alta gama (reserva y selección). Su ficha de cata destaca que son caldos complejos, con aromas intensos donde la fruta roja madura toma protagonismo, junto con notas de crianza muy expresivas, con clavo y cacao. Teniendo en cuenta los problemas arriba mencionados, el grupo pretende abrir una nueva etapa apostando por estos vinos de máxima calidad, a la vez que mantiene los vinos ya existentes. Oportunidad de Negocio Probando una serie de técnicas y tecnologías, se ha considerado que la producción de vino se puede mejorar notablemente en calidad y en su inclusión en los mercados donde no tiene la presencia y visibilidad requeridas. En una segunda fase se podrá utilizar y capitalizar ese conocimiento para otras divisiones del grupo e incluso venderlo como servicio a terceros. En este momento el grupo está abordando una serie de proyectos considerados “transversales” y que combinan recursos y personas de las distintas divisiones con el fin de encontrar sinergias significativas y que apuesten por la mejora continua de procesos y productos en los distintos frentes. Con la ayuda de unos asesores externos al comité de dirección, se decide establecer un equipo de trabajo entre distintos especialistas del grupo para aprovechar las capacidades innovadoras de Big Data y la analítica avanzada. Para el proyecto wine_analytics, que lidera personalmente el Director Financiero de la Compañía, este equipo está compuesto por: Carlos Valencia: Director Financiero del Grupo ya citado anteriormente José Miguel Espinosa: Corporate IT Manager del Grupo y especialista en BI Begoña Boloqui: Analista Senior de Datos y especialista en modelización del área de vinos Mónica Manrique: Analista Senior de Datos y de Investigación de Mercados de la división de Zumos 5 wine_analytics S Situación actual Big Data y Analytics en el sector agroalimentario El uso de tecnologías de la información es crucial para mejorar la competitividad y productividad, así como para ayudar en la toma de decisiones. Siendo esto muy común en sectores como el financiero o el marketing, en muchos otros ámbitos queda todavía un largo camino por recorrer. Uno de ellos es el sector agroalimentario, cuyos procesos son muy mejorables si se aplican las TIC. En la actualidad comienza a visualizarse la revolución que puede significar el Big Data para el sector de la agricultura. Las tecnologías actuales ya permiten recoger, gestionar y extraer información en tiempo real de las observaciones de la tierra y de sus sistemas naturales. El coste de recoger la información ha descendido drásticamente, y de la misma manera ha aumentado nuestra capacidad para procesar dicha información. Las empresas y los gobiernos empiezan a abordar algunos de los mayores retos explotando esta información, que hasta ahora no era accesible. Análisis de la competencia En el marco del sector agroalimentario están surgiendo en todo el mundo soluciones de monitorización del estado del cultivo (con redes de sensores), herramientas con análisis de imágenes (GIS) para estudiar el estado del cultivo y herramientas de ayuda en la toma de decisiones. Algunos ejemplos son: Bynse: es una solución Big Data para la agricultura y ha sido desarrollada por la empresa española Cubenube, especialista en el desarrollo de sistemas de datos e información en Cloud. La familia de productos Bynse permite controlar, desde cualquier dispositivo con conexión a Internet, el estado actual y las necesidades futuras de sus cultivos, desde el punto de vista suelo-planta-clima1. Siega: es un sistema basado en una red de sensores que, conjuntamente con una aplicación informática, permite monitorizar en tiempo real una serie de variables para realizar agricultura de precisión. La gestión de cultivos basada en la agricultura de precisión engloba actividades de monitorización, sistemas de soporte para la toma de decisiones o un medio 1 Fuente: www.bynse.com 6 wine_analytics S para la realización de determinadas acciones que controlen automáticamente sistemas de riego, fertilización o uso de pesticidas2. VineAlert: Proyecto del Cool Climate Oenology and Viticulture Institute (CCOVI), Universidad de Brock (Canadá). Es una base de datos online interactiva que provee información de niveles comparativos de resistencia de los brotes en diferentes lugares a lo largo del periodo inactivo o de dormición. Ayuda a los viticultores a gestionar el daño del invierno sobre el cultivo, a través de la monitorización del nivel de resistencia al frío de los brotes. El muestreo y análisis ocurre durante todo el período de dormición y los datos obtenidos ayudan a determinar cuándo es necesario tomar medidas para evitar la congelación y prevenir el daño de la uva. Los productores pueden personalizar los datos que quieren recibir del sistema y se les notifica cuando hay nuevos datos disponibles o reciben alertas cuando es probable que se vayan a alcanzar temperaturas críticas. Más de 250 productores están suscritos y la web tiene usuarios en Canadá, USA y en todo el mundo3. Mavrx: La empresa Mavrx se dedica a recopilar y organizar la información física de nuestro planeta. Provee herramientas y plataformas para conectar las infraestructuras ya existentes con la información del planeta desde el suelo hasta el espacio. Mavrx construye y utiliza sensores, Big Data y sistemas informáticos para ayudar al mundo a gestionar la tierra más eficientemente. Actualmente ofrece servicios de captación de imágenes y mapeo de viñedos en California y Sudáfrica4. Fuition Sciences: ha desarrollado una tecnología que "escucha" las necesidades de agua de la vid. Esto se hace mediante la evaluación de la cantidad de agua que la vid está transpirando (pérdida de agua) a través de sus hojas y por medio del monitoreo de flujo de savia. Esta tecnología ayuda a decidir cuándo y cuánto regar con precisión midiendo el consumo de agua de las viñas5. VinTank: es una plataforma de escucha de redes sociales centrada específicamente en gente interesada en el vino, que es una de las ocho categorías de las que más se habla online (junto a gastronomía, viajes, música, cine, restaurantes y software). Ayuda a los viticultores a entender el comportamiento online de los clientes para hacerse una idea de quién es quién en cuanto a sus preferencias de vinos. El software monitoriza cualquier conversación sobre 2 Fuente: www.siegasystem.com Fuente: http://www.ccovi.ca/vine-alert 4 Fuente: http://www.mavrx.co/product/vineyards/ 5 Fuente: http://www.fruitionsciences.com/es/login/home 3 7 wine_analytics S vinos en más de 4500 marcas de vino en todo el mundo, ayudando así a las bodegas a gestionar las escucha en redes sociales. A través de un dashboard se añade una capa de gestión de Social Media que permite conectar las transacciones directas del cliente con las cuentas de la compañía6. GMV: Proporciona servicios de consultoría e ingeniería, así como de desarrollo de software y hardware, integración de sistemas llave en mano y soporte a las operaciones. Entre las soluciones, dentro del contexto agroalimentario cabe destacar Wineo (Weather INformation and Earth Observation), un sistema de observación de la Tierra por el que, mediante imágenes captadas por satélite, se procesa la información obtenida generando un sistema de ayuda inteligente para la agricultura de precisión7. También existe un número limitado de empresas que proporcionan servicio de analítica técnica a nivel de laboratorio o consultoría de servicios para sectores agrícolas. Estas empresas tienen su foco no solamente en el sector agroalimentario, sino agrícola en general, así como aguas y medio ambiente. Algunos ejemplos son: Gemasbe Analítica8: consultoría y asesoramiento técnico en el sector agroalimentario. Presta asistencia en las fases de diseño, implantación y dirección técnica en las empresas del sector agroalimentario; también desarrolla actividad como Laboratorio Químico Agroalimentario. Su campo de trabajo se basa tanto en las actividades de Analíticas y Consultorías, y quedan recogidos por los sectores Agrícola, Enológico, Alimentario, Aguas y Medio Ambiente. Biotechveg9: ofrece al sector agroalimentario servicios analíticos, asesoramiento técnico e investigación y desarrollo. Ofrece a sus clientes datos e información técnica sobre sus productos agroalimentarios de sus clientes, de los que se requieren controles analíticos cada vez más exhaustivos. Provee servicios de microbiología de alimentos (incluyendo microbiología predictiva), análisis de alimentos, análisis de aguas, control de plagas, análisis, análisis fitopatológicos y microbiología ambiental. LAB (Laboratorio Analítico Bioclínico)10: su objetivo principal es proporcionar una respuesta integral a las necesidades analíticas requeridas por los sectores agroalimentario, ambiental, 6 Fuente: www.vintank.com/wineries/ Fuente: http://www.gmv.com/en/ 8 Fuente: http://www.gemasbe.es/ 9 Fuente: http://www.biotechveg.com/es/biotechveg/ 10 Fuente: http://www.lab-sl.com/index.php/es/ 7 8 wine_analytics S industrial y bioclínico. Los servicios analíticos se centran en el sector agrario, alimentario, medio ambiente, industria y otras instalaciones de riesgo biológico. Nuestra propuesta proporciona una solución completa para el cliente, mientras que las soluciones y compañías mencionadas anteriormente se enfocan en propuestas de valor específicas, especialmente de tipo Locking y Product Leadership11. Wine_analytics aúna varios servicios a lo largo de toda la cadena de producción, desde el mismo campo hasta el análisis de resultados de campañas de marketing, incluyendo datos de Redes Sociales. Esta propuesta de valor queda enmarcada dentro de la tipología Solutions, frente a sus competidores potenciales más directos. En un contexto internacional, la estadounidense Gallo ha sido pionera en este campo, destacando durante la InformationWeek en 2004, con el lanzamiento de APEX. Se apoya en el uso de tecnologías de la información junto con la viticultura, así como la analítica para tomar decisiones basadas en datos. Gallo cuenta con más de 500 TB de datos, que incluyen información sobre las cosechas y variedades de la uva que utiliza, las marcas que produce, los detalles sobre los hábitos de compra de sus distribuidores, entre otros. También incluyen información del punto de venta al por menor y datos de terceros, como el IRI y Nielsen, lo cual le permite también conocer comprándolos hábitos de consumo y las tendencias locales y regionales. Nuestra propuesta Modelo de Negocio Wine_analytics es una iniciativa del Grupo Pérez Cristóbal para mejorar la comercialización de varios vinos de la bodega Abadía de Haza, tanto en canales Horeca como en mercados exteriores, optimizando costes y mejorando la producción de uva y su calidad. Este modelo de negocio parte como un proyecto dentro del Grupo, que se escindiría del mismo una vez logrado el éxito en sus objetivos, exportando la analítica equivalente a otros sectores del grupo (como zumos y cafés), así como intentar crecer con otros clientes y rentabilizar el KnowHow adquirido. El objetivo del sistema contemplado es en primer lugar una mejora de la producción del vino Abadía de Haza Selección. Esto es posible aumentando la producción de uva de máxima calidad 11 Artículo: Strategy Maps, Converting Intangible Assets into Tangible Outcomes (Robert S. Kaplan and David P. Norton) 9 wine_analytics S del 10% al 12%, lo que implicaría un 20% de la producción de vino. En segundo lugar se busca el posicionamiento en restaurantes de dicho vino y su entrada en los mercados estadounidense, mexicano y brasileño. Tras múltiples estudios y análisis, se ha concluido que las principales variables que inciden en la calidad de la uva son las climatológicas, además de la propia calidad y antigüedad de la cepa, que serían parámetros dados. El impacto de la climatología en la producción se convierte en el principal factor a controlar, y para ello el enfoque sigue la siguiente secuencia: Predicción de eventos y condiciones climatológicas y biológicas: se implantarán estaciones meteorológicas y otros sensores contemplándose asimismo la incorporación de datos procedentes de imágenes de satélite y de otras fuentes, que permitan anticipar las condiciones y tomar las medidas oportunas, además de hacer un mejor seguimiento del riesgo de plagas. Medición y análisis del impacto de dichas condiciones en los parámetros de calidad y producción de la uva de máxima calidad: se pretende modelar el output de esta uva en función de las condiciones climatológicas. Esto se hace con el fin de lograr anticipación, planificar mejor la producción y gestión, y facilitar la comercialización del vino, gracias a una mayor garantía de calidad y homogeneidad del mismo. Aplicación de medidas correctivas: se aplicarán una serie de medidas con el objetivo de regular estos impactos climatológicos. En este sentido, se contemplan soluciones mitigantes tales como aerogeneradores o cobertura de viñas, en el caso de heladas; optimización del uso de químicos, en relación con el riesgo de plagas; optimización de fechas de recogida y vendimia, etc. El foco principal del modelo son las uvas de máxima calidad, que son las que harán destacar Abadía de Haza Selección sobre el resto de sus competidores. Respecto a la uva de calidad estándar, estas mismas acciones también son factibles y se llevarán a cabo. Como ya hemos comentado, la analítica y la anticipación resultarán actividades clave en la solución propuesta, pues serán los instrumentos principales de control de la producción y de la calidad. 10 wine_analytics S Propuesta de valor La propuesta de valor consiste en el desarrollo de una solución adicional al Business Intelligence ya existente en Pérez Cristóbal, y en la implantación de un nuevo sistema analítico que complemente a la anterior solución, proporcionando información clave para la gestión y control tanto de los procesos como de la logística y del producto final. Los valores de esta propuesta son múltiples, ya que permite optimizar la calidad tanto de la producción como del producto final. Ello se logra minimizando mermas mediante actividades como la monitorización varios de los procesos de la cadena de valor, el seguimiento de las condiciones medioambientales y de las vides; pero también se busca una mejora efectiva en la distribución de los distintos vinos, gracias al nuevo sistema analítico, que se convierte en un activo en sí mismo para la bodega. La nueva información que se pretende recoger con el desarrollo del Business Intelligence entra dentro de la clasificación Big Data al considerar algunas de las características básicas sobre la naturaleza de los datos: Su variedad: se trata de datos estructurados, semi-estructurados y no-estructurados; Su velocidad: necesaria para un tratamiento en tiempo real de determinadas mediciones críticas, desde la fase de maduración de la uva hasta la elaboración de los caldos; Su volumen: aunque ya con un menor impacto. Los nuevos datos capturados pueden definirse como estructurados, semi-estructurados y no estructurados, y provienen de la instalación de múltiples sensores capaces de recoger información en tiempo real y accesible vía web sobre múltiples parámetros críticos del terreno, de la vid y/o ambientales. Estos aspectos se explicarán con más detalle en el apartado Solución Tecnológica. En fases posteriores de la cadena de producción se contempla implantar dispositivos en la bodega para medir elementos críticos que afectan directamente a la calidad del vino durante su proceso de elaboración. Finalmente la integración de datos de geolocalización en la distribución, junto con los datos del ya mencionado BI, permitirá identificar los puntos críticos para optimizar la logística de distribución del producto a los clientes finales. 11 wine_analytics S El modelo de negocio se traduciría en los siguientes aspectos clave identificados en el siguiente Canvas. Mapa Estratégico Tomando como referencia la definición de Mapa Estratégico planteada por Kaplan y Norton12, construimos el mapa de nuestro proyecto teniendo en cuenta sus cuatro perspectivas. Los distintos valores de la propuesta se plantean en una hoja de ruta que permite definir las acciones necesarias para el cumplimiento de los objetivos planteados dentro de la estrategia para esta iniciativa 1. Perspectiva de Conocimiento: contemplamos el Business Analytics como el foco de nuestro modelo de negocio. Este permite aportar mucho más valor añadido que un simple Business Intelligence. Dada la vocación de crecimiento, este modelo de negocio que se plantea desarrollar precisará de una clara orientación internacional para lograr su expansión. 2. Perspectiva interna: la eficiencia y el respeto medioambiental serán esenciales para lograr desarrollar el proyecto en los términos planteados. La calidad y la orientación al cliente también formarán parte de las cuestiones estratégicas a garantizar en todo 12 Artículo: Strategy Maps, Converting Intangible Assets into Tangible Outcomes (Robert S. Kaplan and David P. Norton) 12 wine_analytics S momento. Como dimensión interna fundamental, es necesaria la capacidad de penetrar en otros sectores agroalimentarios para replicar el modelo desarrollado en vinos. De esta forma se podrá extrapolar a otras áreas en las que se puedan aprovechar equivalencias y sinergias que permitan desarrollar este modelo analítico. En este sentido, sectores como el aceite de oliva, los zumos o cafés son los planteamientos iniciales de expansión. 3. Perspectiva del cliente: Abadía de Haza es el piloto, y en este marco se busca mejorar la reputación y el posicionamiento como bodega mediante los vinos reserva y selección, así como aumentar el valor añadido en la cadena. 4. Perspectiva de finanzas: el objetivo es posicionarnos como líderes en Analytics para el sector agroalimentario, y apostar por la expansión internacional para lograr el ritmo de crecimiento deseado. Cabe también destacar la disminución significativa de los costes de producción basado el conocimiento de cada punto de la cadena de suministro. Balanced Scorecard Permite medir cuantitativamente el cumplimiento de los objetivos planteados en el mapa estratégico, de modo que si alguna de las mediciones no refleja los resultados esperados, podrán 13 wine_analytics S o bien tomarse acciones correctivas al respecto o flexibilizar la estrategia planteada a través del mapa estratégico, para hacerla sostenible en el tiempo. Los principales Key Performance Indicators (KPI’s) a los que hacer seguimiento se podrían clasificar en los siguientes grupos: KPI’s relativos a eficiencia en costes: consumo de agua, cantidad de uva producida para el nivel de calidad requerido, mermas en la elaboración de vino; KPI’s relativos a calidad de la uva: grado de maduración, niveles de fructosa y agua, momento óptimo de cosecha; KPI’s relativos a las características del vino: grado alcohólico, intensidad del sabor a madera, fruta, etc.; KPI’s relativos a la logística: geolocalización de ventas, análisis de riesgo de roturas de stock. KPI’s relativos al sentimiento del mercado respecto al producto: valoración en redes sociales y blogs especializados; percepción de calidad en los diferentes mercados. Prueba de concepto Con el fin de comprobar que nuestra solución es viable se llevó a cabo una prueba de concepto con fecha 20 de diciembre de 2014 en las bodegas y viñedos de Abadía de Acón. La prueba de concepto incluyó una reunión in-situ con los directores técnico y comercial para conocer en detalle el proceso de elaboración de sus vinos. En esta prueba se determinaron los parámetros que definen una uva como de máxima calidad y se identificaron una serie de factores que potencialmente podrían explicar las variaciones de dichos parámetros. Los técnicos de la bodega señalaron al clima como principal aspecto a analizar. De esta manera, se cruzaron mediciones de los parámetros de calidad de uva para una muestra periódica representativa del viñedo con diferentes variables climáticas, con el fin de evaluar el impacto de las mismas. De acuerdo con los primeros resultados obtenidos se concluyó que nuestro proyecto podía ser implantado para cumplir los siguientes objetivos: determinación precisa de la fecha óptima para vendimiar (en cada parcela) 14 wine_analytics S mejor planificación de la producción, anticipando necesidades fitosanitarias e hídricas en los viñedos en función de la variabilidad climática y optimizando fechas para su aplicación Después de conocer cómo este tipo de proyectos puede contribuir significativamente a resolver sus problemas y posicionar mejor sus vinos, el equipo de Abadía de Acón se mostró muy interesado en implantar la solución wine_analytics en su bodega. Durante los últimos meses hemos mantenido el contacto con ellos y nos han provisto de información muy valiosa para el proyecto, tanto técnica enológica como financiera. De la misma forma, a nivel tecnológico se ha desplegado un laboratorio en donde hemos podido probar el stack tecnológico que soporta toda la solución propuesta. Así, se han descartado alternativas que fueron apareciendo en nuestro horizonte mientras se diseñaba la solución, de modo que el resultado obtenido es el más apropiado para este caso de uso. Resultados Los resultados de esta primera prueba fueron positivos a pesar de que la base de datos construida para este objetivo era limitada en cuanto a registros históricos. Es por ello que lo que se buscaba era la confirmación de la relevancia de determinadas variables climáticas, más que la precisión de un modelo analítico Se concluyó un relevante poder explicativo de variables como las temperaturas mínimas absolutas durante los últimos tres meses antes de la vendimia (variable x2), de las precipitaciones durante el primer trimestre del año (variable x4), y del número de días de tormenta dos meses antes de la vendimia (variable x7). 15 wine_analytics S La metodología de modelización utilizada en esta prueba de concepto fue una regresión lineal multivariante. Si bien estas variables poseen correlaciones individuales significativas, no se puede considerar que, a pesar de ello, las correlaciones fueran altas. El modelo elaborado arroja valores razonables en cuanto a probabilidad, cercanos a la significancia (0,10), aunque un poco más alejado para el caso del intercepto. El p-valor de 0,2157 no es garantía de precisión, pero sí de que las variables consideradas de algún modo tienen relevancia destacable en la producción de vino que cumpla los criterios de calidad objetivo, como ocurre también con el estadístico t. El dato que a priori más podría generar optimismo es el dato que razonablemente sería el más engañoso: la bondad del ajuste, que es de 0,971. Este grado de bondad no puede considerarse real, pero verdaderamente, con los objetivos iniciales planteados de búsqueda de indicios, sí podría confirmar que de algún modo estas variables tienen poder explicativo. De acuerdo con estos primeros resultados, y en base a la experiencia del equipo técnico, se considera que con adecuada y puntual información sobre dichas variables, pueden ser posibles diferentes objetivos: determinación más exacta de la fecha más adecuada de vendimia, anticipándose a heladas, granizos o tormentas que pudieran afectar negativamente a la producción. 16 wine_analytics S mejor planificación de la producción, anticipando necesidades de los viñedos (agua, abonos, químicos, etc.) en función de la variabilidad climática y optimizando fechas para su aplicación. Abadía de Haza se enfrenta inicialmente a un problema de eficiencia en la producción de vino en base a uvas de máxima calidad: apenas el 10% de la producción de uva alcanza los parámetros de calidad requeridos para estas uvas de máximo prestigio, que confieren a los vinos de Abadía de Haza una distinción sobre el resto de sus competidores. Por lo tanto, el hecho de aumentar la producción de éste tipo de uva representa uno de los factores clave a optimizar para la mejora de los ingresos. Cabe destacar que el 90% de la producción de uva también es utilizada en la producción, pero su precio es tres veces inferior al de esa uva de máxima calidad. Se estima que el logro de los objetivos mencionados anteriormente podría permitir mejoras en la cantidad de producción de uva de máxima calidad superiores al 30%. En este sentido, y siendo más conservadores en virtud de las limitaciones de la prueba de concepto, se plantea como objetivo aumentar al 12% el total de uva de alta calidad, lo que permitiría un aumento de la producción de vino con mayor margen del 20% (vinos reserva y crianza). Con los datos actuales de uva de máxima calidad, en torno a una producción actual del 10%, el objetivo del 12% se considera como factible y realista, si bien sujeto a un análisis coste / beneficio para evaluar si las tecnologías aplicables al proyecto permiten una mejora de rentabilidad real del mismo. Marco Temporal Para el marco temporal del proyecto lo más importante a tener en cuenta es el ciclo de la vid, ya que ello va a determinar el momento en el que es crucial y pertinente tanto empezar a recolectar datos como a mostrar resultados. No es posible empezar el proyecto en cualquier época del año, ya que la vid pasa por un ciclo vegetativo anual con unos periodos muy definidos y reconocibles. Wine_analytics es por lo tanto un servicio estacional. 17 S wine_analytics El ciclo biológico anual de la vid comienza al principio de la primavera cuando, pasadas las bajas temperaturas del invierno que provocan la parada invernal, la savia empieza a sangrar por los cortes de la poda. Cuando las temperaturas medias llegan a los 10º C, entre marzo y abril, se produce el desborre o brotación de los pámpanos (nacimiento anual), que siguen creciendo hasta el mes de agosto. La principal preocupación de viticultor una vez producida la brotación es que no hiele. Si hiela se mueren los brotes, lo que puede reducir mucho la cosecha hasta casi desaparecer. Con la aparición de los brotes comienza la etapa de crecimiento anual de la planta, que dura hasta el envero (final de julio). El detalle del ciclo vegetativo de la vid está detallado como Apéndice. Como acabamos de detallar, es necesario enmarcar el comienzo del proyecto como mínimo 8 meses antes de la época de vendimia, es decir, en torno al mes de enero. Esto se debe a que la instalación de los sensores debe realizarse antes de que se produzca el desborre, es decir aproximadamente en el mes de marzo. En este punto del proyecto deben estar definidos tanto los requisitos del agricultor (cliente) los objetivos del proyecto. También debe estar montada la plataforma tecnológica, de modo que los sensores puedan empezar a recoger datos en cuanto se detecte la brotación, La fase de escucha y análisis de datos de Redes Sociales se puede llevar a cabo en paralelo desde el mismo momento en el que la plataforma funciona y permite la recolección de datos. De igual modo no es necesario esperar a la brotación para empezar a trabajar con los datos climatológicos. Se pueden ir analizando y creando modelos utilizando los históricos de años anteriores. Las fases del proyecto serán las siguientes: 18 wine_analytics S Definición de los requisitos de la división (bodega) 1 mes Definición de los objetivos del proyecto 2 semanas Implantación de la solución tecnológica (incluye integrar solución con BI corporativo) 2 meses Instalación de sensores y dispositivos en campo (viñedo), línea de producción (bodega) y línea de embotellado 2 semanas Puesta en marcha de campañas de marketing digital 1 mes Creación y entrenamiento del modelo predictivo en base a los datos existentes 1 mes Fase de prueba del modelo 2 semanas Correcciones del modelo (si son necesarias) 2 semanas Prueba de la solución integral 2 semanas Despliegue de la solución y puesta en producción 3 semanas Fase de control y soporte desde puesta en producción hasta fin de proyecto Fin de proyecto 0 5 10 15 Semana 20 25 30 35 1.Definición de los requisitos de la división (bodega) 2.Definición de los objetivos del proyecto 3.Implantación de la solución tecnológica (incluye integrar solución con BI corporativo) 4.Instalación de sensores y dispositivos en campo (viñedo) 5.Puesta en marcha de campañas de marketing digital 6.Creación y entrenamiento del modelo predictivo en base a los datos existentes 7.Prueba del modelo 8.Correcciones del modelo (opcional) 9.Prueba de la solución integral 10.Despliegue de la solución y puesta en producción 11.Fase de control y soporte Solución Tecnológica Objetivo Se pretende realizar un sistema de soporte a las decisiones para la optimización de los trabajos en el viñedo así como en la producción de uva para la mejora general de los vinos producidos y en particular para resolver los problemas que se han identificado en esta bodega y que dan lugar a un importante proyecto transversal dentro del grupo Pérez-Cristóbal. En bodega o nave, los sistemas tradicionales soportan bastante bien la recogida de información y la automatización de sistemas electromecánicos a través de dispositivos y técnicas ampliamente y, desde hace tiempo, usadas en la industria como autómatas programables, electroválvulas y 19 S wine_analytics controladores lógico programables (PLC’s) u otros dispositivos para la gestión de alarmas normalmente vinculados a la ingeniería eléctrica y/o mecánica. Para el caso de los trabajos en el campo y con el actual desarrollo y expansión de los sistemas de gestión de información heterogénea y masiva de datos aparecen interesantes alternativas vinculadas a la ingeniería informática que permiten la recogida y el tratamiento de esta información en tiempo y forma para la toma de decisiones. El propósito de la solución wine_analytics se centra, por un lado, en hacer agricultura de precisión que permita a los gestores una mejor toma de decisiones y anticiparse a determinados eventos fundamentalmente climáticos y fitosanitarios a través de la monitorización de los cultivos, predicción de las cosechas y estimación del uso de productos fertilizantes y necesidades de riego. La agricultura de precisión se ha convertido en una nueva forma de gestionar la información sobre cultivos y cosechas, frente a métodos tradicionales de agricultura. Se ha impulsado su crecimiento a partir de los avances en tecnología mediante sensores remotos, sistemas GIS, etc., conceptos hasta ahora aplicados a otros campos industriales y ahora inmersos en sistemas agrícolas avanzados. Dada la extensión agrícola de todos los campos con los que trabaja el grupo Pérez Cristóbal la toma de imágenes por satélite es un servicio con el que ya cuenta el grupo empresarial, tanto para los campos en arriendo como en propiedad. El beneficio de este servicio se torna rentable a partir de grandes extensiones, en torno a las diez mil hectáreas. En este contexto wine_analytics contará con esta fuente de información, que será volcada junto con las fuentes que se explicarán más adelante. Asimismo utiliza también datos meteorológicos que mejoran la toma de decisiones en aspectos tan relevantes para la agricultura como son la necesidad de regadío o momento de recolecta, reduciendo el consumo de agua, pesticidas y fertilizantes, minimizando tanto la huella de carbono, como el impacto de pesticidas en los productos agrícolas. Por otro lado, wine_analytics tiene el propósito de obtener información a través de las Redes Sociales de las campañas de marketing digital que el departamento de Marketing de la bodega y del grupo van a poner en marcha como parte de la estrategia corporativa así como de los resultados de comercio electrónico. 20 wine_analytics S La idea fundamental descansa en la utilización de datos de diferentes fuentes, siendo las más determinantes las mediciones microclimáticas que realizará el sistema de sensorización. Estas mediciones se procesan junto con predicciones y mediciones meteorológicas, registros de labores, enfermedades, consumos y otros tipos de datos con una solución tecnológica, que permite analizar a gran velocidad esa cantidad de información tan heterogénea, y obtener información, conocimiento y conclusiones valiosas que lleven a mejorar la toma de decisiones y la productividad de nuestros cultivos. Estrategia tecnológica En uno de los comités de operaciones del grupo se aprobó abordar el proyecto como un transversal a la organización en forma de piloto para comprobar su viabilidad y posibilidades de aplicación a otras empresas y negocios del grupo (fincas de olivares, naranjos, etc.). Por lo tanto la estrategia del grupo consiste en probar a través de este piloto las bondades de las soluciones propuestas por el equipo de trabajo y extrapolarlas a otros negocios del grupo para capitalizar las inversiones tanto económicas como de capital humano. Por otro lado, la estrategia del equipo de trabajo elegido para generar información que permita a la bodega ahorrar costes, mejorar su producción y elaborar unos mejores caldos se fundamenta en los siguientes pasos: Sensorizar los microclimas de las fincas y parcelas. Procesar los datos de los sensores con los de los servicios de predicción meteorológica y con los registros introducidos por los técnicos de la bodega y del consejo regulador, para obtener las necesidades actuales y futuras de los cultivos. Informar mediante la puesta a disposición para los gestores de la bodega y, de cualquier persona relacionada con los cultivos, a través de un servicio de información en la nube, que les permita gestionar la información generada en cualquier PC, tablet o smartphone a través de una conexión a Internet, con informes, gráficos, mapas, alarmas, etc. que permita gestionar ágilmente cualquier necesidad de los cultivos. En concreto la solución tecnológica estará focalizada en ayudar en dos frentes: Reducir las pérdidas de producción por eventos climáticos dañinos, permitiendo adelantarse a heladas, granizos, altas temperaturas, etc. 21 wine_analytics S Reducir los fitosanitarios aportados a los cultivos, empleando algoritmos y modelos de predicción de plagas y enfermedades para, en función del riesgo futuro, realizar los tratamientos pertinentes. Adicionalmente la solución tecnológica podrá también ayudar en: Reducir los costes de producción con información sobre el crecimiento, la gestión y la planificación de labores y los recursos asociados, etc. Reducir el uso de agua para el caso de las espalderas, ya que será capaz de cuantificar por microclimas las necesidades hídricas actuales y futuras, porque tiene en cuenta tanto los datos a nivel de planta (temperatura, humedad ambiente, estrés hídrico) como los datos a nivel de suelo (capacidad de campo y contenido volumétrico de agua). A continuación se van a detallar los pasos anteriormente mencionados que determinan la estrategia de generación de información sobre la que descansa la arquitectura del sistema informacional propuesto y su posterior integración con los sistemas de información del grupo. 1 Sensorizar La idea se basa en medir y cuantificar las diferencias micro climáticas existentes en fincas y parcelas. Éstas presentan, obviamente, frecuentes irregularidades en el terreno dentro del mismo viñedo así como desniveles orográficos que se revelan determinantes ante algunos fenómenos climáticos como las heladas. Para cuantificar estos microclimas, los sensores obtienen ciertas mediciones pero no las procesan para ello se requiere un micro controlador por medio del cual se definen parámetros, como por ejemplo la frecuencia de envío. Por otra parte, se necesita un elemento para transmitir los datos, el módulo de comunicaciones, que podría utilizar conexiones GPRS, 3G/4G, M2M, Wifi, Ethernet… El tamaño de información que se enviará dependerá de: Cantidad de sensores en un punto de medición. Cantidad de puntos de mediciones, en cuántos puntos queremos medir. Periodicidad de información, cada cuánto queremos tomar una medida. 22 wine_analytics S Previo a la instalación de los sensores en campo, se realizará un análisis sobre las fincas y parcelas, para delimitar las zonas con diferentes microclimas a las cuales se las denomina celdas. En función de la orografía, el tipo de suelo, el tipo de vid, etc. las celdas pueden abarcar una superficie diferente. En cada celda se instalan los sensores y las configuraciones adecuadas para la necesidad que se desea cubrir. Vamos a usar dos configuraciones en función de las diferentes necesidades: Configuración climática: desarrollada para predecir los riesgos meteorológicos como heladas, granizo, altas temperaturas, etc. Configuración enológica: diseñada para cuantificar las necesidades hídricas y optimizar las políticas fitosanitarias, basándonos en la evapotranspiración (ETP), el déficit de presión de vapor (DPV) y las propiedades físico-químicas del terreno. Los sensores actuales para este tipo de trabajo presentan compatibilidad y gran adaptabilidad a las necesidades particulares con múltiples puertos, robustez gracias al encapsulado IP-67, sencilla instalación en campo gracias a sus diferentes opciones de anclaje, fácil conexión y recambio de sensores mediante conectores universales. Tras analizar las diferentes opciones del mercado, se decide desplegar 33 estaciones meteorológicas de PCE Instruments cuyo modelo Watch Dog 2900 cumple con todo lo arriba descrito. Cada estación viene acompañada por 6 sensores externos con lo que contamos con 198 sensores para desplegar por el terreno junto con las 33 estaciones propiamente dichas. 23 wine_analytics S En la negociación, se acuerda que el soporte y mantenimiento de las estaciones, de los sensores y de la conexión móvil queda cubierto con el 10% del coste total de la operación y que será el proveedor quien lo lleve a cabo. 2 Procesar Wine_analytics tiene la capacidad de generar información valiosa sobre el estado y las necesidades actuales y futuras de los cultivos, debido al uso de tecnologías de procesamiento de grandes volúmenes de datos diferentes que permiten integrar y relacionar todos estos datos tan diferentes con las necesidades específicas del viñedo y predecirlas. Para realizar las predicciones se utilizan modelos y algoritmos basados en condiciones genéricas, pero a los que wine_analytics aporta inteligencia sobre las condiciones particulares personalizándolos a las condiciones específicas de cada finca y/o parcela y calculando las desviaciones con respecto a lo inicialmente esperado. Para poder generar esta información y dotar de inteligencia a los modelos, es necesario cuantificar los elementos que influyen en los cultivos: el clima, la vid, el suelo y las acciones sobre ellos. Para obtener estos datos heterogéneos, wine_analytics tiene varios métodos: Para obtener información sobre el clima, wine_analytics integra los datos sobre las mediciones y predicciones meteorológicas de los servicios meteorológicos más importantes. Los datos a nivel de microclimas tanto agronómicos como meteorológicos los aportan los sensores instalados estratégicamente en los viñedos. Los registros e información sobre las acciones y labores que se realizan en el campo y le afectan se adquieren desde las herramientas de registro de la bodega. Los históricos y los registros sobre la incidencia de enfermedades y plagas se obtienen directamente del consejo regulador y de las organizaciones que realizan la vigilancia fitosanitaria. 3 Informar En definitiva lo que la solución wine_analytics ofrece es un servicio de Analytics as a Service de forma transparente para los usuarios y que permite tomar decisiones accionables de forma ágil. A wine_analytics se accede con credenciales desde cualquier dispositivo que posea conexión a internet (PC, tablet o smartphone) para: 24 wine_analytics S Visualizar los datos enviados por los sensores. Administrar la Información generada sobre las necesidades actuales y futuras de sus cultivos (riego, enfermedades y plagas, crecimiento y clima). Gestionar las labores y acciones realizadas por los técnicos sobre los cultivos. Programar alarmas configurables según diferentes parámetros (Altas temperaturas, riesgos de enfermedades o plagas, etc.). Configurar el modo de funcionamiento de los sensores (energía, tiempos de medición, tiempos de envío, etc.). Una de las ventajas del servicio en la nube es que no necesita instalarse (acceso a través de un navegador de Internet), está siempre disponible y siempre actualizado. Para adecuarse a las diferentes necesidades de información, wine_analytics dispone de las siguientes ventajas: Pantallas configurables y dinámicas según las necesidades de cada usuario (dashboard). Alarmas a través de SMS, email y Twitter. Gráficas y tablas configurables de alto rendimiento. Funciones de gestión de usuarios, permisos, etc. Informes automatizados e integrados en el BI corporativo. Wine_analytics aúna las últimas tecnologías y avances en sensorización con los desarrollos más avanzados de las tecnologías de la información para conocer mejor el viñedo, medir y cuantificar los factores que le afectan, las relaciones entre ellos y mejorar la gestión de los cultivos, convirtiendo los datos en información accionable. Propuesta técnica a alto nivel La arquitectura está dividida en tres capas, cada una encargada de las fases de la cadena de valor de la información. Adquisición de los datos. Procesado de los datos. Explotación y exportación de los valores. Se propone una solución de este tipo por: Escalabilidad: Por volumen, velocidad, variedad, variabilidad y complejidad de la información. Permite escalar eficientemente por volumen de datos. 25 wine_analytics S Bajo Coste: Se ejecuta en hardware de bajo coste, sin coste de licencias al ser Open Source. Alta Capacidad: Por el almacenamiento desestructurado y el análisis de grandes conjuntos de datos. Rendimiento: Permite monitorizar los datos en tiempo real. Flexibilidad: Permite proporcionar informes y análisis adhoc. Proporciona la capacidad de crear rápidamente paneles de instrumentos (dashboards) y visualizaciones personalizadas. La dirección técnica del proyecto propone inicialmente dos posibles caminos para abordar la solución desde una perspectiva de persistencia de los datos: Usando Spark (junto con una BB.DD de alta latencia y escalabilidad) Usando Hadoop (HDFS) Ventajas de ambas propuestas: Rápido retorno de la inversion Menor coste de desarrollo. El tiempo de desarrollo se puede reducir hasta en dos veces. Plazos de entrega menores. Hosting económico. Se ejecuta en plataformas de bajo coste. Sin coste de licencias. Open Source totalmente gratuito. Solución de futuro. Durante los próximos años crecerá el volumen de información y de procesamiento de datos exponencialmente debido a las redes sociales. La tendencia es procesar más KPIs con una frecuencia de muestreo menor. Fiabilidad, Escalabilidad Y Bajo Coste. Grandes empresas han adoptado estas soluciones: Microsoft (Azure HDInsight), IBM (InfoSphere BigInsights), Facebook, Twitter o Yahoo. Fase 1- Adquisición de datos El primer paso es la obtención de los datos que queremos analizar, para ello enumeraremos las fuentes susceptibles de esta recogida: Sensores (temperatura, velocidad del viento, radiación solar, humedad, etc.). Bases de datos meteorológicas (estaciones e institutos de meteorología). Redes Sociales. Tweets, Likes de Facebook… Campañas de marketing on-line. Logs. Datos propios del BI corporativo. Datos de ventas internas y externas. Sistemas de información geográfica (GIS). 26 wine_analytics S Imágenes satelitales. Como se puede ver en el listado precedente, el origen de los datos es muy diverso y las fuentes bastante desestructuradas por lo que será importante la fase de fusión de datos. Antes de detallar esa fase, vamos a tratar de poner en valor cada una de las fuentes y analizar el tipo de datos y volumen de cada una de ellas. Sensores Ya lo hemos anticipado en secciones precedentes. Devuelven información en “tiempo real” y los que más nos interesan son aquellos asociados al riego y al clima. Humedad relativa. Devuelve la tensión proporcional al nivel de humedad medido. Temperatura del aire. Temperatura del punto de condensación. Precipitación. Velocidad del viento. Radiación solar. Evapotraspiración. Balance hídrico Los datos recogidos por estos sensores son usados para la toma de decisiones basada en información meteorológica, para generar series temporales de estadísticas agroclimáticas y para extraer conclusiones microclimáticas que nos permitan tomar decisiones casi en tiempo real. Otras medidas que pueden resultar interesantes en la medición de un viñedo son la presión atmosférica, el oxígeno y CO2 pero no son tan determinantes en nuestro caso como los anteriores. Estaciones meteorológicas y bases de datos meteorológicas De manera conjunta se pueden tomar mediciones como la presión barométrica, temperatura, humedad, sensor de luz, viento, lluvia… Estos sensores ya vienen integrados en la propia estación meteorológica, recogen la información y se apoyan en un módulo de comunicaciones para transmitir dicha información. Desde la Agencia Estatal de Meteorología (AEMET) se pueden descargar ficheros XML con la predicción meteorológica de hasta 6 días y CSV o Excel con la observación por franjas horarias. 27 wine_analytics S Los tamaños de los archivos por región son 11kB para el XML, 18kB para el Excel y 3kB para el CSV y la periodicidad sería diaria. Redes sociales La información obtenida por redes sociales es muy desestructurada, por ejemplo, para Twitter tenemos una cadena de 140 caracteres, Facebook no tiene límite de caracteres y además permite subir imágenes, vídeos… Hay que tener en cuenta que las redes sociales no codifican con ANSI, sino con Unicode, con el fin de incluir caracteres especiales y de otros idiomas. Estos caracteres ocupan de forma individual (en char) entre 2 y 4 bytes. Según cada red social se puede recoger unas métricas u otras, algunas de las métricas que resulta interesante recoger son las siguientes: Publicaciones/Tweets y analizar su contenido para buscar coincidencias o llamadas a otros usuarios. Likes Retweets Comentarios a publicaciones En el área de las Redes Sociales hay varias iniciativas a tener en cuenta: Por un lado el departamento corporativo de Marketing del grupo Pérez Cristóbal lanzará una serie de acciones digitales en Redes Sociales para realizar el seguimiento de acciones de marketing físicas que se hayan lanzado en supermercados, Horeca, etc. En este sentido se realizará un rastreo on-line de éstas para medir el impacto directo que puedan tener sobre un aumento de los ingresos. Se prevé la contratación de un Community Manager por el grupo cuyo objetivo será crear valor de marca a través de los medios digitales. Con la creación de esta área de marketing digital, se lanzarán otra serie de acciones digitales por marcas, con mayor continuidad en el tiempo, incluyendo acciones concretas para nuestra bodega Abadía de Haza de las que se hará un seguimiento exhaustivo para evaluar el retorno del marketing comercial. Lanzamiento de campañas de marketing directo a través de las redes sociales: cada hashtag que el departamento digital ponga de cualquiera de los vinos de la bodega, y en especial de Abadía de Haza Selección, se realizará un rastreo de los datos (envío de los datos en tiempo real, y explotación de los datos para convertirlos en información). Se crearán un conjunto de 28 wine_analytics S tags corporativos por país, categoría, marca y canal basados en Google Analytics. Esta iniciativa está vinculada con el plan estratégico de ingresos, que lanza campañas de e-mkt e impulsa la venta internacional de vinos vía un distribuidor local (único en cada país) y vía ecommerce. Se trabajará con una agencia de marketing digital externa con distintos objetivos: Realizar acciones encaminadas a aumentar la exportación, especialmente en EEUU, Brasil y México Posicionar la tienda corporativa on-line del grupo, también a nivel de marcas Evaluar la reputación on-line de los productos del grupo, en especial los de nuestra bodega Abadía de Haza. Pasaremos de los datos a la información vía contratación de servicios a esta agencia de e-mkt, que medirán la efectividad de nuestras acciones utilizando herramientas como Google Analytics para estadísticas de abandono, tiempo medio y usuarios activos Mejorar el SEO y SEM de los sitios web relacionados con Abadía de Haza y de otros negocios del grupo. Finalmente se lanzarán acciones digitales, puntuales en el tiempo o sostenidas. La primera de ellas, “Apadrina una cepa” pretende fidelizar al cliente directamente con nuestra bodega. En definitiva, se abordará una primera fase para tagear toda la actividad digital de modo que pueda ser seguida tal y como hemos descrito con el objetivo de obtener insights en términos de reputación, impacto, retorno promocional y comportamiento del usuario dentro de las webs relacionadas con Abadía de Haza. Campañas de marketing Como ya hemos anticipado en párrafo precedente, cuando se lanza una campaña publicitaria es importante saber el impacto que se ha tenido en el consumidor. Los datos que se recogen para medir este impacto no son solo las ventas de un producto antes, durante y después, o las descargas para el caso de la aplicación móvil, hay también métricas que cuantifican a cuántos usuarios se ha llegado o cuántas veces han visto la campaña. El tamaño de este archivo dependerá de la cantidad de información, detalle y formato que se quiera exportar, siendo muy pesado para un Excel y bastante más ligero para un JSON, XML, CSV, etc. 29 wine_analytics S Para este input de datos la periodicidad dependerá principalmente de si está habiendo algún tipo de campaña publicitaria, si no hay campaña los datos pueden tener poca periodicidad o nula y el tiempo que dura la campaña pueden ser reportes diarios. Estudio general de medios El Estudio General de Medios proporciona información de la población en España y de la audiencia a los medios (televisión, radio, prensa, revistas…) y periódicamente generan informes. También tienen reportes con el uso de internet o el marco general de medios donde muestran el consumo que se hace de los medios. Estos datos se pueden descargar en formato pdf por lo que no permiten una carga directa en el sistema. Análisis de audiencias Se cargará un fichero Excel con una periodicidad que dependerá de la información que se requiera, por la naturaleza de la información podría interesar que fuera de manera quincenal o mensual. El tamaño del fichero dependerá de la cantidad de información, pero suponiendo que será con periodicidad mensual este fichero ocuparía alrededor de 50kB. Logs El tamaño de estos mensajes dependería de la longitud, cada char ocupa 1 byte. En nuestro caso sería útil recoger mensajes de respuesta del servidor: Si algún sensor no está recogiendo información Se ha perdido comunicación con alguna estación meteorológica/sensor Algún dato recibido no se ha podido procesar El envío de información por parte de los sensores es correcto, aunque este mensaje podría ser muy redundante y proporcionar ruido y carga extra al sistema Inconsistencia de la información recibida a la hora de fusionar datos Escritura en base de datos correcta o incorrecta Exportaciones desde base de datos correctas o incorrectas 30 wine_analytics S Esta información de errores se querrá enviar como datos de entrada por lo que sería interesante codificarla. De tal forma que la información que enviamos sea un código que corresponda con un mensaje conocido por nosotros y ocupe menos que un mensaje completo. Datos propios de BI. Ventas internas y externas El volumen de estos datos dependerá de la extracción que se haga del data warehouse. Normalmente, tratándose del volumen de ventas interno, estaríamos hablando de unos 2MB diarios. En este punto conviene mencionar el grupo tiene el siguiente stack tecnológico en BI: Capa de almacenamiento: MS SQL Server Capa de integración: PowerCenter (informatica) Capa de visualización: Microstrategy GIS e imágenes tomadas desde satélite El tamaño de las imágenes dependerá de la resolución y de las dimensiones que tenga. Una imagen estándar en formato jpg ocupa alrededor de 3MB. Si suponemos que un satélite envía estas imágenes una vez tomadas estaríamos en una situación asíncrona, en la que recibiríamos la imagen una vez tomada, pero no tendría por qué ser un flujo continuo. La situación ideal es aprovechar el servicio que el grupo tiene externalizado a través de un proveedor en el que éste nos envía los datos ya extraídos de las imágenes de satélite a través de un proceso batch. Desde el punto de vista tecnológico, se propone utilizar Kafka para la recogida de datos de las diferentes fuentes Kafka es un servicio de repositorio de logs que permite ser distribuido, replicado y particionado. Es escalable, de baja latencia y alto rendimiento para agregación de logs y flujos de actividad. Las principales características de Kafka son: Gran throughput. Absorbe grandes cantidades de tráfico. Capacidad de replicación. Gestiona la tolerancia a fallos. Persistente en disco por lo que no se pierde la información. Su objetivo es garantizar el thoughput necesario a medio plazo, absorber los picos de tráfico que se produzcan y estar prevenido ante posibles caídas del servicio. El cluster de Kafka recoge los mensajes enviados y los distribuye a los destinatarios. 31 wine_analytics S Típicamente la terminología que utiliza Kafka es la siguiente: Kafka mantiene los hilos de los mensajes en categorías llamadas topics. Los procesos que publican mensajes son los producers. Los procesos que se suscriben a los topics y que procesan los mensajes son los consumers. Kafka corre en un cluster que constará de uno o más servidores, cada uno de ellos se llama broker. Los usos más comunes de Kafka son: Mensajería. Es útil porque permite separar procesos de cada producer y almacena mensajes no procesados. Comparado con otros servicios de mensajería tiene mejor rendimiento, particionado, reproducción y tolerancia a fallos. Trackeo de actividad web. Reproducir la actividad de los usuarios en una web. Métrica. Monitorización de datos. Agregación de logs. Procesamiento de datos. Se convierten los datos originales en datos con el formato de Kafka para más adelante ser utilizados. Repositorio para sistemas distribuidos. Permite recuperar estados anteriores. Kafka puede trabajar para realizar cargas offline de datos, esto ofrece la posibilidad de consumir paquetes de datos de forma periódica de sistemas offline como Hadoop o bases de datos relacionales. En el caso de Hadoop se pueden paralelizar las cargas de datos. Fase 2 - Procesado de datos La dirección técnica del proyecto propone inicialmente dos posibles caminos para abordar la solución desde una perspectiva de procesamiento de los datos: 32 wine_analytics S Hadoop es una librería que proporciona un framework para procesado distribuido de grandes conjuntos de datos. Spark es un motor que consta de varias librerías también para el procesado de grandes sets de datos. Hadoop es un almacén con los datos semi-estructurados en HDFS y que tiene la flexibilidad de MapReduce para hacer queries con los datos. Spark, por medio de Scala, permite realizar ejecuciones de programas de manera más sencilla que simplemente Hadoop y especialmente útil para usuarios sin mucho background de bases de datos. Para usuarios con conocimientos de bases de datos, dentro de Scala MLlib hay una herramienta llamada Shark para hacer consultas tipo SQL. Spark tiene las siguientes ventajas sobre Hadoop-MapReduce: Spark utiliza RDD (Resilient Distributed Datasets) por lo que los datos se almacenan en memoria. De esta forma ejecuta programas 100 veces más rápido que Hadoop en memoria o 10 veces en disco. Permite procesado en tiempo real para alertas y análisis. Recoge y fusiona los datos de diferentes fuentes. Por otro lado, los inconvenientes son: Hay más experiencia en el campo de MapReduce. Para el procesado y carga de datos paralelos, MapReduce es ligeramente más ligero que el equivalente de Spark. Spark no está todavía muy integrado con YARN. Acompañando a Kafka, se propone utilizar Spark Streaming para fusión de datos. Spark Streaming procesa un flujo continuo de datos de la misma forma que Spark procesa los paquetes. Spark permite leer datos de diferentes fuentes, como HDFS, Flume, Kafka, Twitter, ZeroMQ… y puede procesar algoritmos de alto nivel, como MapReduce. 33 wine_analytics S Las características de Spark Streaming son: Basado en Spark. Usa la misma filosofía de Spark basada en RDD (Resilient Distributed Datasets). Modelo de programación sencillo. Unificación de procesos batch y real time. Un stack para todos los procesos. Es un sistema escalable y robusto. Alta tolerancia a fallos. Latencias por debajo del segundo. Debido a su rendimiento y tolerancia a fallos puede utilizarse como herramienta de procesado de datos en tiempo real. En el proceso de fusión de datos, Spark Streaming lee la información a través de las colas de Kafka. Tiene tres funciones: Agregar estos datos. Realizar cálculos al vuelo de la información. Insertar la información en la capa de análisis. 34 wine_analytics S Fase 3 - Explotación y exportación de los datos Se propone utilizar Apache Cassandra como motor de almacenamiento de datos. Se trata de una base de datos NoSQL de alto rendimiento, que permite escalabilidad, alta disponibilidad y es tolerante a fallos. Está diseñada para manejar grandes cantidades de datos. ¿Consistencia de datos o latencia? Es una de las preguntas que debemos hacernos al definir una arquitectura de datos. Con Cassandra esto no va a ser problema, ya que nos permite ajustar el tiempo de respuesta (latencia), y la consistencia de los datos a nuestro antojo y según nuestras necesidades. La característica más importante de Cassandra es su alta escalabilidad y la gestión de los datos entre una serie de servidores o nodos de un clúster. Estos nodos se añaden al clúster de forma horizontal de modo que nuestra información es procesada automáticamente por el sistema, quien se encarga de hacer el balanceado y mantener la consistencia en los nodos ya existentes y en el nodo recién añadido. Esta característica es la que hace especial a Cassandra, ya que al igual que el balanceado de datos y el manejo de la consistencia se hace de forma automática al añadir un nodo, también se encarga de realizar la misma operación si algún nodo se pierde, y con esto aunque el servidor esté caído, no veremos afectados nuestros datos por esta eventualidad. Presenta dos características adicionales que la hacen particularmente interesante para nuestro caso de uso como veremos en la siguiente sección. Tiene integración con Hadoop y MapReduce. 35 wine_analytics S Utiliza un lenguaje propio basado en SQL llamado CQL (Cassandra Query Language), similar a SQL tradicional. Patrón de arquitectura para la solución En este apartado vamos a describir cómo se llega a diseñar una solución flexible y elegante que soporte las fases descritas anteriormente desde el punto de vista de arquitectura de software. Un aspecto importante en una arquitectura de datos moderna es la capacidad de utilizar múltiples frameworks de ejecución sobre los mismos datos. Esto permite obtener la flexibilidad necesaria para adoptar las tecnologías que van surgiendo y tener siempre disponible el stack tecnológico ideal para un caso de uso concreto. En el caso que nos ocupa, la solución tecnológica descansa sobre el principio anterior y por ello, se propone usar dos motores de almacenamiento separados, HDFS y Cassandra, junto con múltiples marcos de ejecución, incluyendo Spark, Spark Streaming, Spark SQL, Impala, y CQL. Kafka se utilizará para ingestión escalable de datos y tolerante a fallos. Un escenario ideal de datos sería tener una única copia de éstos que sirviera para todas nuestras necesidades de informacionales, pero esto es muy difícil de lograr porque las arquitecturas de datos subyacentes que sirven gran volumen, necesidades OLTP de baja latencia son fundamentalmente diferentes de las necesarias para servir los grandes escaneos de tablas necesarias en casos de uso típicos de analytics. Por ejemplo, con Cassandra es difícil escanear grandes volúmenes de datos, pero permite el acceso ultra rápido, por debajo de un milisegundo, de millones de registros por segundo. Por otro lado, el patrón de almacenamiento simple en los sistemas de archivos distribuidos como HDFS no indexa datos para permitir el acceso por debajo del milisegundo, pero usa grandes tamaños de bloques que permiten el acceso secuencial de forma muy rápida a los datos para escanear miles de millones de registros por segundo. Motores de streaming como Spark Streaming ayudan a mitigar el problema permitiendo análisis “al vuelo” a la vez que los datos se ingieren en el sistema. Sin embargo, nunca o casi nunca se han podido predecir todas las métricas que necesitaban ser calculadas. Por ello han surgido arquitecturas como la arquitectura lambda que permite añadir métricas on the road que permiten recalcular la historia. La arquitectura Lambda se basa en tres principios fundamentales de diseño: Tolerancia a fallos - el sistema es tolerante a la pérdida de datos o la corrupción de estos. 36 wine_analytics S Inmutabilidad de datos - almacena datos de forma cruda de forma inmutable y a perpetuidad. Re-cálculo - con los dos principios anteriores, es siempre posible re-computar ejecutando una función sobre los datos brutos. Esquema típico de arquitectura Lambda La descripción de cada una de las capas se detalla a continuación. Batch layer La capa batch contiene lo inmutable, los datos que están en constante crecimiento almacenados en un sistema de archivos distribuido como HDFS. Con el procesamiento por lotes (MapReduce) los llamados puntos de vista (por lotes) se calculan a partir de este conjunto de datos en bruto. Así Hadoop se ajusta perfectamente al concepto de la capa de batch. Serving layer El trabajo de la serving layer es cargar y exponer los puntos de vista por lotes en un almacén de datos para que puedan ser consultados. Este almacén de datos no requiere escrituras aleatorias pero debe ser compatible con las actualizaciones por lotes y lee aleatoriamente - y por lo tanto puede ser extraordinariamente simple. 37 wine_analytics S Speed layer Esta capa se ocupa sólo de los nuevos datos y compensa las actualizaciones de alta latencia de la serving layer. Aprovecha los sistemas de procesamiento de streams como Storm, S4 o Spark y motores de almacenamiento de datos de lectura / escritura aleatoria como HBase o Cassandra para calcular las vistas en tiempo real. Estas vistas siguen siendo válidas hasta que los datos se han abierto camino a través de la capa batch y la de serving. Una característica importante de una buena arquitectura lambda es que el sistema puede volver a calcular la historia y para ello debe ser capaz de operar rápidamente con un gran conjunto de datos sin interrumpir el rendimiento o el tráfico de baja latencia. Por lo tanto, nuestra propuesta tecnológica se basa en la combinación de dos motores de almacenamiento: HDFS en formato parquet para almacenar la copia de nuestros datos, el 100% de estos (el raw data), mientras que para el tráfico de baja latencia y los datos muy frecuentes (25% de los datos) proponemos usar Cassandra. Se sugiere el siguiente Set de software que soporta la arquitectura para el piloto: Cassandra 2.0.7.31 CDH5.1 HDFS + Impala 2.0.0 Kafka 0.8.1.1 built for Scala 2.10 Spark 1.1 built for Hadoop 2.3 Flujo que modela un escenario típico de datos para esta arquitectura en este proyecto: 38 wine_analytics S Breve descripción del flujo 1. El escenario se inicia leyendo los datos con un script en Python. 2. El script en Python publica los datos a Kafka. 3. Se correrá un job de Spark Streaming que leerá los datos de Kafka y escribirá en Cassandra y en formato parquet en HDFS. 4. Podemos entonces leer los datos con Spark SQL e Impala del HDSF y de Cassandra vía Spark SQL y CQL. Arquitectura para procesamiento de datos en AWS El siguiente gráfico corresponde a una arquitectura para procesamiento de datos en Amazon Web Services con Kafka y Spark, y almacenamiento con Cassandra que podría reflejar perfectamente nuestro escenario de ingeniería de datos para el caso de uso de sensórica. El ítem de APPLICATION correspondería al software localizado en los sensores, por lo que el punto de entrada a la arquitectura en AWS sería directamente al Kafka. La Alta Disponibilidad de estos servicios se la ofrece a modo de clusters (por lo que no requieren un Load Balancer). La idea 39 wine_analytics S es definir en este análisis clusters de servicios integrados ara una arquitectura mínima (en coste/actividad) viable. En la etapa de desarrollo siempre se podría empezar con instancias más pequeñas, ya que la combinación Spark-Kafka-Cassandra está diseñada para ser escalable, todos los clusters van a ser dinámicos dependiendo del tráfico/carga de trabajo/peticiones. Proponemos la siguiente arquitectura mínima en AWS: CAPA KAFKA (cluster) IP elástico externo (punto de entrada) 1 instancia de Zookeeper (se encarga de arbitrar los brokers y se puede reutilizar para el Spark) m3.large 2 instancias brokers m3.large CAPA SPARK (cluster) 1 instancia master m3.xlarge 2 instancias slave m3.large CAPA CASSANDRA (cluster) 3 instancias/nodos m3.large CAPA HADOOP (cluster minimo) 1 instancia master m3.xlarge 2 instancias slave m3.large COSTES BAJO DEMANDA Con 100% de uso (Hosting en Irlanda): 40 wine_analytics S 9 instancias m3.large 2 instancias m3.xlarge Coste/mensual: 1465.49$ Coste/anual: 17585.88$ COSTES DE ALMACENAMIENTO Según los requisitos de la arquitectura del sistema los datos podrían almacenarse en discos SSD o en S3. En este caso hay que contemplar estos costes: S3: $0.03 por GB (después de almacenar 1 TB los costes bajan más). SSD: $0.11 por GB-mes de almacenamiento aprovisionado. Nota: Es importante señalar que se puede ahorrar de un 30% a un 40% en instancias reservadas, o ahorrar si se calendariza el despliegue de las instancias. Arquitectura mínima viable en AWS (Capas Opcionales): CAPA COLLECTOR (OPCIONAL): Si se necesita algún tipo de parsing/procesamiento de mensajes desde la aplicación de los sensores, se necesitaría una capa COLLECTOR con nodos que estén tras un balancer. En este caso el punto de entrada a la arquitectura serían los balancers. CAPA DE BÚSQUEDAS INDEXADAS (OPCIONAL): Para búsquedas indexadas/rápidas varias fuentes se podrían proponer implementar un Elasticsearch. Seguridad en AWS: Para la implementación de la seguridad desplegaremos sobre AWS un setting típico y fácil de gestionar usando varios recursos: Security Groups (firewalls a nivel de instancias), VPCs y subredes privadas (aislamiento lógico de la infraestructura), ACLs (listas de control a de acceso), Route Tables (control de rutas a nivel de instancia), IAM (servicio de Amazon para el control de identidades), y pares de llaves (para el acceso a las instancias). La seguridad se podría complementar con sistemas de software como WAFs, IDS, gestión de logs, firewalls de sistemas operativos, etc. Adicionalmente, mencionar que como AWS cumple con varias certificaciones de seguridad que las arquitecturas implementadas heredan automáticamente como: PCI-DSS, SOC, ISO 27001, etc., podremos contar con esas garantías en wine_analytics. 41 wine_analytics S Observaciones adicionales Amazon Kinesis es el equivalente de Kafka en la nube. En el caso de montar una arquitectura de este tipo en AWS, se podría investigar esta tecnología, ya que inicialmente este tipo de servicios bajo demanda son más baratos, y a mediano plazo son escalables. Amazon ya soporta lanzar Spark/Hadoop a través de su servicio EMR (Elastic Map Reduce). La ventaja además de la gestión a alto nivel del servicio, es que las instancias de EMR son más baratas. Sería interesante evaluar su utilización dentro de la arquitectura de AWS. Soluciones para la Analítica Una vez recogidos los datos, almacenados y procesados a través de la arquitectura propuesta en el apartado anterior, tenemos que pasar a la fase de Analytics. Presentamos tres alternativas dependiendo de la necesidad analítica concreta ofreciendo así un completo conjunto de posibilidades analíticas para nuestros científicos de datos. Para la parte de analítica predictiva utilizaremos una solución de código abierto llamada H2O (Hortonworks). Se trata de una solución en memoria para análisis predictivo en grandes volúmenes de datos. Tiene un motor de machine learning que permite el trabajo distribuido y en paralelo de potentes algoritmos que ayudan a hacer predicciones y a hacer modelos precisos de forma rápida. Lo conectaremos directamente con nuestro Hadoop. Tiene APIs para R y JSON, así como el método de almacenamiento de HDFS, H2O tiene la capacidad de hacer análisis avanzados para un grupo más amplio de usuarios con una curva de aprendizaje casi inexistente para los usuarios actuales de Hadoop. Un análisis que los científicos de datos correrán haciendo uso de H2O sería por ejemplo encontrar y clasificar patrones de desviación durante un periodo de tiempo en la radiación solar o evapotranspiración de una zona determinada de los viñedos. Para realizar análisis en los datos almacenados en Hadoop a través de herramientas de SQL vamos a usar Impala que es un motor de consulta que corre en Hadoop. Impala lleva la tecnología de base de datos escalable en paralelo a Hadoop, permitiendo a los usuarios realizar consultas SQL de baja latencia a los datos almacenados en HDFS sin necesidad de movimiento o transformación de datos. 42 wine_analytics S El resultado es que el procesamiento de datos a gran escala (a través de MapReduce) y las consultas interactivas se pueden hacer en el mismo sistema utilizando los mismos datos y metadatos - eliminando la necesidad de migrar los conjuntos de datos a sistemas especializados y/o formatos propietarios solo para realizar el análisis. Un análisis que los científicos de datos correrán haciendo uso de Impala sería por ejemplo encontrar datos históricos concretos con respecto a las series de temperaturas. Finalmente, usaremos R para el análisis estadístico avanzado como regresiones lineales multivariantes. Lo conectaremos directamente desde Cassandra vía Spark SQL. Un análisis que los científicos de datos correrán haciendo uso de R sería por ejemplo identificar un determinado evento climático de manera anticipada estudiando los días de tormenta en un periodo de determinado de tiempo y las temperaturas mínimas absolutas en ese mismo periodo. Herramienta de visualización Para la visualización de los datos haremos una integración con el Microstrategy corporativo del grupo. Sin entrar en mucho detalle, sólo indicamos que con Impala lo haremos a través del conector ODBC de este. Para el caso H20 haremos la integración a través de una de las librerías graficas de H2O, en concreto con GBW (Graphic Business Wire). Para el caso de R, usaremos el conector específico que Microstrategy tiene para éste. Análisis financiero El equipo de Abadía de Haza es optimista con relación al impacto en cuenta de resultados de este proyecto, dada la baja inversión inicial y OPEX, y teniendo en cuenta la significativa mejora que se podría lograr en cuenta de resultados, cuantificada en un 20%. La mejora en producción es requisito necesario para mejorar la cuenta de resultados, ya que de otro modo sería imposible abordar los mercados objetivo por falta de producto. Las proyecciones de estados financieros realizadas serían las siguientes: 43 wine_analytics S Cuenta de resultados 0 1 2 3 4 5 CUENTA DE RESULTADOS 2014 2015 2016 2017 2018 2019 Ventas 943,3 1.014,6 1.116,5 1.214,0 1.281,7 1.307,3 -815,7 0,0 -815,7 -927,6 -112,0 -815,7 -973,1 -141,1 -832,0 -1.000,6 -152,0 -848,6 -1.020,3 -154,7 -865,6 -1.040,4 -157,5 -882,9 Coste Operativos Costes Wine_Analytics Resto de Costes EBITDA 127,6 87,0 143,4 213,4 261,4 266,9 13,53% 8,57% 12,84% 17,58% 20,39% 20,41% -87,3 -101,2 -12,5 -88,7 -102,2 -12,5 -89,7 -104,0 -12,5 -91,6 -109,2 -12,5 -96,8 -111,5 -12,5 -99,1 Amortización CAPEX del Proyecto Resto CAPEX EBIT -87,3 40,3 -14,2 41,1 109,4 152,1 155,4 4,27% -1,40% 3,69% 9,01% 11,87% 11,88% Gastos Financieros -3,2 -3,2 0,0 0,0 0,0 0,0 EBT 37,1 -17,4 41,1 109,4 152,1 155,4 -11,1 4,9 -10,3 -27,4 -38,0 -38,8 Impuesto de Sociedades Beneficio Neto 25,9 -12,5 30,9 82,1 114,1 116,5 2,75% -1,24% 2,76% 6,76% 8,90% 8,91% Como vemos, la situación de partida para 2014 es la de una compañía con márgenes reducidos, y nuestro objetivo es la mejora de los mismos mejorando la eficiencia del proceso productivo (mayor cantidad de uva de calidad), y aumentando precios gracias a un plan estratégico de posicionamiento comercial, que incluiría adicionalmente acciones de marketing digital y en redes sociales, con lo que buscaría mejorar la calidad percibida y poner en valor el producto en mercados con mayores márgenes. El impacto de los costes incrementales por la implantación del nuevo sistema tecnológico sería nulo, considerando que se utilizaría Open Source y SaaS para minimizar costes asociados. Las estimaciones de costes anuales serían: 2014 Costes del Proyecto Total costes instancias bajo demanda Mantenimiento equipos Fotografía satélite Marketing digital, acciones Redes Sociales 44 2015 2016 2017 2018 2019 2020 111.988 14.655 4.000 40.000 53.333 141.135 14.655 4.080 40.800 81.600 151.988 14.655 4.162 41.616 91.555 154.734 14.655 4.245 42.448 93.386 157.536 14.655 4.330 43.297 95.254 160.394 14.655 4.416 44.163 97.159 S wine_analytics Este bajo impacto de costes tecnológicos, permite una sustancial mejora de márgenes EBIT en 2015 dada la baja inversión requerida también, que apenas impactaría en amortizaciones. El plan estratégico de la bodega buscaría lograr esta mejora de márgenes desde 2015 vía precios, sin embargo, debido a que el ciclo de explotación sería superior al año natural debido a las necesidades de maduración de los vinos selección y reservas, las mejoras en producción tardarían al menos dos años en manifestarse en cuenta de resultados, de manera que iniciando acciones en 2015 no se podrían ver los resultados objetivo hasta 2018. El impacto de esta subida de precio unido a la mayor producción permitiría doblar EBITDA en el período considerado, pasando de unos márgenes del 13,5% sobre ventas a cifras del 20,4%. A nivel de beneficio neto, estaríamos mejorando unos niveles del 2,75% hasta un 8,91%, lo que implicaría multiplicar por más de cuatro el beneficio neto de 2014, desde 25,9 miles euros hasta 116,5 miles de euros. La mejora continuada de la calidad del vino, así como el trabajo más activo en redes sociales y en marketing, serían las claves de este reto que permitiría mejorar márgenes tanto en términos absolutos como relativos, hasta los niveles marcados como target de la compañía. El detalle de este plan estratégico puede apreciarse a continuación: 45 S wine_analytics INGRESOS 2014 943.254 2015 1.014.643 2016 1.116.473 2017 1.214.037 2018 1.281.685 2019 1.307.319 2020 1.333.465 Superficie (ha) Rendimiento kg uva / ha Kg Totales de uva 75,4 4.000 301.600 75,4 4.000 301.600 75,4 4.000 301.600 75,4 4.000 301.600 75,4 4.000 301.600 75,4 4.000 301.600 75,4 4.000 301.600 100% 10% 5% 5% 77% 13% 100% 11% 5% 6% 77% 12% 100% 12% 5% 7% 77% 11% 100% 12% 5% 7% 77% 11% 100% 12% 5% 7% 77% 11% 100% 12% 5% 7% 77% 11% 100% 12% 5% 7% 77% 11% Cantidad de uva por destino Vino alta calidad Reservas Selección Vinos otras calidades Venta de uva 30.160 15.080 15.080 232.232 39.208 33.176 15.080 18.096 232.232 36.192 36.192 15.080 21.112 232.232 33.176 36.192 15.080 21.112 232.232 33.176 36.192 15.080 21.112 232.232 33.176 36.192 15.080 21.112 232.232 33.176 36.192 15.080 21.112 232.232 33.176 Cantidad de botellas (1kg uva = 1 botella 0,75 l) Vino alta calidad Reservas Selección Vinos otras calidades 22.620 11.310 11.310 174.174 24.882 11.310 13.572 174.174 27.144 11.310 15.834 174.174 27.144 11.310 15.834 174.174 27.144 11.310 15.834 174.174 27.144 11.310 15.834 174.174 27.144 11.310 15.834 174.174 35,00 15,00 2,00 0,75 37,80 16,20 2,16 0,77 41,77 17,90 2,39 0,78 43,86 18,80 2,51 0,80 44,73 19,17 2,56 0,81 45,63 19,56 2,61 0,83 46,54 19,95 2,66 0,84 0,00% 0,00% 0,00% 0,00% 8,00% 8,00% 8,00% 2,00% 10,50% 10,50% 10,50% 2,00% 5,00% 5,00% 5,00% 2,00% 2,00% 2,00% 2,00% 2,00% 2,00% 2,00% 2,00% 2,00% 2,00% 2,00% 2,00% 2,00% 395.850 169.650 348.348 29.406 427.518 183.222 376.216 27.687 472.407 202.460 415.719 25.887 496.028 255.100 436.504 26.405 505.948 303.569 445.235 26.933 516.067 309.640 454.139 27.472 526.389 315.833 463.222 28.021 Destino de la uva Vino alta calidad Reservas Selección Vinos otras calidades Venta de uva Precio Medio Reservas Precio Selección Precio medio vinos otras calidades Precio medio uva Incremento precio botella reservas Incremento precio botella Selección Incremento precio resto vinos Incremento precio de la uva Ingresos esperados reservas Ingresos esperados Selección Ingresos esperados resto vinos Ingresos esperados venta de uva 100% 10% 77% 13% 35,00 15,00 2,00 0,75 Los costes de explotación de 2014, en consonancia con la media comparable del sector, serían de un 86,5% aproximadamente sobre cifra de ventas. 46 wine_analytics S Balance de situación BALANCE Inmovilizado Bruto Amortización Acumulada Inmovilizado Neto 0 1 2 3 4 5 2014 2015 2016 2017 2018 2019 2.860,3 -1.337,9 1.522,4 2.957,2 -1.439,1 1.518,1 2.982,6 -1.541,3 1.441,3 3.027,9 -1.645,3 1.382,5 3.158,3 -1.754,6 1.403,7 3.215,5 -1.866,1 1.349,4 Existencias Clientes Otros Tesorería TOTAL ACTIVO 502,0 235,8 540,0 253,7 594,2 279,1 646,1 303,5 682,2 320,4 695,8 326,8 85,5 2.345,7 42,2 2.354,0 75,0 2.389,6 75,0 2.407,2 75,0 2.481,3 125,1 2.497,0 Capital Social Reservas Resultado del Ejercicio Dividendos del ejercicio Total Patrimonio Neto 1.800,0 355,5 25,9 0,0 2.181,4 1.800,0 381,4 -12,5 0,0 2.168,9 1.800,0 368,9 30,9 -5,8 2.193,9 1.800,0 393,9 82,1 -72,0 2.204,0 1.800,0 404,0 114,1 -45,3 2.272,8 1.800,0 472,8 116,5 -104,9 2.284,4 0,0 135,9 28,3 164,2 0,0 154,6 30,4 185,0 0,0 162,2 33,5 195,7 0,0 166,8 36,4 203,2 0,0 170,1 38,5 208,5 0,0 173,4 39,2 212,6 2.345,7 2.354,0 2.389,6 2.407,2 2.481,3 2.497,0 0,0 0,0 0,0 0,0 0,0 0,0 Deuda Senior Acreedores Otros Total Pasivo TOTAL PATRIMONIO NETO Y PASIVO Desde el punto de vista patrimonial, la bodega no precisaría de afrontar fuertes inversiones tecnológicas, que se estimarían por importe de 62,4 miles de euros. Dicha inversión se dedicaría fundamentalmente a la adquisición de estaciones meteorológicas con sensores, un servidor y licencias diversas. El balance proyectado a partir de las cuentas reales de cierre de 2014 presenta una continuidad tanto de políticas contables como de criterios de gestión y financieros, como serían los relativos a la financiación permanente, política de inversión, periodo medio de pago a proveedores o la política de dividendos. Cash Flow En el cash flow resumen de este plan estratégico puede apreciarse mejor la contribución a la generación de caja de la mejora de la cuenta de resultados frente a la inversión realizada y opex incrementales asumidos: 47 wine_analytics S 0 1 2 3 4 5 CASH FLOW 2014 2015 2016 2017 2018 2019 EBITDA Impuesto de Sociedades Variación de Fondo de Maniobra Fondo de Maniobra CASH FLOW DE OPERACIONES 127,6 -11,1 -88,8 573,6 27,6 87,0 4,9 -35,0 608,6 56,8 143,4 -10,3 -69,0 677,7 64,1 213,4 -27,4 -68,8 746,5 117,3 261,4 -38,0 -47,6 794,1 175,7 266,9 -38,8 -15,9 810,0 212,1 0,0 -34,5 -62,4 -96,9 -25,4 0,0 -25,4 -45,3 0,0 -45,3 -130,4 0,0 -130,4 -57,2 0,0 -57,2 FREE CASH FLOW 27,6 -40,1 38,7 72,0 45,3 154,9 Capital Social Disposiciones de Deuda Senior Cancelaciones de Deuda Senior Gastos Financieros Netos CASH FLOW DE FINANCIACION 0,0 0,0 0,0 -3,2 -3,2 0,0 0,0 0,0 -3,2 -3,2 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 FREE CASH FLOW TO EQUITY 24,4 -43,3 38,7 72,0 45,3 154,9 0,0 -5,8 -72,0 -45,3 -104,9 CAPEX ya previsto CAPEX Proyecto CASH FLOW DE INVERSION Dividendos VARIACION ANUAL DE TESORERÍA 24,4 -43,3 32,8 0,0 0,0 50,1 Saldo Inicial de Tesorería 61,0 85,5 42,2 75,0 75,0 75,0 SALDO FINAL DE TESORERÍA 85,5 42,2 75,0 75,0 75,0 125,1 0,0 0,0 0,0 0,0 0,0 0,0 Rentabilidad Finalmente, el análisis de rentabilidad del proyecto según se puede apreciar en el cuadro más abajo. RENTABILIDAD 0 1 2 3 4 5 2014 2015 2016 2017 2018 2019 0,0 -112,0 -62,4 -174,4 101,8 -141,1 0,0 -39,3 199,4 -152,0 0,0 47,4 267,0 -154,7 0,0 112,3 292,7 -157,5 0,0 135,1 Variación de Ingresos Opex del proyecto Capex del proyecto Flujos del proyecto ROI 10,41% TIR de proyecto 10,97% En términos de TIR de proyecto, por tanto, estaríamos en la situación de TIR de proyecto del 11%, que sería infinita a nivel de accionista, debido a que no se precisaría financiación de accionistas para el proyecto. Con relación al ROI, estaríamos en un 10,4%. 48 S wine_analytics La interpretación de estas magnitudes permite confirmar sin lugar a dudas, y a pesar del largo ciclo de explotación (más de dos años de maduración para vino selección y reservas), la evidente conveniencia financiera de la inversión, lo que la convierte en clave para la estrategia de la bodega. 49 S wine_analytics ANEXOS 50 wine_analytics S Marco temporal – ciclo vegetativo de la vid El ciclo biológico anual de la vid comienza al principio de la primavera, cuando pasadas las bajas temperaturas del invierno, que provocan la parada invernal, la savia empieza a sangrar por los cortes de la poda. Cuando las temperaturas medias llegan a los 10º C, entre marzo y abril, se produce el desborre o brotación de los pámpanos (nacimiento anual), que siguen creciendo hasta el mes de agosto. La principal preocupación de viticultor una vez producida la brotación es que no hiele. Si hiela se mueren los brotes, lo que puede reducir mucho la cosecha, hasta casi desaparecer. Con la aparición de los brotes comienza la etapa de crecimiento anual de la planta, que dura hasta el envero (final de julio). A continuación se describen con más profundidad las etapas del ciclo de la vid: Lloro: Es la primera muestra de la movilización de las reservas y el comienzo de este periodo depende la de la temperatura y de la variedad de uva empleada. Por los cortes de poda, la vid “llora” savia. Algunas pierden litros diariamente. Suele producirse en el mes de marzo y es un fenómeno muy curioso de observar tanto por profesionales como por aficionados a la Viticultura. Brote: Las yemas comienzan a hincharse y aparece una borra blanca por lo que a este periodo se le conoce también como “desborre”. Después, las primeras partes verdes llamadas mariposas sustituyen la borra. El brote también depende de la temperatura y la variedad de uva así como de la climatología del invierno. Suele aparecer entre marzo y abril. Crecimiento: El brote da lugar a unos órganos en miniatura (inflorescencias) donde podemos ver claramente el futuro racimo que seguirá creciendo salvo que circunstancias climatológicas negativas interfieran. Se divide, a su vez, en cuatro periodos: 1. Periodo herbáceo o del agraz: Dura unos 50 días y empieza a partir de la fecundación de la flor que puede producirse de dos formas. Si los óvulos de la flor son fecundados por un grano de polen se consigue la uva pirena (con semillas) y si se fecunda solo con el estímulo parcial del grano de polen se obtiene uva apirena (sin semillas) que es muy apreciada para la elaboración de pasas. Cuando este periodo acaba, el racimo es muy pobre en azúcares pero no en acidez. 51 wine_analytics S 2. Periodo del envero: Tiene una duración de un solo día para cada grano de uva y como característica principal observamos un cambio de color en la baya y un cese momentáneo del crecimiento. En este momento, las pepitas alcanzan su madurez fisiológica, es decir, serían capaces de germinar. Un viñedo medio tardaría en enverar totalmente unos 15 días. 3. Periodo de maduración: La uva madura en unos 40 o 50 días aproximadamente. El grano sigue aumentando de tamaño así como en la concentración de azúcares pero la acidez disminuye. Este periodo acaba en el momento estimado para la vendimia. Cómo determinar que la uva está madura, es decir lista para ser vendimiada, es uno de los aspectos más subjetivos en Viticultura pues depende, en gran medida, del interés del técnico además de factores como el color o el peso del grano de uva. Por tener un índice objetivo al margen de las necesidades o el gusto del viticultor, decimos que se basa en dos parámetros: contenido en azúcares y acidez. Comparándolos y valorando las necesidades de la bodega, se obtienen los datos necesarios para decidir la fecha de la vendimia. Es aquí donde wine_analytics tiene una de sus principales aplicaciones. Los factores que influyen en la maduración son de diversa naturaleza: Permanentes: como la variedad cultivada, el clima o el suelo. Variables: dependen de cada año como la humedad, pluviometría, temperatura u horas de luz. Modificables: poda y abonos entre otras labores de cultivo. Accidentales: enfermedades, plagas, heladas, etc. De estos factores y otros de índole enológica depende, en parte, la calificación de las añadas de los vinos. 52 wine_analytics S 4. Periodo de sobremaduración: La cepa deja de aportar a la uva los componentes esenciales y comienza a perder agua por evaporación y, consecuentemente, peso. Los azúcares sin embargo aumentan. Normalmente, la finalidad de la sobremaduración es la obtención de uvas pasas. Caída de la hoja: Cuando la temperatura disminuye, se produce la caída de la hoja pero antes la planta se prepara para el invierno acumulando reservas. Por debajo de 0 ºC, la vid entra en parada vegetativa y permanece en reposo hasta el lloro del nuevo año. 53 wine_analytics S Datos enológicos técnicos Cabe destacar que desde la recogida de la vendimia y las etapas iniciales en la elaboración de los caldos existen varios puntos críticos que afectan muy significativamente a la calidad de toda una cosecha, y estos procesos se producen de forma muy seguida. La sensorización y monitorización continua de estos parámetros minimiza muy significativamente el riesgo durante este período crítico de elaboración. Los parámetros técnicos vitivinícolas considerados clave en la toma de decisiones en el proceso de elaboración se detallan a continuación. Es importante destacar que durante un período muy corto de tiempo han de medirse muchos parámetros, que resultan críticos en la calidad del vino que se quiere producir. La sensorización y automatización de estas medidas optimizan La automatización y sensorización de la toma de temperaturas, de forma que al superar el máximo nivel se automatiza el proceso de remontado13 de homogeneización. Si tras este proceso la temperatura sigue elevada, se pone se en marcha el proceso de refrigeración. Frente a la toma manual o semi-automatizada de temperatura en una bodega tradicional, cada 3-4 horas, la sensorización de la toma de temperatura permite un seguimiento mucho más exhaustivo, evitando la puesta en marcha de la bomba de remontado si no existe una clara tendencia de la temperatura a seguir subiendo (basado en un sencillo modelo analítico). De forma paralela a la temperatura se toman también datos de densidad. El índice de color es un parámetro fundamental y va claramente ligado al índice de polifenoles totales, ligados al vino que se quiere obtener: IPT=47 en el caso del joven roble de Abadía de Haza IPT=70 en el caso del reserva de Abadía de Haza La medida del índice de color se toma al final del proceso de maceración y es uno de los aspectos clave que tomarán como referencia wine_analytics en su modelo. La automatización de la 13 El proceso de remontado consiste en recircular el contenido del líquido (total o parcialmente) de la cuba hasta la parte superior de la misma. 54 wine_analytics S medición mediante espectrofotometría evitará el análisis en el laboratorio de un muestreo aleatorio. Al final del proceso de fermentación se mide también la acidez volátil, cuando ésta tiende a descender. Mediante la monitorización continua de la acidez volátil, cuando ésta no descienda puede predecirse un ataque bacteriano que ponga en riesgo la producción. El control de temperatura permite controlar la parada de la fermentación: T=23-25ºC, en el caso del joven roble de Abadía de Haza T=29-30ºC, en el caso del reserva de Abadía de Haza (se busca una gran extracción del hollejo) La maceración busca una extracción selectiva (taninos, antocianos y aromas fundamentalmente), evitando la extracción de otros compuestos (que transfieren sabores amargos o astringentes). Consta de dos etapas, disolución y difusión, en las que es fundamental una medición exhaustiva. La duración de la maceración afecta de forma distinta a los polifenoles y antocianos, y está íntimamente relacionada con el IPT: Para el joven roble de Abadía de Haza: IPT=47 y una elevada intensidad colorante, contenido polifenólico bajo y maceración corta. Para el reserva de Abadía de Haza: IPT=70 y menor colorante, contenido polifenólico alto y maceración larga. En esta extracción selectiva que es la maceración inicialmente se extraen los antocianos, para ello no hace falta alcohol. Posteriormente se empiezan a extraer los taninos de los hollejos, y finalmente de las pepitas (para no generar sabores amargos). La temperatura favorece la maceración, por lo que es (de nuevo) uno de los aspectos claves a tener en cuenta, así como el grado alcohólico que se medirá a lo largo de todo el proceso. Una vez que el vino ha macerado en las cubas el tiempo necesario, se procede al descube. La definición de tiempo necesario, más allá de las mediciones sensóricas se complementará con los análisis clásicos. Este procedimiento dual permitirá el análisis para definir correlaciones y extrapolarlo a futuras cosechas. 55 wine_analytics S En el momento del descube se generan dos fracciones, vino-yema y orujos, y se producirá en dos momentos distintos en función de la crianza que ha de desarrollar: Coincidiendo con el final de la fermentación alcohólica, para el joven roble de Abadía de Haza Después de la fermentación alcohólica (incluso 2-3 semanas), para el reserva de Abadía de Haza La medición continua del grado de alcohol / temperatura y azúcares para evaluar el final de la fermentación alcohólica es otro de los parámetros clave que entran en el modelo de wine_analytics. 56 wine_analytics S Comparativa de Bases de datos NoSQL El objetivo de este anexo es presentar una comparativa entre las algunas de las más populares BB.DD NoSQL y determinar la mejor elección para determinados casos de uso. En concreto, nos interesa encontrar la más idónea para analizar y almacenar datos desestructurados de múltiples fuentes de forma que puedan ser útiles, entre otras cosas, para obtener predicciones. Introducción Cuando pensamos en bases de datos relacionales a nuestra mente suelen acudir los mismos nombres. En la parte comercial tenemos Oracle y Microsoft SQL Server. Del lado del software libre, tenemos opciones como PostgresSQL o MySQL. Aunque cada una tiene sus peculiaridades, para un desarrollador no es difícil elegir entre un sistema y otro. Al final todo son tablas, columnas, claves primarias, y sobre todo, consultas SQL. La decisión de cuál elegir, se basará en sus características y precio. Si hablamos de bases de datos NoSQL, la cosa se complica. A día de hoy existen unos 150 sistemas de bases de datos NoSQL. Elegir uno de ellos puede ser muy difícil, ya que ninguno ha obtenido todavía la fama que sí han conseguido las bases de datos relacionales. Pero el problema principal que encontramos, es que aunque todas se denominan NoSQL, en realidad hay diferentes tipos. Dependiendo de lo que necesitemos, deberemos decantarnos por una u otra. Diferencias con las BBDD SQL Algunas de las diferencias más destacables que nos podemos encontrar entre los sistemas NoSQL y los sistemas SQL son: No utilizan SQL como lenguaje de consultas. La mayoría de las bases de datos NoSQL evitan utilizar este tipo de lenguaje o lo utilizan como un lenguaje de apoyo. Por poner algunos ejemplos, Cassandra utiliza el lenguaje CQL, MongoDB utiliza JSON o BigTable hace uso de GQL. No utilizan estructuras fijas como tablas para el almacenamiento de los datos. Permiten hacer uso de otros tipos de modelos de almacenamiento de información como sistemas de clave–valor, objetos o grafos. 57 wine_analytics S No suelen permitir operaciones JOIN. Al disponer de un volumen de datos tan extremadamente grande suele resultar deseable evitar los JOIN. Esto se debe a que, cuando la operación no es la búsqueda de una clave, la sobrecarga puede llegar a ser muy costosa. Las soluciones más directas consisten en desnormalizar los datos, o bien realizar el JOIN mediante software, en la capa de aplicación. Arquitectura distribuida. Las bases de datos relacionales suelen estar centralizadas en una única máquina o bien en una estructura máster–esclavo, sin embargo en los casos NoSQL la información puede estar compartida en varias máquinas mediante mecanismos de tablas Hash distribuidas. SQL o NoSQL Algunas de las razones que nos pueden llevar a decantarnos por el uso de las bases de datos NoSQL en lugar de las clásicas SQL son: Cuando el volumen de los datos crece muy rápidamente en momentos puntuales, pudiendo llegar a superar el Terabyte de información. Cuando la escalabilidad de la solución relacional no es viable tanto a nivel de costes como a nivel técnico. Cuando tenemos elevados picos de uso del sistema por parte de los usuarios en múltiples ocasiones. Cuando el esquema de la base de datos no es homogéneo, es decir, cuando en cada inserción de datos la información que se almacena puede tener campos distintos. Tipos de BBDD NoSQL Aunque hay varias aproximaciones diferentes para clasificar las bases de datos NoSQL (Teorema CAP, basándonos en el modelo de datos etc.), en general se considera que existen cuatro tipos diferentes: orientadas a documentos, orientadas a columnas, de clave-valor y en grafo. Así que veamos en qué consisten estos sistemas, para que podamos elegir la opción que mejor se adapte a nuestras necesidades. 58 wine_analytics S Orientadas a Documentos Son aquellas que gestionan datos semi-estructurados. Es decir documentos. Estos datos son almacenados en algún formato estándar como puede ser XML, JSON o BSON. Para hacernos una idea un documento suele ser algo parecido a: Son las bases de datos NoSQL más versátiles. Se pueden utilizar en gran cantidad de proyectos, incluyendo muchos que tradicionalmente funcionarían sobre bases de datos relacionales. En esta categoría encontramos: MongoDB: probablemente la base de datos NoSQL más famosa del momento. En octubre del año pasado, MongoDB conseguía 150 millones de dólares en financiación, convirtiéndose en una da las startups más prometedoras. Algunas compañías que actualmente utilizan MongoDB son Foursquare o eBay. CouchDB: es la base de datos orientada a documentos de Apache. Una de sus interesantes características es que los datos son accesibles a través de una API Rest. Este sistema es utilizado por compañías como Credit Suisse y la BBC. Orientadas a Columnas Son aquellas que gestionan datos semi estructurados. Es decir documentos. Estos datos son almacenados en algún formato estándar como puede ser XML, JSON o BSON. Para hacernos una idea un documento suele ser algo parecido a: 59 wine_analytics S Este tipo de bases de datos están pensadas para realizar consultas y agregaciones sobre grandes cantidades de datos. Funcionan de forma parecida a las bases de datos relacionales, pero almacenando columnas de datos en lugar de registros. En esta categoría encontramos: Cassandra: incluida en esta sección, aunque en realidad sigue un modelo híbrido entre orientada a columnas y clave-valor. Es utilizada por Facebook y Twitter (aunque dejaron de usarla para almacenar tweets). HBase: Escrita en Java y mantenida por el Proyecto Hadoop de Apache, se utiliza para procesar grandes cantidades de datos. La utilizan Facebook, Twitter o Yahoo. De Clave Valor Estas son las más sencillas de entender. Simplemente guardan tuplas que contienen una clave y su valor. Cuando se quiere recuperar un dato, simplemente se busca por su clave y se recupera el valor. 60 wine_analytics S En esta categoría encontramos: DynamoDB: desarrollada por Amazon, es una opción de almacenaje que podemos usar desde los Amazon Web Services. La utilizan el Washington Post y Scopely. Redis: desarrollada en C y de código abierto, es utilizada por Craiglist y Stack Overflow (a modo de caché). En Grafo BBDD que utilizan la topología de la teoría de grafos con nodos y aristas para representar los datos almacenados (Graph DataBase). Son muy útiles para guardar información en modelos con muchas relaciones, como redes y conexiones sociales. En esta categoría encontramos: Infinite Graph: escrita en Java y C++ por la compañía Objectivity. Tiene dos modelos de licenciamiento: uno gratuito y otro de pago. Neo4j: base de datos de código abierto, escrita en Java por la compañía Neo Technology. Utilizada por compañías como HP, Infojobs o Cisco. Benchmark de BBDD NoSQL Analizando los tipos de BBDD NoSQL, encontramos que las que más se adaptan a nuestros posibles casos de uso son las siguientes: Columnar: Cassandra y HBase 61 wine_analytics S Clave valor: Redis y DynamoDB Documental: MongoDB En Grafo: Neo4j 1. Características Generales Para las comparativas utilizaremos dos categorías como son la popularidad y el rendimiento. 62 wine_analytics S 2. Popularidad Método de cálculo de las puntuaciones de los DB-Motores Clasificación La clasificación DB-Engines es una lista de los sistemas de gestión de bases de datos clasificados según su popularidad actual. Medimos la popularidad de un sistema mediante el uso de los siguientes parámetros: Número de menciones del sistema en los sitios web, medida como el número de resultados de motores de búsqueda consultas. Por el momento, utilizamos Google y Bing para esta medición. Con el fin de contar con resultados sólo pertinentes, estamos en busca de "<nombre del sistema> base de datos", por ejemplo, "Base de datos de Oracle". El interés general en el sistema. Para esta medición, se utiliza la frecuencia de búsquedas en Google Trends. Frecuencia de las discusiones técnicas sobre el sistema. Utilizamos el número de preguntas relacionadas y el número de usuarios interesados en la conocida TI relacionada Q & A sitesStack Desbordamiento y DBA Stack Exchange. El número de ofertas de trabajo, en los que se menciona el sistema. Utilizamos el número de ofertas en los principales motores de búsqueda de trabajo hecho y Simply Hired. El número de perfiles en redes profesionales en el que el sistema es mencionado utiliza la red profesional internacional más popular: LinkedIn. Relevancia en las redes sociales. Contamos el número de tweets de Twitter, en la que se menciona el sistema. Calculamos el valor popularidad de un sistema mediante la estandarización y un promedio de los parámetros individuales. Estas transformaciones matemáticas se hacen en una forma de manera que se conserva la distancia de los sistemas individuales. Eso significa que, cuando el sistema A tiene el doble de un valor en el DB-Engine que en el sistema B, entonces es dos veces más popular cuando se promedian sobre los criterios de evaluación individuales. La clasificación DB-Engine no mide el número de instalaciones de los sistemas, o su uso dentro de los sistemas de TI. Es de esperar, que un aumento de la popularidad de un sistema de medida DBEngine (por ejemplo, en las discusiones o las ofertas de empleo), preceda a una amplia gama de usos correspondiente del sistema por un determinado factor tiempo. Debido a esto, la clasificación DB-Engine puede actuar como un indicador temprano. 63 wine_analytics S DB-Engines Ranking Tendencia de Cassandra vs. DynamoDB vs. HBase vs. Redis vs. MongoDB vs. Neo4j La clasificación DB-Engines clasifica los sistemas de gestión de base de datos en función de su popularidad. Este es un diagrama de tendencia parcial de la clasificación completa mostrando sólo Cassandra vs. DynamoDB vs. HBase vs. Redis vs. MongoDB vs. Neo4j Detalles Cassandra DynamoDB HBase Redis MongoDB Neo4j X Nombre Hosted, BBDD en servicio de Columnar memoria con Columnar base de datos basada en opciones basada en escalable por Descripción conceptos de Una de las más configurables conceptos de Amazon con BigTable de BigTable los datos y DynamoDB BD en Grafos populares BBDD rendimiento y Hadoop almacenados vs. en la nube persistencia 64 OpenSource documentales wine_analytics S DB-Engines Ranking Rank Score 8 98.75 Rank Score 30 13.09 Rank Score 14 53.59 cassandra.apa aws.amazon.c hbase.apache. che.org om/dynamodb org Website Rank Score 10 94.24 redis.io Rank 5 Score 250.90 www.mongodb.org Rank 23 Score 24.42 neo4j.com aws.amazon.c redis.io/Documentació www.datastax om/- hbase.apache. docs.mongodb.org/ neo4j.com/docs/documentatio n Técnica .com/docs documentatio org manual stable MongoDB, Inc Neo Technology n n/dynamodb Apache Apache Salvatore Desarrollador Software Amazon Software Sanfilippo Foundation Foundation Año de 2008 2012 2008 2009 2009 2007 Open Source commercial Open Source Open Source Open Source Open Source no Sí no no no no Java C C++ Java BSD Linux Linux OS X OS X Solaris Windows Windows publicación Licencia Database as a Service (DBaaS) Lenguaje de Java Programación BSD Sistemas Linux Linux Operativos hosted Unix OS X Compatibles Linux OS X Windows Windows Windows Modelo de Columnar Clave-valor Columnar Clave-valor Documental En Grafos DBMS schema-free schema-free schema-free schema-free schema-free schema-free Sí Sí no no Sí Sí restricted no no no Sí Sí BBDD Esquema de datos Typing Índices Secundarios 65 wine_analytics S SQL no no no no no Java API no Cypher query APIs y otros Proprietary RESTful HTTP RESTful HTTP proprietary proprietary language protocol API API protocol protocol using JSON Java API métodos de acceso Thrift RESTful HTTP API Actionscript C C# C++ C Clojure C# ColdFusion C++ D Clojure C# Dart Dart C++ .Net Clojure ColdFusion C Go Erlang C# Haskell Groovy C++ Java Java Groovy JavaScript JavaScript Java Lisp Perl PHP Lua PHP Python Objective-C Python Scala Perl Erlang Go Lenguajes de programación soportados Delphi .Net Erlang Clojure Go Go Groovy Groovy Haskell Java Java JavaScript JavaScript Perl Lisp PHP Lua Python MatLab Ruby Perl Scala Erlang Haskell Java JavaScript Perl PHP Python Ruby PHP Ruby Python Scala PHP Ruby PowerShell Scala Prolog Smalltalk Python Tcl R Ruby Scala Smalltalk Server-side no no Sí scripts 66 Lua JavaScript Sí wine_analytics S Triggers Sí no Sí no no Sí Sharding Sharding Sharding none Sharding none Master-slave Master-slave Master-slave replication replication replication no Sí no Métodos de particionamie nto selectable selectable Métodos de replication Sí replication replicación factor MapReduce factor Sí no Eventual Eventual Conceptos de Consistency Consistency Immediate Consistency Eventual consistencia Immediate Immediate Consistency Immediate Consistency Consistency Consistency no no no no no no Foreign keys Sí Eventual Consistency Conceptos de no no yes no ACID optimistic transacción locking Concurrencia Sí Sí Sí Sí Sí Sí Durabilidad Sí Sí Sí Sí Sí Sí Los permisos de acceso para usuarios y Se pueden roles se definir pueden definir Muy Simple Listas de Conceptos de Derechos de acceso Control de permisos por a través de la control de acceso para usuarios y acceso por usuario y AWS Identidad acceso (ACL) roles credenciales objeto y Administració n de Acceso (IAM) 67 no wine_analytics S 3. Rendimiento Vs Redis vs DynamoDB Cuando hay tantas empresas, organizaciones y usuarios que utilizan estas dos data-stores de clave-valor, es probablemente porque cada una tiene algo que ofrecer - y algo diferente en cada caso. La elección entre ellos dependerá de los requisitos o limitaciones individuales. Los puntos de partida son los siguientes: Redis es en memoria y disyuntiva configurable entre la persistencia y el rendimiento DynamoDB es un servicio de data warehouse de clave-valor de Amazon. Antes de entrar en detalle comparativo, vale la pena enumerar las cosas que son comunes a todos ellos: Apoya a la manipulación simultánea de datos (concurrencia) Son sin esquema Sin embargo, no son compatibles con SQL Y no ofrecen claves externas (es decir, la integridad referencial o evitar la introducción de datos inconsistentes). Éstas difieren en varios otros aspectos: Licencias (DynamoDB está comercialmente licencia, Redis son Open Source) Los índices secundarios (DynamoDB) Los scripts de servidor (Redis) Tipos de APIs que ofrecen y lenguajes de programación soportados Coherencia (DynamoDB para su eventual e inmediata) Funcionalidad de MapReduce (una opción para DynamoDB) Idoneidad para el procesamiento de transacciones (Redis ofrece bloqueo optimista) Durabilidad o persistencia de los datos Razones para elegir Redis Como solución in-memory, Redis ofrece una buena solución para el almacenamiento de datos transitorios, como fichas y datos handshake, además posee un buen organismo de control para 68 S wine_analytics limitar el uso de la API del sistema. La lectura/escritura de los datos es muy rápida, pero se produce con gran volumen y frecuencia. La latencia puede mantenerse baja y el riesgo de pérdida de datos es aceptable. Redis también ofrece mecanismos configurables para persistencia. Sin embargo, el aumento de la persistencia tenderá a aumentar la latencia y la disminución de rendimiento. Redis soporta cinco estructuras de datos diferentes que le permiten manejar entidades tales como conjuntos ordenados y datos de series de tiempo. Otro punto fuerte es la variedad de lenguajes de programación con la que es compatible. Razones para elegir DynamoDB La diferencia inmediata de DynamoDB es que es un servicio alojado en la nube. Además de eliminar la necesidad de los clientes para crear sus propios servidores, su PaaS (Plataforma como Servicio) hace que sea inmediatamente escalable. El rendimiento concurrente es alto y la disponibilidad está asegurada a través de los múltiples centros de datos de AWS (Amazon Web Services). Una vez que has entendido las reglas con las que DynamoDB, el rendimiento es predecible. Amazon cuenta con medios de comunicación móviles, publicidad en línea y juegos de azar entre sus aplicaciones de los clientes estrella, con millones de usuarios atendidos. Otras posibles aplicaciones incluyen registradores de clics corrientes en general (no sólo de publicidad), almacenamiento de sesión de usuario de aplicación, y la duplicación de datos intermedios. Cassandra vs HBase Vs Después de mirar tanto Cassandra y HBase, hay una tendencia natural a preguntarse cuál es mejor. Esta no es una decisión fácil de tomar. Si tiene experiencia en bases de datos y en administración del servidor de base de datos sus prioridades y preferencias podrían ser muy diferentes de alguien que aborda su primera configuración NoSQL a gran escala; en lugar de comparar aspectos muy técnicos que pueden no ser útiles, vamos a comparar las dos BBDD de un modo más general: Instalación Soluciones a nivel empresarial como Cassandra y HBase van claramente a ser un poco más difícil de instalar y configurar que los productos más pequeños como RavenDB. Instalación HBase se complica al tener que instalar todos sus componentes clave por separado. Y debido a que por lo general se ejecuta en el sistema de archivos distribuidos Hadoop (HDFS), esto añade una capa 69 S wine_analytics adicional de complejidad si usted no está utilizando el software. Cassandra instala todos sus componentes clave en una, proceso relativamente simple, la instalación. Sin embargo, vale la pena señalar que se puede ejecutar sin HBase HDFS (aunque todavía se requiere para sistemas totalmente distribuidos), y se puede ejecutar Cassandra con él. Así que, como se dice, su experiencia puede variar. Documentación Documentación de usuario final de HBase no es muy numerosa, e incluso puede ser desagradable para algunos usuarios nuevos. Esta es un área donde DataStax (distribuidores de sus propias ediciones de Cassandra) se han dedicado mucho esfuerzo. La documentación para DataStax Cassandra es mucho más legible y accesible, y sus programas de capacitación gratuita, en línea son una ventaja. Estos materiales son útiles incluso si no se está utilizando una versión DataStax de la base de datos. Herramientas de administración Ambas bases de datos tienen más o menos las mismas herramientas - interfaces de línea de comandos, herramientas de gestión basadas en la web, y soluciones de monitoreo. En términos de funcionalidad, no hay suficiente diferenciación real entre estas herramientas para decir objetivamente que un conjunto es sustancialmente mejor que el otro. Programación Ambas bases de datos están escritas en Java y tienen bibliotecas de cliente para la mayoría de los mismos lenguajes de programación. En la versión 3.0, Cassandra apoyará las funciones definidas por el usuario y ha apoyado disparadores desde la versión 2.0. Si no puede esperar a la versión 3.0 y no necesita un lenguaje de consulta similar a SQL, entonces HBase es actualmente un poco más capaz. Rendimiento En pruebas más independientes, Cassandra es un claro ganador en términos de su rendimiento general. Pero eso no quiere decir HBase es lento, ni mucho menos. Mientras Cassandra está optimizado para la escritura de datos, HBase está optimizado para la lectura de datos y, a veces 70 wine_analytics S se ha demostrado que es un poco más rápido en las aplicaciones read-hard. Aunque en general, Cassandra es el producto de mejor rendimiento. Escalabilidad Ambas soluciones están concebidas como sistemas altamente disponibles y escalables, a nivel de empresa, y por lo que es bastante difícil de juzgar entre ellos en esta área. HBase escalas muy bien horizontal (aunque no sin esfuerzo por parte del administrador del sistema), mientras que el límite de filas de tamaño de Cassandra podría ser un problema en algunos casos raros. Sin embargo, la diferencia clave entre los dos viene cuando necesita datos consistentes garantizados a través de todos los nodos del clúster. Modelo de consistencia de Cassandra "eventual" hace de este un poco más difícil de conseguir, a pesar de la administración de nodo que es sustancialmente más fácil que con HBase. Más Detalles Redis (v2.8) Escrito en: C Dato: Blazing rápido Licencia: BSD Protocolo: tipo telnet, segura con material binario Disco con respaldo de base de datos en memoria, El tamaño del conjunto de datos limitado a la RAM del ordenador (pero puede abarcar RAM múltiples máquinas con clustering) Replicación maestro-esclavo, failover automático Los valores simples o estructuras de datos de claves pero las operaciones complejas como ZREVRANGEBYSCORE. INCR & co (bueno para la limitación de velocidad o estadísticas) Operaciones de bits (por ejemplo, para implementar filtros floración) Tiene conjuntos (al mismo tiempo unión / diferencias / inter) Tiene listas (también una cola; bloqueo de ventanas emergentes) Tiene hashes (objetos de campos múltiples) Conjuntos Ordenado (tabla de puntuación, bueno para consultas de rango) Capacidades de scripting Lua (!) 71 wine_analytics S Tiene transacciones (!) Los valores se pueden configurar para expirar (como en una memoria caché) Resto bar / Sub permite un implemento de mensajería Mejor uso: Para cambiar rápidamente los datos con un tamaño de base de datos previsible (debe encajar en su mayoría en la memoria). Ejemplo: Para almacenar las cotizaciones en tiempo real. Análisis en tiempo real. Tablas de clasificación. La comunicación en tiempo real. Y donde quiera que utilizó memcached antes. Cassandra (2.0) Escrito en: Java Dato: Tienda enormes conjuntos de datos en "casi" SQL Licencia: Apache Protocolo: CQL3 y Ahorro CQL3 es SQL muy similares, pero con algunas limitaciones que provienen de la escalabilidad (en particular: No JOIN, no hay funciones de agregación) CQL3 es ahora la interfaz oficial. No mirar Thrift, a menos que se esté trabajando en una aplicación de legado. De esta manera, se puede vivir sin entender ColumnFamilies, SuperColumns, etc. Consulta con la tecla, o rango de teclas (índices secundarios también están disponibles) sintonizables compensaciones para la distribución y reproducción (N, R, W) Los datos pueden tener caducidad (juego en INSERT). La escritura puede ser mucho más rápida que la lectura (cuando las lecturas se han unido en el disco) Map / reduce posible con Hadoop Todos los nodos son similares, a diferencia de Hadoop / HBase Muy buena y fiable replicación cruzada centro de datos Distribuido contador tipo de datos. Puede escribir disparadores en Java. Mejor usado: Cuando se necesita almacenar una gran cantidad de datos y quiere conservarse una interfaz amigable. Por ejemplo: La analítica web, para contar los accesos por hora, por el navegador, a través de IP, etc. El registro de transacciones. La recolección de datos a partir de grandes conjuntos de sensores. 72 wine_analytics S Cassandra HBase Carece de concepto de una tabla. Toda la documentación le dirá que no es común tener múltiples keyspaces. Eso significa que usted tiene que compartir un espacio clave en un clúster. Además de añadir un espacio de claves requiere un reinicio del clúster! El concepto de la Tabla existe. Cada tabla tiene su propio espacio de claves. Se puede agregar y quitar tablas con la misma facilidad que un RDBMS. Utiliza claves de cadena. Muy común el uso de UUID como las keys. Puede utilizar TimeUUID si desea que sus datos estén ordenados por tiempo. Utiliza claves binarias. Es común combinar tres elementos diferentes entre sí para formar una clave. Esto significa que usted puede buscar por más de una clave en una give-table. Incluso si utiliza TimeUUID, como Cassandra balancea las solicitudes de los clientes, no se producen problemas de hot spotting. (Todas las solicitudes de los clientes que van a un servidor en un clúster se conoce como un problema de hot spot). Si el primer componente de su clave es el tiempo o un número secuencial, entonces se producirá un problema de hot spotting. Todas las nuevas claves se insertarán en una región hasta que ésta se llena (de ahí el hot spotting). Ofrece clasificación de columnas No ofrece clasificación de columnas El concepto de Supercolumn le permite No tiene Supercolumns. Pero se puede diseñar esquemas muy flexibles, muy diseñar una supercolumn, ya que tanto complejos. la estructura como los nombres y valores de columna son binarios. No tiene ningún método para incrementar Ofrece un método el elemento el valor de un elemento de una columna. agradable para incrementar los contadores. Muy adecuado para la agregación de datos. Soporta Map Reduce. Se necesita un Map Reduce es nativo. HBase está cluster Hadoop para ejecutarlo. Los datos construido sobre Hadoop. Los datos no serán transferidos desde el clúster de se transfieren. Cassandra al clúster de Hadoop. No es muy adecuado ejecutar Jobs muy pesados sobre datos Map Reduce. Fácil de mantener si no tiene Hadoop. Complicado de mantener ya que tiene muchas piezas en movimiento, como Zookeeper, Hadoop y la propia HBase. No tiene una API de Java nativa. Aunque Tiene una bonita API de Java nativo. Se está escrito en Java, tiene que utilizarse siente mucho más el sistema java que Thrift para comunicarse con el clúster. el de Cassandra. HBase tiene una interfaz óptima para otros lenguajes también. 73 wine_analytics S Cassandra HBase No hay ningún servidor maestro, por lo Aunque no existe un concepto de un tanto, ningún punto único de fallo. servidor maestro, HBase no es muy pesado. Un clúster de HBase puede seguir sirviendo datos incluso si el maestro se cae. Hadoop NameNode es un único punto de fallo. Conclusiones Al igual que con cualquier comparación entre dos grandes sistemas, experiencia previa y preferencia personal pueden ser claves para decidir qué producto utilizar. Ambos tienen una gran cantidad de usuarios leales. Los requisitos de su aplicación específica son un factor más importante que los comentarios generales en las seis áreas anteriores. Sin embargo, la facilidad de Cassandra de instalación y significativamente mejores recursos de documentación y formación lo distinguen de HBase. Para los nuevos usuarios, la documentación es muy importante y HBase se encuentra ahí ausente. Que el aumento de la "amigabilidad" de Cassandra también viene con ganancias generales de rendimiento da Cassandra la "victoria" en este punto. Vs Cassandra vs DynamoDB Tal vez son unas palabras demasiado atrevidas, pero sin duda una gran comparación de Cassandra y Amazon DynamoDB es la de Jonathan Ellis (presidente de Cassandra y fundador de DataStax): “Como ingeniero, es agradable ver tantas decisiones de diseño de Cassandra imitadas por la próxima generación de productos NoSQL de Amazon. Me siento como un tío orgulloso, pero en muchos aspectos importantes, Cassandra conserva una ventaja firme en el poder y la flexibilidad.” Amazon DynamoDB, es una base de datos alojada en Amazon Web Services. Con DynamoDB, Amazon y Cassandra llegan al punto de partida: al igual que Cassandra se inspiró en 2007 en el papel de Dynamo de Amazon, DynamoDB ha adoptado muchas de las mejoras que Cassandra ha hecho desde entonces. 74 S wine_analytics Comparativa de Cassandra vs DynamoDB Tanto Cassandra y DynamoDB logran un alto grado de escalabilidad utilizando muchas de las mismas técnicas. Cassandra se ha demostrado que escala a millones de ops / s, y Amazon anunció que su cliente hace más de 250.000 op / s en DynamoDB. La historia de la disponibilidad de múltiples centros de datos es un poco más compleja. DynamoDB replica los datos "a través de múltiples zonas de disponibilidad en una región", pero la región cruz no es compatible. Desde zonas de disponibilidad no se dispersan geográficamente, necesita replicación cruzada región si usted está preocupado acerca de las interrupciones que afectan a regiones enteras o si desea proporcionar latencias de datos locales a todos sus clientes en cualquier región. Esto requiere el tipo de control preciso sobre la consistencia de datos se ve en Cassandra. El modelo de datos es un área donde DynamoDB es mucho más cercano a Cassandra que al Dynamo originales. El diseño original Dynamo tenía un modelo primitivo de clave / valor de los datos, que tiene graves consecuencias: para actualizar un solo campo, todo el valor se debe leer, actualizado y re-escrita. (Otras bases de datos NoSQL han injertado una API de documento en un motor clave / valor, lo que es una de las razones de su rendimiento se resiente en comparación con Cassandra.) Otra consecuencia directa está requiriendo relojes vectoriales complejos para manejar conflictos de actualizaciones simultáneas a campos separados. Cassandra fue una de las primeras bases de datos NoSQL para ofrecer un modelo más potente de datos ColumnFamily, que DynamoDB de asemeja fuertemente. Sin embargo, los índices secundarios fueron una de las características mejor recibidas, cuando Cassandra les presentó hace un año. Como Cassandra, DynamoDB ofrece integración Hadoop para consultas analíticas. No está claro si DynamoDB también es capaz de particionar las cargas de trabajo de análisis a un grupo separado de las máquinas de la misma manera que con Cassandra y DataStax Enterprise. En tiempo real y las cargas de trabajo analíticas tienen muy diferentes características de rendimiento, por lo que la partición de ellos para evitar conflictos de recursos, es necesario en los volúmenes de solicitud de alta. 75 S wine_analytics Hadoop está convirtiendo rápidamente en el estándar de la industria para análisis de datos grandes, así que tiene sentido para ofrecer apoyo Hadoop en lugar de una API personalizada incompatibles. Vale la pena señalar que Cassandra apoya cerdo, así como de la colmena en la parte superior de Hadoop. Mucha gente piensa cerdo es una mejor opción para el mapa subyacente / reducir motor. Cassandra ha estado en producción en muchos entornos exigentes desde hace años, así que no es sorpresa que Cassandra tiene una ventaja sustancial en la prestación del mundo real características como copia de seguridad. Motor de almacenamiento de Cassandra logestructurado - que es también la razón por la que Cassandra corre tan bien sin SSDs - permite que ambas copias de seguridad completas e incrementales sin impacto en el rendimiento. (A continuación, puede cargar sus archivos de copia de seguridad con una herramienta como tablesnap). 76 wine_analytics S HBase vs. Cassandra vs. Redis Vs Vs Database Categoría Database Database In Memory/ Management Preferencia Website Licencia 28% votos 34% votos 38% votos hbase.apache.org Cassandra.apache.org redis.io Apache License 2 Apache License 2 BSD-License Diseño Key-value Column-oriented Column-oriented Key-value Key-value Database model Schema-less Publish/Subscribe ExFat Volatile memory Data storage local File System File System File System Exportable No Sí 77 No wine_analytics S Características API calls API calls Lenguaje de Consulta REST API calls CQL XML Lua Thrift Thrift All MySQL JSON Tipo de datos BLOB BLOB Data structures user-defined STATIC COLUMN Actualizaciones entrada condicional Sí Sí Sí Map / Reduce Sí Sí No Unicode Sí Sí Sí TTL para entradas Sí Sí Sí Compresión Sí Sí Sí 78 wine_analytics S Integridad Modelo de Integridad Log Replication BASE ? Atomicidad Sí Sí Sí Consistencia Sí Sí Sí Aislamiento Sí Sí Sí Durabilidad (almacenamiento de datos) Sí Sí Sí Transacciones No No Sí Integridad Referencial No No No Control de revisión Sí Sí No MVCC MVCC Modelo de bloqueo Lock Free Model Optimistic Locking 79 wine_analytics S Indexación Índices secundarios Sí Sí No Claves compuestas Sí Sí No Búsqueda de texto completo No No No Índices Geoespaciales No No No Soporte Gráfico No No No Distribución Horizontal Escalable Sí Sí Sí Replicación Sí Sí Sí Modo de replicación Master-Slave Replication Master-Master Replication Master-Slave Replication 80 wine_analytics S Sharding Sí Sí Sí Shared nothing architecture Sí Sí Sí Restricciones Tamaño de valor máximo 2 TB 2 GB 512 MB Requerimientos del sistema Sistema operativo Controlador nativo *NIX Java Cross-platform Cross-platform Java (any JVM scripting language) JavaScript/Node.js Python go Ruby Perl PHP Erlang Lua Scala C++ Clojure C# .NET Framework C# Actionscript 3.0 C# C++ Clojure Common Lisp D Lang Dart Erlang Fancy go Haskell Haxe io Java JavaScript Lua Objective-C Perl PHP 81 wine_analytics S Pure Data Python Ruby Scala Scheme Smalltalk Tcl Memoria mínima ? 4 GB 3 MB Arquitectura Sistema de programación Java (any JVM scripting language) Java C# Más Descripción Marca Una base de datos distribuida basada en Hadoop Apache Base de datos distribuida de segunda generación Apache Almacén de estructuras de datos en memoria ? Sistema multiusuario Sí Sí Sí Estandarización No ? ? 82 wine_analytics S Tarball Distribución de software Tarball Package management system Package management system Fecha De Lanzamiento 2ⁿᵈ February 2008 2008 ? Nivel de documentación disponible ★★★★☆ ★★★★☆ ★★★★★ RESTful Sí No Sí Contador Distribuido Sí Sí Sí Gratis Sí Sí Sí Activo Sí Sí Sí Pooling de conexiones Sí Sí Sí Analítica en tiempo real Conditional Sí Sí 83 wine_analytics S Interfaz Web Sí Sí ? Good Good Basic Copia de seguridad online No Sí Sí Índices parciales No ? ? Log Sí Sí Sí www.apache. org/dyn/closer. cgi/hbase/ Cassandra.apache.org/ download/ redis.io/download Basic Good Good No ? Sí Facilidad de uso ★★★★☆ ★★★★☆ ★★★★★ Gratis para uso comercial Sí Sí Sí API Descarga Funcionalidad de Backup Query Cache 84 wine_analytics S Órdenes No Sí Sí Colectores No No Sí Configuración de rutinas de escritura Sí Sí Sí Preferencias de lectura Sí Sí No Open Source Sí Sí Sí Rendimiento ★★★★☆ ★★★★☆ ★★★★★ Pipeline Aggregation Sí ? Sí Soporte de Spring Sí Sí Sí Procedimientos almacenados No No No Auto-Sharding Sí Sí No 85 wine_analytics S Object-Relational Mapping (ORM) ? Soporte de la plataforma en la nube ? In-Place Update ? Sí ? Caché de ensamblados global ? Sí ? Triggers ? Sí No Server Side Java Script ? No Sí Flexible Table(Schema) ? Sí Sí Re-Reduce ? Sí No Extension/Plug-in ? ? Sí HBase Cassandra Redis Sí Amazon EC2 Rackspace Cloud 86 Sí Heroku Cloud Foundry wine_analytics S MongoDB vs Neo4j Vs MongoDB es una base de datos orientada a documentos. Esto quiere decir que en lugar de guardar los datos en registros, guarda los datos en documentos. Estos documentos son almacenados en BSON, que es una representación binaria de JSON. Una de las diferencias más importantes con respecto a las bases de datos relacionales, es que no es necesario seguir un esquema. Los documentos de una misma colección – concepto similar a una tabla de una base de datos relacional -, pueden tener esquemas diferentes. Imaginemos que tenemos una colección a la que llamamos Personas. Un documento podría almacenarse de la siguiente manera: { Nombre: "Pedro", Apellidos: "Martínez Campo", Edad: 22, Aficiones: ["fútbol","tenis","ciclismo"], Amigos: [ { Nombre:"María", Edad:22 }, { Nombre:"Luis", Edad:28 } ] } El documento anterior es un clásico documento JSON. Tiene strings, arrays, subdocumentos y números. En la misma colección podríamos guardar un documento como este: 87 S wine_analytics { Nombre: "Luis", Estudios: "Administración y Dirección de Empresas", Amigos:12 } Este documento no sigue el mismo esquema que el primero. Tiene menos campos, algún campo nuevo que no existe en el documento anterior e incluso un campo de distinto tipo. Esto que es algo impensable en una base de datos relacional, es algo totalmente válido en MongoDB. ¿Cómo funciona MongoDB? MongoDB está escrito en C++, aunque las consultas se hacen pasando objetos JSON como parámetro. Es algo bastante lógico, dado que los propios documentos se almacenan en BSON. Por ejemplo: db.Clientes.find({Nombre:"Pedro"}); La consulta anterior buscará todos los clientes cuyo nombre sea Pedro. MongoDB viene de serie con una consola desde la que podemos ejecutar los distintos comandos. Esta consola está construida sobre JavaScript, por lo que las consultas se realizan utilizando ese lenguaje. Además de las funciones de MongoDB, podemos utilizar muchas de las funciones propias de JavaScript. En la consola también podemos definir variables, funciones o utilizar bucles. Si queremos usar nuestro lenguaje de programación favorito, existen drivers para un gran número de ellos. Hay drivers oficiales para C#, Java, Node.js, PHP, Python, Ruby, C, C++, Perl o Scala. Aunque estos drivers están soportados por MongoDB, no todos están en el mismo estado de madurez. Por ejemplo el de C es una versión alpha. Si queremos utilizar un lenguaje concreto, es mejor revisar los drivers disponibles para comprobar si son adecuados para un entorno de producción. 88 S wine_analytics ¿Dónde se puede utilizar MongoDB? Aunque se suele decir que las bases de datos NoSQL tienen un ámbito de aplicación reducido, MongoDB se puede utilizar en muchos de los proyectos que desarrollamos en la actualidad. Cualquier aplicación que necesite almacenar datos semi estructurados puede usar MongoDB. Es el caso de las típicas aplicaciones CRUD o de muchos de los desarrollos web actuales. Eso sí, aunque las colecciones de MongoDB no necesitan definir un esquema, es importante que diseñemos nuestra aplicación para seguir uno. Tendremos que pensar si necesitamos normalizar los datos, desnormalizarlos o utilizar una aproximación híbrida. Estas decisiones pueden afectar al rendimiento de nuestra aplicación. En definitiva el esquema lo definen las consultas que vayamos a realizar con más frecuencia. MongoDB es especialmente útil en entornos que requieran escalabilidad. Con sus opciones de replicación y sharding, que son muy sencillas de configurar, podemos conseguir un sistema que escale horizontalmente sin demasiados problemas. ¿Dónde no se debe usar MongoDB? En esta base de datos no existen las transacciones. Aunque nuestra aplicación puede utilizar alguna técnica para simular las transacciones, MongoDB no tiene esta capacidad. Solo garantiza operaciones atómicas a nivel de documento. Si las transacciones son algo indispensable en nuestro desarrollo, deberemos pensar en otro sistema. Tampoco existen los JOINS. Para consultar datos relacionados en dos o más colecciones, tenemos que hacer más de una consulta. En general, si nuestros datos pueden ser estructurados en tablas, y necesitamos las relaciones, es mejor que optemos por un RDBMS clásico. Y para finalizar, están las consultas de agregación. MongoDB tiene un framework para realizar consultas de este tipo llamado Aggregation Framework. También puede usar Map Reduce. Aún así, estos métodos no llegan a la potencia de un sistema relacional. Si vamos a necesitar explotar informes complejos, deberemos pensar en utilizar otro sistema. Eso sí, esta es una brecha que MongoDB va recortando con cada versión. En poco tiempo esto podría dejar de ser un problema. 89 wine_analytics S Neo4J Neo4J es un líder en la Base de datos en Grafo. Se compone de modelado de datos enteros en forma de nodos y vértices, donde los nodos representan las entidades y relaciones entre ellos. Para el almacenamiento de datos utiliza la base de datos gráfica. Esto es una ventaja cuando tenemos un caso de uso en el que las entidades están altamente conectadas y tenemos que determinar varias dependencias y relaciones. Características No hay esquema. Transacciones ACID(Atomicity, Consistency, Isolation, Durability). Puede contener billones de nodos y relaciones. Rápido recorriendo relaciones, este tipo de queries se conoce como transversals. Lenguaje de query propio, Cypher. Alta disponibilidad, instalación en diferentes maquinas con balanceador de carga. Multilenguaje, proporciona una Api Rest pudiendo utilizarse desde cualquier lenguaje. Lenguaje drivers disponibles. Ventajas Tiene gran soporte y comunidad: hay muchas aplicaciones y plugins en github, podemos utilizar Neo4j con cualquier lenguaje. Además, añaden mejoras a la herramienta en función de los problemas que surgen en la comunidad de usuarios. Muy rápida para consultas de pocos grados de profundidad y miles de nodos. Fácil importación de formatos propios .csv (con plugin batch-import). Muy práctica para manejar grafos Aportan en la interfaz web una forma de visualización de las respuestas de las consultas (en forma de grafo) aunque no está enfocada a datos masivos. Hay otras herramientas para datos masivos como GraphChi, Linkurius o GraphAlchemist. Permiten usar Neo4j de forma embedded a través de la API de Java para crear endpoints específicos. Desventajas Neo4j Community no es escalable para cantidades de datos muy grandes, hay que cambiar la configuración de la memoria en Neo4j acorde con las necesidades del grafo. 90 wine_analytics S Lo que más ocupa en memoria es el almacenamiento de los nodos, se hacen ineficientes las consultas si no se ha modelado el problema bien y si se almacena demasiada información en los nodos. Neo4j quiere que tengas todo el grafo en memoria, si puedes (igual que MongoDB, etc.), pero al final habrá cosas del grafo que nunca tocas y es ineficiente tenerlo cacheado. Lo más recomendable es tener un conjunto de datos mínimo en memoria (por ejemplo, lo que más vas a consultar). Neo4j no tiene gestión de usuarios, nada de autenticación: hay una extensión para autenticar, o como alternativa, se puede poner un proxy delante de la BD para autenticar. Conclusiones MongoDB es almacén de documentos en el que podemos almacenar documentos JSON y BSON que requieren escrituras rápidas. Pero la recuperación de datos desde MongoDB requiere consultas complejas, con lo que es un trabajo realmente difícil y es necesario mucho esfuerzo en términos de marco de agregación y Map Reduce. MongoDB es altamente disponible y consistente, pero no es capaz de utilizar relaciones, ya que no mantiene la integridad referencial entre DBRefs. La principal ventaja de Neo4j es su capacidad rápida de hacer consultas muy complejas con profundidad ilimitada y conexiones ponderadas. Neo4j almacena los gráficos como "Usuarios" y las relaciones como "amistad" o "suscriptor". Es capaz de devolver relaciones entre datos de una manera sencilla. MongoDB funciona mucho mejor cuando todos los datos de una partición caben en memoria. Lo que hace que sea escalable es que muchas de las colecciones de datos se pueden almacenar y repartir fácilmente. Esto le permite distribuir los datos a través de una serie de nodos permitiéndole que se adapte conjuntos de datos que son mayores que la capacidad de memoria de un solo servidor. Es particularmente difícil encontrar formas de mantener grandes gráficos en memoria cuando superas los recursos de hardware. Es de señalar que para más del 90 por ciento de los casos de uso de aplicaciones, será más que suficiente el uso de una base de datos o la otra. El uso de dos bases de datos diferentes, incluso puede tener un impacto negativo en el rendimiento, especialmente en el sharding instancias de 91 S wine_analytics base de datos a través de múltiples máquinas. También hay que señalar es que Neo4j todavía no soporta auto-sharding. En resumen, veo que comparar Neo4j con MongoDB es como comparar peras con manzanas. Se debe utilizar Neo4j cuando los datos están altamente interconectados y es necesaria una navegación entre ellos, mientras que si los datos son estructuras no normalizadas, se debe de utilizar MongoDB. Conclusiones Cuando usar Redis Redis ofrece una buena solución para el almacenamiento de datos transitorios, además posee un buen organismo de control para limitar el uso de la API del sistema. La lectura/escritura de los datos es muy rápida. La latencia puede mantenerse baja y el riesgo de pérdida de datos es aceptable. Redis también ofrece mecanismos configurables para persistencia. Redis soporta cinco estructuras de datos diferentes que le permiten manejar entidades tales como conjuntos ordenados y datos de series de tiempo. Otro punto fuerte es la variedad de lenguajes de programación con la que es compatible. Cuando usar DynamoDB Si se desea eliminar la dependencia del entorno, es decir, su PaaS (Plataforma como Servicio) hace que sea inmediatamente escalable. El rendimiento concurrente es alto y la disponibilidad está asegurada a través de los múltiples centros de datos de AWS (Amazon Web Services). El rendimiento es predecible. Amazon cuenta con medios de comunicación móviles, publicidad en línea y juegos de azar entre sus aplicaciones de los clientes estrella, con millones de usuarios atendidos. Otras posibles aplicaciones incluyen registradores de clics corrientes en general (no sólo de publicidad), almacenamiento de sesión de usuario de aplicación, y la duplicación de datos intermedios. 92 wine_analytics S Cuando usar HBase HBase es básicamente utilizado para procesar los datos con fines de análisis en lugar de procesamiento en tiempo real. HBase viene a la mente cuando hay gran cantidad de datos se tratara, cientos de gigabytes o incluso cientos de petabytes de datos está involucrado. Básicamente HBase se utiliza para publicar el análisis de datos de procesamiento, a menudo el tratamiento de la información se mide en minutos y horas, a veces incluso días. Cuando se tratan grandes cantidades de datos Con fines de análisis El tiempo de procesamiento se mide en minutos y horas Para el procesamiento sin conexión Por ejemplo: previsión del tiempo Cuando usar MongoDB MongoDB en el otro lado está diseñado para el procesamiento en tiempo real. A pesar de que MongoDB puede almacenar gran cantidad de datos, procesamiento de datos a la vez se realiza en un pequeño subconjunto de datos. Se utiliza cuando el conjunto de datos es pequeño El tiempo de procesamiento mide en milisegundos Para el procesamiento en tiempo real Para almacenamiento de documentos (PDF, imágenes, XML, etc.) Por ejemplo: datos de búsqueda en tiempo real Cuando usar Cassandra Básicamente se puede utilizar Cassandra cuando nuestro problema requiera utilizar una base de datos escalable, con un grado de escalabilidad lineal. Escalabilidad lineal quiere decir que si añadimos un nuevo nodo al anillo, este verá incrementado su músculo de procesamiento en un nodo más literalmente. Además, Cassandra es ideal cuando se necesita almacenar una gran cantidad de datos y aun así quiere conservarse una interfaz amigable. También tenemos que tener en cuenta que Cassandra posee las siguientes características: 93 wine_analytics S Los datos son fácilmente replicables/distribuibles La consistencia de datos es personalizable Diseño del esquema es flexible Admite comprensión de datos El Lenguaje es tipo SQL, (aunque no os voy a mentir, es bastante simple y limitado). Esquema Flexible: admite diseño de esquema dinámico y permite tratar con datos estructurados, semi-estructurados y no estructurados Por ejemplo: La analítica web, para contar los accesos por hora, por el navegador, a través de IP, el registro de transacciones o la recolección de datos a partir de grandes conjuntos de sensores Cuando usar Neo4j Neo4j almacena la información como grafos dónde las relaciones entre los nodos son lo más importante. Es muy útil para representar/almacenar información de redes sociales. Es muy rápida para consultas de pocos grados de profundidad y miles de nodos. Fácil importación de formatos propios .csv (con plugin batch-import). Muy práctica para manejar grafos. Se debe utilizar cuando los datos están altamente interconectados y es necesaria una navegación entre ellos. Apéndice Una pregunta podemos hacernos cuando hablamos de arquitecturas modernas de datos es: "¿Debemos utilizar Kafka o Flume para cargar datos en los clusters de Hadoop?" Esta pregunta implica que Kafka y Flume son componentes intercambiables. Esto tiene tanto sentido como plantearse si "¿debemos utilizar coches o paraguas?" Puedes protegerte de la lluvia en tu coche y utilizar el paraguas cuando te desplazas de un lugar a otro pero, en general, se trata de diferentes herramientas destinadas a diferentes casos de uso. El caso de uso principal de Flume es ingerir datos en Hadoop. Está estrechamente integrado con el sistema de monitorización de Hadoop, el sistema de archivos, los formatos de archivo, y las utilidades tales como Morphlines. Una gran parte del esfuerzo en el desarrollo de Flume está en mantener la compatibilidad con Hadoop. El diseño de las fuentes de Flume, dispersores y canales 94 S wine_analytics se pueden utilizar para mover datos a otros sistemas con flexibilidad, pero la característica más importante es su integración Hadoop. El caso de uso principal de Kafka es un sistema de mensajería distribuido de publicaciónsuscripción. Una gran parte del esfuerzo en el desarrollo de Kafka está dirigida a permitir que los suscriptores lean exactamente los mensajes que les interesan, y en asegurarse de que el sistema distribuido sea escalable y fiable en multitud de condiciones diferentes. No fue concebido para transmitir datos específicamente para Hadoop, con lo que usarlo para leer y escribir datos en Hadoop es mucho más difícil de lo que es en Flume. Kafka es: Rápido Con una única ejecución, Kafka puede manejar cientos de megabytes de lecturas y escrituras por segundo desde miles de clientes. Escalable Kafka está diseñado para permitir que un solo grupo para servir como la columna vertebral de datos central para una gran organización. Puede ser elástica y se su ampliación es transparente independientemente de que el sistema esté activo o no. Los data streams se dividen y se extienden sobre un grupo de máquinas para que se tenga más capacidad que cualquier máquina individual y permitir clústeres coordinados de consumidores. Duradero: Los mensajes se conservan en el disco y se replican dentro del clúster para evitar la pérdida de datos. Cada broker puede manejar terabytes de mensajes sin impacto en el rendimiento. Distribuido: Kafka tiene un diseño cluster-centric moderno que ofrece una sólida durabilidad y garantías de tolerancia a fallos. En resumen: utiliza Flume si tienes fuentes de datos no relacionales, tales como archivos de registro, y deseas almacenarlos en Hadoop. Utiliza Kafka si necesitas un sistema de mensajería de la empresa altamente confiable y escalable para conectar muchos sistemas múltiples, uno de los cuales es Hadoop. 95 S wine_analytics Comparativa de Soluciones Big Data en Cloud El objetivo del documento es realizar una comparativa entre las soluciones Big Data que aportan tanto Amazon, Microsoft como Google BigData en Azure (HDInsight) Una de las razones del éxito de Hadoop es una simple cuestión económica. El procesamiento de conjuntos de datos de gran tamaño solía requerir equipos de alto rendimiento y hardware adicional especializado de precio elevado. Con Hadoop es posible realizar tareas de procesamiento confiable, escalable y distribuido en servidores estándar del sector, con capacidad para abordar petabytes de datos y sin que los presupuestos más reducidos supongan un problema. Hadoop también está diseñado para escalar de un único servidor a miles de máquinas, así como para detectar y controlar errores en la capa de aplicación para mayor confiabilidad. Información de todos los tipos de datos Según ciertas estimaciones, hasta un 80 % de los datos con los que las organizaciones trabajan hoy en día no vienen perfectamente clasificados en columnas y filas. Más bien se trata de una avalancha desordenada de correos electrónicos, fuentes de medios sociales, imágenes de satélites, señales de GPS, registros de servidor y otros archivos no relacionales sin estructurar. Hadoop puede administrar prácticamente cualquier archivo o formato (su otra gran ventaja), de manera que las organizaciones puedan plantear cuestiones que nunca creyeron posible. ¿Por qué usar Hadoop en la nube? Puede implementar Hadoop en un centro de datos tradicional en la oficina. Algunas empresas (incluida Microsoft) también ofrecen Hadoop como servicio en la nube. Una pregunta evidente 96 S wine_analytics sería: ¿por qué usar Hadoop en la nube? A continuación veremos por qué cada vez más organizaciones eligen esta opción. La nube ahorra tiempo y dinero El código abierto no significa que todo sea gratis. La implementación de Hadoop localmente requiere el uso de servidores, así como de expertos en Hadoop, para configurarlos, adaptarlos y mantenerlos. Un servicio en la nube permite poner en marcha un clúster de Hadoop en cuestión de minutos sin costo inicial alguno. La nube es flexible y escala con rapidez En la nube de Microsoft Azure solamente se paga por el almacenamiento y los procesos que se utilicen, cuando se utilicen. Puede arrancar un clúster de Hadoop, analizar los datos y cerrarlo una vez terminado para detener el contador. Velocidad gracias a la nube Cree un clúster de Hadoop en cuestión de minutos y agregue nodos a petición. La nube ofrece a las organizaciones un tiempo de amortización inmediato. HDInsight: Hadoop en la nube de Azure HDInsight de Microsoft Azure es un servicio basado 100 % en Apache Hadoop en la nube de Azure. Ofrece todas las ventajas de Hadoop, junto con la capacidad de integración con Excel, los clústeres de Hadoop locales y el ecosistema de software y servicios empresariales de Microsoft. Clientes que integran Hadoop en Azure Escalar con total flexibilidad a petición HDInsight es una distribución de Hadoop diseñada por la nube. Esto significa que HDInsight se ha diseñado para poder hacer frente a cualquier cantidad de datos, con la capacidad de escalar de 97 S wine_analytics terabytes a petabytes a petición. Puede arrancar un número de nodos cualquiera en cualquier momento. Solamente se cobra por los recursos de proceso y almacenamiento que realmente usa. Todos los datos: estructurados, semi-estructurados, no estructurados Dado que es 100% Apache Hadoop, HDInsight puede procesar datos no estructurados o semiestructurados desde secuencias de clics web, medios sociales, registros de servidor, dispositivos, sensores, etc. Esto permite analizar nuevos conjuntos de datos que descubren nuevas posibilidades de negocio para impulsar a su organización. Desarrollo en cualquier lenguaje HDInsight tiene extensiones de programación eficaces para lenguajes como C#, Java, .NET y más. Así, en Hadoop, podrá usar el lenguaje de programación de su elección para crear, configurar, enviar y supervisar trabajos de Hadoop. 98 S wine_analytics Sin hardware que comprar o mantener Con HDInsight, puede implementar Hadoop en la nube sin comprar nuevo hardware ni incurrir en otros costos iniciales. Además, la instalación y configuración se realizan de forma rápida. Azure se encarga de todo. Puede iniciar su primer clúster en minutos. Excel para visualizar los datos de Hadoop Dado que se integra con Excel, HDInsight le permite visualizar y analizar los datos de Hadoop de nuevas y convincentes formas en una herramienta conocida para sus usuarios finales. Desde Excel, los usuarios pueden seleccionar Azure HDInsight como origen de datos. Los clústeres de Hadoop locales conectados con la nube HDInsight también se integra con Hortonworks Data Platform, por lo que puede mover datos de Hadoop de un centro de datos de la oficina a la nube de Azure para escenarios de copia de seguridad, desarrollo y prueba y ampliación a la nube. Con Microsoft Analytics Platform System, puede incluso realizar consultas a sus clústeres de Hadoop locales y en la nube simultáneamente. 99 S wine_analytics Clústeres personalizados para ejecutar otros proyectos de Hadoop Este ecosistema de Hadoop es una cartera de proyectos de código abierto que evolucionan rápidamente y constantemente. Para proporcionar flexibilidad a los clientes, HDInsight tiene la opción de implementar proyectos de Hadoop arbitrarios a través de scripts personalizados. Esto incluye proyectos populares como Spark, R, Giraph y Solr. Incluye capacidades transaccionales distintas de SQL HDInsight también incluirá Apache HBase, una base de datos NoSQL columnar que se ejecuta sobre el Sistema de archivos distribuido de Hadoop (HDFS). Esto le permitirá llevar a cabo procesos transaccionales grandes (OLTP) de datos no relacionales que permiten el uso de casos como tener sitios web interactivos o escritura de datos de sensor en el almacenamiento de blobs de Azure. 100 wine_analytics S Procesado de transmisiones en tiempo real HDInsight incluye Apache Storm, una plataforma de análisis de transmisiones de código abierto que puede procesar eventos en tiempo real a gran escala. Esto le permite realizar el procesamiento de millones de eventos a medida que se generan permitiendo el uso de casos como Internet de las cosas (IoT) y obteniendo perspectivas a partir de sus dispositivos conectados o eventos desencadenados por web. Precios HDInsight arquitectura básica 8hxdía. Coste: 229$ al mes HDInsight arquitectura básica, 24hx7días, Coste: 709€ al mes. http://azure.microsoft.com/es-es/pricing/calculator/ BigData en Amazon AWS (EMR) Amazon Elastic MapReduce (Amazon EMR) es un servicio web que facilita el procesamiento rápido y rentable de grandes cantidades de datos. Amazon EMR utiliza Hadoop, un marco de código abierto, para distribuir los datos y el procesamiento en un clúster de tamaño variable de instancias de Amazon EC2. Amazon EMR se utiliza en diversas aplicaciones, como el análisis de registros, la indización web, el almacenamiento de datos, el aprendizaje de máquinas, el análisis financiero, la simulación científica y la bioinformática. Los clientes inician millones de clústeres de Amazon EMR cada año. Ventajas Facilidad de uso Puede lanzar un clúster de Amazon EMR en cuestión de minutos. No tiene que preocuparse por la provisión de nodos, la configuración del clúster, la configuración de Hadoop o el ajuste del clúster. Amazon EMR se encarga de estas tareas para que usted pueda centrarse en los análisis. 101 S wine_analytics Elasticidad Gracias a Amazon EMR, puede aprovisionar una instancia informática o cientos o miles de ellas para procesar datos en cualquier escala. Puede aumentar o reducir con facilidad el número de instancias y solo tendrá que pagar por lo que utilice. Bajo coste Puede lanzar un clúster de Hadoop de 10 nodos por tan solo 0,15 USD la hora. Como Amazon EMR ofrece soporte nativo para las instancias puntuales y reservadas de Amazon EC2, puede ahorrar entre el 50% y el 80% del coste de las instancias subyacentes. Fiabilidad Puede dedicar menos tiempo a ajustar y supervisar el clúster. Amazon EMR ha mejorado Hadoop para la nube, también supervisa el clúster, reintenta las tareas fallidas y sustituye automáticamente las instancias que tengan un rendimiento deficiente. Seguridad Amazon EMR configura automáticamente el firewall de Amazon EC2 que controla el acceso de red a las instancias. Podrá iniciar clústeres en Amazon Virtual Private Cloud (VPC), una red lógicamente aislada que define el usuario. Flexibilidad El usuario tiene el pleno control del clúster. Además, tendrá acceso raíz a todas las instancias, para que pueda instalar aplicaciones adicionales con facilidad y personalizar cada clúster. Amazon EMR también admite varias distribuciones y aplicaciones de Hadoop. Casos de uso Análisis clickstream Amazon EMR se puede utilizar para analizar datos clickstream para segmentar los usuarios y conocer sus preferencias. Los anunciantes también pueden analizar clickstreams y registros de impresión de publicidad para ofrecer anuncios más efectivos. 102 wine_analytics S Genómica Amazon EMR se puede utilizar para procesar grandes cantidades de datos genómicos y otros conjuntos de datos científicos de gran tamaño de forma rápida y eficiente. Los investigadores pueden acceder a los datos genómicos alojados de forma gratuita en AWS. Procesamiento de registros Amazon EMR se puede utilizar para procesar registros generados por aplicaciones web y móviles. Amazon EMR ayuda a los clientes a transformar petabytes de datos desestructurados o semiestructurados en perspectivas útiles sobre las aplicaciones o usuarios. Cómo utilizar Amazon EMR Para utilizar Amazon EMR, solo hay que hacer lo siguiente: Desarrolle su aplicación de procesamiento de datos. Puede utilizar Java, Hive (un idioma parecido a SQL), Pig (un lenguaje de procesado de datos), Cascading, Ruby, Perl, Python, R, PHP, C++ o Node.js. Amazon EMR ofrece códigos de muestra y tutoriales para que empiece a utilizarlo rápidamente. Cargue su aplicación y sus datos en Amazon S3. Si dispone de una gran cantidad de datos para la carga, puede que quiera utilizarAWS Import/Export (para cargar datos con dispositivos de almacenamiento físicos) o AWS Direct Connect (para establecer una conexión de red dedicada del centro de datos a AWS). Si lo prefiere, también puede escribir sus datos directamente en un clúster en ejecución. Configurar e inicializar el clúster. Con AWS Management Console, la interfaz de línea de comandos de EMR, los SDK o las API, especifique el número de instancias de EC2 que desea aprovisionar en su clúster, los tipos de instancias que desea utilizar (estándar, alta memoria, CPU alta, E/S alta, etc.), las aplicaciones que desea instalar (Hive, Pig, HBase, etc.) y la ubicación de las aplicaciones y los datos. Puede utilizar aplicaciones de arranque para instalar software adicional o cambiar la configuración predeterminada. (Opcional) Supervisar el clúster. Puede supervisar el estado y el progreso del clúster con Management Console, la interfaz de línea de comandos, SDK o API. EMR se integra con Amazon CloudWatch para supervisar/alarmar y es compatible con herramientas de supervisión conocidas como Ganglia. Puede agregar/eliminar capacidad del clúster en 103 wine_analytics S cualquier momento para gestionar más o menos datos. Para solucionar problemas, puede utilizar la interfaz gráfica de usuario de depuración de la consola. Recupere el resultado. Recupere el resultado de Amazon S3 o HDFS en el clúster. Visualice los datos con herramientas como Tableau y MicroStrategy. Amazon EMR finalizará automáticamente el clúster cuando se complete el procesado. De forma alternativa, puede mantener la ejecución del clúster e incluir más trabajo. Detalles del producto Amazon EMR Características Elasticidad Amazon EMR le permite aprovisionar de forma rápida y sencilla toda la capacidad que necesite, así como añadir o eliminar capacidad en cualquier momento. Es muy útil si cuenta con requisitos de procesado impredecibles o variables. Por ejemplo, si el grueso del procesado se produce por la noche, puede que necesite 100 instancias durante el día y 500 por la noche. De forma alternativa, puede que necesite una gran capacidad durante un breve período de tiempo. Con Amazon EMR, puede aprovisionar rápidamente cientos o miles de instancias y apagarlas cuando se complete el trabajo (para evitar pagar por una capacidad inactiva). Existen dos opciones principales para agregar o eliminar capacidad: Implementar varios clústeres: si necesita más capacidad, puede iniciar fácilmente un nuevo clúster y finalizarlo cuando deje de necesitarlo. No existe ningún límite en el número de clústeres que puede tener. Puede que quiera utilizar varios clústeres si tiene varios usuarios o aplicaciones. Por ejemplo, puede almacenar los datos de entrada en Amazon S3 e iniciar un clúster por cada aplicación que necesite procesar los datos. Se puede optimizar un clúster para la CPU, otro para el almacenamiento, etc. Cambiar el tamaño de un clúster en ejecución: con Amazon EMR es fácil cambiar el tamaño de un clúster en ejecución. Puede que quiera cambiar el tamaño de un clúster si está almacenando los 104 S wine_analytics datos en HDFS y desea agregar más potencia de procesado de forma temporal. Por ejemplo, algunos clientes agregan cientos de instancias a sus clústeres cuando se produce el procesado por lotes, y eliminan las instancias adicionales cuando se completa el procesado. Bajo coste Amazon EMR está diseñado para reducir el coste del procesado de grandes cantidades de datos. Algunas de las características que hacen que tenga un coste bajo son los precios bajos por horas, la integración puntual de Amazon EC2, la integración de instancias reservadas de Amazon EC2, la elasticidad y la integración de Amazon S3. Almacenes de datos flexibles Con Amazon EMR puede aprovechar varios almacenes de datos, incluidos Amazon S3, el Sistema de archivos distribuido Hadoop (HDFS) y Amazon DynamoDB. Amazon S3: Amazon S3 es el servicio de almacenamiento de gran duración, escalable, seguro, rápido y barato de Amazon. Amazon EMR ha realizado numerosas mejoras en Hadoop para que pueda procesar grandes cantidades de datos almacenados en Amazon S3 sin problemas. Al iniciar el clúster, Amazon EMR transfiere los datos de Amazon S3 a cada instancia del clúster y empieza a procesarlos inmediatamente. Una ventaja del almacenamiento de los datos en Amazon S3 y su procesado con Amazon EMR es que puede utilizar varios clústeres para procesar los mismos datos. Por ejemplo, puede tener un clúster de desarrollo de Hive optimizado para la memoria y la CPU y un clúster de producción de HBase optimizado para la E/S. Sistema de archivos distribuido Hadoop (HDFS): HDFS es el sistema de archivos de Hadoop. En Amazon EMR, HDFS utiliza el almacenamiento local efímero. En función del tipo de instancia, pueden ser discos giratorios o unidades de estado sólido. Cada instancia del clúster cuenta con un almacenamiento local efímero, pero usted decide qué instancias ejecutan HDFS. Amazon EMR 105 S wine_analytics denomina a las instancias que ejecutan HDFS "nodos centrales", mientras que las instancias que no ejecutan HDFS son "nodos de tarea". Amazon DynamoDB: Amazon DynamoDB es un servicio de base de datos NoSQL rápido y completamente gestionado. Amazon EMR cuenta con una integración directa con Amazon DynamoDB para que pueda procesar datos almacenados en Amazon DynamoDB de forma rápida y eficiente y transferir datos entre Amazon DynamoDB, Amazon S3 y HDFS en Amazon EMR. Otros almacenes de datos de AWS: los clientes de Amazon EMR también utilizan Amazon Relational Database Service (un servicio web que facilita el establecimiento, el funcionamiento y el escalado de bases de datos relacionales en la nube), Amazon Glacier (un servicio de almacenamiento con un coste extremadamente bajo que ofrece un almacenamiento seguro y duradero para las copias de seguridad y el archivado de los datos) y Amazon Redshift (un servicio de almacén de datos con escalado de petabyte, rápido y completamente gestionado). AWS Data Pipeline es un servicio web que ayuda a los clientes a procesar datos y a transferirlos de manera fiable entre diferentes servicios de almacenamiento e informática de AWS (como Amazon EMR), así como entre fuentes de datos locales en intervalos especificados. Herramientas de Hadoop EMR es compatible con herramientas de Hadoop potentes y probadas, como Hive, Pig, HBase e Impala. Hive es un almacén de datos y paquete de análisis de código abierto que se ejecuta por encima de Hadoop. Hive funciona gracias a Hive QL, un lenguaje basado en SQL que permite que los usuarios estructuren, resuman y consulten datos. Hive QL es más que el SQL estándar, ya que incluye una compatibilidad excelente con funciones map/reduce y tipos de datos complejos y ampliables definidos por el usuario, como JSON y Thrift. Esta capacidad permite procesar fuentes de datos complejas y desestructuradas, como documentos de texto y archivos de registro. Hive permite las extensiones de usuario a través de funciones definidas por el usuario escritas en Java. 106 S wine_analytics Amazon EMR ha efectuado numerosas mejoras en Hive, incluida la integración directa con Amazon DynamoDB y Amazon S3. Por ejemplo, con Amazon EMR puede cargar particiones de tabla automáticamente desde Amazon S3, puede escribir datos en tablas de Amazon S3 sin usar archivos temporales y puede acceder a recursos de Amazon S3, como scripts para operaciones map/reduce personalizadas y bibliotecas adicionales. Pig es un paquete de análisis de código abierto que se ejecuta por encima de Hadoop. Pig funciona gracias a Pig Latin, un lenguaje parecido a SQL que permite que los usuarios estructuren, resuman y consulten datos. Como sucede con las operaciones de estilo SQL, Pig Latin también incluye una compatibilidad excepcional para las funciones map/reduce y los tipos de datos complejos y ampliables definidos por el usuario. Esta capacidad permite procesar fuentes de datos complejas y desestructuradas, como documentos de texto y archivos de registro. Pig permite las extensiones de usuario a través de funciones definidas por el usuario escritas en Java. Amazon EMR ha efectuado numerosas mejoras en Pig, incluida la capacidad de utilizar varios sistemas de archivos (normalmente, Pig solo puede acceder a un solo sistema de archivos remoto), la capacidad de cargar scripts y JAR de clientes desde Amazon S3 (por ejemplo, “REGISTER s3:///my-bucket/piggybank.jar”) y funcionalidades adicionales para el procesado de cadenas y DateTime. HBase es una base de datos distribuida, no relacional y de código abierto modelada después de BigTable, de Google. Se desarrolló como parte del proyecto Hadoop de la Apache Software Foundation y se ejecuta sobre el sistema de archivos distribuido Hadoop (HDFS) para ofrecer capacidades estilo BigTable para Hadoop. HBase ofrece una forma eficiente y a prueba de fallos para almacenar grandes cantidades de datos dispersos con almacenamiento y compresión basada en columnas. Además, HBase ofrece una búsqueda rápida de datos, porque los datos se almacenan en la memoria, en lugar de en el disco. HBase se ha optimizado para las operaciones de escritura secuencial y es muy eficiente para las eliminaciones, actualizaciones e inserciones por lotes. HBase trabaja sin problemas con Hadoop al compartir su sistema de archivos y servir como entrada y salida directa para los trabajos de Hadoop. HBase también se integra con Apache Hive, lo que permite las consultas tipo SQL en tablas de HBase, las uniones con tablas basadas en Hive y la compatibilidad con Java Database Connectivity (JDBC). Con Amazon EMR puede hacer 107 S wine_analytics copias de seguridad de HBase en Amazon S3 (completas o incrementales, manuales o automáticas) y realizar restauraciones a partir de copias de seguridad creadas anteriormente. Impala es una herramienta de código abierto del ecosistema Hadoop para la generación de consultas interactivas y ad hoc mediante una sintaxis SQL. En lugar de utilizar MapReduce, aprovecha un motor de procesamiento masivo en paralelo (MPP) similar al que se encuentra en los sistemas de gestión de bases de datos relacionados (RDBMS) tradicionales. Con esta arquitectura puede consultar sus datos en tablas HDFS o HBase con gran rapidez y aprovechar la capacidad de Hadoop de procesar distintos tipos de datos y proporcionar esquemas durante la ejecución. Esto conduce a Impala a análisis interactivos y de latencia baja. También, esta aplicación admite funciones definidas por el usuario en Java y C++, y puede conectar herramientas de inteligencia empresarial mediante controladores ODBC y JDBC. Impala utiliza el metaalmacén de Hive para almacenar información sobre los datos de entrada, incluyendo los nombres de particiones y tipos de datos. Otros: Amazon EMR también es compatible con una gran variedad de aplicaciones y herramientas conocidas, como R, Mahout (machine learning), Ganglia (supervisión), Spark (MapReduce en memoria), Shark (almacenamiento de datos en Spark), Accumulo (base de datos NoSQL segura), Sqoop (conector de bases de datos relacionales), HCatalog (gestión de almacenamiento y tablas) y más. Características adicionales Uso de la distribución de MapR: MapR satisface las necesidades de Hadoop con una plataforma empresarial probada que admite un amplio abanico de usos productivos de vital importancia y en tiempo real. MapR ofrece una fiabilidad sin precedentes, facilidad de uso y una velocidad récord en todo el mundo para Hadoop, NoSQL, bases de datos y aplicaciones de transmisión en una plataforma unificada de grandes datos. Ajuste del clúster: puede elegir qué tipos de instancias EC2 desea aprovisionar en su clúster (estándar, alta memoria, CPU alta, E/S alta, etc.) en función de los requisitos de su aplicación. Dispone de acceso raíz a todas las instancias y puede personalizar por completo el clúster para que se adapte a sus requisitos. 108 S wine_analytics Depuración de aplicaciones: cuando habilita la depuración en un clúster, Amazon EMR archiva los archivos de registro en Amazon S3 y luego los indexa. Luego puede utilizar una interfaz gráfica para navegar por los registros de forma intuitiva. Supervisión del clúster: puede usar Amazon CloudWatch para supervisar 23 métricas personalizadas de Amazon EMR, como el número medio de tareas map/reduce en ejecución. También puede establecer alarmas para esas métricas. Programación de flujos de trabajo recurrentes: puede utilizar AWS Data Pipeline para programar flujos de trabajo recurrentes que involucren a Amazon EMR. AWS Data Pipeline es un servicio web pensado para ayudarle a procesar datos y a transferirlos, de manera fiable y a intervalos definidos, entre diferentes servicios de almacenamiento e informática de AWS, así como entre fuentes de datos locales. Cascading: Cascading es una biblioteca de Java de código abierto que ofrece una API de consulta, un planificador de consultas y un programador de trabajos para crear y ejecutar aplicaciones de Hadoop MapReduce. Las aplicaciones desarrolladas con Cascading se compilan y empaquetan en archivos JAR estándar compatibles con Hadoop, de forma parecida a otras aplicaciones nativas de Hadoop. Control del acceso de red al clúster: se puede iniciar el clúster en Amazon Virtual Private Cloud (VPC) que es una sección lógicamente aislada de la nube de AWS. Puede controlar todos los aspectos del entorno de red virtual, incluida la selección de su propio rango de direcciones IP, la creación de subredes y la configuración de tablas de enrutamiento y puertas de enlace de red. Gestión de usuarios y permisos: puede utilizar las herramientas de AWS Identity & Access Management (IAM), como las funciones y los usuarios de IAM, para controlar el acceso y los permisos. Por ejemplo, puede otorgar permisos de lectura a unos usuarios, pero no de escritura, para sus clústeres. Instalación de software adicional: se pueden utilizar acciones de arranque para instalar software adicional y para cambiar la configuración de las aplicaciones del clúster. Las acciones de arranque son scripts que se ejecutan en los nodos del clúster cuando Amazon EMR inicia el clúster. Se ejecutan antes de que se inicie Hadoop y antes de que el nodo empiece a procesar datos. Puede 109 wine_analytics S escribir acciones de arranque personalizadas o utilizar las acciones de arranque predefinidas que ofrece Amazon EMR. . Copiado eficiente de datos: se pueden mover rápidamente grandes cantidades de datos desde Amazon S3 a HDFS, desde HDFS a Amazon S3 y entre contenedores de Amazon S3 con S3DistCp de Amazon EMR, una extensión de la herramienta de código abierto Distcp que utiliza MapReduce para mover grandes cantidades de datos de forma eficiente. Hadoop Streaming: Hadoop Streaming es una utilizad de Hadoop que permite desarrollar ejecutables de MapReduce en lenguajes diferentes a Java. Streaming se implementa en forma de un archivo JAR. JAR personalizado: permite escribir un programa de Java, compilarlo para la versión de Hadoop que se quiera utilizar y cargarlo en Amazon S3. Luego se podrán enviar trabajos de Hadoop al clúster con la interfaz de Hadoop JobClient. Herramientas de terceros Se puede utilizar EMR con una gran variedad de herramientas de software de terceros, como Tableau, Microstrategy, SAP, Informatica entre otros. Precios de Amazon EMR Los precios de Amazon EMR son simples y predecibles; se paga una tarifa por horas por cada hora de instancia que se utilice (por ejemplo, un clúster de 10 nodos en ejecución durante 10 horas cuesta lo mismo que un clúster de 100 nodos que se ejecute durante 1 hora). La tarifa por horas depende del tipo de instancia que se utilice (por ejemplo, estándar, CPU alta, memoria alta, almacenamiento alto, etcétera). Las tarifas por horas oscilan entre 0,011 USD/hora y 0,27 USD/hora (de 94 USD/año a 2367 USD/año). El precio de Amazon EMR se añade al precio de Amazon EC2 (el precio de los servidores subyacentes). Existen diferentes opciones de precios de Amazon EC2 para elegir: bajo demanda (se ilustra a continuación), instancias reservadas durante 1 o 3 años, e instancias puntuales. EMR arquitectura básica, mínimo con uso 8hxdía. Coste: 341$ al mes http://calculator.s3.amazonaws.com/index.html#r=DUB&s=EC2&key= calc-44D76183-1A83-4C5C-A29E-FE9699530C2A EMR arquitectura básica, con las mismas instancias que el anterior pero 24hx7días. Coste: 753$ al mes 110 wine_analytics S http://calculator.s3.amazonaws.com/index.html#r=DUB&s=EC2&key= calc-98378EEE-86FC-41E5-A5CD-0565E62793F3 BigData en Google (Google Cloud Storage) Con el conector de Google Cloud Storage para Hadoop, puede realizar trabajos de MapReduce directamente sobre los datos en Google Cloud Storage, sin copiar al disco ejecutando HDFS. El conector simplifica el despliegue de Hadoop, reduce costes y ofrece un rendimiento comparable al HDFS, a la vez que aumenta la fiabilidad al eliminar el punto único de fallo del nodo nombre. Fundamentos de Hadoop Jobs Un Job en Hadoop es un proceso por lotes que se ejecuta en un clúster Hadoop. Un trabajo podría transformar los datos, ejecutar MapReduce, o realizar cálculos paralelos. MapReduce MapReduce es un paradigma de computación distribuida. El procesamiento consta de una etapa de Map, realizado subconjuntos de los datos de entrada; y Reduce, que combina la salida fusionada de los datos. MapReduce se puede ejecutar en datos estructurados o no estructurados, y se ha convertido en una de las maneras más populares para analizar conjuntos de datos masivos en paralelo. 111 wine_analytics S Herramientas Hadoop Conector de Google Cloud Conector Storage para Hadoop Información general El conector de Google Cloud Storage para Hadoop permite ejecutar trabajos de MapReduce directamente en los datos de Google Cloud Storage, y ofrece una serie de ventajas con respecto a la elección de Hadoop Distributed File System (HDFS) como sistema de archivos por defecto. Ventajas de usar el conector La primera vez que se crea un cluster de Hadoop, se debe elegir entre dos sistemas de archivos por defecto. La elección de Google Cloud Storage junto al conector suministrado tiene varios beneficios. Acceso directo de datos. Almacena los datos en Google Cloud Storage y acceda a ellos directamente, sin necesidad de transferirlo a HDFS primero. Compatibilidad HDFS. Se pueden almacenar datos en HDFS, además de Google Cloud Storage, y acceder a ellos con el conector utilizando una ruta de archivo diferente. Interoperabilidad. Almacenamiento de datos en Google Cloud Storage permite la interoperabilidad sin fisuras entre Hadoop y otros servicios de Google. Acceso a los datos. Al apagar un cluster Hadoop, todavía se tiene acceso a los datos en Google Cloud Storage, a diferencia de HDFS. Alta disponibilidad de datos. Los datos almacenados en Google Cloud Storage son altamente disponibles y globalmente replicables sin un impacto en el rendimiento. No sobrecarga de administración de almacenamiento. A diferencia de HDFS, Google Cloud Storage no requiere mantenimiento de rutinas, tales como la comprobación del sistema de archivos, actualizar o hacer retroceder a una versión anterior del sistema de archivos, etc. Encendido rápido. 112 wine_analytics S Con Google Cloud Storage, se comienza a trabajar tan pronto como se levantan los nodos de trabajo, dando lugar a importantes ahorros de costes en el tiempo. BigQuery Connector para Hadoop El conector BigQuery para Hadoop es una biblioteca Java que permite procesar en la nube datos de BigQuery, usando las versiones abstractas de las clases Hadoop InputFormat y OutputFormat. Datastore Connector para Hadoop El Datastore Connector de Hadoop es una biblioteca Java que permite procesar en la nube datos de Hadoop, usando las versiones abstractas de las clases Hadoop InputFormat y OutputFormat. Precios Google Cloud Storage (GCS) arquitectura básica, mínimo con uso 8hxdía. Coste: 260€ al mes GCS arquitectura básica, con las mismas instancias que el anterior pero 24hx7días. Coste: 420€ al mes Configuration Instances Virtual Cores Memory GCEU 2 1 (GB ) Local Lowest 3 Typical 4 Full Disk price (USD) price (USD) price 5 (USD) (GB) per hour with per hour per hour full sustained without usage sustained use Task(n1-standard-1) 1 1 3.75 2.75 0 $0.045 $0.049 $0.063 Core (n1-standard- 2 2 7.50 5.50 0 $0.089 $0.097 $0.126 1 4 26 11 0 $0.208 $0226 $0.296 2) Master(n1highmem-4) Detalles: https://cloud.google.com/products/calculator/#id=ebfe9f18-1e5b-4e29-9ae6- dd1faa9e61e8 113 wine_analytics S Referencias (de los anexos tecnológicos) http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis/ http://www.datastax.com/dev/blog/8761 http://km.nivaria.com/blog/interesante-comparativa-de-dbms-nosql http://www.webmining.cl/2012/06/como-elegir-una-base-de-datos-para-su-empresa/ http://rafinguer.blogspot.com.es/2010/11/comparativa-mongodb-con-otras-bases-de.html http://todobi.blogspot.com.es/2010/12/comparativa-de-nosql-databases.html http://www.genbetadev.com/bases-de-datos/bases-de-datos-nosql-elige-la-opcion-quemejor-se-adapte-a-tus-necesidades https://www.tumblr.com/search/NoSQL+comparison http://www.datastax.com/dev/blog/amazon-dynamodb http://109.239.60.130/compare/hbase/vs/apache-cassandra https://news.ycombinator.com/item?id=2052852 http://www.academia.edu/5352898/NoSQL_Database_New_Era_of_Databases_for_Big_Dat a_Analytics_-_Classification_Characteristics_and_Comparison http://www.bigdata-madesimple.com/a-deep-dive-into-nosql-a-complete-list-of-nosqldatabases/ http://www.indeed.com/jobanalytics/jobtrends?q=MongoDB%2C+Redis%2C+Cassandra%2C +Riak%2C+CouchDB&l= http://clean-clouds.com/2012/01/amazon-dynamodb-1st-steps-of-nosql-in-amazon-publiccloud/ http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedBefor eYouBegin.html http://eng.orcadigital.com/tag/redis/ http://whynosql.com/cassandra-vs-hbase/ http://www.bigdata-careers.com/?page_id=99 http://www.cs.rit.edu/~rsn5770/Narde_Project_Report.pdf https://2015.foss4g-na.org/session/geo-nosql-databases http://neo4j.com/ http://es.slideshare.net/EdurekaIN/no-sql-databases-35591065 http://classpattern.com/mongodb-hadoop.html#.VLT5qCuG_y4 http://hbase.apache.org/ 114 wine_analytics S https://prezi.com/xaitejgkpqsv/introduccion-a-nosql-graph-database-neo4j/ http://freepdfhosting.com/d2b1f50889.pdf http://www.genbetadev.com/bases-de-datos/mongodb-que-es-como-funciona-y-cuandopodemos-usarlo-o-no http://aws.amazon.com/ http://azure.microsoft.com/ https://cloud.google.com/ 115 Proyecto wine_analytics wine_analytics RESUMEN EJECUTIVO Begoña Boloqui José Miguel Espinosa Mónica Manrique Carlos Valencia Proyecto wine_analytics Proyecto wine_analytics Motivación La industria de bebidas y alimentación es, junto al turismo, el primer sector industrial en España. La industria vinícola representa el 14% de toda la industria alimentaria y supone el 1% del PIB del país. El vino es uno de los productos con más éxito en el exterior y un referente como destino del turismo gastronómico, lo que le convierte un sector de extraordinaria relevancia. Wine_analytics pretende aprovechar las capacidades analíticas actuales basadas en tecnología Big Data para impulsar el crecimiento de esta línea de negocio. El objetivo del proyecto es comprobar si la utilización estas herramientas permitirá mejorar la eficiencia de los procesos, así como reducir la incertidumbre asociada a la toma de decisiones en una industria con fuerte dependencia de factores de difícil o limitado control. El problema y la oportunidad En la actualidad nuestro grupo es líder absoluto en los mercados de vinos y zumos en España, y una referencia a escala mundial en el mundo del vino. Hemos seleccionado dentro de la división de vinos a la bodega Abadía de Haza, de la Ribera del Duero, que utiliza uva autóctona de la variedad Tempranillo. Esta bodega es la tercera del grupo por volumen de producción e ingresos. Cuenta con varios tintos de diverso envejecimiento (roble, crianza, reserva y selección), posicionados en los tres canales de venta de la bodega: alimentación moderna, horeca (hoteles, restaurantes y cafeterías), exportación. Siendo la calidad de los vinos de las mejores desde un punto de vista técnico, Abadía de Haza se enfrenta a los siguientes problemas de negocio a los que pretendemos dar solución: incrementar la producción de la uva de máxima calidad, la cual se sitúa actualmente en un 10%. Esta uva es la que le confiere a los vinos de Abadía de Haza una marca distintiva, y sin embargo esta calidad de sus caldos no se ha traducido en una posición de liderazgo en el mercado. El objetivo de este proyecto es alcanzar una producción del 12% de este tipo de uva; la consolidación de sus vinos Premium en restaurantes; 1 Proyecto wine_analytics la mayor penetración de su gama de vinos en mercados americanos (Estados Unidos, México y Brasil), especialmente los de mayor envejecimiento (crianza, reserva y selección). Con el objetivo de dar solución a estos problemas, la dirección del grupo exige controlar mejor la producción y mejorar algunos procesos. Así, se contempla la posibilidad de abordar su primer proyecto de Big Data basado en una interfaz que envía los datos desde su origen a un entorno analítico que posibilite la explotación de esta información. El equipo El equipo seleccionado por el comité de dirección para gestionar este proyecto piloto está liderado por Carlos Valencia, Director Financiero del Grupo apoyándose en los conocimientos técnicos de: José Miguel Espinosa: Corporate IT Manager del Grupo y especialista en Inteligencia de Negocio Begoña Boloqui: Analista Senior de Datos y especialista en modelización del área de vinos Mónica Manrique: Analista Senior de Datos y de Investigación de Mercados de la división de Zumos Receptores de la solución En una primera fase del proyecto piloto nuestro cliente interno va a ser Abadía de Haza. En una segunda fase pretendemos dirigirnos al resto de bodegas de la división de vinos y a otras divisiones del grupo, tales como aceites, zumos, bebidas vegetales, etc. En función de los resultados, el objetivo en un futuro sería ofrecerlo a empresas o grupos externos del sector agroalimentario. Situación actual y competencia La empresa tiene todavía un largo camino por recorrer en el uso de estas soluciones. Un uso adecuado de las tecnologías de la información puede contribuir a mejorar considerablemente tanto productos como procesos y optimizar la toma de decisiones. El coste de recoger, almacenar, procesar y explotar grandes cantidades de datos, incluso en tiempo real, ha bajado drásticamente. En este sentido el Big Data significa una gran revolución. En todo el mundo están surgiendo soluciones de monitorización del estado del cultivo con redes de sensores, herramientas de análisis de imágenes para estudiar el estado de los cultivos, herramientas 2 Proyecto wine_analytics de soporte a la toma de decisiones, plataformas de escucha de redes sociales centradas específicamente en el sector agroalimentario, entre otras. Igualmente existe un número limitado de empresas que proporcionan servicio de analítica técnica a nivel de laboratorio o consultoría de servicios para sectores agrícolas. Mientras que estas soluciones se enfocan en propuestas de valor muy específicas, especialmente de tipo System Lock-in y Product Leadership1, la propuesta de valor de wine_analytics queda enmarcada dentro de la tipología Complete Customer Solutions frente a sus competidores potenciales más directos. Esta propuesta aúna varios servicios a lo largo de toda la cadena de producción, desde el mismo campo hasta el análisis de resultados de campañas de marketing, incluyendo datos de redes sociales. Nuestra propuesta Proponemos una solución complementaria al Business Intelligence ya existente en Pérez Cristóbal, y la implantación de un nuevo sistema analítico de precisión que proporciona información clave para la gestión y control tanto de los procesos en el campo como del resultado final. Los valores de esta propuesta son múltiples, ya que permite optimizar la producción de la uva de máxima calidad mediante actividades como la monitorización y el seguimiento de las vides y de las condiciones medioambientales. El nuevo sistema analítico se convertiría en un activo en sí mismo para la bodega. La tipología de los datos que wine_analytics recogerá, cumple con dos de las características habitualmente asociadas a proyectos Big Data: variedad: se trata de datos estructurados, semi-estructurados y no-estructurados; velocidad: necesaria para un tratamiento en tiempo real de determinadas mediciones críticas, desde la fase de maduración de la uva hasta la elaboración de los caldos. En cuanto al volumen, éste no es muy relevante en esta primera fase. Sin embargo con posterioridad sí se convertiría en una variable a tener en cuenta. 1 Las propuestas de valor planteadas por Robert S. Kaplan and David P. Norton son: 1. Low total cost, 2. Product leadership, 3. Complete customer solution, 4. System lock-in. 3 Proyecto wine_analytics Descripción de la solución Para el caso de los trabajos en el campo han aparecido en los últimos años tecnologías vinculadas a la ingeniería de datos. Estas permiten mayor eficiencia que los métodos tradicionales en la recogida y el tratamiento de esta información en tiempo y forma para la toma de decisiones. El propósito final se basa en hacer agricultura de precisión cuyo crecimiento se ha impulsado a partir de avances tecnológicos tales como sensores remotos, sistemas de información geográfica (GIS), etc. La idea fundamental de la solución descansa en la ingesta de datos de diferentes fuentes, siendo los más determinantes las mediciones agro y micro climáticas que realizará un sistema de sensorización. Se utilizarán también predicciones y mediciones meteorológicas, registros de labores, datos epidemiológicos y consumos. Estos datos mejoran la toma de decisiones en cuanto a la necesidad de regadío o momento de recolecta, reduciendo el consumo de agua, pesticidas y fertilizantes, y minimizando tanto la huella de carbono como el impacto de pesticidas en los productos agrícolas. Wine_analytics también obtiene información a través de las Redes Sociales, de las campañas de marketing digital que se van a poner en marcha como parte de la estrategia del grupo así como de los resultados de comercio electrónico y del Business Intelligence corporativo. Prueba de concepto Con el fin de comprobar que nuestra solución es viable se llevó a cabo una prueba de concepto con fecha 20 de diciembre de 2014 en las bodegas y viñedos de Abadía de Acón. La prueba de concepto incluyó una reunión in-situ con los directores técnico y comercial para conocer en detalle el proceso de elaboración de sus vinos. En esta prueba se determinaron los parámetros que definen la uva de máxima calidad y se identificaron una serie de factores que potencialmente podrían explicar las variaciones de dichos parámetros. Los técnicos de la bodega señalaron al clima como principal aspecto a analizar. De esta manera, se cruzaron mediciones de los parámetros de calidad de uva para una muestra periódica representativa del viñedo con diferentes variables climáticas, con el fin de evaluar el impacto de las mismas. 4 Proyecto wine_analytics De acuerdo con los primeros resultados obtenidos se concluyó que nuestro proyecto podía ser implantado para cumplir los siguientes objetivos: determinación precisa de la fecha óptima para vendimiar (en cada parcela); mejor planificación de la producción, anticipando necesidades fitosanitarias e hídricas en los viñedos en función de la variabilidad climática y optimizando fechas para su aplicación. Después de conocer cómo este tipo de proyectos puede contribuir significativamente a resolver sus problemas y posicionar mejor sus vinos, el equipo de Abadía de Acón se mostró muy interesado en implantar la solución wine_analytics en su bodega. Durante los últimos meses hemos mantenido el contacto con ellos y nos han provisto de información muy valiosa para el proyecto, tanto técnica enológica como financiera. De la misma forma, a nivel tecnológico se ha desplegado un laboratorio en donde hemos podido probar el stack de tecnologías que soporta toda la solución propuesta. Así, se han descartado alternativas que fueron apareciendo en nuestro horizonte mientras se diseñaba la solución, de modo que el resultado obtenido es el más apropiado para este caso de uso. Viabilidad La prueba en Abadía de Acón fue un primer paso para analizar la viabilidad de nuestro proyecto. Algunas de las conclusiones extraídas de este análisis: el modelo tecnológico es escalable; existen fuertes economías de escala, de modo que conforme mayor es la cifra de ventas, mayor será el retorno de wine_analytics; una aplicación exitosa de nuestro proyecto precisa de una masa crítica de ventas, valorada en aproximadamente unos 600,000€; existe mucha demanda para este tipo de soluciones y muy poca oferta. Hemos enmarcado este proyecto en un escenario a cinco años a partir de la vendimia 2015. Este plazo se ha establecido en base al largo ciclo de operaciones. En el caso de Abadía de Haza Reserva y Selección el tiempo mínimo de envejecimiento en barrica y reducción en botella son 12 meses para cada fase, por lo que son necesarios un mínimo de 24 meses solamente de elaboración técnica. Durante ese período se trabajará con los datos disponibles en cada momento para ir afinando los modelos analíticos, y éstos se aplicarán para mejorar la calidad de los vinos más jóvenes. Estos 5 Proyecto wine_analytics últimos con un ciclo menor, son los que contribuirán a que equilibrar la cuenta de resultados de nuestra bodega. Es importante destacar que debido al largo tiempo de maduración que requiere el producto final, la obtención de resultados no se produce de forma inmediata. Se precisa un período mínimo de dos años (período de maduración del vino más joven) para comenzar a obtener los frutos de esta inversión. La analítica y la anticipación son actividades clave en la solución propuesta, ya que son los instrumentos principales de control de la producción y de la calidad. En 2019 también contaremos con datos históricos adicionales de la sensórica en viñedos, necesarios para elaborar modelos predictivos mucho más precisos que permitirán mejorar la calidad de toda la gama de vinos de Abadía de Haza. La situación de partida para 2015 sería la de una bodega con márgenes reducidos y baja eficiencia. El plan estratégico de la bodega busca lograr una mejora en la producción de uva de máxima calidad, pasando de un 10% sobre el total de uva producida, hasta un conservador 12%. Este escenario se plantea como alcanzable con los medios actuales y la implantación de wine_analytics. Superar esta cifra y alcanzar un 14% de uva de máxima calidad, e incluso hasta un 15%, se considera factible, dado que se trata de un objetivo muy conservador. Considerando el largo ciclo de explotación, el impacto en la cuenta de resultados será negativo el primer año (2015) igualando la situación de partida el ejercicio siguiente (2016), e iniciando una fase de “despegue” a partir del año siguiente (2017), una vez que empiezan a venderse los productos Reserva y Selección. Por tanto no es sino hasta el tercer año cuando empiezan a percibirse los resultados del proyecto y la consecución de sus objetivos en términos de beneficio. De esta manera, mientras que en 2014 el beneficio ha sido de 26,000€ (2.75% sobre la cifra de ventas), en el 2019 pasaremos a tener un incremento en este beneficio de aproximadamente 350%, hasta llegar a los 116,500€ que supone un 8.91% sobre las ventas. En términos económicos la inversión de wine_analytics ronda los 62,000€, con unos costes operativos asociados del proyecto de aproximadamente 140,000€ anuales. El impacto de los costes por la implantación del nuevo sistema tecnológico no sería fuerte en comparación con la mejora en ventas, dado que se utilizará software Open Source y SaaS (Software as a Service) para minimizar 6 Proyecto wine_analytics estos costes operacionales. Este bajo impacto de costes tecnológicos permite una sustancial mejora de márgenes EBIT en 2017 dada la baja inversión requerida. Con estas cifras y la mejora de ingresos explicada anteriormente, se logrará un ROI de 10.41% y una TIR de proyecto de 10.97%. La TIR de accionista será infinita considerando que no existe financiación adicional de accionista asociada al proyecto. Mejoras Como primera mejora y considerando la escalabilidad de la solución, ésta se puede aplicar a otras áreas de negocio del grupo, con un coste marginal cercano a cero. Esto supone que otras divisiones dentro del Pérez Cristóbal, como bebidas vegetales, frutas o café, se verán beneficiadas de esta solución en un plazo inmediato (ya que en estos casos el ciclo de explotación es muy corto) con una mínima inversión. Como mejoras subsiguientes se contemplan dos escenarios y no excluyentes: a nivel de bodega: una mayor implantación de sensórica, pasando del mero control electromecánico a la gestión automática de los datos (ingeniería de datos). Esta permitirá tener un control real y exhaustivo de la cadena de producción basada en datos reales, medibles y medidos, aplicando la analítica avanzada; a nivel logístico: se buscará la integración de datos de geolocalización en la distribución, junto con los datos del BI corporativo. Esto permitirá identificar los puntos críticos para optimizar la logística de distribución del producto a los clientes finales; a nivel de solución wine_analytics: puede venderse como un activo en sí mismo a otras bodegas dentro o fuera del grupo Pérez Cristóbal. Conclusiones Wine_analytics se presenta como una oportunidad para un proyecto redondo. El incremento del beneficio triplica el valor porcentual y cuadruplica la cifra sobre los números netos en el tercer año, a pesar del retraso en obtención de resultados debido al largo ciclo de operaciones propio del negocio. La solución tecnológica propuesta es rentable, elegante, escalable y robusta. 7 Proyecto wine_analytics Finalmente es fundamental destacar las fases de mejora y expansión de esta solución, tanto dentro como fuera del grupo, que permitirían extrapolar las ventajas del proyecto con costes operativos incrementales casi nulos. Nuestra recomendación como equipo de proyecto después de realizar la prueba de concepto, tanto a nivel de campo como tecnológica y financieramente, es por tanto: Go. 8
© Copyright 2024 ExpyDoc