Tag: big data

python que es para que sirve

Qué es Python

Se trata de un lenguaje de programación creado en 1991 por Guindo Van Rossum (1956, Holanda). Python es una opción interesante para realizar todo tipo de programas que se ejecuten en cualquier máquina. Está orientado a objetos y preparado para realizar cualquier tipo de programa, con este lenguaje podemos desarrollar software para app científicas, para comunicaciones de red, para app de escritorio con interfaz gráfica de usuario (GUI), para crear videojuegos, para smartphones, para inteligencia artificial, para automatización de tareas y por supuesto, para programación web.

Python es uno de los lenguajes de programación más utilizados, encargado de asegurarse de que la sintaxis haga posible que el código sea legible. Está considerado un lenguaje multiparadigma, al poder ser enfocado a varios estilos, y posee la ventaja de ser de código abierto, lo que permite que cualquiera pueda acceder a él. Desde que en 1991 se publicó el código, han ido evolucionando sus características, las cuales van siendo planteadas desde su filosofía de transparencia y legibilidad:

  • Python puede ser fácil de aprender si eres programador o si tienes experiencia con otros lenguajes programación.
  • Friendly & fácil de aprender. La comunidad organiza conferencias y reuniones, colabora en el código entre otras actividades.
  • Aplicaciones. El Índice de paquetes de Python (PyPI) alberga miles de módulos de terceros para Python. Tanto la biblioteca estándar de Python como los módulos aportados por la comunidad permiten infinitas posibilidades.
  • Open Source. Python se desarrolla bajo una licencia de código abierto aprobada por OSI, por lo que se puede usar y distribuir libremente, incluso para uso comercial. La licencia de Python es administrada por Python Software Foundation.

Para qué sirve

Uno de los principales objetivos del uso de Python es conseguir evitar complicaciones y ahorrar tiempo. Además, es muy útil para trabajar con grandes volúmenes de datos, ya que nos favorece los procesos de extracción y procesamiento de estos. Por este motivo, cuando se habla de Big Data también suele mencionarse Python. Algunos de los usos más comunes para los que sirve Python son:

  • Realizar cálculos científicos y de ingeniería.
  • Desarrollo web.
  • Programación de videojuegos.
  • Ejecutar programas gráficos.
  • Creación de efectos especiales.

Características y ventajas que ofrece Python:

  1. Sistema multiplataforma. No fuerza a los programadores a aprender un estilo especial sino que permite poder implementar varios estilos de programación enfocados a distintos aspectos. Entre dichos estilos podemos encontrar: programación imperativa, programación orientada a objetos y programación funcional.
  2. Orientado a objetos. Una de las características de un lenguaje de programación orientado a objetos es la capacidad de permitir a un programador crear nuevas clases que modelen los datos necesarios para resolver un problema. Con Python, nos encontramos ante un paradigma que propone modelar todo en función a clases y a objetos. Esto nos ofrece un uso de conceptos de cohesión, polimorfismo, abstracción y mucho más.
  3. Código abierto y libre. Posee una licencia de código abierto denominada Python Software Foundation Licence.  Toda la información relativa a este lenguaje de programación es libre por lo que, como hemos mencionado anteriormente, cualquier persona puede acceder a él.
  4. Frameworks. Python cuenta con frameworks de gran calibre para auxiliar el desarrollo web, el desarrollo de juegos o algoritmos avanzados.  Son estructuras o espacios de trabajo en base a las cuales se pueden organizar y desarrollar los softwares. Python posee algunos de los más poderosos (como son por ejemplo Django, Flask, Pyramid y Web2py), destacando todos ellos por su gran utilidad, puesto que facilitan en gran medida trabajo de los desarrolladores.
  5. Tipado dinámico. En Python, una misma variable puede tomar valores de distinto tipo en distintos momentos y en cualquier lugar de su código fuente.
  6. Calidad en la sintaxis. Esta es una de las ventajas de Python.  Este lenguaje de programación nos ofrece una sintaxis clara y limpia que facilita su aprendizaje y enseñanza. Se caracteriza por sustituir las delimitaciones y elementos de alto nivel por sangrías y tokens, componentes lexicográficos elementales que facilitan la escritura y lectura del código. También, otra de las funciones es la de reducir el uso de caracteres y escribir un formato que testee una secuencia determinada.

¿Quieres aprender Pyhton?

En la web se pueden encontrar diversos sites en los que se ofrece información y tutoriales detallados para aprender Python desde cero. Asimismo, el sitio pyhton.org cuenta con una guía para principiantes

En múltiples ocasiones hemos comentado que nos encontramos en un entorno empresarial en el que cada día se generan alrededor de 3 trillones de bytes de información. Esta gran cantidad de volumen de información ha crecido debido, en parte, a Internet y al continuo aumento tecnológico en las comunicaciones y recogida de datos. Tal cantidad de datos se generan y producen al día que se ha conseguido que las organizaciones puedan  analizar, descubrir y verificar esta enorme cantidad de información a través de tecnologías específicas para ello.

visualizacion de datos netopinion

Todo esto hace que nos lleguen cantidades ingentes de información desde múltiples fuentes y lo que sucede es que, en muchas ocasiones, no se dispone del tiempo suficiente para su correcta interpretación. En este punto entra en juego el ámbito de la visualización de grandes datos cuyo objetivo principal es mostrar, a través de gráficos y de forma sencilla, medible y comprensible,  la información recopilada en el análisis y modelización de los mismo. Aunque los gráficos llevan décadas siendo utilizados en el ámbito empresarial, las tecnologías de visualización de datos han evolucionado según las necesidades del nuevo paradigma empresarial en la que la analítica empresarial y sistemas de big data proliferan.

Por este motivo, exponemos en este post aquellos aspectos más relevantes a tener en cuenta para sacar el máximo provecho a la visualización de datos en nuestros proyectos profesionales:

1| Qué es lo que vamos a contar. Un error común a la hora de visualizar la información es intentar abarcar demasiado. Debemos saber qué queremos contar y ser precisos en la información que vamos a mostrar en la visualización.

2| A quién va dirigido (público objetivo o target). Debemos tener en cuenta qué tipo de público va a trabajar con los datos a mostrar en la visualización.  Pensar quién es el usuario que va a interpretar los gráficos (si es un especialista de datos, un “marketero” o un usuario sin especialización…) y en base a esto, decidir qué tipo de datos podemos mostrar para que el target cuando lo visualice, lo comprenda.

3| Cómo vamos a contarlo. Aquí entra el juego otro aspecto a tener en cuenta: el storytelling con datos, una nueva forma de presentar y analizar los datos. Os recomendamos el libro de Cole Nussbaumer, “Storytelling con datos“, en el que ofrece una guía práctica para utilizar los conceptos de storytelling -contar una historia con un comienzo, nudo y desenlace- para comunicar datos de forma visual y efectiva. Algunos conceptos ejemplificados que os mostramos en este post son extraídos tras la lectura de este libro tal como se observa en la  imagen del consejo número (5) donde se muestra un ejemplo de “contar una historia con los datos” (opción B).

4| Simplificar. Aunque ya lo hemos mencionado en el primer punto, debemos darle una especial importancia a la simplificación. Debemos ser concisos y sólo mostrar aquello que es relevante, descartar los datos que no son ilustres o son “ruido” para que exista una correcta visualización o buen entendimiento.

5| Utilizar gráficos adecuados según el tipo de dato. Debemos utilizar los recursos gráficos de forma inteligente. No todos los gráficos sirven para todo. Por ejemplo, utilizar siempre gráficos de columnas para realizar comparativas en lugar de gráficos circulares, ya que visualmente se aprecia mejor. Un ejemplo de ello lo reflejamos en en el siguiente ejemplo sacado del libro de Nussbaumer (2015):

Visualización de datos. Storytelling con datos

FUENTE: Naussbaumer Knaflic, Cole (2015): Storytelling con datos. Visualización de datos para profesionales. Ed. ANAYA Multimedia

6| No abusar de tablas. Solo deben usarse tablas cuando necesitemos mostrar valores precisos. Asimismo, hay que tener en cuenta que las tablas estén diseñadas a una escala apropiada para que no haya confusiones en el análisis de los datos.

7| Utilizar colores apropiados para facilitar la percepción y comprensión de los datos. La selección de los colores parece algo sencillo, pero no todos los colores son eficaces para la visualización de los datos. Es aconsejable utilizar colores de tonos pastel o diferentes tonalidades de un mismo color en lugar de colores vivos como el rojo, fucsia, amarillo y naranja en una misma gráfica. Si observamos el ejemplo anterior, la gráfica de tabla con sólo dos colores para diferenciar entre “antes” y “después” se visualiza mucho mejor frente al abuso de color en el gráfico circular, donde se muestra uno por cada valor en la encuesta (cinco en total).

Por otro lado, usar de forma correcta el color puede hacer más comprensible un gráfico. El color puede ser útil para resaltar una determinada información que se considere relevante o destacar aquellos puntos donde se ha de centrar el análisis.

8| Enunciados claros y memorables. Debemos elegir un buen titular para contextualizar y dirigir la atención hacia la  información más importante. El uso de  tipografías legibles y el uso de etiquetas, ejes y leyendas fáciles de leer pueden ser un factor importante en la visualización para la lectura de los datos.

9| Organizar los datos de forma lógica. Asegurarnos que los diferentes gráficos y  pantallas de la visualización estén alineados horizontal y verticalmente para que puedan compararse con precisión y no crear ninguna ilusión óptica engañosa.

10| Citar fuentes de donde se extrae información. Ser transparentes da una mayor credibilidad. Si hemos extraído información o datos de otras fuentes (por ejemplo, Open Data) debemos citarlas para aportar credibilidad a la información que mostramos.

¡Y recuerda!

Qué es Elasticsearch

ElasticSearch es un gestor de datos y motor de búsqueda basado en Lucene. Se trata de un sistema distribuido que permite trabajar con un gran volumen de datos de cualquier tipo, con una interfaz web RESTful de búsqueda así como clientes para distintos lenguajes de programación, y un sistema de analítica que permite realizar consultas en tiempo real. Elasticsearch está publicado como open source (código abierto) bajo licencia Apache y desarrollado en Java. Se trata de una tecnología que ayuda a optimizar la arquitectura de datos de nuestro negocio.

También es conocido bajo el acrónimo ELK, un conjunto de tres tecnologías de código abierto:

  • Elasticsearch. Motor de búsqueda y análisis.
  • Logstash. Canal de procesamiento de la información que ingiere datos de múltiples fuentes simultáneamente, las transforma y luego las envía a un “stash” como Elasticsearch.
  • Kibana. Permite la visualización de datos a través de tablas y gráficos.

Qué ventajas ofrece Elasticsearch

  1. Sistema distribuido. Los datos se almacenan en diferentes sistemas que colaboran entre sí y nos muestran los resultados que les demandamos en cada momento en una sola petición.
  2. Multitenencia de datos. Nos permite operar sobre distintos índices al mismo tiempo y así potenciar nuestras búsquedas.
  3. Acceso en tiempo real. Esta tecnología nos permite acceder de forma instantánea a los datos.
  4. Búsqueda de texto completo. Usar Elasticsearch hace que implementen una gran cantidad de funciones, tales como la división personalizada de texto en palabras, derivación personalizada, búsqueda personalizada, etc.
  5. Autocompletado y búsqueda instantánea. Buscar mientras el usuario escribe. Pueden ser simples sugerencias de búsquedas tratando de predecirlas en base al historial de búsqueda, o simplemente haciendo una búsqueda completamente nueva para cada palabra clave. Esta opción funciona como ocurre en el buscador Google, que escribimos una palabra y nos sugiere otras opciones de búsqueda. Además, al usar Elasticsearch nos permite encontrar lo que estamos buscando aunque tenga un error ortográfico.
  6. Consultas complejas y afinación. Elasticsearch tiene una poderosa DSL basada en JSON, que permite a los equipos de desarrollo construir consultas complejas y afinarlas para recibir los resultados más precisos de una búsqueda. También proporciona una forma de clasificar y agrupar los resultados.
  7. Ahorro tiempo de análisis y mayor velocidad. Elasticsearch puede ejecutar consultas complejas extremadamente rápido. También almacena casi todas las consultas estructuradas comúnmente utilizadas como filtro para el conjunto de resultados y las ejecuta solo una vez. Para cada otra solicitud que contiene un filtro en caché, comprueba el resultado de la caché. Esto ahorra el tiempo de análisis y ejecución de la consulta mejorando la velocidad.
  8. Elasticsearch está orientado a documentos.  Elasticsearch no utiliza esquemas, acepta documentos JSON e intenta detectar la estructura de datos, indexar los datos y hacer que se pueda buscar.
  9. Uso de facetas. Una búsqueda facetada es más sólida que una búsqueda de texto típica, lo que permite a los usuarios aplicar una cantidad de filtros a la información e incluso tener un sistema de clasificación basado en los datos. Esto permite una mejor organización de los resultados de búsqueda y permite a los usuarios determinar mejor qué información necesitan examinar.
  10. Escalabilidad horizontal y registro de nodos. Elasticsearch permite escalar horizontalmente, por lo que, gracias a su diseño, permite extender los recursos y equilibrar la carga entre los nodos de un cluster. Además, registra cualquier cambio realizado en registros de transacciones en múltiples nodos en el clúster para minimizar la posibilidad de pérdida de datos. Por otro lado, estos cluster pueden detectar aquellos nodos que fallan y reorganizarlos para que los datos siempre sean accesibles.

Al tratarse de una tecnología de open source, en su web, existen diversos videos tutoriales y webinars a los que puedes acceder de forma gratuita tan solo facilitando tu correo electrónico puedes aprender a utilizar Elasticsearch ¡si aún no lo has hecho!

videos_elasticsearch

En todo proyecto en el que se trabaja con Big Data,  la visualización de datos es una de las áreas más relevantes para la comprensión y análisis de datos masivos. Asimismo, poder sacar partido a toda esa información y extraer conclusiones es imprescindible para cualquier empresa que trabaje con Big Data.

En concreto, la visualización de grandes volúmenes datos (Big Data Visualization) consiste en representar de forma comprensible y medible los datos obtenidos del procesamiento y modelización de grandes volúmenes de datos (Big Data) con el objetivo de, no sólo de mostrar de forma más atractiva los datos, sino de comunicar esta información de forma clara y entendible a través de gráficos, diagramas o infografías. En este punto es donde entran en juego las herramientas para la visualización de datos masivos. Saber elegir la herramienta adecuada para aquello que queramos comunicar es imprescindible para desarrollar una analítica empresarial o Business Analytics de forma eficiente.  A continuación, desglosamos cinco herramientas para la visualización de datos:

TABLEAU 

Se trata de una de las más conocidas herramientas de visualización de datos. Su interfaz permite generar visualizaciones sobre grandes volúmenes de datos y personalizarlo.  Posee una versión gratuita: Tableau Public, con la que puedes crear mapas interactivos, gráficos de barras, tartas, etc. de forma sencilla.

Características:

  • Puede importar tablas Excel,
  • Gráficos interactivos y pueden ser embebidos en tu web y/o compartirlos
  • Gráficos Responsive, optimizados para visualizarlos en diversos dispositivos (tablets y moviles)

QLIK View & Sense

QlikView pertenece a la empresa Qlik la cual posee varios productos para la visualización de datos masivos. El más popular es QlikView. Destaca por su sencillez, con una configuración muy personalizable, permitiendo a los usuarios tomar decisiones basadas en datos. Posibilita trabajar con grandes cantidades de datos procedentes de diferentes fuentes. La otra herramienta de la empres Qlik se llama QkikSense. Se trata de una versión aún más sencilla que QlikView para crear visualizaciones flexibles e interactivas.

QlikView y Qlik Sense comparten el mismo motor y una serie de capacidades básicas, pero hay diferencias entre ellos que reflejan tanto los avances en tecnología, como la evolución de las necesidades del consumidor en el mercado.

Características:

  • Gráficos Responsive, optimizados para visualizarlos en diversos dispositivos (tablets y móviles)
  • Permite formular y responder sus propias preguntas y seguir sus propias rutas hacia el conocimiento.

PLOTLY

Plotly, también conocida por su versión web Plot.ly, es una herramienta de visualización y análisis de datos online. Se trata de un software colaborativo bastante flexible que ofrece visualizaciones complejas y sofisticadas. Posee todo tipo de gráficas: columnas, líneas, circulares, histogramas, etc. Funciona con cualquier formato de datos (Excel, CSV o texto) y se puede importar desde Google Drive o Dropbox.

Características:

  • Está integrado con lenguajes de programación como Python, JavaScript o Matlab.
  • Se puede compartir y editar datos, gráficas y macros con otros usuarios.

CARTO

Aunque esta tecnología sólo permite establecer visualizaciones de datos masivos sobre mapas, se trata de un servicio open source dirigido a cualquier usuario, independientemente del nivel técnico que tenga, con una interfaz muy amigable. Carto ofrece dos aplicaciones muy completas: Carto Builder, donde los usuarios pueden administrar datos, ejecutar análisis o diseñar mapas personalizados; y Carto Engine, el cual ofrece un conjunto de bibliotecas para crear interfaces de visualización de mapas y datos personalizados.

Características:

  • Permite crear una gran variedad de mapas interactivos, lo que permite elegir entre el catálogo que el mismo servicio ofrece, incluir mapas de Google Maps, o agregar a la lista tus propios mapas personalizados.
  • Permite el acceso a los datos de Twitter.

KIBANA

Kibana es un complemento de visualización de datos de código abierto para Elasticsearch. Posee una gran variedad de gráficos interactivos: histogramas, gráficos de líneas, gráficos circulares, rayos solares, etc. Además, puedes diseñar tus propias visualizaciones y Elastic Maps para visualizar datos geoespaciales. Todos ellos aprovechan las capacidades de agregación de Elasticsearch.

Características;

  • Con Kibana se puede detectar las anomalías que se esconden en los datos de Elasticsearch y explorar las propiedades que los influencian significativamente.
  • Kibana permite visualizar los datos de Elasticsearch y navegar por Elastic Stack, de modo que puedes hacer cualquier cosa, desde saber por qué te están buscando por Internet a las 2:00 a.m. hasta comprender el impacto que la lluvia puede tener en tus números trimestrales.

kibana_web