Redacción de consultas SQL

Dashboard Studio utiliza SQL para recuperar datos de los esquemas de IoT Query. Usted escribe SQL en dos contextos: los editores de panel, donde las sentencias alimentan visualizaciones, y el Editor SQL independiente para la exploración de datos. Esta página explica cómo escribir SQL efectivo para ambos contextos, con énfasis en los requisitos de visualización puesto que tienen restricciones estructurales específicas.

Dónde se utiliza SQL

Dashboard Studio ofrece dos entornos SQL para diferentes propósitos. Comprender cuándo usar cada uno le ayuda a trabajar de forma más eficiente.

Consultas de visualización alimentan paneles individuales en los informes. Usted escribe estas sentencias en la pestaña SQL Query del editor de panel. Cada panel ejecuta una sentencia que debe devolver datos en una estructura específica que coincida con el tipo de visualización. Estas sentencias se ejecutan cuando los informes se cargan o se actualizan, por lo que el rendimiento importa para la experiencia del usuario. El SQL de visualización no puede modificar datos; todas las sentencias se ejecutan como operaciones SELECT de solo lectura contra los esquemas de IoT Query.

Informes usan el mismo enfoque de SQL de visualización que los paneles de tablero. Un informe ejecuta una consulta que alimenta tres vistas simultáneamente: la tabla de datos, el gráfico y el mapa de ubicación. La sentencia debe devolver todas las columnas necesarias para los tres componentes, por lo que incluya columnas de coordenadas, tiempo y métricas juntas en un único SELECT.

SQL Editor soporta la exploración y exportación de datos. Acceda al SQL Editor desde la barra lateral izquierda bajo Tools. Escriba cualquier sentencia SELECT para examinar la estructura de datos, validar supuestos o exportar resultados como CSV. El SQL Editor muestra tablas de resultados completas con ordenación de columnas y proporciona métricas de ejecución. Úselo para probar la lógica antes de añadir SQL a los paneles de visualización, o para extracciones ad-hoc de datos que no necesiten visualización.

circle-info

La diferencia clave: el SQL de visualización debe coincidir exactamente con las estructuras de columnas, mientras que las sentencias en SQL Editor pueden devolver cualquier formato de resultado. Pruebe la lógica compleja primero en SQL Editor y luego adáptela para las visualizaciones.

Cómo escribir SQL para visualizaciones

El SQL de visualización debe devolver conteos de columnas y tipos de datos específicos. Dashboard Studio no puede renderizar un gráfico de barras a partir de tres columnas ni un stat tile a partir de datos de texto. Consulte la sección Dataset Requirements en la pestaña SQL Query para ver exactamente lo que su visualización elegida espera antes de escribir la sentencia. La tabla a continuación contiene los tipos de visualización compatibles:

Visualización
Requisito de consulta
Ejemplo

Valor numérico único

SELECT COUNT(*) FROM schema.table

Dos columnas: categoría, valor

SELECT column1, COUNT(*) FROM schema.table GROUP BY column1

Dos columnas: etiqueta, valor

SELECT category, SUM(value) FROM schema.table GROUP BY category

Cualquier columnas

SELECT column1, column2, column3 FROM schema.table

No se requiere consulta

Solo contenido Markdown

chevron-rightStat tileshashtag

Los stat tiles muestran valores numéricos individuales. Las sentencias deben devolver exactamente una fila con una columna numérica:

El nombre de la columna no importa, solo que el resultado sea un único valor numérico. Dashboard Studio muestra este valor con el formato que configure en Visualization Settings.

chevron-rightGráficos de barrashashtag

Los gráficos de barras requieren exactamente dos columnas: categoría (texto o fecha) y valor (numérico). La primera columna se convierte en el eje X, la segunda en la altura de las barras:

Use ORDER BY para controlar la secuencia de las barras. Ordene por value para comparaciones por rango o por category para progresiones en series temporales.

chevron-rightGráficos de sectoreshashtag

Los gráficos de sectores requieren exactamente dos columnas: etiqueta (texto) y valor (numérico). La primera columna se convierte en las etiquetas de las porciones y la segunda determina el tamaño de las porciones:

Agregue cláusulas LIMIT para categorías con muchos valores. Los gráficos circulares con más de 20 porciones se vuelven ilegibles; limite a las 10-15 categorías principales.

chevron-rightTablashashtag

Las tablas aceptan cualquier número de columnas con cualquier tipo de dato. Seleccione las columnas que desea mostrar:

Los nombres de columna se convierten en encabezados de tabla. Use alias con espacios para encabezados legibles: distance_km as "Distance (km)".

chevron-rightPaneles de textohashtag

Los paneles de texto muestran valores de texto únicos o cadenas formateadas. Las sentencias deben devolver una columna de texto:

Las consultas de informe siguen las mismas reglas estructurales que las consultas de visualización en los paneles del tablero. Debido a que una sola sentencia alimenta la tabla de datos, el gráfico y el mapa de ubicación juntos, puede que necesite combinar columnas que en un tablero se escribirían como consultas de panel separadas. Por ejemplo, una consulta de panel de gráfico de barras que devuelve dos columnas no es suficiente para un informe que también necesita coordenadas GPS para el mapa de ubicación. Incluya todas las columnas requeridas para cada componente en una sola sentencia. La lógica central de filtrado y JOIN permanece igual que en las consultas de panel; solo la cláusula SELECT necesita ser más amplia.

Cómo escribir SQL para informes

Un informe ejecuta una consulta SQL que alimenta tres componentes simultáneamente: la tabla de datos, el gráfico y el mapa de ubicación. A diferencia de los paneles del tablero, donde cada panel tiene su propia consulta enfocada, la consulta de un informe debe devolver todas las columnas necesarias para cada componente en una única sentencia SELECT.

Requisitos de columnas por componente

Cada componente del informe tiene requisitos de columna específicos. Su consulta debe satisfacer todos los componentes que haya habilitado.

Componente
Columnas requeridas
Notas

Tabla de datos

Cualquier columnas

Todas las columnas devueltas aparecen como columnas de la tabla

Gráfico

Al menos una columna de tiempo o categoría, al menos una columna numérica

Las columnas de eje se seleccionan en la configuración del gráfico

Mapa de ubicación

Latitud y longitud en grados decimales

Dashboard Studio detecta automáticamente las columnas de coordenadas

Como la tabla de datos acepta cualquier columna, no impone restricciones adicionales. El gráfico y el mapa de ubicación impulsan la mayoría de las decisiones estructurales.

Combinar componentes en una sola consulta

Una consulta que devuelve únicamente las columnas necesarias para un gráfico (dos columnas: categoría y valor) no puede también alimentar un mapa de ubicación. Debe incluir todas las columnas requeridas juntas.

El siguiente ejemplo devuelve columnas para los tres componentes: una columna de tiempo y una numérica para el gráfico, columnas de coordenadas para el mapa de ubicación y atributos adicionales que aparecen en la tabla de datos.

En esta consulta, device_time y speed sirven para el gráfico, latitude y longitude sirven para el mapa de ubicación, y todas las columnas aparecen en la tabla de datos.

circle-info

Las tablas telemáticas en crudo almacenan coordenadas y velocidad como enteros escalados. Las coordenadas se dividen por 10.000.000 (10⁷) para convertirlas a grados decimales, y la velocidad se divide por 100 (10²) para convertirla a km/h. Aplique estas conversiones en cualquier consulta que lea de raw_telematics_data tables.

Adaptar consultas de panel de tablero para informes

Cualquier consulta de panel de un tablero es un punto de partida válido para un informe. El ajuste necesario depende de qué componentes desee habilitar.

Si la consulta de panel ya es una visualización de tabla que devuelve múltiples columnas, puede que ya incluya todo lo necesario. Agregue columnas de coordenadas si se requiere el mapa de ubicación.

Si la consulta de panel es un gráfico de barras o una consulta de stat tile que devuelve resultados agregados, probablemente carezca del detalle a nivel de fila necesario para la tabla de datos y el mapa de ubicación. En ese caso, elimine la agregación y trabaje con los datos subyacentes en crudo o en la capa Silver en su lugar.

SQL Recipe Book contiene ejemplos de consulta listos para usar para análisis comunes de flotas. Las recetas del libro pueden adaptarse para informes añadiendo columnas de coordenadas cuando se necesite el mapa de ubicación. La lógica central de WHERE y JOIN se transfiere directamente; ajuste solo la cláusula SELECT para cubrir todos los componentes requeridos.

Cómo usar variables globales

Las variables globales proporcionan valores reutilizables en múltiples sentencias SQL. Defina variables en Settings > Configuration > Global Variables, luego réferéncielas usando ${variable_name} sintaxis.

Defina variables para valores que cambian periódicamente pero permanecen consistentes entre múltiples paneles: rangos de fechas de análisis, filtros por tipo de vehículo o valores umbral. Cuando estos valores cambien, actualice la definición de la variable una vez en lugar de editar sentencias SQL individuales.

Las variables almacenan valores de texto. Conviértalas al tipo apropiado en SQL: '${variable_name}'::date para fechas, '${variable_name}'::integer para números.

Para parámetros específicos de una sentencia que cambian con frecuencia, puede usar bloques de parámetros CTE al inicio:

Este patrón combina variables globales (rangos de fechas) con parámetros específicos de la sentencia (umbrales), manteniendo todos los valores ajustables en la parte superior para facilitar el mantenimiento.

Cómo acceder a los esquemas de IoT Query

IoT Query organiza los datos en capas Raw data, Transformation e Insight. Entender qué capa usar ahorra tiempo y mejora la claridad del SQL. Para detalles completos del esquema, consulte el IoT Query Schema Overviewarrow-up-right.

Capa de datos en crudo contiene puntos de rastreo en crudo procedentes de los dispositivos: bronze.tracking_data_core almacena cada posición GPS con marcas de tiempo, coordenadas y lecturas de sensores. Use Raw data para análisis a nivel de punto o cuando necesite valores de sensores en crudo que no se hayan procesado en capas superiores.

Capa de transformación proporciona entidades procesadas: silver.trips agrega puntos de rastreo en registros de viaje con tiempos de inicio/fin, distancia y duración. silver.zone_visits registra cuándo los dispositivos entran y salen de geocercas. silver.idle_events identifica periodos en los que los vehículos permanecen inmóviles con el motor en marcha. Use Transformation para la mayoría de las necesidades de visualización, ya que proporciona estructuras listas para análisis.

Capa de insight ofrece métricas preagregadas y modelos dimensionales para análisis complejos. Use Insight para estadísticas a nivel de flota o análisis multidimensional que requeriría joins complejos contra las tablas Silver.

Referencie tablas usando schema.table formato: silver.trips, no solo tripsIncluya filtros de rango de fechas en las cláusulas WHERE para limitar los datos escaneados:

La mayoría de las sentencias SQL filtran por dispositivo, rango de tiempo o ambos. Añada estos filtros al principio de las cláusulas WHERE para reducir el volumen de datos procesados.

Cómo usar el SQL Editor

Acceda al SQL Editor desde la barra lateral izquierda bajo Tools. Úselo para tres propósitos principales: probar la lógica antes de añadirla a los paneles, explorar esquemas de datos para entender las columnas disponibles y exportar datos que no necesiten visualización.

El SQL Editor soporta múltiples pestañas para diferentes sentencias. Escriba SQL en pestañas, ejecute con el botón "Execute Query" y vea los resultados en la tabla inferior. Los resultados muestran métricas de ejecución (tiempo de ejecución, filas devueltas) y permiten ordenar columnas para un examen rápido de los datos.

Exporte resultados como CSV usando el botón "Export CSV". Esto funciona para informes ad-hoc o extractos de datos para análisis externos. El SQL Editor no tiene límite de filas de resultado, a diferencia del SQL de visualización que debe devolver conjuntos de datos focalizados.

Pruebe el SQL de visualización en el SQL Editor antes de añadirlo a los paneles. Escriba la sentencia, verifique que devuelve las columnas y tipos de datos esperados, y luego cópiela a la pestaña SQL Query del editor de panel. Este flujo de trabajo detecta problemas estructurales antes de configurar las opciones de visualización.

Patrón de exploración para datos nuevos:

Patrones SQL comunes

La mayoría del SQL de visualización sigue patrones similares. Copie estas estructuras y ajuste filtros, columnas y agregaciones según sus necesidades específicas.

chevron-rightConteos de series temporales para seguir tendenciashashtag
chevron-rightClasificaciones por categoría para comparar gruposhashtag
chevron-rightCálculos de métricas para estadísticas agregadashashtag
chevron-rightResúmenes filtrados con múltiples condicioneshashtag

Qué hacer cuando SQL falla

Las fallas de ejecución se dividen en tres categorías: incompatibilidades estructurales con los requisitos de visualización, errores de sintaxis SQL o filtros que no devuelven datos.

Incompatibilidades de estructura de columnas

Ocurren cuando los resultados no coinciden con las expectativas de la visualización. Si seleccionó un gráfico de barras pero su SQL devuelve tres columnas, Dashboard Studio no puede renderizarlo. Consulte Dataset Requirements en la pestaña SQL Query. El gráfico de barras necesita exactamente dos columnas (categoría, valor), así que ajuste su cláusula SELECT:

Errores de sintaxis SQL

Muestran mensajes de error específicos. Los problemas comunes incluyen prefijos de esquema faltantes (trips en lugar de silver.trips), errores tipográficos en nombres de columnas o conversión de fechas incorrecta. Pruebe las sentencias en SQL Editor para ver mensajes de error detallados con números de línea.

Resultados vacíos

A pesar de la ejecución exitosa indican que los filtros excluyen todos los datos. Pruebe el SQL sin cláusulas WHERE en SQL Editor para verificar que la tabla contiene datos, luego agregue filtros de forma incremental para identificar qué condición excluye los resultados esperados.

Problemas de rendimiento

Si las sentencias se ejecutan lentamente o agotan el tiempo, añada filtros de rango de fechas a las cláusulas WHERE. Las operaciones que escanean tablas completas procesan millones de filas innecesariamente:

Para orientación adicional sobre rendimiento, consulte Cómo acceder a los esquemas de IoT Query para mejores prácticas sobre filtrado y selección de esquemas.

Dónde encontrar ejemplos de SQL

El SQL Recipe Book proporciona ejemplos completos para análisis telemáticos comunes. Estas recetas demuestran patrones para análisis de viajes, cálculos de visitas a zonas, detección de inactividad y métricas de flota. Cada receta incluye la sentencia SQL completa, explicación de la lógica y ejemplos de resultados.

Adapte los ejemplos del Recipe Book para visualizaciones ajustando la cláusula SELECT para que coincida con los requisitos de visualización. Una receta que devuelve registros detallados de viajes puede convertirse en un gráfico de barras añadiendo GROUP BY y la agregación COUNT. Una sentencia que calcula métricas por vehículo puede convertirse en un stat tile sumando SUM entre todos los vehículos.

Solo necesita:

  1. Copiar ejemplos desde Recipe Book al Editor de Dashboard Studio.

  2. Probar con sus datos reales.

  3. Verificar resultados y luego modificar la cláusula SELECT para su visualización objetivo.

La lógica central de WHERE y JOIN permanece igual; solo ajuste la estructura de salida.

Para detalles del esquema, consulte el IoT Query Schema Overviewarrow-up-right. Esta referencia explica las tablas disponibles, definiciones de columnas y relaciones entre las capas Raw data, Transformation e Insight.

Última actualización

¿Te fue útil?