Escritura 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 paneles, donde las sentencias alimentan las 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 ya que estos 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 con mayor eficiencia.

Consultas de visualización alimentan paneles individuales en los informes. Usted escribe estas sentencias en la pestaña SQL Query del editor de paneles. 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 actualizan, por lo que el rendimiento es importante 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 utilizan el mismo enfoque de SQL de visualización que los paneles del dashboard. 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.

Editor SQL admite la exploración y exportación de datos. Acceda al Editor SQL desde la barra lateral izquierda en Herramientas. Escriba cualquier sentencia SELECT para examinar la estructura de los datos, validar supuestos o exportar resultados como CSV. El Editor SQL 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 agregar SQL a los paneles de visualización, o para extracción de datos ad-hoc que no necesita visualización.

circle-info

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

Cómo escribir SQL para visualizaciones

El SQL de visualización debe devolver recuentos de columnas y tipos de datos específicos. Dashboard Studio no puede renderizar un gráfico de barras desde tres columnas ni una ficha estadística a partir de datos de texto. Consulte la sección Requisitos del Conjunto de Datos en la pestaña SQL Query para ver exactamente lo que espera la visualización elegida antes de escribir la sentencia. La tabla a continuación contiene los tipos de visualización compatibles:

Visualización
Requisito de consulta
Ejemplo

Un único valor numérico

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-rightFichas estadísticashashtag

Las fichas estadísticas muestran valores numéricos únicos. 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 Configuración de Visualización.

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 y la segunda en la altura de las barras:

Use ORDER BY para controlar la secuencia de las barras. Ordene por valor para comparaciones por rango o por categoría para progresiones en series temporales.

chevron-rightGráficos circulareshashtag

Los gráficos circulares 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 resultan ilegibles; limite a las 10-15 principales categorías.

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 la 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 dashboard. Dado que una única sentencia alimenta la tabla de datos, el gráfico y el mapa de ubicación juntos, es posible que necesite combinar columnas que en un dashboard se escribirían como consultas separadas para distintos paneles. Por ejemplo, una consulta de panel para un 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 debe 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 dashboard, donde cada panel tiene su propia consulta enfocada, la consulta de 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 específicos de columnas. Su consulta debe satisfacer todos los componentes que tenga habilitados.

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 determinan la mayoría de las decisiones estructurales.

Combinar componentes en una consulta

Una consulta que devuelve solo 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 bruto almacenan coordenadas y velocidad como enteros escalados. Las coordenadas se dividen por 10.000.000 (10⁷) para convertir a grados decimales, y la velocidad se divide por 100 (10²) para convertir a km/h. Aplique estas conversiones en cualquier consulta que lea desde raw_telematics_data tables.

Adaptar consultas de paneles del dashboard para informes

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

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

Si la consulta del panel es un gráfico de barras o una ficha estadística 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 desde los datos subyacentes en bruto o la capa Silver.

Libro de recetas SQL contiene ejemplos de consultas listos para usar para análisis comunes de flotas. Las recetas del libro pueden adaptarse para informes agregando columnas de coordenadas donde 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 referenciaselas usando ${variable_name} sintaxis.

Defina variables para valores que cambian periódicamente pero permanecen consistentes en 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 a los tipos apropiados 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 al principio para facilitar el mantenimiento.

Cómo acceder a los esquemas de IoT Query

IoT Query organiza los datos en capas Bronze, Silver y Gold. Entender qué capa usar ahorra tiempo y mejora la claridad del SQL. Para detalles completos del esquema, vea el IoT Query Schema Overviewarrow-up-right.

Capa Bronze contiene puntos de seguimiento en bruto desde los dispositivos: bronze.tracking_data_core almacena cada posición GPS con marcas de tiempo, coordenadas y lecturas de sensores. Use Bronze para análisis a nivel de punto o cuando necesite valores de sensores en bruto que no estén procesados en capas superiores.

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

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

Referencie tablas usando schema.table formato: silver.trips, no solo trips. Incluya 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. Agregue estos filtros temprano en las cláusulas WHERE para reducir el volumen de datos procesados.

Cómo usar el Editor SQL

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

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

Exporte resultados como CSV usando el botón "Export CSV". Esto sirve para informes ad-hoc o extracciones de datos para análisis externos. El Editor SQL 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 Editor SQL antes de añadirlo a los paneles. Escriba la sentencia, verifique que devuelva las columnas y tipos de datos esperados, y luego cópiela a la pestaña SQL Query del editor de paneles. Este flujo de trabajo detecta problemas estructurales antes de que configure 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-rightRecuentos en series temporales para rastrear 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 clasifican en tres categorías: desajustes estructurales con los requisitos de visualización, errores de sintaxis SQL o filtros que devuelven sin datos.

Desajustes en la 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 Requisitos del Conjunto de Datos 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 conversiones de fecha incorrectas. Pruebe las sentencias en el Editor SQL 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 el Editor SQL para verificar que la tabla contiene datos, luego agregue filtros de forma incremental para identificar cuál condición excluye los resultados esperados.

Problemas de rendimiento

Si las sentencias se ejecutan lentamente o caducan, agregue filtros de rango de fechas en las cláusulas WHERE. Las operaciones que escanean tablas enteras procesan millones de filas innecesariamente:

Para orientación adicional sobre rendimiento, vea 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 Libro de recetas SQL 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 resultados de ejemplo.

Adapte los ejemplos del Libro de Recetas 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 agregando GROUP BY y COUNT. Una sentencia que calcula métricas por vehículo puede transformarse en una ficha estadística sumando sobre 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; usted ajusta únicamente la estructura de salida.

Para detalles del esquema, vea el IoT Query Schema Overviewarrow-up-right. Esta referencia explica las tablas disponibles, definiciones de columnas y relaciones entre las capas Bronze, Silver y Gold.

Última actualización

¿Te fue útil?