For the complete documentation index, see llms.txt. This page is also available as Markdown.

Escritura de consultas SQL

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

Dónde se utiliza SQL

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

Consultas de visualización impulsan paneles individuales en informes. Usted escribe estas sentencias en la pestaña Consulta SQL tab. 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 en 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 impulsa 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 en los tres componentes, así que incluya columnas de coordenadas, tiempo y métricas juntas en un único SELECT.

SQL Editor admite exploración y exportación de datos. Acceda al SQL Editor desde la barra lateral izquierda en Tools. Escriba cualquier sentencia SELECT para examinar la estructura de los 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 lógica antes de agregar SQL a los paneles de visualización, o para extracción ad hoc de datos que no necesita visualización.

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

Cómo escribir SQL para visualizaciones

El SQL de visualización debe devolver cantidades específicas de columnas y tipos de datos. Dashboard Studio no puede renderizar un gráfico de barras a partir de tres columnas ni un mosaico de estadísticas a partir de datos de texto. Revise la sección Dataset Requirements en la pestaña SQL Query para ver exactamente qué espera la visualización elegida antes de escribir la sentencia. La tabla siguiente contiene los tipos de visualización admitidos:

Visualización
Requisito de consulta
Ejemplo

Un solo 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 columna

SELECT column1, column2, column3 FROM schema.table

No se requiere consulta

Solo contenido Markdown

Tarjetas de estadística

Los mosaicos de 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 usted configura en Visualization Settings.

Gráficos de barras

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 se convierte en la altura de las barras:

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

Gráficos circulares

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, 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; limítelos a las 10-15 categorías principales.

Tablas

Las tablas aceptan cualquier cantidad de columnas con cualquier tipo de datos. Seleccione las columnas que desea mostrar:

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

Paneles de texto

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

Las consultas de informes siguen las mismas reglas estructurales que las consultas de visualización en paneles de dashboard. Debido a que una sola sentencia impulsa la tabla de datos, el gráfico y el mapa de ubicación en conjunto, es posible que necesite combinar columnas que se escribirían como consultas de paneles separadas en un dashboard. 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 principal de filtrado y JOIN sigue siendo la misma que en las consultas de paneles; solo la cláusula SELECT necesita ser más amplia.

Cómo escribir SQL para informes

Un informe ejecuta una consulta SQL que impulsa 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 específica, una consulta de informe debe devolver todas las columnas necesarias en cada componente en una sola 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 haya habilitado.

Componente
Columnas requeridas
Notas

Tabla de datos

Cualquier columna

Todas las columnas devueltas aparecen como columnas de tabla

Gráfico

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

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

Mapa de ubicación

Latitud y longitud como 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.

Combinación de componentes en una consulta

Una consulta que devuelve solo las columnas necesarias para un gráfico (dos columnas: categoría y valor) no también puede impulsar 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 columna 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 al gráfico, latitude y longitude sirven al mapa de ubicación, y todas las columnas aparecen en la tabla de datos.

Las tablas de telemática sin procesar 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 las tablas raw_telematics_data .

Adaptación de consultas de paneles de 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 de tabla que devuelve varias columnas, puede que ya incluya todo lo necesario. Agregue columnas de coordenadas si se requiere el mapa de ubicación.

Si la consulta del panel es una consulta de gráfico de barras o mosaico de estadísticas que devuelve resultados agregados, probablemente carece 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 a partir de los datos subyacentes sin procesar o de la capa Silver.

SQL Recipe Book 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 principal 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, y luego consúltelas usando la sintaxis ${variable_name} .

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

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

Para parámetros específicos de la 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 de Raw data, Transformation e Insight. Comprender qué capa usar ahorra tiempo y mejora la claridad del SQL. Para obtener detalles completos del esquema, consulte IoT Query Schema Overview.

Capa de datos sin procesar contiene puntos de seguimiento sin procesar 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 sin procesar que no se hayan procesado en capas superiores.

Capa de transformación proporciona entidades procesadas: silver.trips agrega puntos de seguimiento en registros de viajes con horas de inicio/fin, distancia y duración. silver.zone_visits registra cuándo los dispositivos entran y salen de geocercas. silver.idle_events identifica períodos en los que los vehículos permanecen estacionarios con los motores encendidos. Use Transformation para la mayoría de las necesidades de visualización, ya que proporciona estructuras listas para el análisis.

Capa Insight ofrece métricas preagregadas y modelos dimensionales para análisis complejos. Use Insight para estadísticas de toda la flota o análisis multidimensionales que requerirían joins complejos con tablas Silver.

Haga referencia a las tablas usando el formato schema.table : 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 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 en Tools. Úselo para tres propósitos principales: probar lógica antes de agregarla a los paneles, explorar esquemas de datos para comprender las columnas disponibles y exportar datos que no necesitan visualización.

El SQL Editor admite múltiples pestañas para diferentes sentencias. Escriba SQL en las pestañas, ejecútelo con el botón "Execute Query" y vea los resultados en la tabla de abajo. 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 los resultados como CSV usando el botón "Export CSV". Esto funciona para informes ad hoc o extracciones de datos para análisis externos. El SQL Editor no tiene límite de filas de resultados, a diferencia del SQL de visualización que debería devolver conjuntos de datos específicos.

Pruebe el SQL de visualización en el SQL Editor antes de agregarlo a los paneles. Escriba la sentencia, verifique que devuelva las columnas y tipos de datos esperados, luego cópiela a la pestaña SQL Query del editor de paneles. Este flujo de trabajo detecta problemas estructurales antes de que configure los ajustes 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 para sus necesidades específicas.

Conteos de series temporales para seguir tendencias
Clasificaciones por categoría para comparar grupos
Cálculos de métricas para estadísticas agregadas
Resumenes filtrados con múltiples condiciones

Qué hacer cuando SQL falla

Los fallos 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 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. Revise 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 incorrecta de fechas. Pruebe las sentencias en SQL Editor para ver mensajes de error detallados con números de línea.

Resultados vacíos

A pesar de una ejecución correcta, 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 y luego agregue filtros de manera incremental para identificar qué condición excluye los resultados esperados.

Problemas de rendimiento

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

Para obtener orientación adicional sobre rendimiento, consulte Cómo acceder a los esquemas de IoT Query para conocer las 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 ralentí y métricas de flota. Cada receta incluye la sentencia SQL completa, explicación de la lógica y resultados de muestra.

Adapte ejemplos de 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 agregando GROUP BY y agregación COUNT. Una sentencia que calcula métricas por vehículo puede convertirse en un mosaico de estadísticas agregando SUM en todos los vehículos.

Solo necesita:

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

  2. Probar con sus datos reales.

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

La lógica principal de WHERE y JOIN sigue siendo la misma; usted ajusta solo la estructura de salida.

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

Última actualización

¿Te fue útil?