Streamlit y MongoDB Almacenando tus datos en la nube

Streamlit y MongoDB en la nube

Streamlit Cloud no tiene almacenamiento local, por lo que los datos creados se pierden cuando se termina la aplicación, a menos que uses un almacenamiento de terceros como MongoDB.

Una base de datos NoSQL vintage - Foto de Jan Antonin Kolar en Unsplash

Streamlit te permite desplegar tus aplicaciones públicas en su nube de forma gratuita, pero cualquier archivo o base de datos que crees localmente dejará de existir cuando la aplicación termine. Esto puede no ser el comportamiento que deseas, por lo que vamos a explorar una solución utilizando MongoDB.

Para muchas aplicaciones, perder estos datos no es un problema. Por ejemplo, si has diseñado un panel de control que lee datos de una fuente externa, cualquier dato que generes probablemente sea temporal y solo necesario mientras la aplicación esté en ejecución.

Pero, como mencioné al desarrollar mi aplicación para el artículo “Encuestas simples con Streamlit”, si la aplicación misma genera datos que necesitan ser almacenados, no es tan sencillo. En esa aplicación, almacené los datos en un archivo local, pero en un despliegue basado en la nube, dejarán de existir cuando la aplicación deje de ejecutarse; la solución adecuada es utilizar un almacenamiento de datos externo.

Vamos a ver cómo podemos lograr esto con MongoDB, pero también hay alternativas.

¿Cuáles son las opciones?

En la documentación de Streamlit, hay guías para conectarse a varias bases de datos y proveedores de almacenamiento en la nube. Básicamente se dividen en tres áreas: contenedores de datos como AWS S3 y Google Cloud Storage, donde puedes almacenar cualquier cosa; bases de datos SQL como Microsoft SQL Server, MySQL, PostgreSQL; y bases de datos NoSQL, de las cuales Firestore y MongoDB son ejemplos. Para cada tipo, obviamente necesitas acceso a un servidor que aloje esa base de datos en particular.

Siendo completamente honesto, no soy el mayor fan de SQL. Me parece que hay una desconexión entre el código SQL y Python que resulta incómoda. (Dicho esto, definitivamente aprecio el poder y la conveniencia de SQL y he escrito al respecto aquí, aquí y aquí).

Pero, las bases de datos NoSQL como MongoDB parecen encajar de manera más armoniosa en la forma de hacer las cosas en Python.

Estoy seguro de que hay todo tipo de argumentos sobre velocidad, eficiencia, facilidad de uso, seguridad y no sé qué más. Pero no voy a entrar en eso…

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Decodificación anticipada un algoritmo de decodificación paralela para acelerar la inferencia de LLM

Aunque los modelos de lenguaje grandes (LLM) como GPT-4 y LLaMA están reimaginando rápidamente las aplicaciones moder...

Inteligencia Artificial

Investigadores del MIT presentan LILO un marco neuro-simbólico para aprender bibliotecas interpretables para la síntesis de programas

Los grandes modelos de lenguaje (LLMs) se están volviendo cada vez más expertos en programación en varios contextos, ...

Inteligencia Artificial

EE. UU. y la UE completan el tan esperado acuerdo sobre el intercambio de datos

El acuerdo pone fin a la incertidumbre legal para Meta, Google y decenas de empresas, al menos por ahora.

Inteligencia Artificial

La FAA aprueba el sistema de aeronaves no tripuladas más grande de los Estados Unidos.

La Administración Federal de Aviación de los Estados Unidos aprobó la operación comercial de los rociadores agrícolas...