StreamlitとMongoDB:クラウドでのデータの保存
StreamlitとMongoDB:データのクラウド保存
Streamlit Cloudにはローカルストレージがないため、アプリが終了すると作成したデータは失われます。ただし、MongoDBのようなサードパーティのストレージを使用する場合は、データが保持されます。
Streamlitは、パブリックアプリを無料で彼らのクラウドにデプロイできますが、ローカルで作成したファイルやデータベースはアプリが終了すると存在しなくなります。これは望ましい動作ではないかもしれませんので、MongoDBを使用した解決策を探ってみましょう。
多くのアプリでは、このデータの喪失は問題ありません。たとえば、外部ソースからデータを読み込むダッシュボードを設計した場合、生成されるデータは一時的であり、アプリが実行されている間のみ必要なものです。
しかし、私が「Simple Surveys with Streamlit」の記事のためにアプリを開発した際に指摘したように、アプリ自体が保存するデータがある場合は、それほど簡単ではありません。そのアプリでは、データをローカルファイルに保存しましたが、クラウドベースのデプロイメントでは、アプリの実行が停止するとそれらは存在しなくなります。適切な解決策は、外部のデータストアを使用することです。
ここではMongoDBを使用してこれを実現する方法を見ていきますが、代替手段もあります。
選択肢は何がありますか?
Streamlitのドキュメントには、さまざまなデータベースやクラウドストレージプロバイダへの接続方法についてのガイドがあります。これらは基本的に3つの領域に分かれています。何でも保存できるデータバケツ(AWS S3やGoogle Cloud Storageなど)、MicrosoftのSQL Server、MySQL、PostgreSQLなどのSQLデータベース、そしてFirestoreやMongoDBなどのNoSQLデータベースです。各タイプには、その特定のデータベースをホストするサーバーへのアクセスが必要です。
正直に言うと、私はSQLの最大のファンではありません。SQLのコードとPythonの間には、違和感を感じる不連続性があるように思えます。(それにもかかわらず、SQLのパワーと便利さを確かに理解しており、ここ、ここ、そしてここで書いています。)
しかし、MongoDBのようなNoSQLデータベースは、Pythonのやり方により適しているように感じます。
速度、効率性、使いやすさ、セキュリティなどに関するさまざまな議論があると思いますが、私はそれには触れません…
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles