StreamlitとMongoDB:クラウドでのデータの保存

StreamlitとMongoDB:データのクラウド保存

Streamlit Cloudにはローカルストレージがないため、アプリが終了すると作成したデータは失われます。ただし、MongoDBのようなサードパーティのストレージを使用する場合は、データが保持されます。

ヴィンテージなNoSQLデータベース — Jan Antonin Kolarによる写真、Unsplashより

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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more