« Un cadre robuste pour la prévention d’erreurs dans les workflows d’analyse des data lakes »
Jeudi 14 novembre 2024, université de Bourgogne.
La présentation se déroulera devant le jury composé de :
- M. Laurent d’Orazio, Professeur à l’Université de Rennes, Rapporteur
- M. Olivier Teste, Professeur à l’Université Toulouse 2, Rapporteur
- Mme Selmin Nurcan, Professeure à l’Université Paris 1, Examinatrice
- M. Djamal Benslimane, Professeur à l’Université Lyon 1, Examinateur
- M. Éric Leclercq, Professeur à l’Université de Bourgogne, Directeur de thèse
- Mme Nadine Cullot, Professeure à l’Université de Bourgogne, Codirectrice de thèse
Résumé :
Les data lakes, ou lacs de données, sont des plateformes flexibles proposant diverses fonctionnalités liées à la gestion et à l’analyse des données massives. Les utilisateurs des data lakes exploitent ces fonctionnalités au moyen d’opérateurs variés, dont l’implémentation peut prendre appui sur divers cadres théoriques et exploiter différents modèles de données, paradigmes de programmation ou de traitement, et environnements d’exécution. Ces opérateurs sont composés pour mettre en œuvre des analyses complexes sous forme de workflows qualifiés d’hybrides en raison de la variété des opérateurs utilisés. Dans les data lakes, les workflows d’analyse sont particulièrement sujets à différentes formes d’erreurs techniques, principalement provoquées par des compositions d’opérateurs incompatibles et par des transformations de données erronées ; et d’erreurs de conception, si certaines fonctionnalités nécessaires à l’exécution du workflow ne sont pas fournies par le data lake ou s’il ne satisfait pas les dépendances existantes entre les fonctionnalités. Dans cette thèse, nous concevons un cadre robuste pour la prévention d’erreurs dans les workflows d’analyse des data lakes en adoptant une approche centrée sur les opérateurs et leur composition plutôt que sur les données et leur structure. Nous exploitons la sûreté du typage et la théorie des types pour contrôler dès la compilation l’absence d’erreurs dans des compositions d’opérateurs à l’aide de types représentant au niveau schéma et au niveau modèle les données en entrée et en sortie des opérateurs. Nous exploitons la théorie des catégories pour définir les fonctionnalités fournies par les data lakes comme des instanciations de templates permettant de contrôler que des liaisons entre fonctionnalités satisfont les dépendances existantes. Nous regroupons les implémentations de nos constructions formelles basées sur la théorie des types au sein d’une bibliothèque Scala, que nous utilisons pour valider et évaluer notre proposition et son implémentation sur un cas d’exemple lié à l’analyse des réseaux sociaux numériques.
Abstract :
Data lakes are flexible platforms that provide various functionalities related to the management and analysis of Big Data. Data lake users leverage these functionalities by means of multiple operators whose implementation can rely on various theoretical foundations and use different data models, programming or processing paradigms, and execution environments. These operators are composed to implement complex analyses in the form of workflows that are described as hybrids because of the variety of operators that are used. In data lakes, analytical workflows are particularly prone to various forms of technical errors, mainly caused by incompatible operator compositions and erroneous data transformations; and design errors, if the data lake does not provide some functionalities required for the execution of the workflow or if the workflow does not satisfy existing dependencies between functionalities. In this thesis, we design a robust framework for error prevention in data lake analytical workflows by adopting an approach that focuses on operators and their composition rather than on data and their structure. We leverage type safety and type theory to control the absence of errors in operator compositions at compile time with types representing the schema and the model of input and output data of the operators. We use category theory to define the functionalities provided by data lakes as instances of templates allowing to study interactions between functionalities to ensure that they satisfy existing dependencies. We have gathered implementations of our formal constructs based on type theory in a Scala library, which we use to validate and evaluate our proposal and its implementation through a use case related to social network analysis.