Qué es la Ingeniería de Datos y como llegar a trabajar en ello


0

Parece que hoy en día todo el mundo quiere ser un científico de datos. ¿Pero qué pasa con la ingeniería de datos? En su corazón, es una especie de híbrido entre un analista de datos y un científico de datos; el Ingeniero de Datos está típicamente a cargo del manejo de los flujos de trabajo de datos, tuberías y procesos de ETL. En vista de estas importantes funciones, es la siguiente palabra de moda hoy en día que está ganando impulso activamente.
Salario alto y gran demanda – esto es sólo una pequeña parte de lo que hace que este trabajo sea caliente, caliente, caliente! Si quieres ser un héroe, nunca es demasiado tarde para empezar a aprender. En este post, he reunido toda la información necesaria para ayudarte a dar los primeros pasos.

¿Qué es la Ingeniería de Datos o Data Engineer?

A scientist can discover a new star, but he cannot make one. He would have to ask an engineer to do it for him.

Gordon Lindsay Glegg

Así que el papel del ingeniero de datos es muy valioso. Se deduce del título que la ingeniería de datos está asociada a los datos, a saber, su entrega, almacenamiento y procesamiento. Por consiguiente, la principal tarea de los ingenieros es proporcionar una infraestructura fiable para los datos. Si miramos la Jerarquía de Necesidades de la IA, la ingeniería de datos toma las primeras 2-3 etapas en ella: Recoger, mover y almacenar, preparación de datos.


Por lo tanto, para cualquier organización basada en datos, es vital emplear a un ingeniero de datos para estar en la cima.

¿Cuál es la labor de un Ingeniero de Datos o Data Engineer?

Con la llegada de los «grandes datos», el área de responsabilidad ha cambiado dramáticamente. Si antes estos expertos escribían grandes consultas SQL y superaban los datos utilizando herramientas como Informatica ETL, Pentaho ETL, Talend, ahora los requisitos para los ingenieros de datos han avanzado.


La mayoría de las empresas con puestos vacantes para el papel de ingeniero de datos tienen los siguientes requisitos:

  • Excelente conocimiento de SQL y Python
  • La experiencia con las plataformas de nubes, en particular, Amazon Web Services
  • Conocimientos preferidos de Java / Scala
  • Buena comprensión de las bases de datos SQL y NoSQL (modelado de datos, almacenamiento de datos)

Tengan en cuenta que es sólo lo esencial. De esta lista, podemos asumir que los ingenieros de datos son especialistas en el campo de la ingeniería de software y el desarrollo de backend.

Por ejemplo, si una empresa comienza a generar una gran cantidad de datos de diferentes fuentes, su tarea, como Ingeniero de Datos, es organizar la recolección de información, su procesamiento y almacenamiento.
La lista de herramientas utilizadas en este caso puede diferir, todo depende del volumen de estos datos, la velocidad de su llegada y la heterogeneidad. La mayoría de las empresas no tienen grandes datos, por lo tanto, como un repositorio centralizado, que es el llamado Data Warehouse, se puede utilizar una base de datos SQL (PostgreSQL, MySQL, etc.) con un pequeño número de scripts que conducen los datos al repositorio.

Los gigantes de la informática como Google, Amazon, Facebook o Dropbox tienen requisitos más estrictos:

  • Conocimiento de Python, Java o Scala
  • Experiencia con grandes datos: Hadoop, Spark, Kafka
  • Conocimiento de algoritmos y estructuras de datos
  • Comprensión de los fundamentos de los sistemas distribuidos
  • La experiencia con herramientas de visualización de datos como Tableau o ElasticSearch será una gran ventaja

Es decir, hay claramente un sesgo en los grandes datos, a saber, su procesamiento bajo altas cargas. Estas empresas han aumentado los requisitos para la resistencia del sistema.

Ingenieros de Datos vs Científicos de Datos

Primero debes saber que hay mucha ambigüedad entre las funciones y habilidades de la ciencia de los datos y las de los ingenieros de datos. Por lo tanto, usted puede fácilmente desconcertarse acerca de qué habilidades se requieren esencialmente para ser un ingeniero de datos exitoso. Por supuesto, hay ciertas habilidades que se superponen para ambos roles. Pero también, hay toda una serie de habilidades diametralmente diferentes.
La ciencia de los datos es algo real – pero el mundo se está moviendo hacia un mundo funcional de ciencia de los datos donde los profesionales pueden hacer sus propios análisis. Se necesitan ingenieros de datos, más que científicos de datos, para habilitar los conductos de datos y las estructuras de datos integradas.

¿Están los Ingenieros de Datos mas demandados que los Científicos de Datos (Data Scientist)?

El ingeniero de datos entiende la programación mejor que cualquier científico de datos, pero cuando se trata de estadísticas, todo es exactamente lo contrario.
Pero aquí la ventaja del ingeniero de datos: sin él, el valor de este modelo prototipo, que a menudo consiste en un trozo de código en un archivo Python de terrible calidad, que vino de un científico de datos y de alguna manera da resultado, tiende a cero.
Sin el ingeniero de datos, este código nunca se convertirá en un proyecto y ningún problema de negocios se resolverá de manera efectiva. Un ingeniero de datos está tratando de convertir esto en un producto.

Aspectos esenciales que debe conocer un Ingeniero de Datos o Data Engineer

En primer lugar, la ingeniería de datos está relacionada principalmente con la informática. Para ser más específicos, debería tener una comprensión de los algoritmos eficientes y las estructuras de datos. En segundo lugar, como los ingenieros de datos se ocupan de los datos, es necesario comprender el funcionamiento de las bases de datos y las estructuras subyacentes.
Por ejemplo, las bases de datos habituales de SQL de árbol B se basan en la estructura de árbol B, y en los modernos repositorios distribuidos LSM-Tree y otras modificaciones de tablas de hash.

Algoritmos y estructuras de datos

Usar la estructura de datos correcta puede mejorar drásticamente el rendimiento de un algoritmo. Lo ideal sería que todos aprendiéramos estructuras de datos y algoritmos en nuestras escuelas, pero rara vez se cubre. De todos modos, nunca es demasiado tarde.

Aprender SQL

Toda nuestra vida son datos. Y para extraer estos datos de la base de datos, necesitas «hablar» con ellos en el mismo idioma.
SQL (Structured Query Language) es la lengua franca en el área de datos. No importa lo que digan, el SQL vive, está vivo y vivirá durante mucho tiempo.
Si ha estado en desarrollo durante mucho tiempo, probablemente haya notado que periódicamente aparecen rumores sobre la muerte inminente de SQL. El lenguaje fue desarrollado a principios de los años 70 y todavía es muy popular entre los analistas, desarrolladores y simples entusiastas.
No hay nada que hacer sin el conocimiento de SQL en la ingeniería de datos, ya que inevitablemente tendrá que construir consultas para extraer datos.

Programar en Python y Java/Scala

Por qué vale la pena aprender el lenguaje de programación Python, ya lo escribí en el artículo Python vs R. Choosing the Best Tool for AI, ML & Data Science. En cuanto a Java y Scala, la mayoría de las herramientas para almacenar y procesar grandes cantidades de datos están escritas en estos lenguajes. Por ejemplo:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Hive (Java)

Para entender cómo funcionan estas herramientas es necesario conocer los idiomas en los que están escritas. El enfoque funcional de Scala le permite resolver eficazmente los problemas de procesamiento de datos en paralelo. Python, desafortunadamente, no puede presumir de velocidad y procesamiento paralelo. En general, el conocimiento de varios lenguajes y paradigmas de programación tiene un buen efecto en la amplitud de los enfoques para resolver problemas.


Like it? Share with your friends!

0

0 Comments

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *