Log in to leave a comment
No posts yet
Si eres un ingeniero que trabaja solo y has decidido montar un dashboard directamente en tu pipeline tras cansarte de esperar la aprobación de herramientas de BI de pago, Redash es la alternativa más realista. Sin embargo, no debes limitarte a visualizar los resultados de las consultas. En el momento en que una pesada consulta de agregación paraliza la base de datos (DB) operativa o se exponen datos sensibles de clientes en un dashboard compartido con el equipo de marketing, se abren las puertas del infierno. Aquí resumo configuraciones específicas para asegurar una estabilidad de nivel empresarial ahorrando presupuesto de infraestructura.
Es común en las startups en etapa inicial que las consultas analíticas se conviertan en la causa de interrupciones del servicio. Ejecutar consultas con joins complejos en la DB operativa cada vez es peligroso. Al usar el Query Results Data Source (QRDS) de Redash, puedes separar físicamente la carga impuesta al servidor operativo. El QRDS funciona trasladando los datos originales al motor SQLite interno de Redash para su procesamiento.
En la práctica, incluso con especificaciones de nivel AWS t3.medium, el uso de QRDS puede reducir la carga de la DB en más del 80%. Primero, activa el QRDS en la configuración del Data Source. Luego, escribe una consulta de agregación pesada, recuerda el número de ID de dicha consulta y llámala desde otra ventana de consulta con el formato SELECT * FROM cached_query_123. Esta estructura hace que la DB operativa se consulte una sola vez, mientras que los usuarios del dashboard solo ven los resultados almacenados en caché.
Un punto a tener en cuenta aquí es la gestión de los background workers. Un worker de Celery suele consumir entre 200MB y 400MB de memoria al procesar los resultados de una consulta. Si el número de consultas en espera en la ruta /status.json sigue aumentando, debes ajustar el WORKERS_COUNT. Ten cuidado, ya que si aumentas los workers sin tener suficiente memoria, la instancia se colapsará.
Compartir datos es un arma de doble filo. Al otorgar permisos a los equipos de marketing o planificación, es imprescindible crear y asignar un grupo de "Solo Vista" (View Only). Lo primero es evitar que modifiquen consultas por error o exploren la estructura de las tablas.
Para bloquear de raíz los incidentes de seguridad, crea una cuenta de Solo Lectura (Read-only) con permisos de SELECT únicamente a nivel del motor de la DB. Después, para información sensible como correos electrónicos o números de teléfono, define una Vista (View) que aplique un enmascaramiento tipo jo**@gm****.com usando la función CONCAT de SQL. Conecta Redash solo a esta vista. De este modo, el analista obtiene las estadísticas necesarias, pero nunca puede ver los datos originales.
Los ataques externos se defienden con la configuración de Nginx. Lo básico es bloquear cualquier acceso fuera de la IP fija de la empresa y del rango de la VPN interna mediante la directiva deny all. Además, activar la variable de entorno REDASH_DISABLE_PUBLIC_URLS evita situaciones en las que se generen URLs públicas sin conocimiento del administrador, provocando fugas de datos.
Los dashboards no solo tienen sentido cuando se miran. Cuando un indicador supera un umbral, el sistema debe avisar primero. Al conectar la función de Redash Alert con un Webhook de Slack, los desarrolladores pueden intervenir de inmediato ante tasas de fallo en los pagos o errores del servidor.
Si incluyes {{ALERT_NAME}} y {{QUERY_RESULT_VALUE}} en la plantilla del mensaje de alerta, podrás conocer la gravedad de la situación con solo ver el mensaje de Slack. Con este sistema, el tiempo transcurrido desde la detección del fallo hasta el inicio de la depuración se reduce a menos de la mitad.
Sin embargo, si envías notificaciones por cada cambio, acabarás ignorando los mensajes debido a la "fatiga de alertas". Utiliza la configuración Just Once para ajustar las notificaciones de modo que solo lleguen cuando el indicador cruza la línea por primera vez y cuando vuelve a la normalidad. Incluir lógica en la consulta que calcule la tasa de crecimiento respecto a la hora anterior en lugar de valores absolutos resulta conveniente, ya que no tendrás que modificar el umbral cada vez que el servicio crezca.
Si pierdes una o dos horas al día atendiendo simples peticiones de extracción de datos, es prueba de que no estás usando correctamente los parámetros de consulta. Al insertar sintaxis como {{ date_range }} en la consulta, aparecerá un widget de selección de fecha en la parte superior del dashboard. Permite que el personal no técnico extraiga los datos cambiando el periodo por sí mismo.
Para evitar errores de consulta por erratas, se recomienda el tipo Lista Desplegable (Dropdown List). Para datos que cambian frecuentemente, como listas de productos, conecta una Query Based Dropdown List para mantener la lista actualizada automáticamente.
Por seguridad, es mejor evitar el tipo de entrada de texto. Puede ser una vía para ataques de inyección SQL, por lo que Redash lo permite de forma restringida solo a administradores. En los dashboards para usuarios generales, es más seguro colocar selectores de fecha o desplegables donde solo se puedan elegir valores verificados. Al crear este entorno, los desarrolladores ganan tiempo para concentrarse en la implementación de la lógica principal.