Capítulo 1. Introducción a las canalizaciones de datos
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Detrás de cada panel de control brillante, modelo de aprendizaje automático y conocimiento que cambia el negocio, hay datos. No sólo datos en bruto, sino datos recogidos de numerosas fuentes que deben limpiarse, procesarse y combinarse para aportar valor. La famosa frase "los datos son el nuevo petróleo" ha demostrado ser cierta. Al igual que el petróleo, el valor de los datos reside en su potencial una vez refinados y entregados al consumidor. También como el petróleo, se necesitan conductos eficientes para entregar los datos a través de cada etapa de su cadena de valor.
Esta Referencia de Bolsillo analiza qué son estas canalizaciones de datos y muestra cómo encajan en un ecosistema de datos moderno. Abarca consideraciones comunes y puntos de decisión clave a la hora de implantar canalizaciones, como la ingesta de datos por lotes frente a la de flujo, la creación frente a la compra de herramientas, etc. Aunque no es exclusivo de un único lenguaje o plataforma, aborda las decisiones más comunes que toman los profesionales de los datos, a la vez que discute los conceptos fundamentales que se aplican a las soluciones de cosecha propia, a los marcos de trabajo de código abierto y a los productos comerciales.
¿Qué son las canalizaciones de datos?
Las canalizaciones de datos son conjuntos de procesos que mueven y transforman los datos desde diversas fuentes hasta un destino del que puede derivarse nuevo valor. Son la base de las capacidades de análisis, elaboración de informes y aprendizaje automático.
La complejidad de una canalización de datos depende del tamaño, el estado y la estructura de los datos de origen, así como de las necesidades del proyecto analítico. En su forma más simple, las canalizaciones pueden extraer sólo datos de una fuente, como una API REST, y cargarlos en un destino, como una tabla SQL en un almacén de datos. En la práctica, sin embargo, los pipelines suelen constar de múltiples pasos, como la extracción de datos, el preprocesamiento de datos, la validación de datos y, a veces, el entrenamiento o la ejecución de un modelo de aprendizaje automático antes de entregar los datos a su destino final. Los pipelines suelen contener tareas de múltiples sistemas y lenguajes de programación. Es más, los equipos de datos suelen poseer y mantener numerosas canalizaciones de datos que comparten dependencias y deben coordinarse. La Figura 1-1 ilustra una canalización sencilla.
¿Quién construye canalizaciones de datos?
Con la popularización de la computación en nube y el software como servicio (SaaS), se ha disparado el número de fuentes de datos a las que las organizaciones deben dar sentido. Al mismo tiempo, la demanda de datos para alimentar los modelos de aprendizaje automático, la investigación científica de datos y las perspectivas sensibles al tiempo es mayor que nunca. Para mantener el ritmo, la ingeniería de datos ha surgido como una función clave en los equipos de análisis. Los ingenieros de datos se especializan en construir y mantener los conductos de datos que sustentan el ecosistema analítico.
El propósito de un ingeniero de datos no es simplemente cargar datos en un almacén de datos. Los ingenieros de datos trabajan en estrecha colaboración con los científicos de datos y los analistas para comprender lo que se hará con los datos y ayudar a llevar sus necesidades a un estado de producción escalable.
Los ingenieros de datos se enorgullecen de garantizar la validez y puntualidad de los datos que suministran. Eso significa probar, alertar y crear planes de contingencia para cuando algo vaya mal. Y sí, ¡al final algo saldrá mal!
Las habilidades específicas de un ingeniero de datos dependen en cierta medida de la pila tecnológica que utilice su organización. Sin embargo, hay algunas habilidades comunes que poseen todos los buenos ingenieros de datos.
Fundamentos de SQL y Almacenamiento de Datos
Los ingenieros de datos necesitan saber cómo consultar bases de datos, y SQL es el lenguaje universal para hacerlo. Los ingenieros de datos experimentados saben escribir SQL de alto rendimiento y comprenden los fundamentos del almacenamiento y el modelado de datos. Aunque un equipo de datos incluya especialistas en almacenamiento de datos, un ingeniero de datos con fundamentos de almacenamiento es un mejor socio y puede colmar las lagunas técnicas más complejas que surjan.
Python y/o Java
El lenguaje que domine un ingeniero de datos dependerá de la pila tecnológica de su equipo, pero en cualquier caso, un ingeniero de datos no va a hacer el trabajo con herramientas "sin código", aunque tenga algunas buenas en su arsenal. Python y Java dominan actualmente la ingeniería de datos, pero están surgiendo otras nuevas como Go.
Informática distribuida
Resolver un problema que implica un gran volumen de datos y el deseo de procesarlos rápidamente ha llevado a los ingenieros de datos a trabajar con plataformas informáticas distribuidas. La informática distribuida combina la potencia de múltiples sistemas para almacenar, procesar y analizar eficazmente grandes volúmenes de datos.
Un ejemplo popular de informática distribuida en analítica es el ecosistema Hadoop, que incluye el almacenamiento distribuido de archivos a través de Hadoop Distributed File System (HDFS), el procesamiento a través de MapReduce, el análisis de datos a través de Pig, y mucho más. Apache Spark es otro popular marco de procesamiento distribuido, que está superando rápidamente a Hadoop en popularidad.
Aunque no todas las canalizaciones de datos requieren el uso de la informática distribuida, los ingenieros de datos deben saber cómo y cuándo utilizar dicho marco.
Administración básica del sistema
Se espera que un ingeniero de datos domine la línea de comandos de Linux y sea capaz de realizar tareas como analizar registros de aplicaciones, programar trabajos cron y solucionar problemas de cortafuegos y otras configuraciones de seguridad. Incluso cuando trabajen plenamente en un proveedor de la nube, como AWS, Azure o Google Cloud, acabarán utilizando esas habilidades para conseguir que los servicios en la nube funcionen juntos y se implementen las canalizaciones de datos.
Una mentalidad orientada a los objetivos
Un buen ingeniero de datos no sólo posee habilidades técnicas. Puede que no interactúe con las partes interesadas de forma habitual, pero los analistas y científicos de datos del equipo sin duda lo harán. El ingeniero de datos tomará mejores decisiones arquitectónicas si es consciente de la razón por la que está construyendo una canalización en primer lugar.
¿Por qué construir canalizaciones de datos?
Del mismo modo que la punta del iceberg es todo lo que puede ver un barco que pasa, el producto final del flujo de trabajo analítico es todo lo que ve la mayoría de una organización. Los ejecutivos ven cuadros de mando y gráficos impecables. El departamento de marketing comparte en las redes sociales información perfectamente empaquetada. El servicio de atención al cliente optimiza la plantilla del centro de llamadas basándose en los resultados de un modelo predictivo de demanda.
Lo que la mayoría de la gente ajena a la analítica no suele apreciar es que para generar lo que se ve, hay una compleja maquinaria que no se ve. Por cada cuadro de mando y cada visión que genera un analista de datos y por cada modelo predictivo desarrollado por un científico de datos, hay conductos de datos trabajando entre bastidores. No es infrecuente que un solo cuadro de mando, o incluso una sola métrica, se derive de datos procedentes de múltiples sistemas fuente. Además, los conductos de datos hacen algo más que extraer datos de las fuentes y cargarlos en simples tablas de bases de datos o archivos planos para que los utilicen los analistas. Los datos en bruto se refinan por el camino para limpiarlos, estructurarlos, normalizarlos, combinarlos, agregarlos y, a veces, anonimizarlos o protegerlos de alguna otra forma. En otras palabras, pasan muchas más cosas por debajo de la línea de flotación.
¿Cómo se construyen las tuberías?
Junto con los ingenieros de datos, en los últimos años han surgido numerosas herramientas para construir y apoyar canalizaciones de datos. Algunas son de código abierto, otras comerciales y otras caseras. Algunos pipelines están escritos en Python, otros en Java, otros en otro lenguaje y otros sin código alguno.
A lo largo de esta Referencia de Bolsillo exploro algunos de los productos y marcos de trabajo más populares para crear canalizaciones, y hablo de cómo determinar cuál utilizar en función de las necesidades y limitaciones de tu organización.
Aunque no cubro todos estos productos en profundidad, proporciono ejemplos y código de muestra para algunos. Todo el código de este libro está escrito en Python y SQL. Son los lenguajes más comunes y, en mi opinión, los más accesibles para construir canalizaciones de datos.
Además, los conductos no sólo se construyen, sino que se monitorean, mantienen y amplían. Los ingenieros de datos tienen la tarea no sólo de entregar los datos una vez, sino de construir canalizaciones e infraestructuras de apoyo que los entreguen y procesen de forma fiable, segura y puntual. No es poca cosa, pero cuando se hace bien, se puede desbloquear realmente el valor de los datos de una organización.
Get Referencia de bolsillo sobre canalizaciones 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.