Checklist et bonnes pratiques du projet
Vous avez décidé de vous lancer et vous venez de créer votre projet ! En tant que premiers utilisateurs de notre platform, nous
Objectif
Vous avez décidé de vous lancer et vous venez de créer votre projet ! Bravo !
Et maintenant ? Par où commencer ?
En tant que premiers utilisateurs de notre platform, nous avons accumulé plusieurs années d'expérience dans la conduite de projets de données. Nous avons rassemblé une liste de bonnes pratiques, apprises au fil des années grâce à notre pratique des services, que nous sommes ravis de partager avec vous.
Les projets sur Data Platform vous permettent de rassembler une équipe et de travailler ensemble sur le même projet de données.
Vous pouvez commencer par un simple chargement de fichiers et basculer sans effort vers un traitement de données quasi temps réel, en conservant votre méthodologie et en scalant facilement à mesure que votre projet grandit.
Alors démarrez, itérez, et faites grandir votre projet étape par étape : votre projet répondra à vos besoins croissants.
Un projet type traverse souvent les jalons principaux suivants :
- Une checklist rapide sur le cas d'usage et le périmètre du projet
- Donner un accès à vos coéquipiers
- Faire de manière itérative, et selon les besoins :
- Adapter les ressources du projet à vos besoins
- Définir les Data Sources
- Concevoir les Tables
- Construire les Actions et Workflows pour traiter les données
- Construire les Queries et Dashboards pour visualiser vos données
- Construire les Apps & API
- Donner accès aux utilisateurs finaux
- Monitorer les Jobs et Déploiements
- Recueillir des retours
Checklist
Nous vous recommandons de suivre notre guide de démarrage pour bien comprendre les composants clés du projet et les concepts de la Data Platform.
Avant de vous lancer, voici quelques vérifications de base sur le périmètre et le calendrier de votre cas d'usage :
- Sources de données
- De quelles données avez-vous besoin ?
- Les données sont-elles disponibles ? Comment ? L'historique des données est-il disponible ?
- Dimensionnement du stockage : quel volume de données et de calcul ce projet nécessitera-t-il ?
- À quelle fréquence doit-il être rafraîchi ?
- Décrivez votre propre livre de données :
- La « data story » : d'où viennent-elles ? Comment ont-elles été produites ? Quel est l'historique de votre flux de données ?
- Champs de données : que signifient-ils ? à quoi servent-ils ?
- Règles métier détaillées (sur les données)
- KPI : comment les calculer ? que signifient-ils ?
- Que doit-on produire ?
- Storyboard UX
- API pour usage externe
- Export de fichiers
- Détection et atténuation des risques
- Qu'est-ce qui pourrait mal se passer ? Qu'y a-t-il de complexe dans votre projet ?
- Identifier/anticiper les goulets d'étranglement ou obstacles possibles
- Identifier et tirer parti d'itérations courtes
- Visualiser et vérifier les données le plus tôt possible
- Publiez tôt, publiez souvent !
Gestion des utilisateurs
Les projets facilitent le travail en équipe sur un même projet. Il existe deux niveaux de gestion d'équipe :
- Les membres de votre organisation Data Platform sont vos coéquipiers. Ils ont créé un compte Data Platform
- Les utilisateurs de votre projet sont soit des coéquipiers travaillant sur ce projet, soit des utilisateurs finaux de votre API et de vos apps
- Les membres d'une organisation sont automatiquement ajoutés comme utilisateurs dans tous les projets de cette organisation. Les permissions doivent être accordées manuellement aux non-administrateurs.
Après avoir ajouté votre équipe à votre organisation, consultez comment leur donner des droits d'accès dans l'Identity Access Manager de chaque projet selon leurs compétences et permissions.
Les droits d'accès de vos utilisateurs finaux sont également gérés dans l'Identity Access Manager.
Gérer les ressources
Les projets ont été conçus dès l'origine pour évoluer facilement à mesure que les besoins de votre projet de données changent. Vous pouvez scaler horizontalement et verticalement indépendamment n'importe quel composant de votre choix en quelques clics, par exemple vos apps.
Chaque composant de votre projet consommera des ressources lorsqu'il est activement en cours d'exécution (via un job ou un déploiement).
Même à l'arrêt, votre projet utilise par défaut quelques DPU. Vous pouvez gérer ce montant dans le Control Center.
En savoir plus sur la consommation de ressources
Collecter des données
Jetez un œil aux connecteurs disponibles et rappelez-vous qu'il est toujours possible d'écrire une action personnalisée pour faire tout ce qui n'est pas déjà possible via l'interface.
Si vous devez gérer des fichiers dans votre projet, nous recommandons d'utiliser les buckets du Lakehouse Manager :
- organisez les buckets soit par sujet (référentiels par exemple), par type de traitement ou par fournisseurs selon vos besoins
- au sein d'un bucket, vous pouvez utiliser des dossiers pour mieux organiser vos fichiers
- lors de la définition d'une source, le connecteur Data Platform Buckets vous permet de sélectionner un bucket puis de sélectionner des fichiers comme sources
- si vous avez plusieurs fichiers dans le même bucket/dossier :
- si chaque fichier est différent, vous pouvez les analyser séparément et les utiliser comme source pour les actions du Data Processing Engine
- si tous les fichiers doivent être traités de la même manière : il vous suffit d'en sélectionner un à analyser, vous l'utiliserez comme source et utiliserez la segmentation sur un ensemble de fichiers pour les traiter
- consultez comment envoyer des fichiers vers les buckets avec des outils compatibles S31 pour l'intégrer à votre process interne
Analyser les données et définir des règles de blueprint
Une fois vos sources configurées, prenez le temps de les analyser et de configurer des règles de nettoyage de base appelées règles de blueprint. Cela peut aider à corriger des problèmes courants comme :
- le formatage de dates
- le formatage de nombres
- le nettoyage de chaînes de caractères
- ignorer les lignes incomplètes
- ... et bien plus encore
À long terme, cette étape vous fera gagner beaucoup de temps !
Organiser les données
La page Tables est l'endroit où vous préparez le schéma de votre base de données.
Tables
- Nous recommandons d'utiliser un préfixe selon le type de données :
ref_: pour les référentiels et données stables, sans information temporelleraw_: données importées telles quelles avec des changements minimaux. Cela peut être utilisé pour retracer les problèmes de donnéesprm_: tables primaires, c'est-à-dire des données de qualité améliorée issues deraw_fct_: consolidation desfactsprovenant de plusieursprim_etref_dans unescalecommuneagr_: agrégation de données selon unescaledifférente (par exempledatetimeversdateoudateversyear)- elles sont généralement conçues pour optimiser les requêtes
- construisez une table
agr_par granularité de scale en ajoutant tous les attributs nécessaires - puis ajoutez des noms d'attributs qui indiquent la granularité (
agr_station_yearmonth,agr_movie_date)
tmp_: tables temporaires utilisées pour le traitement (marquez-les comme non requêtables)mlm_: pour les tables utilisées dans un modèle de machine learning
- Donnez des noms clairs qui décrivent ce que représente une ligne de données
- Définissez des index pour accélérer les opérations sur les données
Attributs
Utilisez l'onglet Attributs pour examiner tous les attributs, dans quelles tables ils sont utilisés, quelles Actions DPE les utilisent, etc.
Voici quelques bonnes pratiques concernant les attributs (c'est-à-dire les noms de champs dans les tables) :
- type d'attribut : choisissez entre dimension ou measure
- dimension : information qualitative qui peut être utilisée pour scaler, filtrer, etc. mais pas sommée.
- measure : information numérique qui peut, la plupart du temps, être sommée, comptée, moyennée, etc.
- nommage des attributs :
- utilisez un préfixe pour les distinguer (ex.
client_,fb_,site_) - nommez les attributs
measurede façon à indiquer une fenêtre temporelle :_nb_: nombre pour ce jour_total_: valeur pour ce jour_diff_: différence par rapport au jour précédent- ...
- indiquez clairement ce dont il s'agit (c'est-à-dire
_amount_,_ticket_,_fans_) - indiquez l'unité de mesure si elle n'est pas évidente (c'est-à-dire
_g,_kg,_wh,_kwh,_eur,_usd)
- utilisez un préfixe pour les distinguer (ex.
Il est très important d'utiliser le même nom et le même type d'attribut dans toutes les tables pour désigner la même information. Ainsi, lors de l'exécution d'une query dans l'Analytics Manager, celui-ci vérifie dynamiquement l'objet le plus adapté pour les champs requis.
Explorer
Utilisez l'Explorer pour vérifier rapidement le contenu des tables.
Traiter les données
Le Data Processing Engine (DPE) est utilisé pour construire des actions qui sont le cœur de votre flux de données physique. Elles peuvent s'exécuter seules ou être organisées en groupes appelés workflows.
Actions
Assurez-vous d'examiner en détail les types d'actions fournis.
Si vous devez aller plus loin, commencez à écrire une Custom Action en utilisant notre SDK pour interagir avec le reste de votre projet en tirant parti de Python ou PySpark.
Utilisez les notebooks pour prototyper rapidement une Custom Action, puis exportez-la vers le Data Processing Engine
- Pour les Aggregate Actions :
scale: doit avoir la même granularité que la clé primaire de la table de destination- vérifiez bien vos règles de jointure de tables : c'est la principale source d'erreurs
- Réglez le niveau de log de manière appropriée selon le cycle de vie (c'est-à-dire
debugsi nécessaire,infosinon) - Utilisez Auto flush all pour vider tous les caches et visualiser les mises à jour apportées par l'action sur les datasets
Utiliser Repositories et Versions
À mesure que votre projet grandit, n'oubliez pas que vous pouvez organiser les actions dans des repositories utilisant des versions selon vos besoins.
Les actions sont listées par ordre alphabétique : vous pouvez ajouter des préfixes tels que des nombres pour mieux les organiser.
Utiliser la segmentation
Pour tirer pleinement parti de la puissance du DPE de la Data Platform, utilisez la Segmentation pour paralléliser les tâches de calcul au niveau d'une action.
Utiliser un périmètre
Pour limiter une action ou un workflow à un sous-ensemble de vos données, par exemple les 30 derniers jours, utilisez l'option Perimeter.
Écrire des queries
Utilisez des dossiers et des repositories pour organiser les queries sauvegardées dans l'Analytics Manager.
Par exemple :
- Data Quality : queries pour vérifier la qualité des données
- Data Analysis : queries pour visualiser les caractéristiques de base
- App-xxx : préparer des queries à utiliser dans votre application
- Cela vous permet de mettre à jour le schéma de la base de données et les queries sans avoir à déployer une nouvelle version de l'app
- Donnez des noms clairs et descriptifs à vos queries
Query Engine
- moteur SQL unifié sur plusieurs bases de données
- Explorer dans le Lakehouse Manager
- Construire et publier des Dashboards
- Accès depuis des outils comme PowerBI
Construire des applications
Prenez le temps de comprendre les Application Services et les paramètres possibles.
Conseils utiles
- Concevez un storyboard avant de démarrer votre projet
- Assurez-vous que vos
dynamic parameterssont présents dans toutes les tables que vous devez requêter - Utilisez le label de l'objet dans les Tables pour la traduction automatique
- Tirez parti des Formatters et des Translations
- Tirez parti des Style templates pour rationaliser le développement de vos Apps
Un cycle de développement d'application typique est le suivant :
- Concevez un storyboard
- vérifiez que les données sont disponibles
- identifiez les
dynamic parameters - identifiez les charts et custom components nécessaires
- Analytics Manager : préparez et vérifiez les queries nécessaires
- Implémentez une première version dans l'UI
- configurez les
dynamic parameters - configurez les
dashboardsetmenus - configurez les
chartsdisponibles selon les besoins - configurez les
dictionaries,formattersettranslations
- Améliorez cette version
- Adaptez le CSS selon les besoins
- Tirez parti des Style templates
- Implémentez votre propre custom chart ou custom component selon les besoins
- Testez et itérez à nouveau
- Donnez accès à davantage d'utilisateurs
Personnaliser davantage votre application
L'application repose sur le framework ReactJS. Nous vous recommandons vivement de suivre notre guide sur la personnalisation avancée des apps.
Repositories Git
Il est généralement recommandé de synchroniser votre application avec un repository Git et de déployer deux applications :
my-develop: synchronisée avec votre branche developmy-master: synchronisée avec votre branche master
Noms de domaine personnalisés
Par défaut, votre application est disponible à :
Vous pouvez facilement le modifier dans les paramètres de l'App pour qu'elle soit à :
Si vous avez besoin d'une personnalisation supplémentaire, vous pouvez enregistrer votre propre domaine et fournir vos propres certificats SSL :
Donner accès à votre application
Par défaut, chaque Application créée dans Application Services possède sa contrepartie dans l'Identity Access Manager.
- Application Services
- il gère l'instance qui sera déployée et exécutée
- il est lié à une Application de l'Identity Application Manager
- il utilisera la configuration de cette IAM App concernant les Auth Providers, Users, etc.
- Identity Access Manager, vous pouvez définir :
- Logo
- Titre de l'application
- Fournisseur d'authentification autorisé
Ajoutez tous les utilisateurs finaux qui auront accès à votre application (en utilisant des fournisseurs d'authentification si votre entreprise dispose d'un fournisseur SSO), et utilisez les rôles et groupes pour gérer le contrôle d'accès aux données.
Front API
La Front API par défaut vérifie l'authentification, traite les requêtes de l'App en ajoutant des dynamic parameters et en implémentant des ACL.
Voici quelques scénarios où une API personnalisée est nécessaire.
- Implémenter des transformers
- Implémenter une "evolution" personnalisée
- Implémenter des ACL complexes
Monitor
Le Control Center donne accès à :
- le monitoring de l'usage des ressources et de la santé
- les logs de tous les déploiements et jobs
- la création d'alertes sur les déploiements et jobs
- une vue complète de toutes les exécutions et planifications de jobs au niveau du projet et de l'organisation
Sauvegarde du projet
Configuration du projet
En savoir plus sur comment sauvegarder et restaurer la configuration de votre projet.
Export des données
En utilisant une action personnalisée du Data Processing Engine, vous pouvez exporter toutes vos données vers un bucket du Lakehouse Manager.
Aller plus loin
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.
Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.
Rejoignez notre communauté d'utilisateurs.
1 : S3 est une marque déposée appartenant à Amazon Technologies, Inc. Les services de OVHcloud ne sont pas sponsorisés, approuvés, ou affiliés de quelque manière que ce soit.