¿Su equipo necesita un ingeniero de datos?

imagen


A menudo encontramos artículos geniales en inglés que parecen útiles para nuestro equipo, y decidimos que sería bueno compartir su traducción con los lectores de Habra. Hoy hemos preparado una traducción de un artículo de Tristan Handy, fundador de Fishtown Analytics.


El papel de un ingeniero de datos en las nuevas empresas modernas está cambiando rápidamente. ¿Estás seguro de que entiendes bien cuándo y por qué tu equipo podría necesitar un especialista?


A menudo me comunico con los principales representantes del mundo analítico y noto que su comprensión del papel de un ingeniero de datos en un equipo no es cierta. Esto puede crear dificultades para todo el equipo de análisis de datos, y me gustaría que las empresas aprendan cómo evitar tales problemas.


En este artículo quiero compartir mis ideas sobre cuándo, cómo y por qué vale la pena contratar a un ingeniero de datos. Mi razonamiento se basa en mi experiencia en Fishtown Analytics , donde trabajé con más de un centenar de nuevas empresas con apoyo de capital de riesgo y les ayudé a crear equipos de análisis y procesamiento de datos, así como el conocimiento obtenido a través de la comunicación con representantes de varias compañías de procesamiento de datos.


Si lideras un equipo de expertos en datos, esta publicación es para ti.


El papel de un ingeniero de datos está cambiando


El software moderno hace posible automatizar trabajos más aburridos relacionados con el análisis y procesamiento de datos.


En 2012, se requirió al menos un ingeniero de datos para analizar todo el conjunto de datos en una startup financiada por riesgo. Tal especialista tuvo que extraer datos de diferentes sistemas para que los analistas y clientes corporativos pudieran trabajar con ellos aún más. A menudo era necesario transformar de alguna manera los datos para que fuera más fácil de analizar. Sin un ingeniero de datos, los especialistas en análisis y procesamiento de datos simplemente no tendrían los datos con los que podrían trabajar, tan a menudo fue con el ingeniero de datos que el equipo comenzó a formarse.


Para 2019, la mayor parte de esto se puede hacer con soluciones preparadas. En la mayoría de los casos, usted y un equipo de analistas pueden construir una tubería de procesamiento de datos por su cuenta, sin la ayuda de una persona con vasta experiencia en ciencia de datos. Y esta tubería no será nada mala: las herramientas modernas listas para usar son perfectas para resolver tales problemas.


Los analistas y los científicos de datos recientemente tuvieron la oportunidad de construir tuberías ellos mismos, hace solo 2-3 años. Esto sucedió principalmente debido a tres productos: Stitch , Fivetran y dbt (vale la pena decir que dbt es un producto de mi empresa, Fishtown Analytics). Fueron lanzados casi inmediatamente después de Amazon Redshift, cuando los equipos de inicio se dieron cuenta de que necesitaban crear almacenes de datos. Nos llevó varios años más fabricar estos productos de alta calidad: en 2016 seguimos siendo pioneros.


Ahora, una tubería construida con Stitch, Fivetran o dbt es mucho más confiable que la diseñada especialmente con Airflow. Sé esto no por teoría, sino por mi propia experiencia. No digo que sea imposible construir una infraestructura confiable con Airflow, la mayoría de las nuevas empresas simplemente no lo hacen. En Fishtown Analytics, hemos trabajado con más de cien equipos de análisis en diferentes startups, y este escenario se ha repetido muchas veces. Ayudamos constantemente a las personas a cambiar de sus propias tuberías a soluciones llave en mano, y cada vez el efecto es positivo.


El ingeniero de datos no debe escribir ETL


En 2016, Jeff Magnusson escribió una publicación fundamental, Ingenieros de datos no deberían escribir ETL . Esta fue la primera publicación en mi memoria que requirió tal cambio. Aquí está mi parte favorita de allí:


* “En los últimos 5 años, las herramientas y tecnologías de procesamiento de datos han evolucionado. La mayoría de las tecnologías ya se han desarrollado tanto que pueden adaptarse a sus necesidades, a menos que, por supuesto, necesite procesar petabytes de datos o miles de millones de eventos por día.


Si no necesita ir más allá de las capacidades de estas tecnologías, lo más probable es que no necesite un equipo de programadores altamente especializados para desarrollar soluciones adicionales.


Si logras contratarlos, pronto se aburrirán. Si se aburren, lo dejarán en Google, Facebook, LinkedIn, Twitter, los lugares donde su experiencia es realmente necesaria. Si no están aburridos, lo más probable es que sean bastante mediocres. Y los programadores mediocres realmente lograron construir una gran cantidad de tonterías complicadas, inadecuadas para el trabajo normal, a las que llaman "soluciones". *


Realmente me gusta esta cita porque no solo enfatiza que hoy no necesita ingenieros de datos para resolver la mayoría de los problemas de ETL, sino que también explica por qué es mejor no pedirles que resuelvan estos problemas .


Si contrata ingenieros de datos y les pide que construyan una tubería, pensarán que su tarea es construir una tubería. Esto significará que herramientas como Stitch, Fivetran y dbt serán una amenaza para ellos, no una fuente poderosa de fuerza. Encontrarán razones por las cuales las canalizaciones terminadas no satisfacen sus necesidades de datos individuales y por qué los analistas no deberían participar de forma independiente en la conversión de datos. Escribirán código que será frágil, difícil de mantener e ineficiente. Y dependerá de este código porque subyace a todo lo demás que hace su equipo.


Huir de especialistas como la peste. La tasa de crecimiento en su equipo de analistas disminuirá drásticamente, y usted dedicará todo su tiempo a resolver problemas de infraestructura, y esto no es en absoluto lo que genera ingresos para su negocio.


Si no es ETL, ¿entonces qué?


¿Su equipo realmente necesita un ingeniero de datos? Si


Incluso con nuevas herramientas que permiten a los analistas de datos y expertos en ciencia de datos crear tuberías por sí mismos, los ingenieros de datos siguen siendo una parte importante de cualquier equipo de datos profesional. Sin embargo, las tareas en las que deberían trabajar han cambiado, y la secuencia en la que vale la pena contratar empleados para trabajar con datos. A continuación hablaré sobre cuándo hacer esto, y ahora hablemos de qué son responsables los ingenieros de datos en las nuevas empresas modernas.


Los ingenieros de datos siguen siendo una parte importante de cualquier equipo de datos profesional.


Sus ingenieros de datos no deben crear tuberías para las que ya hay soluciones preparadas y escribir transformaciones de datos SQL. Esto es en lo que deberían enfocarse:


  • organización y optimización de la infraestructura de datos subyacente,
  • construcción y soporte de tuberías personalizadas,
  • soporte de un equipo de especialistas en datos al mejorar el diseño y el rendimiento de tuberías y consultas,
  • construyendo transformaciones de datos no SQL.

Organización y optimización de la infraestructura de datos subyacente.


Aunque los ingenieros de datos en las nuevas empresas ya no necesitan administrar clústeres de Hadoop o configurar equipos para Vertica, aún se necesita trabajo en esta área. Después de asegurarse de que su tecnología para recopilar, transmitir y procesar datos esté en su apogeo, obtiene una mejora significativa en el rendimiento, los costos o ambos. Esto generalmente implica las siguientes tareas:


  • creación de una infraestructura de monitoreo para rastrear el estado de las tuberías,
  • monitoreo de todas las tareas que afectan el rendimiento del clúster,
  • mantenimiento regular
  • esquemas de tabla de ajuste (particionamiento, compresión, distribución) para minimizar los costos y aumentar la productividad,
  • desarrollo de infraestructura de datos personalizada cuando no hay soluciones preparadas.

Estas tareas a menudo se pasan por alto en las primeras etapas de desarrollo, pero se vuelven críticas a medida que el equipo crece y la cantidad de datos. En un proyecto, pudimos reducir gradualmente el costo de construir una mesa en BigQuery de $ 500 a $ 1 por día al optimizar las particiones de la mesa. Esto es realmente importante


Uber es un buen ejemplo de una empresa que ha tenido éxito. Los especialistas en procesamiento de datos en Uber han creado una herramienta llamada Queryparser que rastrea automáticamente todas las solicitudes a su infraestructura de datos y recopila estadísticas sobre los recursos utilizados y los patrones de uso. Los ingenieros de Uber Data pueden usar metadatos para personalizar la infraestructura.


Los ingenieros de datos también son a menudo responsables de construir y mantener la tubería de CI / CD que administra la infraestructura de datos. En 2012, muchas compañías tenían una infraestructura muy débil para el control de versiones, gestión y pruebas, pero ahora todo está cambiando, y esto es lo que los ingenieros de datos están detrás.


Finalmente, los ingenieros de datos en compañías líderes a menudo participan en la creación de herramientas que no existen listas para usar. Por ejemplo, los ingenieros de Airbnb crearon Airflow porque no tenían forma de generar eficientemente diagramas de procesamiento de datos . Y los ingenieros de Netflix son responsables de crear y mantener una infraestructura sofisticada para desarrollar y operar decenas de miles de portátiles Jupyter .


Simplemente puede comprar la mayor parte de su infraestructura básica, pero alguien aún debería repararla. Y si usted es una empresa verdaderamente progresista, probablemente quiera expandir las capacidades de las herramientas existentes. Los ingenieros de datos pueden ayudar con ambos.


Construyendo y manteniendo tuberías personalizadas


Aunque los ingenieros de datos ya no necesitan transferir datos manualmente a Postgres o Salesforce, los proveedores tienen "solo" unas 100 opciones de integración. La mayoría de nuestros clientes pueden alcanzar de inmediato del 75 al 90% de las fuentes de datos con las que trabajan.


En la práctica, la integración se lleva a cabo por olas. Por lo general, la primera etapa incluye la base de datos de la aplicación principal y el seguimiento de eventos, y la segunda etapa incluye sistemas de marketing como ESP y plataformas publicitarias. Hoy, las soluciones llave en mano para ambas fases ya están disponibles para la venta. Cuando profundice en el trabajo con datos de proveedores de SaaS en su área temática, necesitará ingenieros de datos para construir y mantener estos canales de procesamiento de datos de nicho.


Por ejemplo, las empresas dedicadas a las ventas a través de Internet, interactúan con una gran cantidad de productos diferentes en el campo de ERP, logística y entrega. Muchos de estos productos son muy específicos y casi ninguno de ellos está disponible comercialmente. Los ingenieros de datos esperan que creen productos similares en el futuro previsible.


Construir y mantener tuberías confiables de procesamiento de datos es una tarea difícil. Si decide invertir sus recursos en su creación, esté preparado para que requiera más fondos de los previstos originalmente en el presupuesto, y el mantenimiento también requerirá más esfuerzo del que planeó. La primera versión de la tubería se puede construir de manera simple, pero es difícil hacer que mantenga la consistencia de los datos en su almacenamiento. No se comprometa a mantener su propia tubería de procesamiento de datos hasta que esté seguro de que su negocio está funcionando. Una vez que lo haga, tómese el tiempo para hacerlo confiable. Piense en usar Singer, el marco de código abierto de los creadores de Stitch, construimos alrededor de 20 integraciones usándolo.


Soporte para un equipo de especialistas en datos al mejorar el diseño y el rendimiento de las tuberías y consultas


Uno de los cambios que hemos visto en el campo de la ingeniería de datos en los últimos cinco años es la aparición de ELT, una nueva versión de ETL, que convierte los datos después de cargarlos en el almacenamiento, y no antes. La esencia y las causas de tal cambio ya están bien cubiertas en otras fuentes. Quiero enfatizar que este cambio tiene un gran impacto en quién construye estas tuberías.


Si escribe código en Scalding para escanear terabytes de datos de eventos en S3 y luego lo carga en Vertica, probablemente necesite un ingeniero de datos. Pero si los datos de su evento (exportados desde Google Analytics 360) ya están en BigQuery, entonces ya están completamente disponibles en un entorno escalable de alto rendimiento. La diferencia es que este entorno habla SQL. Esto significa que los analistas ahora pueden crear sus propios canales de transformación de datos.


Esta tendencia se desarrolló en 2014 cuando Looker lanzó la herramienta PDT . La tendencia se intensificó cuando equipos enteros de expertos en datos comenzaron a construir diagramas de procesamiento de datos a partir de más de 500 nodos y procesar grandes conjuntos de datos utilizando dbt en los últimos dos años. En esta etapa, el modelo está profundamente arraigado en los equipos modernos y ha dado a los analistas tanta independencia como siempre.


Cambiar a ELT significa que los ingenieros de datos ya no necesitan realizar la mayoría de las tareas de conversión de datos . También significa que los equipos sin ingenieros pueden recorrer un largo camino utilizando herramientas de transformación de datos diseñadas para analistas. Sin embargo, los ingenieros de datos aún juegan un papel importante en la construcción de tuberías de conversión de datos. Hay dos situaciones en las que su participación es extremadamente importante:


1. Cuando necesitas aumentar la productividad


A veces, la lógica de un proceso de negocio requiere una transformación particularmente compleja, y es útil involucrar a un ingeniero de datos para evaluar cómo un enfoque particular para crear una tabla afecta el rendimiento. Muchos analistas no tienen mucha experiencia en optimizar el rendimiento en almacenes de datos analíticos, y esta es una excelente razón para comenzar a trabajar con un especialista más limitado.


2. Cuando el código se vuelve demasiado complicado


Los analistas son muy buenos para resolver problemas comerciales utilizando datos, pero a menudo no piensan en cómo escribir código extensible. A primera vista, comenzar a construir tablas en la base de datos es fácil, pero todo puede salirse rápidamente de control. Involucre a un ingeniero de datos que pueda pensar en la arquitectura general de su almacenamiento y desarrollar transformaciones especialmente complejas, de lo contrario corre el riesgo de quedarse solo con un enredo que será casi imposible de desentrañar.


Construyendo transformaciones de datos no SQL


SQL puede satisfacer inicialmente la mayoría de las necesidades de conversión de datos, pero no puede resolver todos los problemas. Por ejemplo, a menudo es necesario agregar datos geográficos a la base de datos tomando latitud y longitud y vinculándolos a una región específica. Muchos repositorios analíticos modernos aún no pueden resolver dicho problema (¡aunque esto está comenzando a cambiar! ), Por lo tanto, la mejor solución sería construir una tubería en Python, que complementará los datos en su repositorio con información sobre la región.


Otro caso de uso obvio para Python (u otros lenguajes que no sean SQL) es para el aprendizaje automático. Si tiene recomendaciones personalizadas de productos, un modelo de pronóstico de demanda o un algoritmo de pronóstico de flujo de salida que toma datos de su almacenamiento y organiza los pesos, puede agregarlos como los nodos finales de su dígrafo de procesamiento de datos SQL.


La mayoría de las empresas modernas que resuelven estos problemas utilizando un flujo que no sea SQL utilizan Airflow. dbt se usa para la parte basada en SQL del dígrafo de datos, y los nodos no SQL se agregan como hojas. Este enfoque toma lo mejor de ambos enfoques: los analistas de datos aún pueden ser los principales responsables de las conversiones basadas en SQL, y los ingenieros de datos pueden ser responsables del código ML para uso industrial.


¿Cuándo necesita su equipo un ingeniero de datos?


Cambiar el rol de un ingeniero de datos también implica repensar la secuencia de contratación de empleados. Anteriormente se pensaba que principalmente necesita ingenieros de datos, porque los analistas y los especialistas en ciencia de datos no tienen nada para trabajar sin una plataforma de procesamiento y análisis de datos ya preparada. Hoy en día, los especialistas en análisis y procesamiento de datos pueden trabajar de forma independiente y crear la primera versión de la infraestructura de datos utilizando herramientas ya hechas. Piense en contratar un ingeniero de datos cuando su inicio tenga cualquiera de los 4 signos de escala:


  1. Hay 3 analistas / especialistas en ciencia de datos en su equipo,
  2. su plataforma de BI tiene 50 usuarios activos,
  3. la tabla más grande en su almacenamiento alcanza 1 billón de filas,
  4. Usted sabe que necesita construir 3 o más canales de procesamiento de datos personalizados en los próximos trimestres, y todos son críticos.

Si aún no se ha encontrado con ninguna de estas situaciones, su equipo de expertos en datos probablemente pueda trabajar por su cuenta, utilizando tecnologías preparadas, el apoyo de consultores externos y el asesoramiento de colegas (por ejemplo, en comunidades localmente optimistas o dbt en Slack).


Lo principal a entender es que un ingeniero de datos por sí solo no tiene valor para el negocio, su trabajo principal es aumentar la productividad de sus analistas. Su equipo de expertos en datos interactúa con las partes interesadas, mide el KPI y crea informes y modelos: estos son los que ayudan a su empresa a avanzar en la dirección correcta todos los días. Contrata a un ingeniero de datos para fortalecer un gran equipo existente: si después de contratar a un ingeniero de datos, la eficiencia de tus cuatro analistas aumentó en un 33%, probablemente esta sea una buena solución.


Los ingenieros de procesamiento de datos benefician al negocio al ayudar a sus analistas y científicos de datos a ser más productivos.


En mi opinión, si decide expandir su equipo de especialistas en datos, la mejor proporción es de aproximadamente 5 a 1: cinco analistas / especialistas en ciencias de datos por ingeniero de datos. Si trabaja con conjuntos de datos particularmente grandes o inusuales, esta relación puede cambiar, pero esta es una buena guía.


¿A quién vale la pena contratar?


A medida que cambia el rol del ingeniero de datos, también cambian los requisitos para el candidato ideal. Mi querido colega Michael Kaminsky dijo muy bien sobre esto en nuestra correspondencia sobre este tema, así que lo citaré aquí:


“Pienso en todos estos cambios, en primer lugar, en el papel de un ingeniero de datos en el equipo. Desde el creador de la infraestructura, se convirtió en un enlace de apoyo para un grupo más amplio de especialistas. Este es un cambio significativo, y algunos ingenieros de datos (a quienes les gustaría centrarse en la construcción de infraestructura) no siempre están contentos con esto.
Creo que lo más importante para las startups es contratar a un ingeniero de datos que esté lleno de energía y desee crear herramientas para un equipo de analistas / especialistas en ciencia de datos. Si contrata a un ingeniero de datos que solo quiere profundizar en el backend y odia trabajar con personas que tienen menos habilidades técnicas, es probable que esto termine mal. Estoy buscando ingenieros de datos que estén felices de trabajar con analistas e investigadores y estén listos para decir: "Lo que estás haciendo me parece completamente ineficaz, y quiero marcar una diferencia para mejor".


Estoy totalmente de acuerdo con Michael. Ahora los mejores ingenieros de datos en las startups son el soporte y el soporte del equipo, participan en casi todo lo que hace el equipo de datos. Les debe gustar el trabajo en equipo y deben estar motivados para tener éxito como equipo.


Si llegas a este lugar, gracias por leer :) Este tema realmente me preocupa mucho. Escriba un comentario si cree que estoy completamente equivocado. Estoy interesado en conocer su experiencia trabajando con ingenieros de datos en su equipo.


Finalmente, si toma la decisión de contratar a un ingeniero de datos en este momento, mi compañía realiza muchas entrevistas con dichos especialistas; creemos que esta es una buena manera de mantenerse al día en la industria. Si desea organizar la última prueba de rendimiento de un nuevo miembro potencial del equipo antes de hacer una oferta, estaremos encantados de realizar una entrevista final con sus candidatos, ¡solo escríbanos !


Comentario de Gleb Sologub, director de análisis de Skyeng :

En Skyeng ahora tenemos más de 30 analistas completos y todavía no hay ingenieros de datos. Esto es posible porque toda nuestra infraestructura de datos se basa en los servicios en la nube de los que Tristan habla. Utilizamos Amazon Redshift como repositorio analítico, Stitch and Matillion ETL para recopilar datos de más de 40 bases de datos de producción, Segmento para recopilar eventos, Redash y Tableau para informes y paneles, Amazon SageMaker para ML.

— - . , MVP- , , . , , , Tableau .

, , , - . , , : , .

- -, , , , . 90% , . , Skyeng.

Source: https://habr.com/ru/post/439504/


All Articles