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

En esta página, se describe cómo usar la consola de Google Cloud y Google Cloud CLI para configurar políticas de tiempo de actividad (TTL). Antes de leer esta página, deberías comprender Modelo de datos del modo Datastore.

Descripción general del tiempo de actividad

Usa políticas de TTL para automatizar y quitar los datos obsoletos de tus bases de datos. Una política de TTL designa una propiedad determinada como el tiempo de vencimiento para entidades de un tipo determinado. Con el TTL, puedes disminuir los costos de almacenamiento borrando los datos obsoletos. Por lo general, los datos se borran en un plazo de 24 horas después de su fecha de vencimiento.

Precios

Las operaciones de eliminación del TTL se tienen en cuenta para los costos de eliminación de tu entidad. Para conocer los precios de las operaciones de eliminación, consulta los precios de Firestore en modo Datastore.

Límites y restricciones

  • Solo se puede marcar una propiedad por tipo como propiedad de TTL.
  • Se permite un total de 200 políticas de TTL.

Eliminación del TTL

Ten en cuenta los siguientes comportamientos clave de la eliminación basada en el TTL:

  • La eliminación mediante el TTL no es un proceso instantáneo. Entidades vencidas seguirán apareciendo en las consultas y solicitudes de búsqueda hasta que se complete el proceso de TTL los borra. El TTL cambia la puntualidad de la eliminación por el beneficio de un costo total de propiedad disminuido para las eliminaciones. Por lo general, los datos se borran en un plazo de 24 horas después de su fecha de vencimiento.

  • Borrar una entidad a través del TTL no borra su elemento subordinado entidades.

  • Aplicar una política de TTL en un tipo existente genera un aumento masivo y borrar todos los datos vencidos de acuerdo con la nueva política de TTL. Ten en cuenta que Esta eliminación masiva tampoco es instantánea y depende de la cantidad de datos existe para ese tipo.

  • Si una entidad tiene una fecha de vencimiento en el pasado y agregas una nueva política de TTL al tipo, se borrará la entidad en un plazo de 24 horas de que la política de TTL finaliza la configuración y se vuelve activa.

  • El TTL no necesariamente borra entidades en el mismo orden que su marcas de tiempo de vencimiento.

  • Las eliminaciones no se realizan de forma transaccional. Entidades con el mismo vencimiento hora no necesariamente se borran al mismo tiempo. Si necesitas este comportamiento, realiza las eliminaciones mediante una biblioteca cliente.

  • El modo Datastore siempre respetará el último campo de TTL para determinar la de vencimiento. Por ejemplo, si una entidad vencida pero que aún no se borró tiene su TTL actualizado a una fecha posterior, la entidad no vencerá y el se usará una nueva fecha.

  • El modo Datastore solo hace que venza un documento cuando se configure el campo TTL a un tipo Timestamp. Si dejas el campo ausente o se establece en un valor como null, los vencimientos se pueden inhabilitar de forma individual en cada documento.

  • El TTL está diseñado para minimizar el impacto en otras actividades de la base de datos. Las eliminaciones que genera el TTL se tratan con una prioridad más baja. También se implementaron otras estrategias para limitar los aumentos repentinos de tráfico provenientes de las eliminaciones basadas en el TTL.

Índices y propiedades del TTL

Una propiedad del TTL se puede indexar o no. Sin embargo, debido a que una propiedad del TTL una marca de tiempo, la indexación de la propiedad puede afectar el rendimiento con un tráfico mayor y tasas de cambio. La indexación de una propiedad de marca de tiempo va en contra de las prácticas recomendadas hotspots. Los hotspots tienen tasas altas de lectura, escritura y eliminación en una clave específica. del rango de destino de la ruta.

De forma predeterminada, Datastore crea un índice integrado para todas las propiedades. Puedes excluir una propiedad de los índices para inhabilitar los índices en una propiedad del TTL.

Permisos

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

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

Para conocer los roles que asignan estos permisos, consulta Roles de Identity and Access Management de Datastore.

Antes de comenzar

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

gcloud components update

Crea una política de TTL

Cuando creas una política de TTL, designas una propiedad de la entidad como el vencimiento tiempo para las entidades de un grupo de similares. La política de TTL se aplica a la categoría especificada en todos los espacios de nombres.

El TTL usa una propiedad especificada para identificar las entidades aptas para borrarse. Esta La propiedad del TTL debe ser del tipo Date and time. Puedes seleccionar una propiedad que ya existe o puedes designar una propiedad que planeas agregar más adelante.

Ten en cuenta lo siguiente antes de establecer el valor de la propiedad del TTL:

  • El valor de la propiedad del TTL puede ser una hora actual, del futuro o del pasado. Si el valor es un tiempo en el pasado, la entidad es apta de inmediato para su eliminación. Por ejemplo, podrías crear una política de TTL con la propiedad expireAt, que luego debes agregar las entidades existentes.

  • Si usas cualquier otro tipo de datos o no estableces el valor de la propiedad del TTL, se inhabilitará el TTL para la entidad individual.

Sigue los pasos que se indican a continuación para crear una política de TTL:

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a la página Bases de datos.

    Ir a Bases de datos

  2. Selecciona la base de datos requerida de la lista.

  3. En el menú de navegación, haz clic en Tiempo de actividad.

  4. Haz clic en Crear política.

  5. Ingresa un nombre de tipo y un nombre de propiedad de marca de tiempo.

  6. Haz clic en Crear.

La consola regresa a la página Tiempo de actividad. Si la operación se inicia correctamente, la página agrega una entrada a la tabla de políticas de TTL. Si se produce un error, la página muestra un mensaje de error.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Usa el comando firestore fields ttls update para configurar una política de TTL. Agrega la marca --async para evitar que la gcloud CLI 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, la política de TTL puede tardar diez minutos o más en habilitarse. Después de iniciar la operación, cerrar la terminal no cancelará la acción de conversión una sola operación.

Ve las políticas de TTL

Sigue los pasos que se indican a continuación para ver las políticas de TTL y sus estados.

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a la página Bases de datos.

    Ir a Bases de datos

  2. Selecciona la base de datos requerida de la lista.

  3. En el menú de navegación, haz clic en Tiempo de actividad.

La consola enumera las políticas de TTL para tu base de datos y, además, incluye el estado de cada política.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

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

    gcloud firestore fields ttls list
    

    Para enumerar las políticas de TTL de un tipo específico, usa lo siguiente:

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

Ve los detalles de la operación

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

Para ver todas las operaciones en ejecución y las que se completaron recientemente, usa el comando operations list:

gcloud firestore operations list

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

Inhabilita una política de TTL

Sigue los pasos que se indican a continuación para inhabilitar una política de TTL.

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a la página Bases de datos.

    Ir a Bases de datos

  2. Selecciona la base de datos requerida de la lista.

  3. En el menú de navegación, haz clic en Tiempo de actividad.

  4. En la tabla de políticas de TTL, busca la fila correspondiente. En esta fila de la tabla, haz clic en el botón Borrar (papelera).

  5. Haz clic en Borrar para confirmar la acción.

La consola regresa a la página Tiempo de actividad. Si tienes éxito, Datastore quita la política de TTL de la tabla.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

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

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

Supervisa las eliminaciones del TTL

Puedes usar Cloud Monitoring para ver las métricas sobre las eliminaciones basadas en el TTL. Datastore proporciona las siguientes métricas para el TTL:

datastore.googleapis.com/entity/ttl_deletion_count Recuento de eliminaciones del TTL

Recuento total de entidades borradas por las políticas de TTL.

datastore.googleapis.com/entity/ttl_expiration_to_deletion_delays Retrasos entre el vencimiento y la eliminación del TTL

Tiempo transcurrido entre el momento en que una entidad venció bajo un TTL política y cuándo se borró.

Para configurar un panel con métricas de Datastore, consulta administrar un panel personalizado agregar widgets de panel.