Para todo aquel que no sepa qué es Cosmos DB, sólo comentar que es la NoSQL de Microsoft en Azure.
Como ya hemos hablado en alguna que otra ocasión en el blog, la analítica avanzada está mejorando y evolucionando constantemente. Tanto a nivel de arquitectura, como las capacidades de los propios elementos. Por supuesto, todo ello con el firme propósito de brindar a las organizaciones, aquellas capacidades que les permitan satisfacer sus necesidades de análisis de datos.
Desde hace ya unos años, Microsoft está realizando un gran esfuerzo por ampliar las capacidades de sus productos, ya sean on premise o en el cloud. En el artículo de hoy, continuaremos centrados en la nube, al igual que el post escrito hace unos días, donde hablé acerca de Azure Synapse. Incidiendo en el gran lavado de cara y evolución desde el anterior Azure SQL Datawarehouse. Poco tienen que ver. Sin duda, volveré a escribir acerca de él en próximos post, gracias al Microsoft Partner Technical Boot Camp de esta semana.
Pero volviendo a lo que nos ocupa. Hoy voy a destacar una importante ventaja que presenta Cosmos DB. Un ejemplo práctico para un caso de uso, es cuando se ubica la NoSQL de Microsoft, dentro del proceso de ingesta a través servicios, que manejan datos en real time. Como a través de Stream Analytics. Dicha ventaja nos la provee TTL.
Fuente. Microsoft, Noviembre 2018. Canalización de procesamiento de flujos con Azure Stream Analytics.
https://docs.microsoft.com/es-es/azure/architecture/reference-architectures/data/stream-processing-stream-analytics
Pero, ¿qué es TTL? TTL es el acrónimo de Time to Live. Es decir, el tiempo que deseas mantener un elemento, dentro de un Container de tu Azure Cosmos DB.
Por defecto, está desactivado, pero en caso de que te interese activarlo, sólo tienes que indicar, el tiempo de almacenamiento. Si pasado ese tiempo, el ítem no ha sido actualizado, será eliminado. Ahora, volviendo al ejemplo anterior, piensa en la ventaja que supone que, directamente los items se eliminen de forma automática pasados 5 minutos. Sin duda, es una gran funcionalidad para procesos de ingesta en «real time», donde trabajas con ventanas de tiempo. Superadas las cuales, los datos en streaming carecen de importancia y sólo ocupan espacio. Por lo tanto representan un coste innecesario.