Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Administre la retención de datos con políticas TTL

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta página, se describe cómo usar Google Cloud Platform Console y Google Cloud CLI para configurar políticas de tiempo de vida (TTL). Antes de leer esta página, debe comprender el modelo de datos de Cloud Firestore .

Descripción general del tiempo de vida

Utilice políticas de tiempo de vida (TTL) para eliminar automáticamente los datos obsoletos de sus bases de datos. Una política TTL designa un campo dado como el tiempo de vencimiento de los documentos en un grupo de colección determinado. Con TTL, puede reducir los costos de almacenamiento al eliminar los datos obsoletos. Los datos generalmente se eliminan dentro de las 72 horas posteriores a su fecha de vencimiento.

Precios

Las operaciones de eliminación de TTL cuentan para los costos de eliminación de documentos. Para conocer los precios de las operaciones de eliminación, consulte Precios de Cloud Firestore .

Límites y restricciones

  • Solo se puede marcar un campo por grupo de colección como campo TTL.
  • Se permiten un total de 200 configuraciones a nivel de campo. Una configuración de campo puede contener varias configuraciones para el mismo campo. Por ejemplo, una exención de indexación de un solo campo y una política TTL en el mismo campo cuentan como una configuración de campo hacia el límite.

eliminación de TTL

Tenga en cuenta los siguientes comportamientos clave de la eliminación controlada por TTL:

  • La eliminación a través de TTL no es un proceso instantáneo. Los documentos vencidos siguen apareciendo en consultas y solicitudes de búsqueda hasta que el proceso TTL los elimina. TTL intercambia la puntualidad de la eliminación en beneficio de la reducción del costo total de propiedad para las eliminaciones. Los datos generalmente se eliminan dentro de las 72 horas posteriores a su fecha de vencimiento.

  • Eliminar un documento a través de TTL no elimina las subcolecciones de ese documento.

  • La aplicación de una política TTL en un grupo de recopilación existente da como resultado una eliminación masiva de todos los datos que vencieron de acuerdo con la nueva política TTL. Tenga en cuenta que esta eliminación masiva tampoco es instantánea y depende de la cantidad de datos que existan para ese grupo de recopilación.

  • TTL no elimina necesariamente los documentos en el mismo orden que sus marcas de tiempo de vencimiento.

  • Las eliminaciones no se realizan de forma transaccional. Los documentos con el mismo tiempo de caducidad no se eliminan necesariamente al mismo tiempo. Si necesita este comportamiento, realice las eliminaciones mediante una biblioteca de cliente.

  • Cloud Firestore siempre respetará el campo TTL más reciente para determinar el vencimiento. Por ejemplo, si un documento caducado pero aún no eliminado tiene su campo TTL actualizado a una fecha posterior, el documento no caducará y se utilizará la nueva fecha.

  • TTL está diseñado para minimizar el impacto en otras actividades de la base de datos. Las eliminaciones impulsadas por TTL se tratan con una prioridad más baja. También existen otras estrategias para suavizar los picos de tráfico de las eliminaciones impulsadas por TTL.

  • La eliminación a través de TTL envía notificaciones automáticas para los agentes de escucha de instantáneas activos y activa los activadores de Cloud Functions Cloud Firestore.

Campos e índices TTL

Un campo TTL se puede indexar o no indexar. Sin embargo, debido a que un campo TTL es una marca de tiempo, la indexación del campo puede afectar el rendimiento a tasas de tráfico más altas. La indexación de un campo de marca de tiempo puede crear puntos de acceso que van en contra de las mejores prácticas. Los puntos de acceso son tasas altas de lectura, escritura y eliminación en un rango de documentos estrecho.

De forma predeterminada, Cloud Firestore crea un índice de campo único para todos los campos. Puede crear una exención de índice de un solo campo para deshabilitar índices en un campo TTL.

permisos

El principal que configura una política TTL requiere el siguiente permiso en el proyecto:

  • Ver políticas TTL requiere los permisos datastore.indexes.list y datastore.indexes.get .
  • La modificación de políticas TTL requiere el permiso datastore.indexes.update .
  • Verificar el estado de las operaciones TTL requiere datastore.operations.list y datastore.operations.get .

Para conocer las funciones que asignan estos permisos, consulte Funciones de administración de acceso e identidad de Cloud Firestore .

Antes de que empieces

Antes de usar la CLI de gcloud para administrar las políticas de TTL, use el comando de actualización de componentes de gcloud components update para actualizar los componentes a la última versión disponible:

gcloud components update

Crear una política TTL

Cuando crea una política TTL, designa un campo de documento como el tiempo de vencimiento para los documentos en un grupo de colección.

TTL usa un campo específico para identificar los documentos que son elegibles para su eliminación. Este campo TTL debe ser de tipo Date and time . Puede seleccionar un campo que ya existe o puede designar un campo que planea agregar más adelante. El valor del campo TTL puede ser un tiempo en el futuro, ahora o en el pasado. Si el valor es tiempo en el pasado, el documento se puede eliminar inmediatamente.

Por ejemplo, puede crear una política TTL con el campo expireAt que luego agregará a los documentos existentes.

Siga los pasos a continuación para crear una política TTL:

Consola de la nube de Google

  1. Vaya a la página Tiempo de vida de Cloud Firestore en Google Cloud Platform Console.

    Ir a la página Tiempo de vida

  2. Haga clic en Crear política .

  3. Introduzca un nombre de grupo de recopilación y un nombre de campo de marca de tiempo.

  4. Haz clic en Crear .

La consola vuelve a la página Tiempo de vida . Si la operación se inicia correctamente, la página agrega una entrada a la tabla de políticas TTL. En caso de falla, la página muestra un mensaje de error.

gcloud

Use el comando de firestore fields ttls update para configurar una política TTL. Agrega la --async para evitar que la CLI de gcloud espere a que se complete la operación.

gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl

Incluso en una base de datos vacía, puede llevar diez minutos o más habilitar una política TTL. Una vez que inicia una operación, cerrar la terminal no cancela la operación.

Ver políticas TTL

Siga los pasos a continuación para ver las políticas de TTL y sus estados.

Consola de la nube de Google

Vaya a la página Tiempo de vida de Cloud Firestore en Google Cloud Platform Console.

Ir a la página Tiempo de vida

La consola enumera las políticas TTL para su base de datos e incluye el estado de cada política.

gcloud

Use el comando firestore fields ttls list para configurar una política TTL. El siguiente comando enumera todas las políticas TTL.

gcloud firestore fields ttls list 

Para enumerar las políticas TTL en un grupo de colección específico, use lo siguiente:

gcloud firestore fields ttls list  --collection-group=collection_group_name

Ver detalles de la operación

Puede usar la CLI de gcloud para ver más detalles sobre una política TTL que se encuentra en estado CREATING .

Use el comando de la operations list para ver todas las operaciones en ejecución y recientemente completadas:

gcloud firestore operations list

La respuesta incluye una estimación del progreso de la operación.

Deshabilitar una política TTL

Siga los pasos a continuación para deshabilitar una política TTL.

Consola de la nube de Google

  1. Vaya a la página Tiempo de vida de Cloud Firestore en Google Cloud Platform Console.

    Ir a la página Tiempo de vida

  2. En la tabla de políticas TTL, busque la fila de la política TTL. Dentro de esta fila de la tabla, haga clic en el botón Eliminar (papelera).

  3. Confirme haciendo clic en Eliminar .

La consola vuelve a la página Tiempo de vida . En caso de éxito, Cloud Firestore elimina la política TTL de la tabla.

gcloud

Use el comando de firestore fields ttls update para configurar una política TTL. Agrega la --async para evitar que la CLI de gcloud espere a que se complete la operación.

gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --disable-ttl

Supervisar las eliminaciones de TTL

Puede usar Cloud Monitoring para ver métricas sobre eliminaciones impulsadas por TTL. Cloud Firestore proporciona las siguientes métricas para TTL:

Recuento de eliminación de tiempo de vida

Recuento total de documentos eliminados por políticas de tiempo de vida (TTL).

Caducidad del tiempo de vida hasta retrasos en la eliminación

El tiempo transcurrido entre el momento en que expiró un documento según una política de tiempo de vida (TTL) y el momento en que realmente se eliminó.

Para configurar un panel con métricas de Cloud Firestore, consulte administrar un panel personalizado y agregar widgets de panel .