Абстрактный
В этой статье показано, как можно быстро использовать SingleStore с Streamlit — платформой приложений с открытым исходным кодом для машинного обучения и обработки данных.
Введение
Документация Streamlit описывает, как подключить Streamlit к MySQL. Адаптировать код для работы с SingleStore несложно. Посмотрим, как.
Для начала нам нужно создать бесплатную учетную запись Managed Service на веб-сайте SingleStore. На момент написания этой статьи учетная запись Managed Service от SingleStore имеет кредиты на сумму 500 долларов США. Этого более чем достаточно для случая, описанного в этой статье.
Создайте таблицу базы данных
В нашей учетной записи управляемой службы SingleStore давайте воспользуемся редактором SQL для создания новой базы данных и таблицы. Мы будем использовать пример, предоставленный Streamlit:
CREATE DATABASE pets; USE pets; CREATE TABLE mytable ( name VARCHAR(80), pet VARCHAR(80) ); INSERT INTO mytable VALUES ('Mary', 'dog'), ('John', 'cat'), ('Robert', 'bird');
Установить Стримлит
Мы установим Streamlit следующим образом:
pip install streamlit
В примере Streamlit используется соединитель MySQL. Однако для большинства случаев использования Python SingleStore рекомендует использовать PyMySQL. Все, что нам нужно сделать, это установить это следующим образом:
pip install PyMySQL
Изменить пример приложения
В файле streamlit_app.py
нам нужно внести несколько незначительных изменений:
- Замените
import mysql.connector
наimport pymysql
- Замените
mysql.connector.connect
наpymysql.connect
- Замените
st.secrets["mysql"]
наst.secrets["singlestore"]
- Удалить ссылки на
st.cache
Вот полный измененный листинг кода:
# streamlit_app.py import streamlit as st import pymysql # Initialize connection. def init_connection(): return pymysql.connect(**st.secrets["singlestore"]) conn = init_connection() # Perform query. def run_query(query): with conn.cursor() as cur: cur.execute(query) return cur.fetchall() rows = run_query("SELECT * FROM mytable;") # Print results. for row in rows: st.write(f"{row[0]} has a :{row[1]}:")
Создайте файл секретов
Наше локальное приложение Streamlit будет считывать секреты из файла .streamlit/secrets.toml
в корневом каталоге нашего приложения. Нам нужно создать этот файл следующим образом:
# .streamlit/secrets.toml [singlestore] host = "<TO DO>" port = 3306 database = "pets" user = "admin" password = "<TO DO>"
<TO DO>
для хоста и пароля следует заменить значениями, полученными из управляемой службы SingleStore при создании кластера.
Запустите код
Мы можем запустить приложение Streamlit следующим образом:
streamlit run streamlit_app.py
Вывод в веб-браузере должен выглядеть так, как показано на рисунке 1.
Резюме
В этой статье показаны быстрые модификации кода примера Streamlit MySQL, чтобы вместо этого Streamlit можно было использовать с SingleStore. Мы продолжим изучение Streamlit в будущих статьях и будем более подробно использовать его возможности.