Votre équipe a-t-elle besoin d'un Data Engineer?

image


Nous trouvons souvent des articles sympas en anglais qui semblent utiles à notre équipe, et avons décidé qu'il serait formidable de partager leur traduction avec les lecteurs de Habra. Aujourd'hui, nous avons préparé la traduction d'un article de Tristan Handy, fondateur de Fishtown Analytics.


Le rĂŽle d'un ingĂ©nieur de donnĂ©es dans les startups modernes Ă©volue rapidement. Êtes-vous sĂ»r de bien comprendre quand et pourquoi votre Ă©quipe pourrait avoir besoin d'un tel spĂ©cialiste?


Je communique souvent avec les principaux représentants du monde de l'analytique et je remarque que leur compréhension du rÎle d'un ingénieur de données dans une équipe n'est pas vraie. Cela peut créer des difficultés pour toute l'équipe d'analyse des données, et j'aimerais que les entreprises apprennent comment éviter de tels problÚmes.


Dans cet article, je veux partager mes idĂ©es sur quand, comment et pourquoi il vaut la peine d'embaucher un ingĂ©nieur de donnĂ©es. Mon raisonnement est basĂ© sur mon expĂ©rience chez Fishtown Analytics , oĂč j'ai travaillĂ© avec plus d'une centaine de startups avec un soutien en capital-risque et les ai aidĂ©es Ă  constituer des Ă©quipes d'analyse et de traitement des donnĂ©es, ainsi que les connaissances acquises grĂące Ă  la communication avec les reprĂ©sentants de diverses sociĂ©tĂ©s de traitement de donnĂ©es.


Si vous dirigez une équipe d'experts en données, ce message est pour vous.


Le rÎle d'un ingénieur de données change


Un logiciel moderne permet d'automatiser des travaux plus ennuyeux liés à l'analyse et au traitement des données.


En 2012, au moins un ingénieur de données a été requis pour analyser l'ensemble de données dans une startup financée par une entreprise. Un tel spécialiste a dû extraire des données de différents systÚmes afin que les analystes et les entreprises puissent continuer à travailler avec eux. Il était souvent nécessaire de transformer les données d'une maniÚre ou d'une autre afin qu'elles soient plus faciles à analyser. Sans un ingénieur des données, les spécialistes de l'analyse et du traitement des données n'auraient tout simplement pas les données avec lesquelles ils pourraient travailler, si souvent c'est avec l'ingénieur des données que l'équipe a commencé à se former.


D'ici 2019, la plupart de cela peut ĂȘtre fait avec des solutions toutes faites. Dans la plupart des cas, vous et une Ă©quipe d'analystes pouvez crĂ©er vous-mĂȘme un pipeline de traitement des donnĂ©es, sans l'aide d'une personne ayant une vaste expĂ©rience en science des donnĂ©es. Et ce pipeline ne sera pas mauvais du tout - des outils prĂȘts Ă  l'emploi modernes sont parfaits pour rĂ©soudre de tels problĂšmes.


Les analystes et les scientifiques des donnĂ©es ont rĂ©cemment eu l'occasion de construire eux-mĂȘmes des pipelines - il y a seulement 2-3 ans. Cela est dĂ» principalement Ă  trois produits: Stitch , Fivetran et dbt (il vaut la peine de dire que dbt est un produit de ma sociĂ©tĂ©, Fishtown Analytics). Ils ont Ă©tĂ© publiĂ©s presque immĂ©diatement aprĂšs Amazon Redshift, lorsque les Ă©quipes de dĂ©marrage ont rĂ©alisĂ© qu'elles devaient crĂ©er des entrepĂŽts de donnĂ©es. Il a fallu plusieurs annĂ©es pour fabriquer ces produits de haute qualitĂ© - en 2016, nous Ă©tions encore des pionniers.


Désormais, un pipeline construit avec Stitch, Fivetran ou dbt est beaucoup plus fiable que ce qui est spécialement conçu avec Airflow. Je ne le sais pas par la théorie, mais par ma propre expérience. Je ne dis pas qu'il est impossible de construire une infrastructure fiable avec Airflow, la plupart des startups ne le font tout simplement pas. Dans Fishtown Analytics, nous avons travaillé avec plus d'une centaine d'équipes d'analyse dans différentes startups, et ce scénario a été répété plusieurs fois. Nous aidons constamment les gens à passer de leurs propres pipelines à des solutions clés en main, et chaque fois que l'effet est positif.


L'ingénieur de données ne doit pas écrire ETL


En 2016, Jeff Magnusson a écrit un article fondamental, Data Engineers Should Not Write ETL . Ce fut le premier message de ma mémoire qui appelait à un tel changement. Voici ma partie préférée à partir de là:


* «Au cours des 5 derniÚres années, les outils et technologies de traitement des données ont évolué. La plupart des technologies ont déjà tellement évolué qu'elles peuvent s'adapter à vos besoins, à moins, bien sûr, que vous n'ayez besoin de traiter des pétaoctets de données ou des milliards d'événements par jour.


Si vous n'avez pas besoin d'aller au-delà des capacités de ces technologies, vous n'avez probablement pas besoin d'une équipe de programmeurs hautement spécialisés pour développer des solutions supplémentaires.


Si vous parvenez Ă  les embaucher, ils s'ennuieront bientĂŽt. S'ils s'ennuient, ils vous laisseront sur Google, Facebook, LinkedIn, Twitter - les endroits oĂč leur expĂ©rience est vraiment nĂ©cessaire. S'ils ne s'ennuient pas, ils sont probablement plutĂŽt mĂ©diocres. Et les programmeurs mĂ©diocres ont vraiment rĂ©ussi Ă  crĂ©er une quantitĂ© Ă©norme de bĂȘtises compliquĂ©es et inadaptĂ©es au travail normal, qu'ils appellent des «solutions». »*


J'aime vraiment cette citation car elle souligne non seulement qu'aujourd'hui vous n'avez pas besoin d'ingénieurs de données pour résoudre la plupart des problÚmes ETL, mais explique également pourquoi il vaut mieux ne pas leur demander de résoudre ces problÚmes du tout .


Si vous embauchez des ingénieurs de données et leur demandez de construire un pipeline, ils penseront que leur tùche est de construire un pipeline. Cela signifie que des outils comme Stitch, Fivetran et dbt seront une menace pour eux, pas une puissante source de force. Ils trouveront les raisons pour lesquelles les pipelines finis ne répondent pas à vos besoins de données individuels et pourquoi les analystes ne devraient pas s'engager indépendamment dans la conversion de données. Ils écriront du code qui sera fragile, difficile à maintenir et inefficace. Et vous vous ferez à ce code car il sous-tend tout ce que fait votre équipe.


Fuyez des spécialistes comme la peste. Le taux de croissance de votre équipe d'analystes chutera fortement et vous passerez tout votre temps à résoudre les problÚmes d'infrastructure, et ce n'est pas du tout ce qui apporte des revenus à votre entreprise.


Sinon ETL, alors quoi?


Votre équipe a-t-elle vraiment besoin d'un ingénieur de données? Oui


MĂȘme avec de nouveaux outils qui permettent aux analystes de donnĂ©es et aux experts en science des donnĂ©es de crĂ©er eux-mĂȘmes des pipelines, les ingĂ©nieurs de donnĂ©es restent une partie importante de toute Ă©quipe de donnĂ©es professionnelle. Cependant, les tĂąches sur lesquelles ils doivent travailler ont changĂ© et la sĂ©quence dans laquelle il vaut la peine d'embaucher des employĂ©s pour travailler avec des donnĂ©es. Ci-dessous, je parlerai du moment de le faire, et maintenant, parlons des responsabilitĂ©s des ingĂ©nieurs de donnĂ©es dans les startups modernes.


Les ingénieurs de données sont toujours une partie importante de toute équipe de données professionnelle.


Vos ingĂ©nieurs de donnĂ©es ne doivent pas crĂ©er de pipelines pour lesquels il existe dĂ©jĂ  des solutions prĂȘtes Ă  l'emploi et Ă©crire des transformations de donnĂ©es SQL. Voici sur quoi ils devraient se concentrer:


  • organisation et optimisation de l'infrastructure de donnĂ©es sous-jacente,
  • la construction et le support de pipelines personnalisĂ©s,
  • l'accompagnement d'une Ă©quipe de spĂ©cialistes des donnĂ©es en amĂ©liorant la conception et les performances des pipelines et des requĂȘtes,
  • construction de transformations de donnĂ©es non SQL.

Organisation et optimisation de l'infrastructure de données sous-jacente


Bien que les ingĂ©nieurs de donnĂ©es des startups n'aient plus besoin de gĂ©rer les clusters Hadoop ou de configurer l'Ă©quipement pour Vertica, des travaux sont encore nĂ©cessaires dans ce domaine. AprĂšs vous ĂȘtre assurĂ© que votre technologie de collecte, de transmission et de traitement des donnĂ©es est Ă  son apogĂ©e, vous obtenez une amĂ©lioration significative des performances, des coĂ»ts ou des deux. Cela implique gĂ©nĂ©ralement les tĂąches suivantes:


  • crĂ©ation d'une infrastructure de surveillance pour suivre l'Ă©tat des pipelines,
  • surveillance de toutes les tĂąches affectant les performances du cluster,
  • entretien rĂ©gulier
  • optimisation des schĂ©mas de table (partitionnement, compression, distribution) pour minimiser les coĂ»ts et augmenter la productivitĂ©,
  • dĂ©veloppement d'une infrastructure de donnĂ©es personnalisĂ©e lorsqu'il n'y a pas de solutions toutes faites.

Ces tùches sont souvent négligées dans les premiers stades de développement, mais elles deviennent essentielles à mesure que l'équipe grandit et la quantité de données. Dans un projet, nous avons pu réduire progressivement le coût de construction d'une table dans BigQuery de 500 $ à 1 $ par jour en optimisant les partitions de table. C'est vraiment important.


Uber est un bon exemple d'une entreprise qui a réussi. Les spécialistes du traitement des données chez Uber ont créé un outil appelé Queryparser qui suit automatiquement toutes les demandes à leur infrastructure de données et recueille des statistiques sur les ressources utilisées et les modÚles d'utilisation. Les ingénieurs Uber Data peuvent utiliser des métadonnées pour personnaliser l'infrastructure.


Les ingénieurs de données sont également souvent responsables de la création et de la maintenance du pipeline CI / CD qui gÚre l'infrastructure de données. En 2012, de nombreuses entreprises avaient une infrastructure trÚs faible pour le contrÎle de version, la gestion et les tests, mais maintenant tout change, et c'est ce que les ingénieurs de données sont derriÚre.


Enfin, les ingĂ©nieurs de donnĂ©es des grandes entreprises participent souvent Ă  la crĂ©ation d'outils qui n'existent pas prĂȘts Ă  l'emploi. Par exemple, les ingĂ©nieurs d'Airbnb ont créé Airflow car ils n'avaient aucun moyen de gĂ©nĂ©rer efficacement des digraphes de traitement des donnĂ©es . Et les ingĂ©nieurs de Netflix sont chargĂ©s de crĂ©er et de maintenir une infrastructure sophistiquĂ©e pour dĂ©velopper et exploiter des dizaines de milliers de portables Jupyter .


Vous pouvez simplement acheter la plupart de votre infrastructure de base, mais quelqu'un doit toujours la rĂ©parer. Et si vous ĂȘtes une entreprise vraiment progressiste, vous souhaiterez probablement Ă©tendre les capacitĂ©s des outils existants. Les ingĂ©nieurs de donnĂ©es peuvent vous aider avec les deux.


Construction et maintenance de pipelines personnalisés


Bien que les ingénieurs de données n'aient plus besoin de transférer manuellement les données vers Postgres ou Salesforce, les fournisseurs n'ont «que» environ 100 options d'intégration. La plupart de nos clients peuvent atteindre immédiatement 75 à 90% des sources de données avec lesquelles ils travaillent.


En pratique, l'intégration se fait par vagues. En rÚgle générale, la premiÚre étape comprend la base de données principale des applications et le suivi des événements, et la deuxiÚme étape comprend les systÚmes de marketing tels que l'ESP et les plateformes publicitaires. Aujourd'hui, des solutions clé en main pour les deux phases sont déjà disponibles à la vente. Lorsque vous approfondirez votre travail avec les données des fournisseurs SaaS dans votre domaine, vous aurez besoin d'ingénieurs de données pour créer et maintenir ces pipelines de traitement de données de niche.


Par exemple, les entreprises engagées dans la vente via Internet interagissent avec une multitude de produits différents dans le domaine de l'ERP, de la logistique et de la livraison. Beaucoup de ces produits sont trÚs spécifiques et presque aucun d'entre eux n'est disponible dans le commerce. Attendez-vous à ce que vos ingénieurs de données créent des produits similaires dans un avenir prévisible.


Construire et maintenir des pipelines de traitement de donnĂ©es fiables est une tĂąche difficile. Si vous dĂ©cidez d'investir vos ressources dans leur crĂ©ation, prĂ©parez-vous Ă  ce que cela nĂ©cessite plus de fonds que prĂ©vu initialement dans le budget, et l'entretien nĂ©cessitera Ă©galement plus d'efforts que prĂ©vu. La premiĂšre version du pipeline peut ĂȘtre construite simplement, mais il est difficile de lui faire maintenir la cohĂ©rence des donnĂ©es dans votre stockage. Ne vous engagez pas Ă  maintenir votre propre pipeline de traitement des donnĂ©es tant que vous n'ĂȘtes pas sĂ»r que votre entreprise fonctionne. Une fois que vous l'avez fait, prenez le temps de le rendre fiable. Pensez Ă  utiliser Singer, le framework open-source des crĂ©ateurs de Stitch, nous avons construit une vingtaine d'intĂ©grations en l'utilisant.


Prise en charge d'une Ă©quipe de spĂ©cialistes des donnĂ©es en amĂ©liorant la conception et les performances des pipelines et des requĂȘtes


L'un des changements que nous avons vus dans le domaine de l'ingénierie des données au cours des cinq derniÚres années est l'émergence d'ELT - une nouvelle version d'ETL, qui convertit les données aprÚs leur chargement dans le stockage, et pas avant. L'essence et les causes d'un tel changement sont déjà bien couvertes dans d'autres sources. Je tiens à souligner que ce changement a un impact énorme sur qui construit ces pipelines.


Si vous écrivez du code sur Scalding pour analyser des téraoctets de données d'événement dans S3, puis les téléchargez sur Vertica, vous aurez probablement besoin d'un ingénieur de données. Mais si vos données d'événement (exportées de Google Analytics 360) sont déjà dans BigQuery, elles sont déjà entiÚrement disponibles dans un environnement évolutif hautes performances. La différence est que cet environnement parle SQL. Cela signifie que les analystes peuvent désormais créer leurs propres pipelines de transformation de données.


Cette tendance s'est dĂ©veloppĂ©e en 2014 lorsque Looker a publiĂ© l'outil PDT . La tendance s'est intensifiĂ©e lorsque des Ă©quipes entiĂšres d'experts en donnĂ©es ont commencĂ© Ă  construire des digraphes de traitement de donnĂ©es Ă  partir de plus de 500 nƓuds et Ă  traiter de grands ensembles de donnĂ©es Ă  l'aide de dbt au cours des deux derniĂšres annĂ©es. À ce stade, le modĂšle est profondĂ©ment enracinĂ© dans les Ă©quipes modernes et a donnĂ© aux analystes autant d'indĂ©pendance que jamais.


Le passage Ă  ELT signifie que les ingĂ©nieurs de donnĂ©es n'ont plus besoin d'effectuer la plupart des tĂąches de conversion de donnĂ©es . Cela signifie Ă©galement que les Ă©quipes sans ingĂ©nieurs peuvent aller loin en utilisant des outils de transformation de donnĂ©es conçus pour les analystes. Cependant, les ingĂ©nieurs de donnĂ©es jouent toujours un rĂŽle important dans la crĂ©ation de pipelines de conversion de donnĂ©es. Il y a deux situations oĂč leur participation est extrĂȘmement importante:


1. Lorsque vous devez augmenter votre productivité


Parfois, la logique d'un processus métier nécessite une transformation particuliÚrement complexe, et il est utile d'impliquer un ingénieur de données pour évaluer comment une approche particuliÚre de la création d'une table affecte les performances. De nombreux analystes n'ont pas beaucoup d'expérience dans l'optimisation des performances dans les entrepÎts de données analytiques, et c'est une excellente raison de commencer à travailler avec un spécialiste plus étroit.


2. Quand le code devient trop compliqué


Les analystes savent trĂšs bien rĂ©soudre les problĂšmes commerciaux Ă  l'aide de donnĂ©es, mais ne rĂ©flĂ©chissent souvent pas Ă  la façon d'Ă©crire du code extensible. À premiĂšre vue, il est facile de commencer Ă  crĂ©er des tables dans la base de donnĂ©es, mais tout peut rapidement devenir incontrĂŽlable. Engagez un ingĂ©nieur de donnĂ©es qui peut rĂ©flĂ©chir Ă  l'architecture gĂ©nĂ©rale de votre stockage et dĂ©velopper des transformations particuliĂšrement complexes, sinon vous risquez d'ĂȘtre laissĂ© seul avec un enchevĂȘtrement qui sera presque impossible Ă  dĂ©mĂȘler.


Création de transformations de données non SQL


SQL peut initialement satisfaire la plupart des besoins de conversion de données, mais il ne peut pas résoudre tous les problÚmes. Par exemple, il est souvent nécessaire d'ajouter des géodonnées à la base de données en prenant la latitude et la longitude et en les reliant à une région spécifique. De nombreux référentiels analytiques modernes ne peuvent pas encore résoudre un tel problÚme (bien que cela commence à changer! ), La meilleure solution serait donc de construire une ligne de départ en Python, qui complétera les données de votre référentiel avec des informations sur la région.


Un autre cas d'utilisation Ă©vident pour Python (ou d'autres langages autres que SQL) concerne l'apprentissage automatique. Si vous avez des recommandations de produits personnalisĂ©es, un modĂšle de prĂ©vision de la demande ou un algorithme de prĂ©vision des sorties qui prend les donnĂ©es de votre stockage et organise les pondĂ©rations, vous pouvez les ajouter en tant que nƓuds d'extrĂ©mitĂ© de votre digraphe de traitement des donnĂ©es SQL.


La plupart des entreprises modernes qui rĂ©solvent de tels problĂšmes en utilisant non-SQL utilisent Airflow. dbt est utilisĂ© pour la partie SQL du digraphe de donnĂ©es et les nƓuds non SQL sont ajoutĂ©s en tant que feuilles. Cette approche prend le meilleur des deux approches - les analystes de donnĂ©es peuvent toujours ĂȘtre principalement responsables des conversions basĂ©es sur SQL, et les ingĂ©nieurs de donnĂ©es peuvent ĂȘtre responsables du code ML Ă  usage industriel.


Quand votre équipe a-t-elle besoin d'un ingénieur de données?


Changer le rĂŽle d'un ingĂ©nieur de donnĂ©es implique Ă©galement de repenser la sĂ©quence d'embauche des employĂ©s. On pensait auparavant que vous avez principalement besoin d'ingĂ©nieurs de donnĂ©es, car les analystes et les spĂ©cialistes des sciences des donnĂ©es n'ont rien Ă  travailler sans une plate-forme prĂȘte Ă  l'emploi de traitement et d'analyse des donnĂ©es. Aujourd'hui, les spĂ©cialistes de l'analyse et du traitement des donnĂ©es peuvent travailler de maniĂšre indĂ©pendante et crĂ©er la premiĂšre version de l'infrastructure de donnĂ©es Ă  l'aide d'outils prĂȘts Ă  l'emploi. Pensez Ă  embaucher un ingĂ©nieur de donnĂ©es lorsque votre startup prĂ©sente l'un des 4 signes d'Ă©chelle:


  1. il y a 3 analystes / spécialistes en science des données dans votre équipe,
  2. votre plateforme de BI compte 50 utilisateurs actifs,
  3. la plus grande table de votre stockage atteint 1 milliard de lignes,
  4. Vous savez que vous devez créer au moins trois pipelines de traitement des données personnalisés au cours des prochains trimestres, et ils sont tous essentiels.

Si vous n'avez encore rencontré aucune de ces situations, votre équipe d'experts en données peut probablement travailler seule, en utilisant des technologies toutes faites, le soutien de consultants externes et les conseils de collÚgues (par exemple, dans les communautés localement optimistes ou dbt à Slack).


La principale chose Ă  comprendre est qu'un ingĂ©nieur de donnĂ©es en lui-mĂȘme n'a aucune valeur pour l'entreprise, son travail principal est d'augmenter la productivitĂ© de vos analystes. , KPI – . - , : , -, 33 %, , , .


, data scientist- .


, , – 5 1: / data science -. , , , .


?


- . , :


« , , - . . , - ( ) .
, – -, / data science. -, , , , . -, : “, , , ”».


. - – , , . .


, , :) . , , , , – - .


, - , – , . , , , !


, Skyeng :

Skyeng 30+ - -. , , . Amazon Redshift , Stitch Matillion ETL 40+ -, Segment , Redash Tableau , Amazon SageMaker ML.

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

, , , - . , , : , .

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

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


All Articles