Filtros

Cuando lees datos de Bigtable, puedes leer filas específicas o rangos de filas. Sin embargo, no siempre necesitas todos los datos de todas las filas. Es posible que solo necesites filas que contengan un valor específico en su clave de fila o celdas dentro de una familia de columnas específica.

Para limitar los resultados de una solicitud de lectura, incluye filtros en la solicitud. El filtro se aplica a los datos antes de enviar la respuesta, lo que reduce la cantidad de datos que se muestran. Como resultado, el uso de filtros puede significar costos de red más bajos y capacidad de procesamiento más rápida. En esta página, se proporciona una descripción general del funcionamiento de los filtros de Bigtable y una lista de los filtros disponibles.

Para obtener detalles y muestras de código de cada filtro, consulta los ejemplos de filtro.

Cómo funcionan los filtros

Cuando la solicitud de lectura incluye un filtro, Bigtable recupera una fila o un rango de filas de la tabla. Bigtable evalúa cada una de las filas de entrada que recupera mediante el filtro y, luego, genera una fila de salida basada en los resultados del filtro.

Bigtable proporciona varios tipos de filtros, como se describe en las siguientes secciones. Los filtros básicos se clasifican en dos categorías: límite y modificación. Puedes combinar filtros básicos en filtros compuestos.

En la mayoría de los casos, el filtro se aplica a todas las filas, a menos que especifiques una clave de fila, un rango de filas o una cantidad de filas a las que se debe aplicar el filtro. Una excepción es el filtro de regex de la clave de fila, que puede restringir el rango de filas en ciertos casos si la regex es un prefijo fijo. En general, para evitar la lentitud de un análisis completo de la tabla, siempre especifica las filas de un filtro.

Filtros de límite

Un filtro de límite controla qué filas o celdas se incluyen en la respuesta, según la coincidencia con criterios específicos. Por ejemplo, puedes decir que la respuesta solo debe incluir filas en las que la clave de fila coincida con una expresión regular o que solo quieres que se muestren celdas de una familia de columnas específica.

Muchos filtros de límite pueden excluir celdas en una fila de salida. Si se excluyen todas las celdas en una fila de salida, la fila no se incluye en la respuesta.

Consulta el Resumen de filtros para obtener una lista completa de los filtros de límite.

Filtros de modificación

Un filtro de modificación afecta los datos o metadatos de las celdas individuales.

Bigtable proporciona los siguientes filtros de modificación:

  • El filtro para quitar valores, que reemplaza el valor de cada celda por una string vacía. Este filtro es útil cuando solo necesitas la cantidad de filas o la lista de claves de fila que cumplen con tus criterios, en lugar de los datos de esas filas.

  • El filtro para aplicar etiquetas, que aplica una etiqueta a cada celda a fin de identificar qué filtro produjo cada celda en la respuesta. Tu aplicación puede usar estas etiquetas para realizar un filtrado adicional por parte del cliente.

Filtros compuestos

Un filtro compuesto te permite combinar varios filtros básicos en uno, lo que permite aplicar más de un filtro a una sola solicitud de lectura. Por ejemplo, a fin de obtener datos de uso de CPU para los servidores, puedes usar un filtro a fin de incluir solo filas en las que la clave de fila comienza con SERVER, seguido de un segundo filtro para incluir solo celdas en la familia de columnas de CPU.

Bigtable proporciona los siguientes filtros compuestos:

  • Una cadena, que aplica una secuencia de filtros a cada fila de entrada y muestra una fila de salida. Un filtro de cadena es como usar una lógica AND.
  • Una intercalación, que envía cada fila de entrada a través de varios filtros y, luego, combina todos los resultados del filtro de la fila de entrada en una sola fila de salida. Un filtro de intercalación es como usar una lógica OR.
  • Una condición, que genera una fila de salida mediante la aplicación de uno de dos filtros posibles a la fila de entrada. El filtro se elige mediante la aplicación de un filtro de predicado a la fila de entrada y la verificación de que la fila de salida del filtro de predicado contenga celdas.

Filtros y rendimiento

Los filtros te permiten recuperar solo los datos que realmente necesitas. Como resultado, los filtros pueden mejorar el rendimiento mediante la reducción de la cantidad de datos que se envían a la aplicación.

Sin embargo, los filtros no son una solución universal para todos los problemas de rendimiento. En general, los filtros se deben usar para controlar la eficiencia de la capacidad de procesamiento, no para reducir la latencia entre el envío de una solicitud y la recepción de una respuesta. Si se usan de forma correcta, los filtros pueden ser una parte eficaz de una estrategia para mejorar el rendimiento de lectura.

El filtro de condiciones, en particular, puede aumentar la latencia, porque las condiciones son mucho más lentas que otros filtros. Si tu solicitud de lectura tiene una sensibilidad extrema al rendimiento, no uses condiciones en ella.

Resumen de filtros

En las siguientes tablas, se enumeran los filtros que proporciona Bigtable y se incluyen los vínculos a detalles y muestras de código de cada filtro.

Filtros de límite
Bloquear todo No emite ninguna celda. Es útil, en principal, para la depuración.
Límite de celdas por columna Incluye solo las N versiones más recientes de una columna en una fila.
Límite de celdas por fila Incluye solo las primeras N celdas de una fila.
Celdas por desplazamiento de fila Omite las primeras N celdas de una fila.
Regex de la familia de columnas Incluye solo las celdas cuya familia de columnas coincida con una expresión regular RE2.
Regex del calificador de columna Incluye solo las celdas cuyo calificador de columna coincida con una expresión regular.
Rango de columnas Incluye solo celdas en una familia de columnas específica cuyo calificador de columna esté dentro de un rango específico.
Pasar todo Emite todas las celdas de entrada. Es útil, en principal, para la depuración.
Regex de la clave de fila Incluye solo las celdas cuyas claves de fila coincidan con una expresión regular.
Muestras de filas Recupera una muestra aleatoria de filas.
Receptor Incluye celdas en la fila de salida final y evita que un filtro posterior las quite o modifique.
Rango de marca de tiempo Incluye solo celdas cuya marca de tiempo se encuentre dentro de un rango específico.
Rango de valores Incluye solo las celdas cuyo valor se encuentre dentro de un rango específico.
Regex del valor Incluye solo las celdas cuyo valor coincida con una expresión regular.
Filtros de modificación
Aplicar etiqueta Agrega una etiqueta a todas las celdas.
Quitar valor Muestra una string vacía para cada valor de celda.
Filtros compuestos
Cadena Aplica varios filtros en orden.
Condición Aplica uno de los dos filtros posibles a una fila.
Intercalación Combina las filas de salida de varios filtros en una sola fila de salida.

¿Qué sigue?