Plateforme de données Eats : donner aux entreprises les moyens d'exploiter les données

Plateforme de données Eats : donner aux entreprises les moyens d’exploiter les données

Comment Coupang Eats a construit un système d’ingestion, de traitement et d’utilisation de données basé sur la configuration – Partie 1

Pour fred fu

La commande et la livraison de nourriture en ligne est un marché extrêmement concurrentiel, où la rapidité est la clé de la survie. Coupang Eats (appelé simplement Eats) est la filiale de livraison de nourriture du géant sud-coréen du commerce électronique Coupang.

Dans cet article, nous détaillerons comment l’équipe Eats Data Platform a créé un système de traitement de données générique basé sur la configuration qui accélère notre croissance en automatisant les opérations commerciales critiques.

Table des matières

· Introduction
Architecture de la plateforme de données Eats
Canalisations de traitement de données
∘ Pas en temps réel
∘ Temps quasi réel (NRT)
∘ Temps réel pur
· Conclusion

Eats est une entreprise relativement nouvelle qui a été lancée fin 2019. Au début, nous étions occupés à mettre en place des opérations et à nous assurer que tout se passait bien. Mais maintenant, nous en sommes au stade de notre activité où notre objectif n’est pas seulement de garantir la stabilité des applications, mais également de garantir qu’elles fonctionnent plus efficacement et plus intelligemment.

Cela signifie utiliser l’automatisation des données et des modèles complexes d’apprentissage automatique (ML) pour accélérer les activités d’un plus grand nombre de clients avec des coûts d’ingénierie réduits. Par exemple, nous formons actuellement des modèles ML pour les estimations de délais de livraison, effectuons des promotions client automatisées basées sur des balises utilisateur en temps réel et créons des services de données dynamiques pour prendre en charge les visualisations de données et les calculs de métriques. Certains détails sur la façon dont nous utilisons la science des données pour surmonter les défis de la livraison de nourriture peuvent être trouvés dans notre article précédent.

La base de ces opérations intelligentes et automatisées repose sur une plate-forme de traitement de données robuste et complète qui peut s’adapter à la croissance de nos clients et prendre en charge tous nos besoins commerciaux, qu’il s’agisse d’analyses en temps réel ou de services de données hors ligne.

Au début de notre activité, nous n’avions pas de plate-forme de données centralisée. La formation et la maintenance des modèles ML et d’autres services de science des données ont été exécutés équipe par équipe avec peu de coordination. Certains de nos points faibles incluent une ingénierie de fonctionnalités inefficace, une surveillance et une alerte lentes des métriques, un manque de visualisations de données complexes, etc. Cette inefficacité n’était pas seulement un gaspillage de nos ressources d’ingénierie, elle est également devenue un goulot d’étranglement majeur dans nos efforts d’expansion. Suivez notre compte pour notre prochain article, où nous discuterons plus en détail de ces points douloureux.

Une plateforme de données est chargée de gérer le cycle de vie du flux de traitement des données du début à la fin. Un cycle de vie typique du traitement des données comprend les étapes suivantes :

  1. ingestion de données c’est lui première étape, où les données sont tirées de diverses sources. Pour assurer un flux de données fluide dans les étapes suivantes, les données sont hiérarchisées et classées au cours de cette étape.
  2. prétraitement des données Il consiste à remplir des valeurs vides, à exécuter un formatage standard, à vérifier la qualité des données, à filtrer les données, etc. L’objectif principal du prétraitement est de préparer les données pour les tâches de science des données et d’apprentissage automatique.
  3. Traitement de l’information il s’agit de convertir les données brutes en types de sortie souhaités selon les besoins pour l’analyse de données complexes. Cette étape comprend également le transfert des données dans les magasins de données appropriés.
  4. Utilisation des données génère des analyses à partir des données traitées. Dans cette dernière étape, les valeurs des données sont collectées et transmises à un large éventail de DaaS qui aident à résoudre intelligemment les problèmes de l’entreprise.

La plate-forme de données Eats suit les quatre étapes ci-dessus, et vous pouvez voir son architecture détaillée dans la figure 1. La plate-forme est un système complet qui peut prendre en charge efficacement tous nos besoins de traitement de données. Les analystes commerciaux (BA), les ingénieurs de données et les scientifiques de données utilisent notre plateforme flexible comme un système intégré qui répond à tous leurs divers besoins en données.

L'architecture générale de la plateforme de données Coupang Eats.
Figure 1. L’architecture générale de la plateforme de données Eats.

La livraison de nourriture est une activité complexe car il s’agit d’un marché à trois volets avec des clients, des partenaires de livraison Eats (EDP) et des commerçants qui nécessite de nombreux calculs en temps réel. Par exemple, l’attribution d’une commande à un partenaire de livraison doit être effectuée en quelques secondes pour la livraison la plus rapide aux clients. Cependant, d’autres tâches, telles que le ciblage d’utilisateurs pour des publicités ciblées, ne sont pas aussi sensibles au temps et ne doivent pas être effectuées en temps réel.

Notre plate-forme de données a été conçue pour s’adapter à des tâches avec des exigences de temps aussi radicalement différentes. Dans cette section, nous nous concentrons plus en détail sur les pipelines de traitement des données de notre plateforme de données. Les moteurs de calcul sont responsables du traitement des données en temps non réel, en temps quasi réel et en temps réel.

Coupang mange des pipelines de traitement de données
Figure 2. Canalisations de traitement de données

pas en temps réel

  • Efficacité temporelle : au moins 1 heure

Le pipeline non en temps réel s’exécute en mode batch avec un planificateur de tâches. Ce pipeline prend en charge la production de fonctionnalités liées au ML, la génération de profils et d’étiquettes d’utilisateurs et la visualisation de données.

Avant de développer notre plate-forme de données, le plus gros problème du pipeline en temps non réel était l’envoi de fonctions et de signaux hors ligne au stockage en ligne. Le chargement de la taille massive des ensembles de données par lots traités était lent, inefficace et coûteux pour nos systèmes.

Pour résoudre ce problème, nous avons développé un pipeline piloté par la configuration pour accélérer ce processus. Avec une approche basée sur la configuration, les ingénieurs peuvent simplement définir de nouvelles configurations pour ajouter une nouvelle source de données, ce qui rend le processus simple et mains libres. En fait, cela ne prend que les trois étapes simples décrites ci-dessous.

  1. Définissez les informations de synchronisation des données dans notre système de gestion des métadonnées. Nous pouvons même définir un ensemble complet de rôles, qui peuvent contenir de nombreux rôles prédéfinis pour un scénario métier spécifique et les relations de mappage entre les rôles et les colonnes de la table Hive.
  2. Fournissez un SDK Spark générique qui lira les données de Hive et synchronisera les fonctions avec le magasin de fonctions en ligne en fonction des paramètres de mappage et de métadonnées prédéfinis.
  3. Créez une tâche Spark dans le planificateur de tâches et consultez le SDK pour synchroniser automatiquement les données avec notre stockage en ligne.
Coupang mange un pipeline de données en temps non réel
Figure 3. Le pipeline de données qui n’est pas en temps réel.

Temps quasi réel (NRT)

  • Efficacité temporelle : ≥ 30 secondes

Bien que le streaming de données en temps réel soit pris en charge par diverses applications, il s’agit d’une lourde charge sur l’infrastructure de données et sa configuration nécessite une expertise technique approfondie. La transmission de données en temps réel manque également de flexibilité pour prendre en charge l’évolution des besoins de l’entreprise.

En raison de ces inconvénients, nous avons conçu un pipeline en temps quasi réel (NRT) qui tire parti des moteurs OLAP hautes performances. Le pipeline NRT peut générer des signaux en temps quasi réel via des tâches planifiées qui exécutent des scripts SQL. Le pipeline NRT prend en charge la génération de fonctionnalités en temps réel pour la prédiction ML, la création de balises utilisateur en temps réel et les tableaux de bord et alertes de métriques commerciales en temps réel.

Le moteur NRT est un pipeline générique basé sur la configuration, comme le pipeline non en temps réel. Le code peut prendre en charge différents types d’entreprises via SQL, un langage familier aux ingénieurs de données, aux data scientists et aux BA. Depuis que nous assurons l’entretien du pipeline NRT depuis plus de six mois, l’efficacité de notre production de fonctionnalités s’est considérablement améliorée.

Voici comment nos utilisateurs internes utilisent le pipeline NRT :

  1. Ingérez les messages Kafka en amont dans le moteur OLAP ou lisez les données d’une table Hive dans le stockage cloud.
  2. Exécutez SQL à partir du moteur OLAP à intervalles réguliers (30 secondes à 1 heure). Au cours de cette étape, des tables larges sont créées en joignant diverses sources de table collectées à partir de Kafka ou du stockage cloud, qui stockent les données en temps réel.
  3. À l’aide des tables étendues générées à l’étape précédente, le scientifique des données crée des tâches SQL à partir du moteur OLAP qui sont planifiées pour générer des métriques et des signaux en temps quasi réel.
  4. Le planificateur de tâches exécutera le SQL à l’intervalle défini et enverra les signaux produits à Kafka pour que les tâches suivantes consomment ou écrivent dans le magasin de données.
Coupang Eats proche du pipeline de données en temps réel
Figure 4. Le pipeline de données en temps quasi réel.

pur temps réel

  • Efficacité temporelle : < 1 seconde

Le pipeline NRT pourrait couvrir environ 80 % de nos cas d’utilisation de fonctionnalités en temps réel en production. Cependant, il ne pouvait pas prendre en charge des scénarios à très haute efficacité et à faible latence tels que la détection des inondations et le contrôle des risques.

Ces tâches urgentes dépendaient de données brutes en temps réel. Cependant, le pipeline en temps réel pur utilise Spark et un autre moteur de traitement distribué. Étant donné que la plupart des utilisateurs de données n’étaient pas familiarisés avec l’écriture de code de streaming Spark, il n’était pas pratique de s’attendre à ce qu’ils puissent écrire en continu du code à la demande pour des tâches de données en temps réel.

Encore une fois, nous avons développé un pipeline piloté par la configuration qui pourrait être facilement utilisé par tous les utilisateurs pour le traitement des données en temps réel. Vous trouverez ci-dessous une description de leur processus.

  1. Ingérez les données nécessaires dans un thème Kafka.
  2. Partitionnez dynamiquement les données d’événement sur différents supports en aval en fonction des méta-paramètres de fonction en temps réel via le système de streaming.
  3. Calculez les valeurs des fonctions en temps réel sur la base de différents agrégateurs pré-implémentés selon la définition des métadonnées de la fonction. Envoyez la valeur calculée à Kafka ou à l’opérateur en aval, instantanément ou périodiquement.

Actuellement, le pipeline pur en temps réel prend en charge une dizaine de fonctions statistiques fréquemment utilisées, telles que SUM, COUNT, UNIQUE COUNT, TOPN. De plus, le pipeline prend en charge les fonctions statistiques multidimensionnelles. Avec ce pipeline en temps réel pur, nous pouvons définir le flux de données sans code. Cela a considérablement réduit le coût des fonctions de calcul en temps réel et augmenté notre efficacité.

Coupang Eats pipeline de données brutes en temps réel
Figure 5. Le pipeline de données pur en temps réel.

#Plateforme #données #Eats #donner #aux #entreprises #les #moyens #dexploiter #les #données

Leave a Comment

Your email address will not be published.