Descripción general de las operaciones de Pipeline de Firestore

Las operaciones de Pipeline de Firestore son una función central de la edición Enterprise de Firestore, que se basa en un nuevo motor de consultas para expandir significativamente el rango de consultas posibles. Las operaciones de Pipeline de Firestore emplean una sintaxis de consulta flexible y un método de indexación distinto en el que los índices son opcionales y no se crean automáticamente, lo que permite operaciones avanzadas de recuperación de datos para las aplicaciones.

Funciones de las operaciones de Pipeline de Firestore

La edición Enterprise de Firestore y las nuevas operaciones de Pipeline utilizan un motor de consultas avanzado y nuevo que quita muchas de las limitaciones existentes de la edición estándar de Firestore. Las operaciones de Pipeline de Firestore proporcionan más de 120 funciones de consulta nuevas. Las operaciones de Pipeline de Firestore tienen las siguientes capacidades:

Sintaxis de elementos componibles basados en etapas

Las consultas de canalización se construyen definiendo una serie de etapas secuenciales que se ejecutan en orden. Esto permite realizar operaciones complejas, como filtrar el resultado de una agregación, lo que antes no era posible.

En el siguiente ejemplo, se muestra una consulta de canalización que busca la cantidad de IDs de productos únicos que se vieron en el último mes:

guard let cutoffDate = Calendar.current.date(byAdding: .month, value: -1, to: Date()) else {
  return
}
let snapshot = try await db.pipeline()
  .collection("productViews")
  .where(Field("viewedAt").greaterThan(cutoffDate.timeIntervalSince1970))
  .aggregate([Field("productId").countDistinct().as("uniqueProductViews")])
  .execute()

Capacidades ampliadas

La consulta de canalizaciones introduce una gran cantidad de funciones nuevas, incluidas las siguientes:

  • Agregaciones: Compatibilidad con nuevas funciones de agregación (como sum(...), min(...) y count_distinct(...)) combinadas con campos de agrupación arbitrarios.
  • Filtrado complejo: Compatibilidad con más de 120 funciones nuevas para expresar instrucciones where(...) arbitrariamente complejas, incluidas regex_match(...), add(...) y str_contains(...), todo sin requisitos de indexación estrictos.
  • Lecturas parciales o proyecciones: Recupera subconjuntos dinámicos de documentos con select(...), remove_fields(...) y muchas otras etapas de manipulación de documentos.

Compatibilidad sin conexión y en tiempo real

Para aprovechar las funciones en tiempo real y sin conexión, los desarrolladores pueden usar las operaciones principales de Firestore en la edición Enterprise de Firestore.

Integración de clientes y herramientas

La edición Enterprise incluye funciones especializadas para interactuar con las consultas de Pipeline y administrarlas:

  • Explicación y generación de perfiles de consultas: Puedes usar los resultados de Query Explain para comprender cuántas unidades de lectura o escritura consume una consulta y analizar su ejecución.
  • Estadísticas de consultas: La edición Enterprise admite las estadísticas de consultas, que te ayudan a determinar dónde se podrían crear índices para mejorar el rendimiento y el costo, ya que proporcionan visibilidad de las características de rendimiento de las consultas.
  • Nuevos tipos de índices: Puedes crear índices especializados para la edición Enterprise, incluidos los índices dispersos. También admite la creación y edición de índices de búsqueda de vectores para bases de datos de Enterprise.

Diferencias entre Firestore Standard y Firestore Enterprise

La principal diferencia operativa entre las operaciones de Core y Pipeline radica en la administración de la indexación, que afecta directamente el rendimiento y el costo.

Firestore Standard: Operaciones de Core Firestore Enterprise: Operaciones de Core y de Pipeline
Requisito de indexación Los índices son obligatorios para las consultas.

Los índices para campos individuales se crean automáticamente, mientras que las consultas más complejas dependen de índices compuestos o índices de grupos de colecciones que se deben configurar manualmente.

Los índices no son obligatorios y, por lo tanto, son opcionales para las consultas.

Defines los índices según sea necesario. La edición Enterprise también admite una mayor variedad de tipos de índices, incluidos los índices dispersos y no dispersos, y los índices únicos.

Riesgo de rendimiento Consultas indexadas: El rendimiento y el costo se ajustan según el tamaño del conjunto de resultados.

Consultas sin indexar: El rendimiento y el costo se ajustan según el tamaño de tu conjunto de datos.

Consultas indexadas: El rendimiento y el costo se ajustan según el tamaño del conjunto de resultados.

Te recomendamos que uses las herramientas Explicación de la consulta y Estadísticas de consultas para crear índices y mejorar el rendimiento y el costo de tus consultas.

Implicación del costo de almacenamiento Los índices automáticos y los índices compuestos generan una sobrecarga de almacenamiento. Ahorras en costos de almacenamiento porque los índices no se crean automáticamente para cada campo.
Base de costo Se cobra por cada operación de lectura, escritura y eliminación de documentos. Se cobra por unidad de lectura (tramos de 4 KB) y unidad de escritura (tramos de 1 KB). La escritura de entradas de índice consume unidades de escritura.

Obtén más información sobre los precios nuevos con algunos ejemplos.

Reglas de seguridad Las reglas de seguridad protegen las colecciones verificando los permisos de lectura y escritura. Las reglas de seguridad protegen las colecciones verificando los permisos de lectura y escritura. Obtén información para modelar tus datos y admitir consultas de canalizaciones en la guía del Modelo de datos.