Capítulo 1. Descripción de la ingeniería de datos

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Si trabajas en el campo de los datos o el software, habrás notado que la ingeniería de datos está saliendo de las sombras y ahora comparte escenario con la ciencia de los datos. La ingeniería de datos es uno de los campos más candentes de los datos y la tecnología, y por una buena razón. Construye los cimientos de la ciencia de datos y la analítica en producción. Este capítulo explora qué es la ingeniería de datos, cómo nació el campo y su evolución, las habilidades de los ingenieros de datos y con quién trabajan.

¿Qué es la ingeniería de datos?

A pesar de la popularidad actual de la ingeniería de datos, existe mucha confusión sobre lo que significa la ingeniería de datos y lo que hacen los ingenieros de datos. La ingeniería de datos ha existido de alguna forma desde que las empresas empezaron a hacer cosas con los datos -como el análisis predictivo, el análisis descriptivo y los informes- y se hizo más evidente con el auge de la ciencia de datos en la década de 2010. A efectos de este libro, es fundamental definir lo que significan ingeniería de datos e ingeniero de datos.

En primer lugar, echemos un vistazo al panorama de cómo se describe la ingeniería de datos y desarrollemos una terminología que podamos utilizar a lo largo de este libro. Existen infinitas definiciones de ingeniería de datos. A principios de 2022, una búsqueda exacta en Google de "¿qué es la ingeniería de datos?" arrojó más de 91.000 resultados únicos. Antes de dar nuestra definición, he aquí algunos ejemplos de cómo definen la ingeniería de datos algunos expertos en la materia:

La ingeniería de datos es un conjunto de operaciones destinadas a crear interfaces y mecanismos para el flujo y el acceso a la información. Se necesitan especialistas dedicados -ingenieros de datos- para mantener los datos de modo que sigan estando disponibles y puedan ser utilizados por otros. En pocas palabras, los ingenieros de datos configuran y hacen funcionar la infraestructura de datos de la organización, preparándola para su posterior análisis por parte de analistas y científicos de datos.

De "La ingeniería de datos y sus principales conceptos" de AlexSoft1

El primer tipo de ingeniería de datos se centra en SQL. El trabajo y el almacenamiento principal de los datos se realiza en bases de datos relacionales. Todo el procesamiento de datos se realiza con SQL o un lenguaje basado en SQL. A veces, este procesamiento de datos se realiza con una herramienta ETL.2 El segundo tipo de ingeniería de datos se centra en Big Data. El trabajo y el almacenamiento primario de los datos se realiza en tecnologías de Big Data como Hadoop, Cassandra y HBase. Todo el procesamiento de datos se realiza en marcos de Big Data como MapReduce, Spark y Flink. Aunque se utiliza SQL, el procesamiento principal se realiza con lenguajes de programación como Java, Scala y Python.

Jesse Anderson3

En relación con las funciones existentes anteriormente, el campo de la ingeniería de datos podría considerarse como un superconjunto de la inteligencia empresarial y el almacenamiento de datos que aporta más elementos de la ingeniería de software. Esta disciplina también integra la especialización en torno al funcionamiento de los llamados sistemas distribuidos de "grandes datos", junto con conceptos en torno al ecosistema ampliado de Hadoop, el procesamiento de flujos y en la computación a escala.

Maxime Beauchemin4

La ingeniería de datos tiene que ver con el movimiento, la manipulación y la gestión de los datos.

Lewis Gavin5

¡Vaya! Es totalmente comprensible que te hayas sentido confundido acerca de la ingeniería de datos. Son sólo un puñado de definiciones, y contienen una enorme variedad de opiniones sobre el significado de la ingeniería de datos.

Definición de ingeniería de datos

Cuando desentrañamos los hilos comunes de cómo varias personas definen la ingeniería de datos, surge un patrón obvio: un ingeniero de datos obtiene datos, los almacena y los prepara para su consumo por científicos de datos, analistas y otros. Definimos la ingeniería de datos y ingeniero de datos como sigue:

La ingeniería de datos es el desarrollo, la implementación y el mantenimiento de sistemas y procesos que toman datos sin procesar y producen información coherente y de alta calidad que respalda los casos de uso posteriores, como el análisis y el aprendizaje automático. La ingeniería de datos es la intersección de la seguridad, la gestión de datos, DataOps, la arquitectura de datos, la orquestación y la ingeniería de software. Un ingeniero de datos gestiona el ciclo de vida de la ingeniería de datos, comenzando con la obtención de datos de los sistemas fuente y terminando con el servicio de datos para casos de uso, como el análisis o el aprendizaje automático.

El ciclo de vida de la ingeniería de datos

En es demasiado fácil fijarse en la tecnología y perderse el panorama general de forma miope. Este libro se centra en una gran idea llamada ciclo de vida de la ingeniería de datos(Figura 1-1), que creemos que proporciona a los ingenieros de datos el contexto holístico para ver su papel.

Figura 1-1. El ciclo de vida de la ingeniería de datos

El ciclo de vida de la ingeniería de datos desplaza la conversación desde la tecnología hacia los propios datos y los objetivos finales a los que deben servir. Las etapas del ciclo de vida de la ingeniería de datos son las siguientes:

  • Generación

  • Almacenamiento

  • Ingestión

  • Transformación

  • Sirviendo a

El ciclo de vida de la ingeniería de datos también tiene una noción de subyacente:ideas críticasen todo el ciclo de vida. Entre ellas están la seguridad, la gestión de datos, DataOps, la arquitectura de datos, la orquestación y la ingeniería de software. En el Capítulo 2 tratamos más ampliamente el ciclo de vida de la ingeniería de datos y sus corrientes subyacentes. Aun así, lo presentamos aquí porque es esencial para nuestra definición de ingeniería de datos y el debate que sigue en este capítulo.

Ahora que ya tienes una definición práctica de la ingeniería de datos y una introducción a su ciclo de vida, demos un paso atrás y veamos un poco de historia.

Evolución del Ingeniero de Datos

La historia no se repite, pero rima.

Un famoso adagio atribuido a menudo a Mark Twain

Para entender la ingeniería de datos de hoy y de mañana es necesario conocer el contexto de cómo ha evolucionado este campo. Esta sección no es una lección de historia, pero mirar al pasado tiene un valor incalculable para comprender dónde estamos hoy y hacia dónde van las cosas. Un tema común reaparece constantemente: lo que es viejo vuelve a ser nuevo.

Los primeros tiempos: De 1980 a 2000, del almacenamiento de datos a la web

Podría decirse que el nacimiento del ingeniero de datos tiene sus raíces en el almacenamiento de datos, que se remonta a la década de 1970, con el almacén de datos empresariales tomando forma en la década de 1980 y Bill Inmon acuñando oficialmente el término almacén de datos en 1989. Después de que los ingenieros de IBM desarrollaran la base de datos relacional y el lenguaje de consulta estructurado (SQL), Oracle popularizó la tecnología. A medida que crecían los incipientes sistemas de datos, las empresas necesitaban herramientas dedicadas y conductos de datos para la elaboración de informes y la inteligencia empresarial (BI). Para ayudar a las personas a modelar correctamente su lógica empresarial en el almacén de datos, Ralph Kimball e Inmon desarrollaron sus respectivas técnicas y enfoques epónimos de modelado de datos, que siguen utilizándose ampliamente en la actualidad.

El almacén de datos marcó el comienzo de la primera era de la analítica escalable, con nuevas bases de datos de procesamiento paralelo masivo (MPP) que utilizan múltiples procesadores para crujir grandes cantidades de datos que llegan al mercado y soportan volúmenes de datos sin precedentes. Funciones como ingeniero de BI, desarrollador de ETL e ingeniero de almacén de datos abordaban las distintas necesidades del almacén de datos. El almacén de datos y la ingeniería BI fueron precursores de la ingeniería de datos actual y siguen desempeñando un papel central en la disciplina.

Internet se generalizó a mediados de la década de 1990, creando toda una nueva generación de empresas que daban prioridad a la web, como AOL, Yahoo y Amazon. El auge de las puntocom generó una gran actividad en las aplicaciones web y los sistemas backend que las soportaban: servidores, bases de datos y almacenamiento. Gran parte de la infraestructura era cara, monolítica y con muchas licencias. Es probable que los proveedores que vendían estos sistemas backend no previeran la magnitud de los datos que producirían las aplicaciones web.

Principios de la década de 2000: El nacimiento de la ingeniería de datos contemporánea

Avance rápido hasta principios de la década de 2000, cuando el boom de las puntocom de finales de los 90 quebró, dejando tras de sí un pequeño grupo de supervivientes. Algunas de estas empresas, como Yahoo, Google y Amazon, se convertirían en potentes empresas tecnológicas. Al principio, estas empresas siguieron confiando en las tradicionales bases de datos relacionales monolíticas y en los almacenes de datos de los años 90, llevando estos sistemas al límite. A medida que estos sistemas cedían, se necesitaban enfoques actualizados para gestionar el crecimiento de los datos. La nueva generación de sistemas debe ser rentable, escalable, disponible y fiable.

Coincidiendo con la explosión de datos, el hardware básico -como servidores, RAM, discos y unidades flash- también se abarató y se hizo omnipresente. Varias innovaciones permitieron la computación y el almacenamiento distribuidos en clusters informáticos masivos a gran escala. Estas innovaciones empezaron a descentralizar y separar los servicios tradicionalmente monolíticos. La era de los "grandes datos" de había comenzado.

El Oxford English Dictionary define los big data como "conjuntos de datos extremadamente grandes que pueden analizarse computacionalmente para revelar pautas, tendencias y asociaciones, especialmente relacionadas con el comportamiento y las interacciones humanas". Otra descripción famosa y sucinta de los big data son las tres Vde los datos: velocidad, variedad y volumen.

En 2003, Google publicó un artículo sobre el Sistema de Archivos de Google, y poco después, en 2004, un artículo sobre MapReduce, un paradigma de procesamiento de datos ultraescalable. En realidad, los big data tienen antecedentes anteriores en los almacenes de datos MPP y en la gestión de datos para proyectos de física experimental, pero las publicaciones de Google constituyeron un "big bang" para las tecnologías de datos y las raíces culturales de la ingeniería de datos tal y como la conocemos hoy. Aprenderás más sobre los sistemas MPP y MapReduce en los Capítulos 3 y 8, respectivamente.

Los documentos de Google inspiraron a los ingenieros de Yahoo para desarrollar y posteriormente abrir Apache Hadoop en 2006.6 Es difícil exagerar el impacto de Hadoop. Los ingenieros de software interesados en problemas de datos a gran escala se sintieron atraídos por las posibilidades de este nuevo ecosistema tecnológico de código abierto. A medida que empresas de todos los tamaños y tipos veían crecer sus datos hasta muchos terabytes e incluso petabytes, nació la era del ingeniero de big data.

Más o menos al mismo tiempo, Amazon tuvo que seguir el ritmo de su propia explosión de necesidades de datos y creó entornos informáticos elásticos (Amazon Elastic Compute Cloud, o EC2), sistemas de almacenamiento infinitamente escalables (Amazon Simple Storage Service, o S3), bases de datos NoSQL altamente escalables (Amazon DynamoDB) y muchos otros componentes básicos de datos.7 Amazon decidió ofrecer estos servicios para consumo interno y externo a través de Amazon Web Services (AWS), convirtiéndose en la primera nube pública popular. AWS creó un mercado de recursos ultraflexible de pago por uso, virtualizando y revendiendo vastos conjuntos de hardware básico. En lugar de comprar hardware para un centro de datos, los desarrolladores podían simplemente alquilar computación y almacenamiento de AWS.

Cuando AWS se convirtió en un motor de crecimiento muy rentable para Amazon, pronto le seguirían otras nubes públicas, como Google Cloud, Microsoft Azure y DigitalOcean. Podría decirse que la nube pública es una de las innovaciones más significativas del siglo XXI y ha generado una revolución en la forma en que se desarrollan e implementan las aplicaciones de software y datos.

Las primeras herramientas de big data y la nube pública sentaron las bases del ecosistema de datos actual. El panorama moderno de los datos -y la ingeniería de datos tal y como la conocemos ahora- no existiría sin estas innovaciones.

Los años 2000 y 2010: Ingeniería de big data

Las herramientas de big data de código abierto del ecosistema Hadoop maduraron rápidamente y se extendieron desde Silicon Valley a las empresas tecnológicas de todo el mundo. Por primera vez, cualquier empresa tenía acceso a las mismas herramientas de datos de perímetro abierto utilizadas por las principales empresas tecnológicas. Otra revolución se produjo con la transición de la computación por lotes a la transmisión de eventos, dando paso a una nueva era de grandes datos "en tiempo real". A lo largo de este libro aprenderás sobre la computación por lotes y el streaming de eventos.

Los ingenieros podían elegir lo último y lo mejor: Hadoop, Apache Pig, Apache Hive, Dremel, Apache HBase, Apache Storm, Apache Cassandra, Apache Spark, Presto y muchas otras nuevas tecnologías que aparecieron en escena. Las herramientas de datos tradicionales orientadas a la empresa y basadas en GUI se sintieron de repente anticuadas, y la ingeniería del código primero se puso de moda con el ascenso de MapReduce. Nosotros (los autores) estábamos en esa época, y nos pareció que los viejos dogmas morían repentinamente en el altar de los grandes datos.

La explosión de las herramientas de datos a finales de la década de 2000 y 2010 dio paso al ingeniero de big data. Para utilizar eficazmente estas herramientas y técnicas -en concreto, el ecosistema Hadoop, que incluye Hadoop, YARN, el Sistema de Archivos Distribuidos Hadoop (HDFS) y MapReduce-, los ingenieros de big data debían dominar el desarrollo de software y la piratería informática de infraestructura de bajo nivel, pero con un énfasis cambiado. Los ingenieros de big data solían mantener clusters masivos de hardware básico para proporcionar datos a escala. Aunque ocasionalmente podían enviar solicitudes de acceso al código central de Hadoop, cambiaron su enfoque del desarrollo de la tecnología central a la entrega de datos.

Los big data se convirtieron rápidamente en víctimas de su propio éxito. Como palabra de moda, los big data ganaron popularidad desde principios de la década de 2000 hasta mediados de la de 2010. El big data cautivó la imaginación de las empresas que intentaban dar sentido a los volúmenes de datos cada vez mayores y al interminable bombardeo de marketing descarado de las empresas que vendían herramientas y servicios de big data. Debido al inmenso bombo publicitario, era habitual ver a empresas que utilizaban herramientas de big data para pequeños problemas de datos, a veces montando un clúster Hadoop para procesar sólo unos pocos gigabytes. Parecía que todo el mundo quería participar en la acción de los macrodatos. Dan Ariely tuiteó: "El big data es como el sexo adolescente: todo el mundo habla de él, nadie sabe realmente cómo hacerlo, todo el mundo piensa que los demás lo están haciendo, así que todos afirman que lo están haciendo".

La Figura 1-2 muestra una instantánea de Google Trends para el término de búsqueda "big data", para hacerse una idea del auge y caída de los big data.

A pesar de la popularidad del término, los grandes datos han perdido fuerza. ¿Qué ha ocurrido? Una palabra: simplificación. A pesar de la potencia y sofisticación de las herramientas de big data de código abierto, gestionarlas era mucho trabajo y requería una atención constante. A menudo, las empresas empleaban equipos enteros de ingenieros de big data, que costaban millones de dólares al año, para cuidar de estas plataformas. Los ingenieros de big data solían dedicar un tiempo excesivo al mantenimiento de las complicadas herramientas y, posiblemente, no tanto a proporcionar información y valor a la empresa.

Los desarrolladores de código abierto, las nubes y terceros empezaron a buscar formas de abstraer, simplificar y hacer que los grandes datos estuvieran disponibles sin la elevada sobrecarga administrativa y el coste de gestionar sus clústeres, e instalar, configurar y actualizar su código de código abierto. El término big data es esencialmente una reliquia para describir una época y un enfoque concretos del manejo de grandes cantidades de datos.

Hoy en día, los datos se mueven más rápido que nunca y crecen cada vez más, pero el procesamiento de big data se ha vuelto tan accesible que ya no merece un término aparte; todas las empresas pretenden resolver sus problemas de datos, independientemente del tamaño real de los mismos. Los ingenieros de big data son ahora simplemente ingenieros de datos.

La década de 2020: Ingeniería para el ciclo de vida de los datos

En el momento de escribir esto, el papel de la ingeniería de datos está evolucionando rápidamente. Esperamos que esta evolución continúe a buen ritmo en el futuro inmediato. Mientras que los ingenieros de datos tendían históricamente a los detalles de bajo nivel de los marcos monolíticos como Hadoop, Spark o Informatica, la tendencia se dirige hacia herramientas descentralizadas, modularizadas, gestionadas y altamente abstraídas.

De hecho, las herramientas de datos han proliferado a un ritmo asombroso (véase la Figura 1-3). Entre las tendencias más populares a principios de la década de 2020 se encuentra la pila de datos moderna , que representa una colección de productos de código abierto y de terceros disponibles en el mercado, reunidos para facilitar la vida de los analistas. Al mismo tiempo, las fuentes y formatos de datos crecen tanto en variedad como en tamaño. La ingeniería de datos es cada vez más una disciplina de interoperabilidad, y de conexión de diversas tecnologías como ladrillos de LEGO, al servicio de los objetivos empresariales finales.

Figura 1-3. El panorama de datos de Matt Turck en 2012 frente a 2021

El ingeniero de datos del que hablamos en este libro puede describirse con más precisión como un ingeniero del ciclo de vida de los datos . Con una mayor abstracción y simplificación, un ingeniero del ciclo de vida de los datos ya no se ve estorbado por los detalles escabrosos de los marcos de big data de ayer. Aunque los ingenieros de datos conservan sus conocimientos de programación de datos de bajo nivel y los utilizan cuando es necesario, su función se centra cada vez más en aspectos superiores de la cadena de valor: seguridad, gestión de datos, DataOps, arquitectura de datos, orquestación y gestión general del ciclo de vida de los datos.8

A medida que se simplifican las herramientas y los flujos de trabajo, hemos observado un cambio notable en la actitud de los ingenieros de datos. En lugar de centrarse en quién tiene los "datos más grandes", los proyectos y servicios de código abierto se preocupan cada vez más por gestionar y gobernar los datos, facilitando su uso y descubrimiento, y mejorando su calidad. Los ingenieros de datos están ahora familiarizados con acrónimos como CCPA y GDPR;9 A medida que diseñan canalizaciones, se preocupan por la privacidad, la anonimización, la recogida de datos basura y el cumplimiento de la normativa.

Lo viejo vuelve a ser nuevo. Mientras que las cosas "empresariales" como la gestión de datos (incluida la calidad y la gobernanza de los datos) eran comunes para las grandes empresas en la era anterior a los grandes datos, no se adoptaron ampliamente en las empresas más pequeñas. Ahora que muchos de los desafiantes problemas de los sistemas de datos de ayer están resueltos, perfectamente productivizados y empaquetados, los tecnólogos y empresarios han vuelto a centrarse en las cosas "empresariales", pero haciendo hincapié en la descentralización y la agilidad, lo que contrasta con el enfoque tradicional de la empresa de mando y control.

Consideramos el presente como una edad de oro de la gestión del ciclo de vida de los datos. Los ingenieros de datos que gestionan el ciclo de vida de la ingeniería de datos disponen de mejores herramientas y técnicas que nunca. En el próximo capítulo trataremos con más detalle el ciclo de vida de la ingeniería de datos y sus trasfondos.

Ingeniería y Ciencia de Datos

¿Dónde encaja la ingeniería de datos con la ciencia de datos? Existe cierto debate, ya que algunos sostienen que la ingeniería de datos es una subdisciplina de la ciencia de datos. Creemos que la ingeniería de datos es independiente de la ciencia de datos y la analítica. Se complementan, pero son claramente diferentes. La ingeniería de datos se sitúa aguas arriba de la ciencia de datos(Figura 1-4), lo que significa que los ingenieros de datos proporcionan las entradas utilizadas por los científicos de datos (aguas abajo de la ingeniería de datos), que convierten estas entradas en algo útil.

Figura 1-4. La ingeniería de datos se sitúa aguas arriba de la ciencia de datos

Considera la Jerarquía de Necesidades de la Ciencia de Datos(Figura 1-5). En 2017, Monica Rogati publicó esta jerarquía en un artículo que mostraba dónde se situaban la IA y el aprendizaje automático (ML) en proximidad a áreas más "mundanas" como el movimiento/almacenamiento de datos, la recopilación y la infraestructura.

Aunque muchos científicos de datos están ansiosos por construir y ajustar modelos de ML, la realidad es que se calcula que dedican entre el 70% y el 80% de su tiempo a trabajar en las tres partes inferiores de la jerarquía -recopilación de datos, limpieza de datos, procesamiento de datos- y sólo una ínfima parte de su tiempo al análisis y el ML. Rogati sostiene que las empresas necesitan construir una base sólida de datos (los tres niveles inferiores de la jerarquía) antes de abordar áreas como la IA y el ML.

Los científicos de datos no suelen estar formados para diseñar sistemas de datos de grado de producción, y acaban haciendo este trabajo al azar porque carecen del apoyo y los recursos de un ingeniero de datos. En un mundo ideal, los científicos de datos deberían dedicar más del 90% de su tiempo a las capas superiores de la pirámide: análisis, experimentación y ML. Cuando los ingenieros de datos se centran en estas partes inferiores de la jerarquía, construyen una base sólida para que los científicos de datos tengan éxito.

Con la ciencia de datos impulsando la analítica avanzada y el ML, la ingeniería de datos se encuentra a caballo entre la obtención de datos y la obtención de valor a partir de los datos (véase la Figura 1-6). Creemos que la ingeniería de datos tiene la misma importancia y visibilidad que la ciencia de datos, y que los ingenieros de datos desempeñan un papel vital para que la ciencia de datos tenga éxito en la producción.

Figura 1-6. Un ingeniero de datos obtiene datos y aporta valor a partir de ellos

Habilidades y actividades de ingeniería de datos

El conjunto de habilidades de un ingeniero de datos abarca las "corrientes subterráneas" de la ingeniería de datos: seguridad, gestión de datos, DataOps, arquitectura de datos e ingeniería de software. Este conjunto de habilidades requiere comprender cómo evaluar las herramientas de datos y cómo encajan entre sí a lo largo del ciclo de vida de la ingeniería de datos. También es fundamental saber cómo se producen los datos en los sistemas de origen y cómo los analistas y científicos de datos consumirán y crearán valor después de procesar y conservar los datos. Por último, un ingeniero de datos hace malabarismos con muchas piezas móviles complejas y debe optimizar constantemente según los ejes de coste, agilidad, escalabilidad, simplicidad, reutilización e interoperabilidad(Figura 1-7). Trataremos estos temas con más detalle en los próximos capítulos.

Figura 1-7. El acto de equilibrio de la ingeniería de datos

Como hemos comentado, en el pasado reciente, se esperaba que un ingeniero de datos conociera y comprendiera cómo utilizar un pequeño puñado de tecnologías potentes y monolíticas (Hadoop, Spark, Teradata, Hive y muchas otras) para crear una solución de datos. La utilización de estas tecnologías suele requerir un conocimiento sofisticado de ingeniería de software, redes, informática distribuida, almacenamiento u otros detalles de bajo nivel. Su trabajo se dedicaría a la administración y el mantenimiento de clústeres, la gestión de la sobrecarga y la redacción de trabajos de canalización y transformación, entre otras tareas.

Hoy en día, el panorama de las herramientas de datos es mucho menos complicado de gestionar e implementar. Las herramientas de datos modernas abstraen y simplifican considerablemente los flujos de trabajo. Como resultado, los ingenieros de datos se centran ahora en equilibrar los servicios más sencillos y rentables, los mejores de su clase, que aporten valor a la empresa. También se espera que el ingeniero de datos cree arquitecturas de datos ágiles que evolucionen a medida que surgen nuevas tendencias.

¿Qué cosas no hace un ingeniero de datos? Un ingeniero de datos no suele construir directamente modelos de ML, crear informes o cuadros de mando, realizar análisis de datos, construir indicadores clave de rendimiento (KPI) ni desarrollar aplicaciones de software. Un ingeniero de datos debe tener un buen conocimiento funcional de estas áreas para servir mejor a las partes interesadas.

La madurez de los datos y el ingeniero de datos

El nivel de complejidad de la ingeniería de datos en una empresa depende en gran medida de la madurez de datos de la empresa. Esto influye significativamente en las responsabilidades laborales diarias de un ingeniero de datos y en su progresión profesional. ¿Qué es exactamente la madurez de datos?

Madurez de los datos es la progresión hacia una mayor utilización, capacidad e integración de los datos en toda la organización, pero la madurez de los datos no depende simplemente de la edad o los ingresos de una empresa. Una startup en fase inicial puede tener mayor madurez de datos que una empresa centenaria con ingresos anuales de miles de millones. Lo que importa es la forma en que se aprovechan los datos como ventaja competitiva.

Los modelos de madurez de datos tienen muchas versiones, como el de Madurez de la Gestión de Datos (DMM) y otros, y es difícil elegir uno que sea a la vez sencillo y útil para la ingeniería de datos. Así que crearemos nuestro propio modelo simplificado de madurez de datos. Nuestro modelo de madurez de datos(Figura 1-8) tiene tres etapas: empezar con los datos, escalar con los datos y liderar con los datos. Veamos cada una de estas etapas y lo que suele hacer un ingeniero de datos en cada una de ellas.

Figura 1-8. Nuestro modelo simplificado de madurez de datos para una empresa

Fase 1: Empezar con los datos

Una empresa que se inicia en el uso de datos se encuentra, por definición, en las primeras fases de su madurez de datos. La empresa puede tener objetivos difusos y poco definidos, o no tener objetivos. La arquitectura y la infraestructura de datos se encuentran en las primeras fases de planificación y desarrollo. La adopción y utilización son probablemente bajas o inexistentes. El equipo de datos es pequeño, a menudo con una plantilla de un solo dígito. En esta fase, un ingeniero de datos suele ser generalista y desempeñar otras funciones, como científico de datos o ingeniero de software. El objetivo de un ingeniero de datos es avanzar rápido, conseguir tracción y añadir valor.

Los aspectos prácticos de la obtención de valor a partir de los datos suelen entenderse mal, pero el deseo existe. Los informes o análisis carecen de estructura formal, y la mayoría de las solicitudes de datos son ad hoc. Aunque es tentador lanzarse de cabeza al ML en esta fase, no lo recomendamos. Hemos visto a innumerables equipos de datos atascarse y quedarse cortos cuando intentan saltar al ML sin construir una base sólida de datos.

Esto no quiere decir que no puedas obtener ganancias del ML en esta fase: es raro, pero posible. Sin una base de datos sólida, probablemente no tendrás los datos para entrenar modelos de ML fiables ni los medios para implementar estos modelos en producción de forma escalable y repetible. Nos llamamos a nosotros mismos, medio en broma, "científicos de datos en recuperación", sobre todo por la experiencia personal de haber participado en proyectos prematuros de ciencia de datos sin la madurez de datos o el apoyo de ingeniería de datos adecuados.

Un ingeniero de datos debe centrarse en lo siguiente en las organizaciones que empiezan a trabajar con datos:

  • Conseguir la aprobación de los principales interesados, incluida la dirección ejecutiva. Lo ideal es que el ingeniero de datos cuente con un patrocinador de las iniciativas críticas para diseñar y construir una arquitectura de datos que respalde los objetivos de la empresa.

  • Define la arquitectura de datos adecuada (normalmente en solitario, ya que es probable que no dispongas de un arquitecto de datos). Esto significa determinar los objetivos empresariales y la ventaja competitiva que pretendes conseguir con tu iniciativa de datos. Trabaja para conseguir una arquitectura de datos que respalde estos objetivos. Consulta el Capítulo 3 para ver nuestros consejos sobre una "buena" arquitectura de datos.

  • Identifica y audita los datos que apoyarán las iniciativas clave y funcionarán dentro de la arquitectura de datos que diseñaste.

  • Construye una base de datos sólida para que los futuros analistas y científicos de datos generen informes y modelos que aporten valor competitivo. Mientras tanto, puede que tú también tengas que generar estos informes y modelos hasta que se contrate a este equipo.

Esta es una etapa delicada con muchas trampas. Aquí tienes algunos consejos para esta etapa:

  • La fuerza de voluntad organizativa puede decaer si no se producen muchos éxitos visibles con los datos. Conseguir victorias rápidas establecerá la importancia de los datos dentro de la organización. Pero ten en cuenta que las victorias rápidas probablemente crearán deuda técnica. Ten un plan para reducir esta deuda, ya que, de lo contrario, añadirá fricción para futuras entregas.

  • Sal y habla con la gente, y evita trabajar en silos. A menudo vemos al equipo de datos trabajando en una burbuja, sin comunicarse con personas ajenas a sus departamentos ni obtener perspectivas y opiniones de las partes interesadas del negocio. El peligro es que pasarás mucho tiempo trabajando en cosas de poca utilidad para la gente.

  • Evita el trabajo pesado indiferenciado. No te encierres en una complejidad técnica innecesaria. Utiliza soluciones listas para usar siempre que sea posible.

  • Construye soluciones personalizadas y codifica sólo cuando ello cree una ventaja competitiva.

Fase 2: Ampliar con datos

En este punto, una empresa se ha alejado de las solicitudes de datos ad hoc y tiene prácticas formales de datos. Ahora el reto consiste en crear arquitecturas de datos escalables y planificar un futuro en el que la empresa esté realmente orientada a los datos. Las funciones de ingeniería de datos pasan de generalistas a especialistas, con personas que se centran en aspectos concretos del ciclo de vida de la ingeniería de datos.

En las organizaciones que se encuentran en la fase 2 de madurez de datos, los objetivos de un ingeniero de datos son los siguientes

  • Establecer prácticas formales de datos

  • Crear arquitecturas de datos escalables y robustas

  • Adoptar prácticas DevOps y DataOps

  • Construir sistemas que apoyen el ML

  • Sigue evitando las tareas pesadas indiferenciadas y personaliza sólo cuando de ello se derive una ventaja competitiva

Volveremos sobre cada uno de estos objetivos más adelante en el libro.

Entre las cuestiones a las que hay que prestar atención figuran las siguientes:

  • A medida que nos volvemos más sofisticados con los datos, existe la tentación de adoptar tecnologías de perímetro sangrante basadas en la prueba social de las empresas de Silicon Valley. Esto no suele ser un buen uso de tu tiempo y energía. Cualquier decisión tecnológica debe basarse en el valor que aportará a tus clientes.

  • El principal cuello de botella para la ampliación no son los nodos de clúster, el almacenamiento o la tecnología, sino el equipo de ingeniería de datos. Céntrate en soluciones sencillas de implementar y gestionar para ampliar el rendimiento de tu equipo.

  • Tendrás la tentación de presentarte como un tecnólogo, un genio de los datos que puede ofrecer productos mágicos. En lugar de ello, cambia tu enfoque hacia un liderazgo pragmático y comienza la transición a la siguiente etapa de madurez; comunícate con otros equipos sobre la utilidad práctica de los datos. Enseña a la organización cómo consumir y aprovechar los datos.

Fase 3: Dirigir con datos

En esta fase, la empresa está impulsada por los datos. Los conductos y sistemas automatizados creados por los ingenieros de datos permiten a las personas de la empresa realizar análisis y ML de autoservicio. La introducción de nuevas fuentes de datos se realiza sin problemas, y se obtiene un valor tangible. Los ingenieros de datos implementan controles y prácticas adecuados para garantizar que los datos estén siempre disponibles para las personas y los sistemas. Las funciones de los ingenieros de datos siguen especializándose más profundamente que en la etapa 2.

En las organizaciones en la etapa 3 de madurez de datos, un ingeniero de datos seguirá construyendo sobre las etapas anteriores, además de hacer lo siguiente:

  • Crea la automatización para la introducción y utilización sin fisuras de nuevos datos

  • Centrarse en crear herramientas y sistemas personalizados que aprovechen los datos como ventaja competitiva

  • Centrarse en los aspectos "empresariales" de los datos, como la gestión de datos (incluidos el gobierno y la calidad de los datos) y DataOps

  • Implementación de herramientas que exponen y difunden datos por toda la organización, incluidos catálogos de datos, herramientas de linaje de datos y sistemas de gestión de metadatos.

  • Colabora eficazmente con ingenieros de software, ingenieros de ML, analistas y otros

  • Crear una comunidad y un entorno en el que las personas puedan colaborar y hablar abiertamente, independientemente de su función o cargo

Entre las cuestiones a las que hay que prestar atención figuran las siguientes:

  • En esta etapa, la complacencia es un peligro importante. Una vez que las organizaciones alcanzan la etapa 3, deben centrarse constantemente en el mantenimiento y la mejora o corren el riesgo de volver a caer a una etapa inferior.

  • Las distracciones tecnológicas son un peligro más importante aquí que en las otras etapas. Existe la tentación de perseguir costosos proyectos de hobby que no aportan valor a la empresa. Utiliza tecnología a medida sólo cuando aporte una ventaja competitiva.

Formación y habilidades de un ingeniero de datos

Ingeniería de datos es un campo en rápido crecimiento, y aún quedan muchas preguntas sobre cómo convertirse en ingeniero de datos. Dado que la ingeniería de datos es una disciplina relativamente nueva, existe poca formación formal para entrar en este campo. Las universidades no tienen una trayectoria estándar de ingeniería de datos. Aunque un puñado de campamentos de entrenamiento de ingeniería de datos y tutoriales en línea cubren temas aleatorios, todavía no existe un plan de estudios común para la materia.

Las personas que se incorporan a la ingeniería de datos llegan con distintos antecedentes en cuanto a educación, carrera y conjunto de habilidades. Todos los que se inician en este campo deben esperar invertir una cantidad significativa de tiempo en el autoaprendizaje. La lectura de este libro es un buen punto de partida; uno de los principales objetivos de este libro es proporcionarte una base de los conocimientos y habilidades que consideramos necesarios para tener éxito como ingeniero de datos.

Si estás dando un giro a tu carrera hacia la ingeniería de datos, hemos descubierto que la transición es más fácil cuando se pasa de un campo adyacente, como la ingeniería de software, el desarrollo ETL, la administración de bases de datos, la ciencia de datos o el análisis de datos. Estas disciplinas tienden a ser "conscientes de los datos" y proporcionan un buen contexto para las funciones de datos en una organización. También dotan a la gente de las habilidades técnicas y el contexto pertinentes para resolver problemas de ingeniería de datos.

A pesar de la falta de un camino formalizado, existe un conjunto de conocimientos necesarios que creemos que un ingeniero de datos debe conocer para tener éxito. Por definición, un ingeniero de datos debe comprender tanto los datos como la tecnología. Con respecto a los datos, esto implica conocer diversas buenas prácticas en torno a la gestión de datos. En cuanto a la tecnología, un ingeniero de datos debe conocer varias opciones de herramientas, su interacción y sus ventajas y desventajas. Esto requiere una buena comprensión de la ingeniería de software, DataOps y arquitectura de datos.

Si ampliamos la perspectiva, un ingeniero de datos también debe comprender los requisitos de los consumidores de datos (analistas y científicos de datos) y las implicaciones más amplias de los datos en toda la organización. La ingeniería de datos es una práctica holística; los mejores ingenieros de datos ven sus responsabilidades a través de lentes empresariales y técnicas.

Responsabilidades empresariales

Las macroresponsabilidades de que enumeramos en esta sección no son exclusivas de los ingenieros de datos, sino que son cruciales para cualquiera que trabaje en un campo tecnológico o de datos. Como una simple búsqueda en Google arrojará toneladas de recursos para aprender sobre estas áreas, nos limitaremos a enumerarlas por brevedad:

Saber comunicarse con personas no técnicas y técnicas.

La comunicación es clave, y tienes que ser capaz de establecer una buena relación y confianza con las personas de toda la organización. Te sugerimos que prestes mucha atención a las jerarquías organizativas, quién informa a quién, cómo interactúa la gente y qué silos existen. Estas observaciones serán muy valiosas para tu éxito.

Comprende cómo determinar el alcance y reunir los requisitos empresariales y del producto.

Tienes que saber qué construir y asegurarte de que las partes interesadas están de acuerdo con tu evaluación. Además, desarrolla un sentido de cómo los datos y las decisiones tecnológicas afectan al negocio.

Comprender los fundamentos culturales de Agile, DevOps y DataOps.

Muchos tecnólogos creen erróneamente que estas prácticas se resuelven mediante la tecnología. Creemos que esto es peligrosamente erróneo. Agile, DevOps y DataOps son fundamentalmente culturales, y requieren la implicación de toda la organización.

Controla los costes.

Tendrás éxito cuando puedas mantener los costes bajos y, al mismo tiempo, proporcionar un valor desmesurado. Aprende a optimizar el tiempo de obtención de valor, el coste total de propiedad y el coste de oportunidad. Aprende a monitorear los costes para evitar sorpresas.

Aprende continuamente.

El campo de los datos parece cambiar a la velocidad de la luz. Las personas que triunfan en él son muy buenas captando cosas nuevas al tiempo que perfeccionan sus conocimientos fundamentales. También son buenos filtrando, determinando qué novedades son más relevantes para su trabajo, cuáles están aún inmaduras y cuáles son sólo modas pasajeras. Mantente al día en este campo y aprende a aprender.

Un ingeniero de datos de éxito siempre se aleja para comprender el panorama general y cómo conseguir un valor superior para la empresa. La comunicación es vital, tanto para los técnicos como para los no técnicos. A menudo vemos que los equipos de datos tienen éxito gracias a su comunicación con otras partes interesadas; el éxito o el fracaso rara vez es una cuestión tecnológica. Saber cómo desenvolverte en una organización, determinar el alcance y reunir los requisitos, controlar los costes y aprender continuamente te diferenciará de los ingenieros de datos que confían únicamente en sus capacidades técnicas para llevar adelante su carrera.

Responsabilidades técnicas

debes entender cómo construir arquitecturas que optimicen el rendimiento y el coste a un alto nivel, utilizando componentes preempaquetados o de cosecha propia. En última instancia, las arquitecturas y las tecnologías constituyentes son bloques de construcción al servicio del ciclo de vida de la ingeniería de datos. Recuerda las etapas del ciclo de vida de la ingeniería de datos:

  • Generación

  • Almacenamiento

  • Ingestión

  • Transformación

  • Sirviendo a

Las corrientes subyacentes del ciclo de vida de la ingeniería de datos son las siguientes:

  • Seguridad

  • Gestión de datos

  • DataOps

  • Arquitectura de datos

  • Orquestación

  • Ingeniería de software

Acercándonos un poco más, en esta sección tratamos algunas de las habilidades tácticas en materia de datos y tecnología que necesitarás como ingeniero de datos; las trataremos con más detalle en capítulos posteriores.

A menudo la gente se pregunta: ¿debe un ingeniero de datos saber codificar? Respuesta corta: sí. Un ingeniero de datos debe tener conocimientos de ingeniería de software de nivel de producción. Observamos que la naturaleza de los proyectos de desarrollo de software emprendidos por los ingenieros de datos ha cambiado fundamentalmente en los últimos años. Los servicios totalmente gestionados sustituyen ahora a gran parte del esfuerzo de programación de bajo nivel que antes se esperaba de los ingenieros, que ahora utilizan código abierto gestionado y sencillas ofertas de software como servicio (SaaS) plug-and-play. Por ejemplo, los ingenieros de datos se centran ahora en abstracciones de alto nivel o en escribir canalizaciones como código dentro de un marco de orquestación.

Incluso en un mundo más abstracto, las buenas prácticas de ingeniería de software proporcionan una ventaja competitiva, y los ingenieros de datos que pueden profundizar en los detalles arquitectónicos de un código base dan a sus empresas un perímetro de ventaja cuando surgen necesidades técnicas específicas. En resumen, un ingeniero de datos que no sepa escribir código de producción se verá gravemente perjudicado, y no creemos que esto vaya a cambiar pronto. Los ingenieros de datos siguen siendo ingenieros de software, además de sus muchas otras funciones.

¿Qué lenguajes debe conocer un ingeniero de datos? En dividimos los lenguajes de programación de la ingeniería de datos en categorías primarias y secundarias. En el momento de escribir esto, los lenguajes primarios de la ingeniería de datos son SQL, Python, un lenguaje de máquina virtual Java (JVM) (normalmente Java o Scala) y bash:

SQL

La interfaz más común para bases de datos y lagos de datos. Tras quedar brevemente marginado por la necesidad de escribir código MapReduce personalizado para el procesamiento de big data, SQL (en diversas formas) ha resurgido como la lingua franca de los datos.

Python

El lenguaje puente entre la ingeniería de datos y la ciencia de datos. Un número creciente de herramientas de ingeniería de datos están escritas en Python o tienen API de Python. Se le conoce como "el segundo mejor lenguaje en todo". Python es la base de herramientas de datos populares como pandas, NumPy, Airflow, sci-kit learn, TensorFlow, PyTorch y PySpark. Python es el pegamento entre los componentes subyacentes y con frecuencia es un lenguaje API de primera clase para interactuar con un marco de trabajo.

Lenguajes JVM como Java y Scala

Prevalece para los proyectos de código abierto de Apache, como Spark, Hive y Druid. La JVM suele tener más rendimiento que Python y puede proporcionar acceso a funciones de menor nivel que una API de Python (por ejemplo, es el caso de Apache Spark y Beam). Comprender Java o Scala será beneficioso si utilizas un marco de datos de código abierto popular.

bash

La interfaz de línea de comandos para sistemas operativos Linux. Conocer los comandos bash y sentirte cómodo utilizando las CLI mejorará significativamente tu productividad y flujo de trabajo cuando necesites hacer scripts o realizar operaciones en el SO. Incluso hoy en día, los ingenieros de datos utilizan con frecuencia herramientas de línea de comandos como awk o sed para procesar archivos en una canalización de datos o llamar a comandos bash desde marcos de orquestación. Si utilizas Windows, no dudes en sustituir bash por PowerShell.

Los ingenieros de datos también pueden necesitar desarrollar competencia en lenguajes de programación secundarios, como R, JavaScript, Go, Rust, C/C++, C# y Julia. El desarrollo en estos lenguajes suele ser necesario cuando son populares en toda la empresa o se utilizan con herramientas de datos específicas del dominio. Por ejemplo, JavaScript ha demostrado ser popular como lenguaje para funciones definidas por el usuario en almacenes de datos en la nube. Al mismo tiempo, C# y PowerShell son esenciales en empresas que aprovechan Azure y el ecosistema de Microsoft .

El Continuo de las Funciones de la Ingeniería de Datos, de A a B

Aunque las descripciones de puestos de trabajo de pintan al ingeniero de datos como un "unicornio" que debe poseer todas las habilidades de datos imaginables, no todos los ingenieros de datos hacen el mismo tipo de trabajo ni tienen el mismo conjunto de habilidades. La madurez de datos es una guía útil para comprender los tipos de retos de datos a los que se enfrentará una empresa a medida que aumente su capacidad de datos. Resulta beneficioso observar algunas distinciones críticas en los tipos de trabajo que realizan los ingenieros de datos. Aunque estas distinciones son simplistas, aclaran lo que hacen los científicos de datos y los ingenieros de datos, y evitan meter a ambos en el mismo saco.

En ciencia de datos, existe la noción de científicos de datos de tipo A y de tipo B.10 Los científicos de datos de tipo A -donde A significa análisis- se centranen comprender y extraer información de los datos. Los científicos de datos de tipo B -donde B significa construcción- compartenuna formación similar a la de los científicos de datos de tipo A y poseen grandes conocimientos de programación. El científico de datos de tipo B construye sistemas que hacen que la ciencia de datos funcione en la producción. Tomando prestado de este continuo de científicos de datos, crearemos una distinción similar para dos tipos de ingenieros de datos:

Ingenieros de datos de tipo A

A significa abstracción. En este caso, el ingeniero de datos evita el trabajo pesado indiferenciado, manteniendo la arquitectura de datos lo más abstracta y sencilla posible y sin reinventar la rueda. Los ingenieros de datos de Tipo A gestionan el ciclo de vida de la ingeniería de datos principalmente mediante el uso de productos, servicios gestionados y herramientas totalmente disponibles en el mercado. Los ingenieros de datos de tipo A trabajan en empresas de todos los sectores y en todos los niveles de madurez de los datos.

Ingenieros de datos de tipo B

B significa construir. Los ingenieros de datos de tipo B construyen herramientas y sistemas de datos que escalan y aprovechan la competencia básica y la ventaja competitiva de una empresa. En el rango de madurez de los datos, un ingeniero de datos de tipo B se encuentra más comúnmente en empresas en las etapas 2 y 3 (escalando y liderando con datos), o cuando un caso inicial de uso de datos es tan único y de misión crítica que se requieren herramientas de datos personalizadas para empezar.

Los ingenieros de datos de tipo A y de tipo B pueden trabajar en la misma empresa, ¡e incluso ser la misma persona! Lo más habitual es que se contrate primero a un ingeniero de datos de tipo A para sentar las bases, y que los ingenieros de datos de tipo B aprendan o se contraten a medida que surja la necesidad en la empresa.

Ingenieros de datos dentro de una organización

Los ingenieros de datos no trabajan en el vacío. Dependiendo de en qué estén trabajando, interactuarán con personas técnicas y no técnicas y se enfrentarán a diferentes direcciones (internas y externas). Exploremos qué hacen los ingenieros de datos dentro de una organización y con quién interactúan.

Ingenieros de datos internos y externos

Un ingeniero de datos sirve a varios usuarios finales y se enfrenta a muchas direcciones internas y externas(Figura 1-9). Como no todas las cargas de trabajo y responsabilidades de la ingeniería de datos son iguales, es esencial comprender a quién sirve el ingeniero de datos. Según los casos de uso final, las principales responsabilidades de un ingeniero de datos son de cara al exterior, de cara al interior o una mezcla de ambas.

Figura 1-9. Las direcciones a las que se enfrenta un ingeniero de datos

Un ingeniero de datos de cara al exterior de normalmente se alinea con los usuarios de aplicaciones de cara al exterior, como aplicaciones de redes sociales, dispositivos del Internet de las Cosas (IoT) y plataformas de comercio electrónico. Este ingeniero de datos diseña, construye y gestiona los sistemas que recopilan, almacenan y procesan los datos transaccionales y de eventos de estas aplicaciones. Los sistemas construidos por estos ingenieros de datos tienen un bucle de retroalimentación desde la aplicación a la canalización de datos, y luego de vuelta a la aplicación(Figura 1-10).

Figura 1-10. Sistemas externos de ingeniería de datos

La ingeniería de datos de cara al exterior presenta una serie de problemas únicos. Los motores de consulta externos suelen manejar cargas de concurrencia mucho mayores que los sistemas internos. Los ingenieros también tienen que considerar poner límites estrictos a las consultas que pueden ejecutar los usuarios para limitar el impacto en la infraestructura de un solo usuario. Además, la seguridad es un problema mucho más complejo y delicado para las consultas externas, sobre todo si los datos que se consultan son multiusuario (datos de muchos clientes y alojados en una única tabla).

Un ingeniero de datos interno de suele centrarse en actividades cruciales para las necesidades de la empresa y las partes interesadas internas(Figura 1-11). Algunos ejemplos son la creación y el mantenimiento de canalizaciones de datos y almacenes de datos para cuadros de mando de BI, informes, procesos empresariales, ciencia de datos y modelos de ML.

Figura 1-11. Ingeniero de datos de cara al interior

Las responsabilidades de cara al exterior y de cara al interior suelen estar mezcladas. En la práctica, los datos internos suelen ser un requisito previo para los datos externos. El ingeniero de datos tiene dos conjuntos de usuarios con requisitos muy diferentes en cuanto a concurrencia de consultas, seguridad y demás.

Ingenieros de datos y otras funciones técnicas

En la práctica, el ciclo de vida de la ingeniería de datos abarca muchos ámbitos de responsabilidad. Los ingenieros de datos se sitúan en el nexo de unión de varias funciones, directamente o a través de directivos, interactuando con muchas unidades organizativas.

Veamos a quién puede afectar un ingeniero de datos. En esta sección, hablaremos de las funciones técnicas relacionadas con la ingeniería de datos(Figura 1-12).

Figura 1-12. Actores técnicos clave de la ingeniería de datos

El ingeniero de datos es un enlace entre los productores de datos de, como los ingenieros de software, los arquitectos de datos y los ingenieros de DevOps o de fiabilidad del sitio (SRE), y los consumidores de datos, como los analistas de datos, los científicos de datos y los ingenieros de ML. Además, los ingenieros de datos interactuarán con los que desempeñan funciones operativas, como los ingenieros de DevOps.

Dado el ritmo al que se ponen de moda las nuevas funciones relacionadas con los datos (me vienen a la mente los ingenieros analíticos y de ML), ésta no es en absoluto una lista exhaustiva.

Partes interesadas en las fases anteriores

Para tener éxito como ingeniero de datos, necesitas comprender la arquitectura de datos que estás utilizando o diseñando y los sistemas fuente que producen los datos que necesitarás. A continuación, hablaremos de algunas partes interesadas conocidas: arquitectos de datos, ingenieros de software e ingenieros DevOps.

Arquitectos de datos

Los arquitectos de datos funcionan a un nivel de abstracción un paso por debajo de los ingenieros de datos. Los arquitectos de datos diseñan el anteproyecto de la gestión de datos de la organización, trazando los procesos y la arquitectura y los sistemas generales de datos.11 También sirven de puente entre los aspectos técnicos y no técnicos de una organización. Los arquitectos de datos de éxito suelen tener "cicatrices de batalla" de una amplia experiencia en ingeniería, lo que les permite guiar y ayudar a los ingenieros al tiempo que comunican con éxito los retos de la ingeniería a las partes interesadas empresariales no técnicas.

Los arquitectos de datos aplican políticas de gestión de datos en silos y unidades de negocio, dirigen estrategias globales como la gestión de datos y la gobernanza de datos, y orientan iniciativas importantes. Los arquitectos de datos desempeñan a menudo un papel central en las migraciones a la nube y en el diseño de nubes nuevas.

La llegada de la nube ha desplazado la frontera entre la arquitectura de datos y la ingeniería de datos. Las arquitecturas de datos en la nube son mucho más fluidas que los sistemas locales, por lo que las decisiones de arquitectura que tradicionalmente implicaban amplios estudios, largos plazos de entrega, contratos de compra e instalación de hardware se toman ahora a menudo durante el proceso de implementación, como un paso más de una estrategia más amplia. No obstante, los arquitectos de datos seguirán siendo visionarios influyentes en las empresas, trabajando mano a mano con los ingenieros de datos para determinar el panorama general de las prácticas de arquitectura y las estrategias de datos.

Dependiendo de la madurez y el tamaño de los datos de la empresa, un ingeniero de datos puede solaparse con las responsabilidades de un arquitecto de datos o asumirlas. Por tanto, un ingeniero de datos debe conocer bien las buenas prácticas y enfoques de la arquitectura.

Ten en cuenta que hemos colocado a los arquitectos de datos en la sección de partes interesadas anteriores. Los arquitectos de datos suelen ayudar a diseñar capas de datos de aplicaciones que son sistemas fuente para los ingenieros de datos. Los arquitectos también pueden interactuar con los ingenieros de datos en otras fases del ciclo de vida de la ingeniería de datos. Trataremos la "buena" arquitectura de datos en el Capítulo 3.

Ingenieros de software

Los ingenieros de software construyen el software y los sistemas que hacen funcionar una empresa; son en gran parte responsables de generar los datos internos que los ingenieros de datos consumirán y procesarán. Los sistemas construidos por los ingenieros de software suelen generar datos de eventos y registros de aplicaciones, que son activos importantes por derecho propio. Estos datos internos contrastan con los datos externos extraídos de plataformas SaaS o empresas asociadas. En las organizaciones técnicas bien gestionadas, los ingenieros de software y los ingenieros de datos se coordinan desde el inicio de un nuevo proyecto para diseñar los datos de la aplicación que consumirán las aplicaciones analíticas y de ML.

Un ingeniero de datos debe trabajar junto con los ingenieros de software para comprender las aplicaciones que generan datos, el volumen, la frecuencia y el formato de los datos generados, y cualquier otra cosa que afecte al ciclo de vida de la ingeniería de datos, como la seguridad de los datos y el cumplimiento de la normativa. Por ejemplo, esto podría significar establecer expectativas previas sobre lo que los ingenieros de software de datos necesitan para hacer su trabajo. Los ingenieros de datos deben colaborar estrechamente con los ingenieros de software.

Ingenieros de DevOps e ingenieros de fiabilidad del sitio web

Los DevOps y los SRE a menudo producen datos a través del monitoreo operativo. Los clasificamos como "aguas arriba" de los ingenieros de datos, pero también pueden estar "aguas abajo", consumiendo datos a través de cuadros de mando o interactuando directamente con los ingenieros de datos en la coordinación de las operaciones de los sistemas de datos.

Partes interesadas de las fases posteriores

La ingeniería de datos existe para servir a los consumidores de datos y casos de uso posteriores. Esta sección trata de cómo interactúan los ingenieros de datos con diversas funciones posteriores. También presentaremos algunos modelos de servicio, incluidos los equipos de ingeniería de datos centralizados y los equipos interfuncionales.

Científicos de datos

Los científicos de datos construyen modelos prospectivos para hacer predicciones y recomendaciones. A continuación, estos modelos se evalúan sobre datos en vivo para aportar valor de diversas formas. Por ejemplo, la puntuación de los modelos puede determinar acciones automatizadas en respuesta a condiciones en tiempo real, recomendar productos a los clientes basándose en el historial de navegación de su sesión actual, o hacer predicciones económicas en directo utilizadas por los operadores.

Según el folclore común del sector, los científicos de datos dedican entre el 70% y el 80% de su tiempo a recopilar, limpiar y preparar datos.12 Según nuestra experiencia, estas cifras suelen reflejar prácticas inmaduras de ciencia de datos e ingeniería de datos. En particular, muchos marcos populares de ciencia de datos pueden convertirse en cuellos de botella si no se amplían adecuadamente. Los científicos de datos que trabajan exclusivamente en una única estación de trabajo se ven obligados a reducir la muestra de datos, lo que complica considerablemente la preparación de los datos y puede comprometer la calidad de los modelos que producen. Además, el código y los entornos desarrollados localmente suelen ser difíciles de implementar en producción, y la falta de automatización dificulta considerablemente los flujos de trabajo de la ciencia de datos. Si los ingenieros de datos hacen su trabajo y colaboran con éxito, los científicos de datos no deberían dedicar su tiempo a recopilar, limpiar y preparar los datos tras el trabajo exploratorio inicial. Los ingenieros de datos deberían automatizar este trabajo en la medida de lo posible.

La necesidad de una ciencia de datos preparada para la producción es un importante motor de la aparición de la profesión de ingeniero de datos. Los ingenieros de datos deben ayudar a los científicos de datos a habilitar un camino hacia la producción. De hecho, nosotros (los autores) pasamos de la ciencia de datos a la ingeniería de datos tras reconocer esta necesidad fundamental. Los ingenieros de datos trabajan para proporcionar la automatización y la escala de datos que hacen que la ciencia de datos sea más eficiente.

Analistas de datos

Analistas de datos (o analistas empresariales) tratan de comprender el rendimiento y las tendencias empresariales. Mientras que los científicos de datos miran hacia el futuro, un analista de datos suele centrarse en el pasado o el presente. Los analistas de datos suelen ejecutar consultas SQL en un almacén de datos o un lago de datos. También pueden utilizar hojas de cálculo para el cálculo y el análisis y diversas herramientas de BI como Microsoft Power BI, Looker o Tableau. Los analistas de datos son expertos en los datos con los que trabajan frecuentemente y se familiarizan íntimamente con las definiciones, características y problemas de calidad de los datos. Los clientes finales típicos de un analista de datos son los usuarios empresariales, la dirección y los ejecutivos.

Los ingenieros de datos trabajan con los analistas de datos para crear canalizaciones para las nuevas fuentes de datos que necesita la empresa. La experiencia en la materia de los analistas de datos es inestimable para mejorar la calidad de los datos, y con frecuencia colaboran con los ingenieros de datos en esta función.

Ingenieros de aprendizaje automático e investigadores de IA

Los ingenieros de aprendizaje automático (ingenieros de ML) se solapan con los ingenieros de datos y los científicos de datos. Los ingenieros de ML desarrollan técnicas avanzadas de ML, entrenan modelos y diseñan y mantienen la infraestructura que ejecuta los procesos de ML en un entorno de producción a escala. Los ingenieros de ML suelen tener conocimientos prácticos avanzados de técnicas y marcos de ML y aprendizaje profundo, como PyTorch o TensorFlow.

Los ingenieros de ML también conocen el hardware, los servicios y los sistemas necesarios para ejecutar estos marcos, tanto para la formación de modelos como para su implementación a escala de producción. Es habitual que los flujos de ML se ejecuten en un entorno en la nube, donde los ingenieros de ML pueden poner en marcha y escalar los recursos de infraestructura bajo demanda o depender de servicios gestionados.

Como hemos mencionado, los límites entre la ingeniería de ML, la ingeniería de datos y la ciencia de datos son difusos. Los ingenieros de datos pueden tener algunas responsabilidades operativas sobre los sistemas de ML, y los científicos de datos pueden colaborar estrechamente con la ingeniería de ML en el diseño de procesos avanzados de ML.

El mundo de la ingeniería del ML está creciendo como una bola de nieve y es paralelo a muchos de los mismos avances que se están produciendo en la ingeniería de datos. Mientras que hace varios años, la atención del ML se centraba en cómo construir modelos, la ingeniería de ML ahora hace cada vez más hincapié en incorporar las buenas prácticas de las operaciones de aprendizaje automático (MLOps) de y otras prácticas maduras adoptadas previamente en la ingeniería de software y DevOps.

Los investigadores de IA trabajan en nuevas técnicas avanzadas de ML. Los investigadores de IA pueden trabajar dentro de grandes empresas tecnológicas, startups especializadas en propiedad intelectual (OpenAI, DeepMind) o instituciones académicas. Algunos profesionales se dedican a la investigación a tiempo parcial junto con responsabilidades de ingeniería de ML dentro de una empresa. Los que trabajan en laboratorios especializados en ML suelen dedicarse al 100% a la investigación. Los problemas de investigación pueden tener como objetivo aplicaciones prácticas inmediatas o demostraciones más abstractas de la IA. DALL-E, Gato AI, AlphaGo y GPT-3/GPT-4 son grandes ejemplos de proyectos de investigación en ML. Dado el ritmo de los avances en ML, es muy probable que estos ejemplos resulten pintorescos dentro de unos años. Hemos proporcionado algunas referencias en "Recursos adicionales".

Los investigadores de IA en organizaciones bien financiadas están muy especializados y trabajan con equipos de ingenieros de apoyo para facilitar su trabajo. Los ingenieros de ML en el mundo académico suelen tener menos recursos, pero dependen de equipos de estudiantes de posgrado, postdoctorados y personal universitario para proporcionar apoyo de ingeniería. Los ingenieros de ML que se dedican parcialmente a la investigación suelen contar con los mismos equipos de apoyo para la investigación y la producción.

Ingenieros de datos y liderazgo empresarial

Hemos hablado en de las funciones técnicas con las que interactúa un ingeniero de datos. Pero los ingenieros de datos también operan más ampliamente como conectores organizativos, a menudo en una capacidad no técnica. Las empresas dependen cada vez más de los datos como parte esencial de muchos productos o como un producto en sí mismo. Los ingenieros de datos participan ahora en la planificación estratégica y dirigen iniciativas clave que van más allá de los límites de TI. Los ingenieros de datos a menudo apoyan a los arquitectos de datos actuando como enlace entre la empresa y la ciencia/analítica de datos.

Los datos en la alta dirección

Los ejecutivos de nivel C están cada vez más implicados en los datos y el análisis, ya que se reconocen como activos importantes para las empresas modernas. Por ejemplo, los directores generales se ocupan ahora de iniciativas que antes eran competencia exclusiva de TI, como las migraciones a la nube o la implementación de una nueva plataforma de datos de clientes.

Director General

Los Directores Generales (CEO) de las empresas no tecnológicas no suelen preocuparse por el meollo de los marcos de datos y el software. En su lugar, definen una visión en colaboración con las funciones técnicas de la alta dirección y la dirección de datos de la empresa. Los ingenieros de datos proporcionan una ventana a lo que es posible con los datos. Los ingenieros de datos y sus responsables mantienen un mapa de los datos de que dispone la organización -tanto internos como de terceros- y en qué plazo. También se encargan de estudiar los cambios arquitectónicos de los datos primarios en colaboración con otras funciones de ingeniería. Por ejemplo, los ingenieros de datos suelen estar muy implicados en las migraciones a la nube, las migraciones a nuevos sistemas de datos o la implementación de tecnologías de streaming.

Director de Información

Un director de información (CIO) es el alto ejecutivo de la dirección ejecutiva responsable de la tecnología de la información dentro de una organización; es una función de cara al interior. Un CIO debe poseer un profundo conocimiento de la tecnología de la información y de los procesos empresariales; cualquiera de ellos por sí solo es insuficiente. Los CIO dirigen la organización de la tecnología de la información, estableciendo políticas continuas y definiendo y ejecutando iniciativas importantes bajo la dirección del director general.

Los CIO suelen colaborar con la dirección de ingeniería de datos en organizaciones con una cultura de datos bien desarrollada. Si una organización no tiene una madurez de datos muy elevada, un CIO suele ayudar a dar forma a su cultura de datos. Los CIO trabajarán con ingenieros y arquitectos para trazar las principales iniciativas y tomar decisiones estratégicas sobre la adopción de los principales elementos arquitectónicos, como los sistemas de planificación de recursos empresariales (ERP) y de gestión de las relaciones con los clientes (CRM), las migraciones a la nube, los sistemas de datos y la TI de cara al interior.

Director de Tecnología

Un director de tecnología (CTO) de es similar a un CIO, pero de cara al exterior. Un CTO posee la estrategia y las arquitecturas tecnológicas clave para las aplicaciones orientadas al exterior, como móviles, aplicaciones web e IoT, todas ellas fuentes de datos fundamentales para los ingenieros de datos. Es probable que el director de tecnología sea un tecnólogo experto y tenga un buen sentido de los fundamentos de la ingeniería de software y la arquitectura de sistemas. En algunas organizaciones sin un CIO, el CTO o a veces el director de operaciones (COO) de desempeña el papel de CIO. Los ingenieros de datos suelen informar directa o indirectamente a través de un CTO.

Director de datos

El chief data officer (CDO) fue creado en 2002 en Capital One para reconocer la creciente importancia de los datos como activo empresarial. El CDO es responsable de los activos y la estrategia de datos de una empresa. Los CDO se centran en la utilidad empresarial de los datos, pero deben tener una sólida base técnica. Los CDO supervisan los productos de datos, la estrategia, las iniciativas y las funciones básicas, como la gestión de datos maestros y la privacidad. Ocasionalmente, los CDO gestionan la analítica empresarial y la ingeniería de datos.

Jefe de análisis

El chief analytics officer (CAO) es una variante del papel del CDO. Cuando existen ambas funciones, el CDO se centra en la tecnología y la organización necesarias para proporcionar datos. El CAO es responsable de la analítica, la estrategia y la toma de decisiones para la empresa. Un CAO puede supervisar la ciencia de datos y el ML, aunque esto depende en gran medida de si la empresa tiene un papel de CDO o de CTO.

Jefe de algoritmos

Un chief algorithms officer (CAO-2) es una innovación reciente en la C-suite, un papel altamente técnico centrado específicamente en la ciencia de datos y el ML. Los CAO-2 suelen tener experiencia como colaboradores individuales y jefes de equipo en proyectos de ciencia de datos o ML. Con frecuencia, tienen experiencia en investigación de ML y un título superior relacionado.

Se espera que los CAO-2 estén familiarizados con la investigación actual en ML y tengan un profundo conocimiento técnico de las iniciativas de ML de su empresa. Además de crear iniciativas empresariales, proporcionan liderazgo técnico, establecen agendas de investigación y desarrollo y crean equipos de investigación.

Ingenieros de datos y gestores de proyectos

Los ingenieros de datos trabajan a menudo en iniciativas importantes, que pueden durar muchos años. Mientras escribimos este libro, muchos ingenieros de datos están trabajando en migraciones a la nube, migrando canalizaciones y almacenes a la próxima generación de herramientas de datos. Otros ingenieros de datos están iniciando proyectos totalmente nuevos, montando nuevas arquitecturas de datos desde cero, seleccionando entre un asombroso número de opciones de arquitectura y herramientas de primera categoría.

Estas grandes iniciativas a menudo se benefician de la gestión de proyectos (a diferencia de la gestión de productos, de la que hablaremos a continuación). Mientras que los ingenieros de datos se ocupan de la infraestructura y la prestación de servicios, los gestores de proyectos dirigen el tráfico y actúan como guardianes. La mayoría de los gestores de proyectos trabajan según alguna variante de Agile y Scrum, aunque ocasionalmente sigue apareciendo Waterfall. El negocio nunca duerme, y las partes interesadas suelen tener una importante acumulación de cosas que quieren abordar y nuevas iniciativas que quieren lanzar. Los gestores de proyectos deben filtrar una larga lista de peticiones y priorizar los entregables críticos para mantener los proyectos en marcha y servir mejor a la empresa.

Los ingenieros de datos interactúan con los gestores de proyectos, a menudo planificando sprints para los proyectos y los consiguientes standups relacionados con el sprint. Los ingenieros de datos informan a los jefes de proyecto y a otras partes interesadas sobre los avances y los bloqueos, y los jefes de proyecto equilibran la cadencia de los equipos tecnológicos con las necesidades siempre cambiantes de la empresa.

Ingenieros de datos y jefes de producto

Los gestores de productos supervisan el desarrollo de productos, y a menudo son propietarios de líneas de productos. En el contexto de los ingenieros de datos, estos productos se denominan productos de datos. Los productos de datos se construyen desde cero o son mejoras incrementales de productos existentes. Los ingenieros de datos interactúan con más frecuencia con los gestores de productos, ya que el mundo empresarial ha adoptado un enfoque centrado en los datos. Al igual que los gestores de proyectos, los gestores de productos equilibran la actividad de los equipos tecnológicos con las necesidades del cliente y del negocio.

Ingenieros de datos y otras funciones de gestión

Los ingenieros de datos interactúan con varios gestores más allá de los jefes de proyecto y de producto. Sin embargo, estas interacciones suelen seguir los modelos de servicios o interfuncional. Los ingenieros de datos atienden diversas solicitudes entrantes como un equipo centralizado o trabajan como un recurso asignado a un gestor, proyecto o producto concreto.

Para más información sobre los equipos de datos y cómo estructurarlos, recomendamos Building Analytics Teams (Packt), de John Thompson, y Data Teams (Apress), de Jesse Anderson. Ambos libros proporcionan sólidos marcos y perspectivas sobre las funciones de los ejecutivos con los datos, a quién contratar y cómo construir el equipo de datos más eficaz para tu empresa.

Nota

Las empresas no contratan ingenieros simplemente para que pirateen código de forma aislada. Para ser dignos de su título, los ingenieros deben desarrollar un profundo conocimiento de los problemas que deben resolver, de las herramientas tecnológicas de que disponen y de las personas con las que trabajan y a las que sirven.

Conclusión

Este capítulo te ha proporcionado una breve visión general del panorama de la ingeniería de datos, incluyendo lo siguiente:

  • Definir la ingeniería de datos y describir lo que hacen los ingenieros de datos

  • Describir los tipos de madurez de los datos en una empresa

  • Ingenieros de datos tipo A y tipo B

  • Con quién trabajan los ingenieros de datos

Esperamos que este primer capítulo te haya abierto el apetito, ya seas un profesional del desarrollo de software, un científico de datos, un ingeniero de ML, un interesado en los negocios, un empresario o un inversor de capital riesgo. Por supuesto, aún queda mucho por dilucidar en los capítulos siguientes. El Capítulo 2 abarca el ciclo de vida de la ingeniería de datos, seguido de la arquitectura en el Capítulo 3. Los capítulos siguientes entran en el meollo de las decisiones tecnológicas para cada parte del ciclo de vida. Todo el campo de los datos está en constante cambio y, en la medida de lo posible, cada capítulo se centra en los inmutables: perspectivasque serán válidas durante muchos años en medio de un cambio incesante.

Recursos adicionales

1 "Ingeniería de datos y sus conceptos principales", AlexSoft, última actualización : 26 de agosto de 2021, https://oreil.ly/e94py.

2 ETL significa extraer, transformar, cargar, un patrón común que cubrimos en el libro.

3 Jesse Anderson, "Los dos tipos de ingeniería de datos", 27 de junio de 2018, https://oreil.ly/dxDt6.

4 Maxime Beauchemin, "El auge del ingeniero de datos", 20 de enero de 2017, https://oreil.ly/kNDmd.

5 Lewis Gavin, ¿Qué es la ingeniería de datos? (Sebastapol, CA: O'Reilly, 2020), https://oreil.ly/ELxLi.

6 Cade Metz, "How Yahoo Spawned Hadoop, the Future of Big Data", Wired, 18 de octubre de 2011, https://oreil.ly/iaD9G.

7 Ron Miller, "How AWS Came to Be", TechCrunch, 2 de julio de 2016, https://oreil.ly/VJehv.

8 DataOps es la abreviatura de operaciones de datos. Tratamos este tema en el Capítulo 2. Para más información, lee el Manifiesto DataOps.

9 Estas siglas significan Ley de Privacidad del Consumidor de California y Reglamento General de Protección de Datos, respectivamente.

10 Robert Chang, "Doing Data Science at Twitter", Medium, 20 de junio de 2015, https://oreil.ly/xqjAx.

11 Paramita (Guha) Ghosh, "Arquitecto de datos frente a ingeniero de datos", Dataversity, 12 de noviembre de 2021, https://oreil.ly/TlyZY.

12 Existen diversas referencias a esta noción. Aunque este cliché es ampliamente conocido, ha surgido un sano debate en torno a su validez en diferentes entornos prácticos. Para más detalles, véase Leigh Dodds, "¿Pasan los científicos de datos el 80% de su tiempo limpiando datos? Resulta que no". Lost Boy blog, 31 de enero de 2020, https://oreil.ly/szFww; y Alex Woodie, "Data Prep Still Dominates Data Scientists' Time, Survey Finds", Datanami, 6 de julio de 2020, https://oreil.ly/jDVWF.

Get Fundamentos de la Ingeniería de Datos now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.