Conectar Streamlit

En este artículo, recorreremos el proceso de crear un panel usando Streamlit. Para que sea más ilustrativo, crearemos un panel que se conecta a la base de datos analítica y supervisa el estado en tiempo real de los vehículos.

Esta guía forma parte de la suite de documentación de DataHub y cubre específicamente la conexión de Power BI a su almacén de datos. Si aún está decidiendo qué herramienta de BI usar, consulte la Selección de herramientas BI visión general.

Características del panel

  • Mostrar número total de objetos

  • Visualizar estados de movimiento (en movimiento/detenido/aparcado)

  • Visualizar estados de conexión (activo/inactivo/desconectado)

  • Tabla detallada con el estado actual de todos los vehículos

  • Filtrado por tipo de vehículo, grupo, estado de movimiento y estado de conexión

  • Actualización automática de datos cada 5 minutos

  • Alternar entre temas claro y oscuro

Requisitos técnicos

  • Python 3.8+

  • Acceso a Internet para la conexión a la base de datos

  • Mínimo 2 GB de RAM

Instalación y configuración

1. Clonar el repositorio

git clone https://github.com/SquareGPS/bi-intergrations.git

2. Crear un entorno virtual

# Windows
python -m venv venv
venv\Scripts\activate

# Linux/macOS
python -m venv venv
source venv/bin/activate

3. Instalar dependencias

Después de activar el entorno virtual, instale todas las bibliotecas necesarias:

pip install -r requirements.txt

Conexión a la base de datos

1. Crear un archivo de configuración

Crear un .env archivo en el directorio raíz del proyecto:

DB_HOST=your_db_host
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASS=your_db_password
DB_PORT=5432
DB_SCHEMA=raw_business_data

Referencia de parámetros de conexión

Parámetro Lakehouse
Ubicación de la configuración de Streamlit
Notas

Host

DB_HOST en .env archivo

La dirección del servidor de base de datos proporcionada en su correo electrónico de bienvenida

Puerto

DB_PORT en .env archivo

El valor predeterminado es 5432 para PostgreSQL

Nombre de la base de datos

DB_NAME en .env archivo

El nombre de base de datos asignado

Nombre de usuario

DB_USER en .env archivo

Su nombre de usuario de la base de datos

Contraseña

DB_PASS en .env archivo

Su contraseña segura de la base de datos

Modo SSL

Cadena de conexión en código Python

Establecer en require en la cadena de conexión

Esquema

DB_SCHEMA en .env archivo

Especifique el esquema (raw_business_data o raw_telematics_data)

2. Obtención de credenciales

Solicite credenciales para conectarse a la base de datos de demostración contactando al administrador.

La .env el archivo no debe incluirse en el control de versiones (GitHub) para garantizar la seguridad de las credenciales. El .gitignore archivo ya está configurado para excluir este archivo.

Ejecución del panel

Después de configurar la conexión a la base de datos, inicie el panel con el comando:

streamlit run moving_status_dashboard.py

Después de iniciar, verá un mensaje similar a:

  Ahora puede ver su aplicación Streamlit en su navegador.

  URL local: http://localhost:8501
  URL de red: http://192.168.1.5:8501

Abra la URL indicada en su navegador. El panel estará disponible en http://localhost:8501 (o en la URL de red si desea abrirlo desde otro dispositivo en la red).

Desarrollando componentes personalizados

Si desea modificar el panel o crear nuevos componentes:

1. Modificar el panel existente

Streamlit recarga automáticamente la aplicación cuando cambia el código fuente. Simplemente edite el moving_status_dashboard.py archivo y guarde sus cambios.

2. Agregar nuevas visualizaciones

Para añadir nuevos gráficos y diagramas, utilice bibliotecas:

  • Plotly: import plotly.express as px o import plotly.graph_objects as go

  • Visualizaciones integradas de Streamlit: st.bar_chart(), st.line_chart(), etc.

Ejemplo de añadir un nuevo gráfico:

import plotly.express as px

# Obtener datos de la base de datos
df = ... # your database query

# Crear gráfico
fig = px.pie(df, values='count', names='status', title='Vehicle Statuses')
st.plotly_chart(fig, use_container_width=True)

3. Depuración

Para la depuración, use

# Salida a la interfaz de Streamlit
st.write(f"Debug: {your_variable}")

# Salida a la consola
print(f"Console debug: {your_variable}")

# Salida de datos ampliada
st.json(data_dict)
st.dataframe(pandas_dataframe)

Resolución de problemas

Problemas de conexión a la base de datos

  • Error de conexión: Compruebe la corrección de las credenciales en el .env archivo y la disponibilidad de la base de datos

  • Error SSL: Asegúrese de que su IP esté en la lista de permitidos para el acceso a la base de datos

  • Errores de tiempo de espera: Compruebe la estabilidad de su conexión a Internet y la configuración del cortafuegos

Problemas de dependencias

Error al instalar psycopg2-binary:

  • Windows: pip install pipwin && pipwin install psycopg2-binary

  • Linux: sudo apt install python3-dev libpq-dev

  • macOS: brew install postgresql

Conflictos de dependencias:

  • Crear un nuevo entorno virtual

  • Instalar dependencias una por una, comenzando con streamlit

Otros problemas

Aquí hay algunos trucos que pueden ayudarle a solucionar problemas comunes:

  1. Actualizar dependencias: pip install -r requirements.txt --upgrade

  2. Comprobar compatibilidad de Python: python --version (debe ser 3.8+)

  3. Al cambiar el código, incluya mensajes de depuración:

st.write(f"Debug: {your_variable}")
  1. Errores de caché de Streamlit: detenga la aplicación y ejecute con el --clear_cache flag:

streamlit run moving_status_dashboard.py --clear_cache

Próximos pasos

Después de conectar correctamente Power BI a su instancia Private Telematics Lakehouse, le recomendamos:

  • Explore los esquemas de datos disponibles revisando la Descripción general del esquema sección para comprender mejor la estructura de los datos y las relaciones.

  • Comience con consultas sencillas centradas en entidades comerciales específicas antes de crear paneles complejos: consulte nuestras consultas de ejemplo como referencia.

Soporte

Para preguntas técnicas o solicitudes de acceso a la base de datos de demostración, póngase en contacto con: [email protected]

Última actualización

¿Te fue útil?