Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
En mi trabajo sobre canalizaciones de datos, el suceso más costoso que he visto se debió a un error: una canalización estuvo transformando datos incorrectamente durante meses, y el problema pasó desapercibido hasta que nuestros clientes se dieron cuenta de que los datos eran erróneos.
Como suele ocurrir, fueron muchos los problemas que condujeron a este resultado. Los datos eran muy variables, lo que dificultaba el monitoreo de su calidad. Teníamos datos de prueba, pero estaban lamentablemente desfasados. La única forma de probar los cambios de código era con una ejecución completa del pipeline, que era larga y costosa. Sabíamos que la fuente de datos podía cambiar de forma impredecible, pero no disponíamos de validación de datos en la canalización para detectar cuándo se producían cambios.
Podríamos haber detectado este error con la validación basada en esquemas, sobre la que aprenderás en este libro. En lugar de eso, gastamos una parte importante de nuestra factura anual en la nube en volver a calcular los datos erróneos. Por si fuera poco, también nos costó la confianza de nuestros clientes, hasta el punto de que se cuestionó la validez del proyecto. Estaba en juego un contrato multimillonario que respaldaba una docena de puestos de trabajo para prestar un servicio que ayudaba a casi 100 millones de personas. Errores de esta magnitud son algo a lo que todo ingeniero de datos con responsabilidades importantes se verá expuesto en su carrera.
Cuando intentas controlar los costes de las canalizaciones de datos en la nube, a menudo te enfrentas a disyuntivas. Cumple los requisitos de rendimiento, pero reduce los ciclos de cálculo desperdiciados. Utiliza la observabilidad para depurar, reducir costes y evolucionar los diseños, pero no gastes demasiado en monitoreo y registro. Mejora la cobertura de las pruebas, pero los cambios impredecibles en los datos invalidan los supuestos de las pruebas y las interfaces de los servicios en la nube introducen costes y complejidad adicionales. Utiliza instancias informáticas de bajo coste e interrumpibles, pero no sacrifiques la estabilidad de las canalizaciones.
En este libro, he consolidado lo que necesitas saber para manejar compensaciones como éstas de forma rápida y con éxito. Centrado en el monitoreo eficaz, el desarrollo y las pruebas de canalizaciones de datos, y consejos específicos sobre el diseño de la computación y el almacenamiento en la nube, este libro te preparará para el éxito desde el principio y te permitirá gestionar la evolución de las canalizaciones de datos de forma rentable.
He utilizado estos enfoques en sistemas por lotes y de flujo continuo, manejando desde unos pocos miles de filas hasta petabytes de datos y desde datos bien definidos y estructurados hasta fuentes semiestructuradas que cambian con frecuencia.
A quién va dirigido este libro
He orientado el contenido hacia un público de nivel intermedio a avanzado. Asumo que tienes cierta familiaridad con las buenas prácticas de desarrollo de software, algunas nociones básicas sobre cómo trabajar con computación y almacenamiento en la nube, y una idea general sobre cómo funcionan las canalizaciones de datos por lotes y en flujo.
Este libro está escrito a partir de mi experiencia en el desarrollo cotidiano de canalizaciones de datos. Si este es un trabajo que ya haces o que aspiras a hacer en el futuro, puedes considerar este libro como un mentor virtual, que te aconsejará sobre los errores más comunes y te proporcionará orientación perfeccionada tras trabajar en diversos proyectos de canalización de datos.
Si procedes del análisis de datos, encontrarás consejos sobre las buenas prácticas de software que te ayudarán a construir pipelines comprobables y ampliables. Esto te ayudará a conectar el análisis con la adquisición y almacenamiento de datos para crear sistemas integrales.
La velocidad de los desarrolladores y el diseño consciente de los costes son áreas que todos, desde los colaboradores individuales hasta los directivos, deberían tener en mente. En este libro encontrarás consejos sobre cómo incorporar calidad al proceso de desarrollo, hacer un uso eficiente de los recursos de la nube y reducir costes. Además, verás los elementos que intervienen en el monitoreo, no sólo para vigilar la salud y el rendimiento del sistema, sino también para saber dónde debe considerarse el rediseño.
Si diriges equipos de ingeniería de datos, encontrarás consejos útiles sobre prácticas de desarrollo eficaces, áreas en las que los costes pueden aumentar y un enfoque general para establecer las prácticas adecuadas que ayuden a tu equipo a tener éxito.
Lo que aprenderás
Si quieres aprender o mejorar tu habilidad en lo siguiente, este libro será una guía útil:
-
Reduce el gasto en la nube con ofertas de servicios en la nube de menor coste y estrategias de diseño inteligentes.
-
Minimiza los residuos sin sacrificar el rendimiento dimensionando correctamente los recursos informáticos.
-
Impulsa la evolución de las canalizaciones, evita los problemas de rendimiento y depura rápidamente con un monitoreo y un registro rentables.
-
Configura entornos de desarrollo y prueba que minimicen los costes de los servicios en la nube.
-
Crea bases de código de canalización de datos que sean comprobables y extensibles, reduciendo el tiempo de desarrollo y acelerando la evolución de la canalización.
-
Limita los costosos tiempos de inactividad de los datos1 mejorando la calidad de los datos y el funcionamiento de los conductos mediante la validación y las pruebas.
Lo que este libro no es
Éste no es un libro de arquitectura. Hay aspectos que tienen que ver con la arquitectura y los requisitos del sistema, pero no voy a hablar de distintos enfoques arquitectónicos ni de compensaciones. No cubro temas como la gobernanza de datos, la catalogación de datos o el linaje de datos.
Aunque ofrezco consejos sobre cómo gestionar las compensaciones innatas de coste-rendimiento de la creación de canalizaciones de datos en la nube, este libro no es un texto de operaciones financieras (FinOps). Mientras que un libro de FinOps te indicaría, por ejemplo, que busques las horas de instancia de cálculo no utilizadas como posibles oportunidades para reducir costes, este libro entra en los detalles de la reducción de las horas de instancia y los costes asociados.
El espacio de diseño de las canalizaciones de datos crece y cambia constantemente. El mayor valor que puedo aportar es describir técnicas de diseño que pueden aplicarse en diversas circunstancias a medida que evoluciona el campo. Cuando es pertinente, menciono algunos servicios específicos de ingestión de datos totalmente gestionados, como Amazon Web Services (AWS) Glue o Google Dataflow, pero este libro se centra en clases de servicios que se aplican a muchos proveedores. Comprender estos servicios básicos te ayudará a sacar el máximo partido de los servicios gestionados por proveedores.
Las ofertas de servicios en la nube en las que me centro incluyen almacenamiento de objetos como AWS S3 y GCS, funciones sin servidor como AWS Lambda, y servicios de computación en clúster como AWS Elastic Compute (EC2), AWS Elastic MapReduce (EMR) y Kubernetes. Aunque la gestión de los límites del sistema, la gestión de identidades y la seguridad son aspectos de este enfoque, no trataré estos temas en este libro.
En este libro no doy consejos sobre servicios de bases de datos, ya que la elección de bases de datos y configuraciones depende en gran medida de casos de uso concretos.
Aprenderás lo que necesitas registrar y monitorizar, pero no cubriré los detalles sobre cómo configurar el monitoreo, ya que las herramientas utilizadas para el monitoreo varían de una empresa a otra.
Ejemplo de carrera
Para ilustrar distintos aspectos del desarrollo rentable de canalizaciones de datos, este libro incluye un ejemplo de un sitio ficticio de redes sociales, Herons on Demand (HoD). HoD fue creado por Lou y Sylvia, amigos de la infancia que se unieron por su afición a observar garzas, majestuosas aves costeras que pueden verse en todo el mundo. Ahora son desarrolladores de software consolidados y se han lanzado a perseguir su sueño de ayudar a los demás a ser testigos de estas escurridizas criaturas a través del vídeo y recomendando lugares a los que ir para ver garzas en la vida real.
Utilizando una tarjeta de crédito, Lou y Sylvia se dan de alta en un proveedor de servicios en la nube (PSC). Inmediatamente tienen acceso a almacenamiento, computación, bases de datos y alojamiento web, cualquiera de los cuales les habría llevado mucho tiempo configurar desde cero. Aunque empiezan a pequeña escala, Sylvia y Lou aspiran a ofrecer contenidos sobre garzas a aficionados a las aves de todo el mundo. Esto hace que la presencia de zonas de disponibilidad mundial que ofrece su CSP sea un argumento de venta adicional.
Puede que seas escéptico respecto a que haya suficiente interés en las garzas como para apostar por una empresa, pero al parecer había un gran potencial sin explotar en este espacio. En pocos meses, HoD se hace viral, con millones de usuarios compartiendo datos sobre garzas. Como Lou y Sylvia construyeron la plataforma HoD en la nube, puede ampliarse rápidamente en respuesta a la demanda. La factura de la nube agota su tarjeta de crédito, pero afortunadamente un multimillonario obsesionado con las garzas accede a invertir en su empresa. La factura de la nube se ha acabado, por ahora.
El éxito de HoD da lugar a un enorme conjunto de datos de información sobre garzas. Lou, Sylvia y su inversor se plantean cómo convertirla en nuevos productos y servicios. Mientras reflexionan sobre esta cuestión, un laboratorio universitario de ornitología se pone en contacto con ellos. El laboratorio está investigando la migración de las garzas y cree que el conjunto de datos de HoD podría ayudar a identificar lugares de migración nuevos y en peligro. Lou y Sylvia están muy entusiasmados con la perspectiva de salvar a las garzas, pero el multimillonario es menos optimista. "¡Ayudar a los investigadores no da dinero!", dice.
Para no dejarse vencer, Lou y Sylvia idean un producto que ofrece la identificación de garzas como servicio (HIaaS). Este servicio procesaría los datos del cliente y buscaría información coincidente en la base de datos de HoD, proporcionando a los clientes una identificación de garzas de alta confianza. Encargarse del proyecto universitario sería una forma estupenda de empezar a crear canalizaciones de datos y probar esta oferta.
La multimillonaria está de acuerdo, pero quiere ver algún retorno de la inversión. Reta a Lou y Sylvia a diseñar HIaaS de forma rentable, limitando tanto los costes de la nube como el tiempo del personal. Con estas limitaciones en mente, siguen adelante con el compromiso universitario.
Convenciones utilizadas en este libro
Para tratar de mantener el interés, he concebido escenarios ficticios pero inspirados en hechos reales para ilustrar conceptos a lo largo del libro. Se han protegido los nombres de los inocentes. No se ha dañado a ninguna garza en la elaboración de este libro.
Cuando hablo de nube, servicios en la nube o CSP, me refiero específicamente a la nube pública, como AWS, Azure y Google Cloud.
Utilizo el término computación para referirme a las instancias de computación, también conocidas como máquinas virtuales (VM). Cuando me refiero al almacenamiento, me refiero al almacenamiento de objetos en la nube, como AWS Simple Storage Service (S3).
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://github.com/gizm00/oreilly_dataeng_book.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a support@oreilly.com.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos, pero generalmente no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: "Canalizaciones de datos rentables por Sev Leonard (O'Reilly). Copyright 2023 MXLeonard LLC, 978-1-492-09864-5".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-889-8969 (en Estados Unidos o Canadá)
- 707-829-7019 (internacional o local)
- 707-829-0104 (fax)
- support@oreilly.com
- https://www.oreilly.com/about/contact.html
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/cost-effective-data-pipelines.
Para obtener noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.
Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media.
Síguenos en Twitter: https://twitter.com/oreillymedia.
Míranos en YouTube: https://youtube.com/oreillymedia.
Agradecimientos
Escribir un libro es una empresa gigantesca. Estoy muy agradecido a mucha gente por ayudarme a hacer realidad las canalizaciones de datos rentables.
Gracias a Jess Haberman, mi primera editora de adquisiciones, por todas las oportunidades que me envió y por su orientación en la propuesta de este libro. Gracias a Jenny Kim por presentarme a Jess. Gracias a Aaron Black, mi segundo editor de adquisiciones, especialmente por toda la lluvia de ideas para encontrar el título y el subtítulo adecuados. Gracias a mi editora de desarrollo, Virginia Wilson, por responder a mis muchas preguntas, responder a mis ansiedades de autora novel y ayudarme a ser mejor escritora.
Me siento muy afortunado de haber contado con un sólido grupo de revisores técnicos. Habéis hecho que este libro sea absolutamente mejor. Gracias a mis revisores capítulo a capítulo, la mayoría de los cuales han estado conmigo en este viaje de más de un año: Bar Shirtcliff, Nancy Lin, Milind Chaudhari, Rachel Shadoan y Vinoo Ganesh. Gracias a todos mis revisores de libros: Arnie Wernick, Isaac Potoczny-Jones, Joe Reis, Matt Housley y Sam Kimbrel. Gracias también a Navin Kumar por sus comentarios.
Este libro se escribió por las noches y los fines de semana, el relativamente poco tiempo que tengo para mí, mi familia y mis amigos. No podría haberlo hecho sin todo vuestro amor y apoyo. Gracias, Vanessa, por tu sabiduría y tus ánimos. Gracias, Grey, por decir que estás deseando que termine este libro para que podamos volver a pasar tiempo juntos. Y, sobre todo, gracias a mi increíble compañero, Gibbs, por cuidar y alimentar a una autora con un trabajo de startup a tiempo completo, mientras tú también tienes un trabajo a tiempo completo. Gracias por tu amor, tus ánimos y tu paciencia. Gracias por recordarme que debo comer, por evitar que nuestra casa se convierta en un caos y por compartir tu entusiasmo por la flora y la fauna. Una mención honorífica a Party Cat, por irrumpir en mi despacho para hacerme saber que es hora de dejar de escribir y darle de cenar.
Desde el punto de vista emocional, fue todo un reto asumir esta tarea durante una pandemia, mientras veíamos cómo décadas de progreso en la igualdad de derechos se evaporaban aparentemente de la noche a la mañana. Este libro está dedicado a todos los que son objetivo del fascismo. Que estemos seguros, felices, sanos y libres de sufrimiento.
1 Acuñado por Barr Moses, el tiempo de inactividad de los datos se refiere a los periodos de tiempo en que los datos son incorrectos, parciales o faltan.
Get Canalizaciones de datos rentables 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.