Compartir a través de


Índices de filtros de Bloom

Nota:

Cuando se utiliza cálculo habilitado para Photon y Databricks Runtime 12.2 o superior, el rendimiento de E/S predictivo supera a los filtros Bloom en el rendimiento de lectura. Consulte ¿Qué es la E/S predictiva?.

Tanto en Databricks Runtime 13.3 como en las versiones posteriores, Databricks recomienda usar la agrupación en clústeres para el diseño de tabla Delta. Consulte Uso de clústeres líquidos para tablas.

Databricks solo recomienda usar filtros Bloom al usar recursos de cálculo que no admiten estas funcionalidades.

Un índice de filtro Bloom es una estructura de datos eficiente en el espacio que permite omitir datos en columnas elegidas, especialmente para los campos que contienen texto arbitrario.

Funcionamiento de los índices de filtro Bloom

Los índices de filtro de Bloom de Azure Databricks constan de un índice de omisión de datos para cada archivo de datos. El índice de filtro bloom se puede usar para determinar que un valor de columna no está definitivamente en el archivo o que probablemente esté en el archivo. Antes de leer un archivo, Azure Databricks comprueba el archivo de índice y el archivo solo se lee si el índice indica que el archivo podría coincidir con un filtro de datos.

Los filtros bloom admiten columnas con los siguientes tipos de datos de entrada: byte, shortint, long, float, double, datetimestampy string. Los valores NULL no se agregan al filtro Bloom, por lo que cualquier filtro relacionado con NULL requiere leer el archivo de datos. Azure Databricks admite los siguientes filtros de origen de datos: and, or, in, equalsy equalsnullsafe. Los filtros bloom no se admiten en columnas anidadas.

Configuración y referencia

Use la sintaxis siguiente para habilitar un filtro bloom:

CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))

Para obtener más información sobre la sintaxis, vea CREATE BLOOM FILTER INDEX y DROP BLOOM FILTER INDEX.

Para deshabilitar las operaciones del filtro Bloom, establezca la configuración de nivel de sesión en spark.databricks.io.skipping.bloomFilter.enabled.

Mostrar la lista de índices de filtro Bloom

Para mostrar la lista de índices, ejecute:

spark.table("<table-with-indexes>").schema.foreach(field => println(s"${field.name}: metadata=${field.metadata}"))

Por ejemplo:

Mostrar índices