Video
Learn more
Faites le tri parmi vos données pour améliorer l’engagement des utilisateurs et rationaliser les systèmes avec Redis Enterprise.
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 :
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).
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.
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à.
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.
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.)
Redis Enterprise propose deux technologies de déduplication : les ensembles et les filtres Bloom.
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.
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.
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.
Pour avoir un engagement des utilisateurs de classe mondiale, vos solutions doivent anticiper les besoins de l’utilisateur et permettre de comprendre ses expériences antérieures. Une excellente solution de déduplication vous permet de vous assurer que chaque interaction utilisateur est unique, pertinente pour les intérêts de l’utilisateur et basée sur l’historique de l’utilisateur.
Une solution de déduplication haute performance doit être capable de s’adapter pour gérer des ensembles de données massifs avec des performances élevées et une évolutivité linéaire. Les sets Redis et le module RedisBloom le font. Quelle que soit la solution que vous choisissez, les deux offrent des performances ultra -rapides sur toutes les tailles d’ensembles de données, y compris les ensembles multi-cloud et géo- distribués.
Une solution de déduplication efficace vous permet d’éviter les traitements redondants, en veillant à ce qu’aucune donnée ne soit traitée plusieurs fois. Dans certains cas, la déduplication peut être utilisée pour éviter tout traitement. De plus, l’utilisation de la déduplication pour limiter ou éliminer les alertes permet aux opérateurs de réagir plus facilement aux événements du système tout en évitant la fatigue liée aux alertes.
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
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.