dot Inscrivez-vous à notre webinaire -

Redis Cloud : Démarrez en toute simplicité

Solutions de déduplication des données rapides et sécurisées

Faites le tri parmi vos données pour améliorer l’engagement des utilisateurs et rationaliser les systèmes avec Redis Enterprise.

Qu’est-ce que la déduplication des données ?

La déduplication des données, également connue sous le nom de Dedup, offre une expérience utilisateur et un engagement optimisés, ainsi qu’un traitement des données plus efficace. Bien que la plupart des gens considèrent la déduplication comme la suppression de plusieurs copies des mêmes données dans une base de données, en réalité, la nécessité de déduplication se produit dans de nombreuses situations courantes, suscitant des questions telles que :

Cas d’utilisation de déduplication

Impliquer les clients sans répéter les messages précédents

L’envoi de messages aux clients est un élément essentiel de toute entreprise. Avant d’envoyer un e-mail ou un texte à un utilisateur donné, la déduplication permet de déterminer si cet utilisateur a déjà vu cet e-mail ou ce texte. Si c’est le cas, le système peut envoyer à cet utilisateur un message différent ou décider de ne pas contacter cet utilisateur pendant une période donnée (le cas échéant).

Illustration of deduped email messages
Illustration of deduped ETL process

Traitement ETL

L’extraction, la transformation et la charge (ETL) sont des techniques courantes permettant de travailler avec de grands ensembles de données tels que les journaux d’événements. En général, l’ETL est utilisé pour collecter des données provenant de systèmes disparates afin de pouvoir les analyser. Ajouter la déduplication à ce processus signifie que le système n’effectue pas la même analyse plusieurs fois sur plusieurs copies des mêmes données.

S’assurer que les identifiants utilisateur sont uniques

Lorsqu’un utilisateur crée un compte, il est important que son identifiant soit unique. Avec la déduplication, il est insignifiant de déterminer si un ID donné existe déjà.

Illustration of deduped user profiles
Illustration of deduped alerts

Filtrage des alertes en double

Il est important d’être alerté de la survenue d’un événement particulier dans un système. Ne pas recevoir d’alerte du tout n’est pas très bon, mais il est presque tout aussi redoutable d’obtenir 300 alertes pour le même événement. Ou 30 000 alertes. La déduplication peut entraver une alerte qui s’est produite auparavant, mais la technique peut être combinée à un chronomètre, pour supprimer les doublons récents, permettant au système d’émettre une alerte donnée, une seule fois dans une période donnée.

Filtrage des transactions pour éviter un traitement coûteux de la détection des fraudes

La détection des fraudes est un excellent cas d’utilisation pour le traitement IA/ML. Malheureusement, le traitement IA/ML est coûteux. La déduplication permet d’examiner une transaction et voir si elle est similaire à une transaction qui a été approuvée par le passé. Si la nouvelle transaction diffère quelque peu, le système peut approuver la transaction automatiquement sans supporter le coût lié à la détection de fraude. (Dans ce cas d’utilisation, une valeur en double est une bonne chose.)

Illustration of deduped transactions

Comment Redis Enterprise relève les défis liés à la déduplication en temps réel,

Redis Enterprise propose deux technologies de déduplication : les ensembles et les filtres Bloom.

Redis Sets

Deduplication Illustration Redis Sets

Un ensemble Redis ne stocke une valeur donnée qu’une seule fois. Quel que soit le nombre de fois qu’une valeur est ajoutée à un ensemble, l’ensemble ne contient qu’une seule copie de cette valeur. Les ensembles Redis sont également optimisés pour répondre à la question : « Cette valeur est-elle dans cet ensemble ? » avec une vitesse extrême. Les ensembles sont également déterminés dans la mesure où les réponses à la question sont « Absolument » et « Absolument pas ». Cependant, sachez qu’un ensemble peut utiliser une quantité importante de mémoire à mesure que le nombre de valeurs uniques dans l’ensemble augmente.

RedisBloom

Deduplication Illustration Bloom Filter

Le module RedisBloom fournit des filtres Bloom, un algorithme probabiliste utile pour la déduplication. Contrairement à un ensemble, un filtre Bloom stocke uniquement les hachages pour chaque valeur, et non la valeur elle-même. Cela signifie qu’un filtre Bloom peut prendre seulement 2 % de la mémoire nécessaire à un ensemble. Ils sont généralement légèrement plus rapides que les séries, elles-mêmes très rapides. Mais il y a un compromis pour cette vitesse et cette efficacité de la mémoire : un filtre Bloom n’est pas déterminé. Les réponses à la question « Avons-nous déjà vu cette valeur ? » sont « certainement pas » et « probablement aussi ». En d’autres termes, les faux positifs sont possibles avec un filtre Bloom.

Réussite client

Une grande entreprise de jeux vidéo utilise les filtres Bloom dans Redis Enterprise pour ajouter une couche de déduplication au niveau des événements aux flux de données en temps réel, ce qui lui permet de traiter plus de 2 milliards d’événements par jour. Par rapport à leur mise en œuvre initiale, ils utilisent désormais environ 90 % de mémoire en moins et ont réduit la latence d’environ 2 millisecondes à moins de 0,25 milliseconde.

Les 3 principaux défis qu’une solution de déduplication doit relever

Comment mettre en œuvre la déduplication

Utilisation des ensembles

Un ensemble contient au plus une copie de n’importe quelle valeur donnée. En d’autres termes, nous pouvons ajouter la même valeur à un ensemble un million de fois (appeler les chiens SADD encore et encore), mais la valeur ne se produira qu’une seule fois dans l’ensemble. Avec un ensemble défini, nous pouvons utiliser la commande SISMEMBER pour savoir si une valeur donnée figure dans l’ensemble. Si nous créons un ensemble d’animaux nommés et y ajoutons les valeurs chien, chat et perroquet, la valeur chien est un membre de l’ensemble, alors que la valeur singe n’est pas un membre de l’ensemble :

redis> SADD pets dog cat parrot
(integer) 3
redis> SISMEMBER pets dog
(integer) 1
redis> SISMEMBER pets monkey
(integer) 0
redis> SADD pets dog
(integer) 0

Utilisation des filtres Bloom

Voici à quel point il est facile de configurer et d’utiliser un filtre Bloom :

redis> BF.ADD users doug
(integer) 1
redis> BF.ADD users lisa
(integer) 1
redis> BF.EXISTS users doug
(integer) 1
redis> BF.EXISTS users bob
(integer) 0
redis> BF.ADD users lisa
(integer) 0

Nous voulons nous assurer que chaque utilisateur a un nom unique. Nous ajoutons doug et lisa au filtre Bloom. (BF.ADD crée le filtre si nécessaire.) Si quelqu’un essaie de créer un autre compte nommé doug, le filtre Bloom indiquera que nous avons probablementdéjà un utilisateur portant ce nom. D’autre part, si quelqu’un essaie de créer un compte avec le nom d’utilisateur bob, le filtre Bloom nous dira qu’il ne s’agit certainement pas d’un identifiant que nous avons vu auparavant, la création d’un compte avec ce nom est donc sécurisée.