# StreamlitでEMQX Tablesのデータを可視化する

[Streamlit](https://streamlit.io/)は、Pythonでインタラクティブなデータアプリを構築するためのオープンソースフレームワークです。EMQX TablesはMySQLプロトコルに対応しているため、Streamlitアプリケーションに簡単に統合し、リアルタイムでデータの探索や可視化が可能です。

## StreamlitとEMQX Tablesを接続する

接続を有効にするには、まず`sqlalchemy`と`mysqlclient`ライブラリをインストールする必要があります。以下のコマンドをターミナルで実行してください。

```bash
pip install sqlalchemy mysqlclient
```

EMQX Tablesには標準的なMySQLドライバーを使って接続できます。以下はStreamlitの実験的な`st.connection()`メソッドを使って接続し、データをクエリする基本的な例です。

```python
import streamlit as st

# SQL接続の確立
st.title('EMQX Tables Streamlit Demo')
conn = st.connection("EMQX Tables", type="sql", url="mysql://{USER}:~~{PASSWORD}~~@{HOST}:4002/{DB_NAME}")

# EMQX Tablesからデータをクエリ
df = conn.query("SELECT * FROM ...")

# 結果を表示
st.dataframe(df)
```

> **ヒント:** 結果セットはPandasのDataFrameとして返されるため、`st.line_chart()`や`st.bar_chart()`などのStreamlit組み込みチャート機能や、PlotlyやMatplotlibなどのライブラリを使ったカスタムプロットで直接データを可視化・操作できます。

## 注意事項

- ローカル環境からStreamlitを実行する場合は、EMQX Tablesのデプロイメントがパブリックにアクセス可能であることを確認してください。
- EMQX TablesではTLSがデフォルトで有効になっています。使用するMySQLドライバーが安全な接続に対応していることを確認してください。

## さらに学ぶ

- [Streamlitドキュメント](https://docs.streamlit.io/)
