Introducción a Apache Superset en Entornos Corporativos
Apache Superset es una plataforma de exploración de datos y Business Intelligence (BI) de código abierto. Diseñada originalmente en Airbnb y respaldada por la Apache Software Foundation, Superset permite a organizaciones procesar petabytes de datos visualmente sin depender de licenciamientos propietarios costosos por usuario.
En este artículo técnico, el Ing. Christian Mollo detalla la arquitectura de despliegue sobre Kubernetes (EKS/GKE), la optimización de procesos asíncronos con Celery y la integración con motores Big Data como Apache Trino, PostgreSQL y Google BigQuery.
1. Arquitectura de Componentes en Kubernetes
Un despliegue de Apache Superset para producción exige desacoplar el servidor web de la capa de ejecución de consultas pesadas. La arquitectura óptima implementada por FORBUS S.R.L. comprende:
Renderizando Diagrama de Arquitectura...
- Superset App Server (Gunicorn / Gevent): Procesa solicitudes HTTP/HTTPS de la interfaz de usuario y renderiza componentes de gráficos.
- Celery Asynchronous Workers: Ejecuta consultas de larga duración en SQL Lab y procesa tareas en segundo plano.
- Celery Beat Scheduler: Orquesta la generación periódica de reportes en PDF y alertas por correo o Slack.
- Redis Cache & Result Backend: Almacena en memoria los resultados de consultas, estados de filtros y datos de formularios de cuadros de mando.
- PostgreSQL Metastore: Guarda metadatos de cuadros de mando, gráficos, usuarios, permisos RBAC y fuentes de datos.
Configuración de Valores Helm (values.yaml)
yamlsuperset: replicaCount: 3 configOverrides: my_config: | from celery.schedules import crontab FEATURE_FLAGS = { "EMBEDDED_SUPERSET": True, "DASHBOARD_CACHE": True, "SQLLAB_BACKEND_PERSISTENCE": True, "ALERT_REPORTS": True, } # Engine de Caché Redis DATA_CACHE_CONFIG = { 'CACHE_TYPE': 'RedisCache', 'CACHE_DEFAULT_TIMEOUT': 86400, 'CACHE_KEY_PREFIX': 'superset_results_', 'CACHE_REDIS_URL': 'redis://redis-master:6379/0' } celery: instances: 4 resources: limits: cpu: "2000m" memory: "4Gi"
2. Ejecución de Consultas Asíncronas en SQL Lab
SQL Lab es el entorno de desarrollo SQL interactivo de Superset. Para evitar que las consultas analíticas pesadas agoten los hilos del servidor web, configuramos el backend de almacenamiento diferido con Celery:
- Modo Asíncrono de Tablas: Activación de
allow_run_async = Trueen el metadato de cada fuente de datos SQL. - Límite de Filas y Timeouts: Configuración de
SQL_MAX_ROW = 100000ySQLLAB_ASYNC_TIME_LIMIT_SEC = 300para prevenir bloqueos de tabla accidentales.
3. Autenticación Empresarial con Keycloak y OpenID Connect (OIDC)
En ambientes corporativos ISO 27001, Superset debe integrarse con el servidor SSO central. Mediante Flask-AppBuilder, configuramos la autenticación OIDC con Keycloak:
python# Esquema orientativo; no es una configuración completa de producción. from flask_appbuilder.security.manager import AUTH_OAUTH AUTH_TYPE = AUTH_OAUTH AUTH_USER_REGISTRATION = False # Configura OAUTH_PROVIDERS y el mapeo de identidad/roles según tu IdP. # Guarda los secretos fuera del repositorio y registra la URL de callback.
Conclusión y Recomendaciones
La adopción de Apache Superset sobre Kubernetes proporciona libertad analítica, gobernanza de datos avanzada y opciones de escalado según los recursos disponibles para las organizaciones. En FORBUS S.R.L. (4bus.cloud) diseñamos arquitecturas BI de alto impacto integradas con almacenes de datos cloud y pipelines ETL automatizados.