Filtros

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

Para limitar los resultados de una solicitud de lectura, incluye filtros en la solicitud. Se aplica un filtro a los datos antes de enviar la respuesta, lo que reduce la cantidad de datos que se devuelven. Por lo tanto, usar filtros puede suponer un menor coste de red y un mayor rendimiento. En esta página se ofrece una descripción general de cómo funcionan los filtros de Bigtable y una lista de los filtros disponibles.

Para obtener más información y ejemplos de código de cada filtro, consulta Ejemplos de filtros.

Cómo funcionan los filtros

Cuando tu solicitud de lectura incluye un filtro, Bigtable recupera una fila o un intervalo de filas de tu tabla. Por cada una de las filas de entrada que recupera, Bigtable evalúa la fila mediante el filtro y, a continuación, genera una fila de salida en función de los resultados del filtro.

Bigtable ofrece varios tipos de filtros, como se describe en las secciones siguientes. Los filtros básicos se dividen en dos categorías: limitación y modificación. Puedes combinar filtros básicos para crear filtros.

En la mayoría de los casos, un filtro se aplica a todas las filas, a menos que especifique una clave de fila, un intervalo de filas o el número de filas al que se debe aplicar el filtro. Una excepción es el filtro regex de clave de fila, que puede restringir el intervalo de filas en determinados casos si la expresión regular es un prefijo fijo. Por lo general, para evitar la lentitud de un análisis completo de la tabla, especifique siempre las filas de un filtro.

Limitar filtros

Un filtro limitador controla qué filas o celdas se incluyen en la respuesta en función de si cumplen determinados criterios. Por ejemplo, puedes indicar que la respuesta solo debe incluir las filas en las que la clave de fila coincida con una expresión regular o que solo quieres las celdas de una familia de columnas específica.

Muchos filtros limitadores pueden excluir celdas de una fila de salida. Si todas las celdas se excluyen de una fila de salida, la fila no se incluirá en la respuesta.

Consulta el resumen de filtros para ver la lista completa de filtros limitadores.

Modificar filtros

Un filtro de modificación afecta a los datos o metadatos de celdas concretas.

Bigtable proporciona los siguientes filtros de modificación:

  • El filtro de valor de cadena, que sustituye el valor de cada celda por una cadena vacía. Este filtro es útil cuando solo necesitas el número de filas o la lista de claves de fila que cumplen tus criterios, en lugar de los datos de esas filas.

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

Crear filtros

Un filtro de composición te permite combinar varios filtros básicos en uno, lo que hace posible aplicar más de un filtro a una sola solicitud de lectura. Por ejemplo, para obtener datos de uso de CPU de sus servidores, puede usar un filtro para incluir solo las filas cuya clave de fila empiece por SERVER y, a continuación, usar otro filtro para incluir solo las celdas de la familia de columnas CPU.

Bigtable proporciona los siguientes filtros de composición:

  • Una cadena, que aplica una secuencia de filtros a cada fila de entrada y devuelve una fila de salida. Un filtro de cadena es como usar el operador lógico AND.
  • Una intercalación, que envía cada fila de entrada a través de varios filtros y, a continuación, combina todos los resultados de los filtros de la fila de entrada en una sola fila de salida. Un filtro intercalado es como usar un operador lógico OR.
  • Una condición, que genera una fila de salida aplicando uno de los dos filtros posibles a la fila de entrada. El filtro se elige aplicando un filtro de predicado a la fila de entrada y, a continuación, comprobando si la fila de salida del filtro de predicado contiene alguna celda.

Filtros y rendimiento

Los filtros le permiten obtener solo los datos que realmente necesita. Por lo tanto, los filtros pueden mejorar el rendimiento al reducir la cantidad de datos que se envían a tu aplicación.

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

El filtro Condiciones, en concreto, puede aumentar la latencia, ya que las condiciones son mucho más lentas que otros filtros. Si tu solicitud de lectura es extremadamente sensible al rendimiento, no uses condiciones en la solicitud.

Resumen de los filtros

En las siguientes tablas se enumeran los filtros que proporciona Bigtable, incluidos enlaces a detalles y ejemplos de código de cada filtro.

Limitar filtros
Bloquear todo No emite ninguna celda. Resulta útil sobre todo para depurar errores.
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 Omitir las primeras N celdas de una fila.
Columna regex de familia Incluye solo las celdas cuya familia de columnas coincida con una expresión regular RE2.
Expresión regular del calificador de columna Incluye solo las celdas cuyo calificador de columna coincida con una expresión regular.
Intervalo de columnas Incluye solo las celdas de una familia de columnas específica cuyo calificador de columna se encuentre dentro de un intervalo específico.
Aprobar todo Emite todas las celdas de entrada. Resulta útil sobre todo para depurar errores.
Expresión regular de la clave de fila Incluye solo las celdas cuya clave de fila coincida con una expresión regular.
Muestra de fila Recupera una muestra aleatoria de filas.
Lavabo Incluye celdas en la fila de salida final e impide que un filtro posterior las modifique o elimine.
Intervalo de marcas de tiempo Incluya solo las celdas cuya marca de tiempo esté dentro de un intervalo específico.
Intervalo de valores Incluye solo las celdas cuyo valor se encuentre dentro de un intervalo específico.
Valor de la expresión regular Incluye solo las celdas cuyo valor coincida con una expresión regular.
Modificar filtros
Aplicar etiqueta Añade una etiqueta a todas las celdas.
Valor de la tira Devuelve una cadena vacía para cada valor de celda.
Crear filtros
Cadena Aplicar varios filtros en orden.
Condición Aplica uno de los dos filtros posibles a una fila.
Entrelazar Combina las filas de salida de varios filtros en una sola fila de salida.

Siguientes pasos