¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.techbiz
Daniel Povedano y Hlynur Magnusson 11/06/2018 Cargando comentarios…
Cuando preguntamos qué es el Big Data y cuáles son los roles asociados a él, nos encontramos con definiciones interminables que muchas veces nos confunden en vez de aclarar conceptos.
En este post no vamos a dar una definición formal, sino una que encaja con nuestro punto de vista y nuestra experiencia en Big Data. No vamos a elaborar una larga lista de perfiles, solo nos centraremos en los que desempeñan una función clave en el universo Big Data.
De la definición básica de la Wikipedia...:
“Big data, macrodatos, datos masivos, inteligencia de datos o datos a gran escala es un concepto que hace referencia a un conjuntos de datos tan grandes que aplicaciones informáticas tradicionales de procesamiento de datos no son suficientes para tratar con ellos y los procedimientos usados para encontrar patrones repetitivos dentro de esos datos”.
... sacamos en claro dos ideas:
Por otro lado, y para hacernos una idea de la inmensidad mencionada en el punto 1, en el artículo publicado por IDC se prevé que en 2025 el volumen total de los datos mundiales será de 163 zettabytes (1.000.000.000.000 gigabytes). ¡Casi nada!
Es decir, por un lado tenemos el procesado de grandes volúmenes de datos y por otro el estudio de dichos datos. ¿Y ya está? ¿Esto es el Big Data? ¡No tan deprisa!
El Big Data es una revolución tecnológica. El hecho de tener tantas patas lo convierte en algo difícil de definir por ser muchas cosas en general y ninguna en particular.
Además, su definición la complica el hecho de ser un ecosistema en constante evolución. Cada año se compone de nuevas herramientas, mejoras y conceptos que hacen que no pare de crecer la complejidad del mundo del Big Data y, por tanto, la diversidad y complejidad de sus roles.
Aquel que presuma de ser un experto en Big Data es como aquel que dice ser un experto en informática. La siguiente pregunta debe ser: “Experto, sí, pero ¿en qué rama?”.
El sujeto en cuestión nos responde de nuevo que es experto en Big Data. Hay tres posibilidades. O es un ser superior, nos está mintiendo o bien no tiene ganas de explicar a qué se dedica en concreto ya que decir “soy Data Scientist” o “soy Data Engineer” en general provoca una reacción de extrañeza seguida de un “¿Y eso qué es?”, cuya respuesta no es corta.
Y esa respuesta es la que vamos a intentar desarrollar de la forma más breve y concisa posible en este artículo (nótese que puede quedarse obsoleto tan pronto como siga evolucionando el mundo del Big Data).
Se pueden definir muchos roles. Tantos como decida cualquier persona que escriba un artículo dando su opinión sobre el tema.
Como equipo de desarrollo de Paradigma en el proyecto Aura en Telefónica, vamos a dar nuestra humilde opinión tratando de desglosar los roles en unos pocos, basándonos en las dos ideas que hemos sacado al inicio del artículo: el almacenado/procesado de datos y el análisis de estos.
Centrándonos primero en los perfiles más orientados al análisis de datos, el Data Analyst es un perfil previo al de Data Scientist. Incluso se les denomina en algunos casos “Data Scientist junior”.
Tienen un rol bastante generalista, abarcando una amplia gama de funciones que incluyen la minería, obtención y/o recuperación de datos así como su procesado, estudio avanzado y visualización.
El estudio o análisis avanzado de los datos se hace en base a algoritmos y métodos matemáticos y estadísticos. Por tanto, este perfil requiere principalmente de conocimientos de matemáticas y estadística aplicados a la minería de datos y al aprendizaje automático o Machine Learning.
Esto último hace que también sea imprescindible saber programar (por lo menos en los actuales proyectos). Aunque su especialidad sea el Machine Learning, el uso de librerías de métodos estadísticos como la de Pandas requiere conocer por debajo el funcionamiento de cada algoritmo, así como la funcionalidad básica del lenguaje correspondiente, en este caso Python. Otro lenguaje común para los Data Analyst podría ser R.
Además de los conceptos de Machine Learning y los lenguajes Python y R, los Data Analyst destacan por sus conocimientos en el uso de notebooks como el de Jupyter, así como conocimiento del entorno Big Data en el que trabajan, como Spark o Hadoop.
También es bien valorado que tenga conocimientos de Bases de Datos SQL y del Business Intelligence tradicional.
Es la “evolución del Data Analyst”. En muchos casos los consideran el mismo perfil con diferente enfoque. Para nosotros, es un rol más específico y menos alineado con la visión de negocio.
Al igual que el DA, requiere saber de matemáticas, estadística y Machine Learning, de lenguajes de programación como R o Python, de uso de notebooks y de ecosistemas Big Data, pero lo que creemos que diferencia al Data Scientist es que es el encargado de sacarle valor a los datos.
También los obtiene, procesa y visualiza pero tiene un rol más enfocado a la predicción en base a los comportamientos aprendidos.
Al considerarse el Data Scientist como una versión más moderna del Data Analyst, es más propio de ellos el uso de librerías más recientes como TensorFlow para técnicas de Deep Learning basadas en redes neuronales.
También muchos de sus desarrollos van ligados a técnicas de Inteligencia Artificial y programación neuro-lingüística (NLP). Pero, una vez más, son perfiles bastante similares y la inclusión de tecnologías no es estricta para un rol u otro.
En el caso de los Data Scientist que empleen herramientas como SAS Enterprise Miner para hacer análisis estadístico, hay una percepción por parte de muchos de que la herramienta en sí hace que no se requieran conocimientos de programación, percepción con la que nosotros discrepamos a día de hoy.
Aunque es verdad que SAS en muchos casos otorga una capacidad de modelado mucho más gráfica y visual, se sigue requiriendo conocer cómo funcionan los algoritmos que hay por detrás de cada operación, y en muchos casos, también será necesario conocer el lenguaje de programación SAS.
Ya enfocándonos en el almacenamiento y procesado de datos, nos encontramos con el rol de Data Engineer. Este es nuestro rol en el proyecto de Aura en Telefónica y aquí una de las razones por las que vamos a darle bastante importancia.
Otra de ellas, y la más relevante, es que aporta al proyecto de Big Data un valor muy distinto del que aportan los Data Scientist o Data Analyst.
Sabemos que estos últimos son los que trabajan con el dato, pero ¿de dónde lo obtienen? ¿Cómo es el entorno en el que hacen su labor de análisis? Es tarea del Data Engineer preparar todo el ecosistema para que los demás puedan obtener sus datos limpios y preparados para su análisis.
Los Data Engineers son los que diseñan, desarrollan, construyen, prueban y mantienen los sistemas de procesamiento de datos en el proyecto de Big Data.
Debe conocer cómo se modelan los datos así como tener un amplio conocimiento de las BBDD SQL, ya que en el mundo del Big Data éstas no se excluyen y siguen en muchos casos siendo el origen de los datos. Simplemente se complementan.
Realizan y programan las ingestas de datos (por ejemplo, de un modelo relacional a un motor de procesamiento Spark). También hacen procesos de limpieza, validación, Data Quality y agregación para que la información le llegue al Data Scientist tal como se la espera, configuran el clúster en Spark (número de nodos y cores por nodo, GB de RAM) para que los modelos estadísticos sean ejecutados de forma óptima.
¿Qué tecnologías usan? Un Data Engineer debería conocer Linux y Git como ingeniero que trabaja en proyectos de software. Hadoop y Spark a nivel de entornos; Map Reduce a nivel de modelos computacionales; y HDFS, MongoDB y Cassandra a nivel de tecnologías NoSQL.
En cuanto a lenguajes de programación se hace imprescindible conocer SQL, ya que el modelo relacional sigue siendo parte importante en la generación y consulta de datos.
También se suele requerir conocer uno o dos de los siguientes lenguajes: Python para el procesado de datos (a veces PySpark) y Scala como lenguaje nativo de Spark y Java en muchos casos.
¿Debe un Data Engineer conocer en profundidad los modelos empleados por los Data Scientist? En principio, deberá saber lo que supone emplear uno u otro modelo para el entorno, y qué arquitectura es la idónea para que funcionen.
En resumen, el Data Engineer es el encargado de la infraestructura de Big Data. ¿Cómo de importante puede ser esto? Según el artículo de Todd Goldman, que parte de un estudio de Gartner, en el que se proclama que sólo el 15% de los proyectos de Big Data van a producción, salta a la vista que se pasan por alto implementaciones básicas en la arquitectura.
Esto es la clave para darse cuenta de por qué no llega a producción ese 85% restante. La lentitud con la que se cargan los datos, el no hacerlo de forma automática e incremental, la incapacidad de consultarlos y la poca agilidad para migrar del entorno de pruebas al de producción son problemas que la inclusión de más Data Engineers ayudaría a solucionar.
El Data Engineer juega un papel clave a la hora de convertir una prueba de concepto de Big Data en un proyecto real y palpable. Es decir, de prototipo a producción.
Llegados a este punto muchos puede que se pregunten qué sería entonces un Data Architect. Según nuestro punto de vista, un Data Architect es un Data Engineer con una visión más global, y más orientada a la integración, centralización y el mantenimiento de todas las fuentes de datos.
Somos conscientes de que podemos habernos dejado algún perfil que alguien considere importante. El MIS Reporting Executive, el Business Analyst, el estadístico, el Machine Learning Engineer, o incluso el Data Translator.
También hay perfiles tradicionales como el DBA de Oracle, el Business Analyst de Teradata o el “javero todoterreno” que se han reciclado y también tienen su función aquí. Pero con este artículo hemos intentado hablar más de los roles que se desempeñan en el mundo del Big Data y no de perfiles o títulos.
Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.
Cuéntanos qué te parece.