Cómo almacenar y consultar 100 millones de elementos utilizando sólo 77 MB con filtros Bloom de Python |  de Mike Huls |  febrero de 2024

Realice verificaciones de membresía ultrarrápidas y con uso eficiente de la memoria en Python con esta estructura de datos que necesita conocer

Programación con vista (imagen de ChatGPT)

Un filtro Bloom es una estructura de datos súper rápida y eficiente en memoria con muchos casos de uso. El filtro Bloom responde a una pregunta sencilla: ¿un conjunto contiene un valor determinado? Un buen filtro Bloom puede contener 100 millones de elementos, utilizar sólo 77 MB de memoria y seguir siendo ultrarrápido. Consigue esta increíble eficiencia al ser probabilístico: cuando le preguntas si contiene un elemento, puede responder de dos maneras: definitivamente no o tal vez sí.

Un filtro Bloom puede indicarle con certeza que un artículo es no un miembro de un conjunto, o que probablemente lo sea

En este artículo descubriremos cómo funciona un filtro Bloom, cómo implementar uno y repasaremos algunos casos de uso prácticos. ¡Al final tendrás una nueva herramienta en tu haber para optimizar tus scripts significativamente! ¡Codifiquemos!

Este artículo explora la mecánica de un filtro Bloom y proporciona una implementación básica de Python para ilustrar su funcionamiento interno en 6 pasos:

  1. ¿Cuándo utilizar un filtro Bloom? Características y casos de uso.
  2. ¿Cómo funciona un filtro Bloom? una explicación sin código
  3. ¿Cómo se agregan valores y se verifica la membresía?
  4. ¿Cómo puedo configurar un filtro Bloom?
  5. ¿Qué papel juegan las funciones hash?
  6. Implementando un filtro Bloom en Python.

El código resultante de este artículo es más educativo que eficiente. Si está buscando un filtro Bloom optimizado, eficiente en memoria y de alta velocidad, consulte florecerlib; un paquete Python súper rápido y fácil de usar que ofrece filtros Bloom, implementados en Rust. Más información aquí.

pip install bloomlib

Los filtros Bloom son muy útiles en situaciones donde la velocidad y el espacio son escaso. Este es en gran medida el caso de la ciencia de datos, pero también en otras situaciones cuando se trata de big data. Imagina que tienes una aplicación de diccionario. Cada vez…