Documentation
Streamlit

Streamlit

Streamlit turns data scripts into shareable web apps in minutes.

Here's a short video guide on how to connect Streamlit to Cube.

Connect from Cube Cloud

Navigate to the Integrations page, click Connect to Cube, and choose Streamlit to get detailed instructions.

Connect from Cube Core

You can connect a Cube deployment to Streamlit using the SQL API.

In Cube Core, the SQL API is disabled by default. Enable it and configure the credentials to connect to Streamlit.

Connecting from Streamlit

Streamlit connects to Cube as to a Postgres database.

Creating a connection

Make sure to install the streamlit, sqlalchemy and pandas modules.

pip install streamlit
pip install sqlalchemy
pip install pandas

Then you can use sqlalchemy.create_engine to connect to Cube's SQL API.

import streamlit
import sqlalchemy
import pandas
 
engine = sqlalchemy.create_engine(
  sqlalchemy.engine.url.URL(
    drivername="postgresql",
    username="cube",
    password="9943f670fd019692f58d66b64e375213",
    host="thirsty-raccoon.sql.aws-eu-central-1.cubecloudapp.dev",
    port="5432",
    database="db@thirsty-raccoon",
  ),
  echo_pool=True,
)
print("connecting with engine " + str(engine))
connection = engine.connect()
 
# ...

Querying data

Your cubes will be exposed as tables, where both your measures and dimensions are columns.

You can write SQL in Streamlit that will be executed in Cube. Learn more about Cube SQL syntax on the reference page.

# ...
 
with streamlit.echo():
  query = "SELECT sum(count) AS orders_count, status FROM orders GROUP BY status;"
df = pandas.read_sql_query(query, connection)
streamlit.dataframe(df)

In your Streamlit notebook it'll look like this. You can create a visualization of the executed SQL query by using streamlit.dataframe(df).