Filters based fuzzy big joins
Jointures floues massives basé aux filtres
Résumé
A fuzzy or similarity join is one of the most useful data processing and analysis operations for Big Data in a general context. It combines pairs of tuples for which the distance is lower than or equal to a given threshold. The fuzzy join is used in many practical applications, but it is extremely costly in time and space, and may even not be executed on large scale datasets. Although there have been some studies to improve its performance by applying filters, a solution of an effective fuzzy filter for the join has never been conducted. In this thesis, we thus focus on optimizing fuzzy big joins using filters. To achieve these objectives, we first apply Bloom filters to fuzzy big join operations to eliminate most non-joining elements in input datasets before sending data to actual join processing. Thus, it reduces redundant intermediate data, unnecessary comparisons and avoid the data duplication. Another important proposal is Fuzzy Filters, which are probabilistic data structures designed to represent set(s) and its similarity elements. They are used to fast detect close elements of the set in given thresholds with small false positive rate and zero false negative rate. Moreover, these filters are not only independent with thresholds and distance measure functions but also easily updated. Therefore, it can be applied to a wide range of popular problems such as deduplication, error-correction, data cleaning, data integration, recursive joins and stream joins. Our improvement will significantly reduce the number of redundant computations, and the related overheads such as intermediate data, and communication for the deduplication operations. Besides, we make improvements for a multiple stage fuzzy join - Vernica Join. We replace the two jobs of the index tokens building by one job using Counting Bloom Filters, prune out redundant tokens, remove early duplicated result pairs and eliminate the deduplication job by prefix tokens overlap computing. We then make analysis comparisons of the fuzzy join algorithms persuasive based on a M-C-R cost model. As a result, with using the proposed filters, the fuzzy join operations can minimize disk I/O and communication costs. Moreover, the filters based fuzzy join operations are demonstrated to be more efficient than existing solutions through experimental evaluations in Spark. Experimental comparisons of different algorithms for fuzzy joins are examined with respect to intermediate data amount, the total output amount, the total execution time, and especially task timelines. Summary, our improvements on the join operations contribute to the global scene of optimizing data management for MapReduce applications on large-scale distributed infrastructures.
Une jointure floue est l'une des opérations de traitement et d'analyse de données les plus utiles pour le Big Data dans un contexte général. Il combine des paires de tuples dont la distance est inférieure ou égale à un seuil donné. La jointure floue est utilisée dans de nombreuses applications pratiques, mais elle est extrêmement coûteuse en temps et en espace, et peut même ne pas être exécutée sur des ensembles de données à grande échelle. Bien qu'il y ait eu quelques études pour améliorer ses performances en appliquant des filtres, une solution d'un filtre flou efficace pour la jointure floue n'a jamais été réalisée. Dans cette thèse, nous nous concentrons donc sur l'optimisation des grandes jointures floues à l'aide de filtres. Pour atteindre ces objectifs, nous appliquons d'abord des filtres Bloom aux opérations de grande jointure floue afin d'éliminer la plupart des éléments non joints dans les ensembles de données d'entrée avant d'envoyer les données au traitement de jointure réel. Ainsi, il réduit les données intermédiaires redondantes, les comparaisons inutiles et évite la duplication des données. Une autre proposition importante est les filtres flous, qui sont des structures de données probabilistes conçues pour représenter des ensembles et leurs éléments de similarité. Ils sont utilisés pour détecter rapidement les éléments proches de l'ensemble dans des seuils donnés avec un faible taux de faux positifs et zéro taux de faux négatifs. De plus, ces filtres sont non seulement indépendants avec des seuils et des fonctions de mesure de distance, mais aussi facilement mis à jour. Par conséquent, il peut être appliqué à un large éventail de problèmes courants tels que la déduplication, la correction d'erreurs, le nettoyage des données, l'intégration de données, les jointures récursives et les jointures de flux. Notre amélioration réduira considérablement le nombre de calculs redondants et les frais généraux associés tels que les données intermédiaires et la communication pour les opérations de déduplication. Nous effectuons ensuite des comparaisons d'analyse des algorithmes de jointure floue convaincantes sur la base d'un modèle de coût M-C-R. En conséquence, en utilisant les filtres proposés, les opérations de jointure floue peuvent minimiser les coûts d'E/S disque et de communication. De plus, les opérations de jointure floue basées sur des filtres se sont avérées plus efficaces que les solutions existantes grâce à des évaluations expérimentales dans Spark. Des comparaisons expérimentales de différents algorithmes pour les jointures floues sont examinées en ce qui concerne la quantité de données intermédiaires, la quantité totale de sortie, le temps total d'exécution et en particulier les calendriers des tâches. Bref, nos améliorations sur les opérations de jointure contribuent à la scène mondiale d'optimisation de la gestion des données pour les applications MapReduce sur des infrastructures distribuées à grande échelle.
Origine | Version validée par le jury (STAR) |
---|