Escrevendo consultas SQL

O Dashboard Studio usa SQL para recuperar dados dos esquemas do IoT Query. Você escreve SQL em dois contextos: editores de painel, onde as instruções alimentam visualizações, e o Editor SQL independente para exploração de dados. Esta página explica como escrever SQL eficaz para ambos os contextos, com ênfase nos requisitos de visualização, pois eles têm restrições estruturais específicas.

Onde o SQL é usado

O Dashboard Studio fornece dois ambientes SQL para propósitos diferentes. Entender quando usar cada um ajuda você a trabalhar com mais eficiência.

Consultas de visualização alimentam painéis individuais em relatórios. Você escreve essas instruções na guia SQL Query do editor de painel. Cada painel executa uma instrução que deve retornar dados em uma estrutura específica correspondente ao tipo de visualização. Essas instruções são executadas quando os relatórios carregam ou atualizam, portanto o desempenho importa para a experiência do usuário. SQL de visualização não pode modificar dados; todas as instruções são executadas como operações SELECT somente leitura contra os esquemas do IoT Query.

Relatórios usam a mesma abordagem de SQL de visualização que os painéis do dashboard. Um relatório executa uma consulta que alimenta três visualizações simultaneamente: a tabela de dados, o gráfico e o mapa de localização. A instrução deve retornar todas as colunas necessárias para os três componentes, portanto inclua colunas de coordenadas, tempo e métricas juntas em um único SELECT.

Editor SQL suporta exploração de dados e exportação. Acesse o Editor SQL na barra lateral esquerda em Tools. Escreva qualquer instrução SELECT para examinar a estrutura dos dados, validar suposições ou exportar resultados como CSV. O Editor SQL mostra tabelas de resultados completas com ordenação de colunas e fornece métricas de execução. Use-o para testar a lógica antes de adicionar SQL a painéis de visualização ou para extrações ad-hoc de dados que não precisam de visualização.

circle-info

A diferença fundamental: o SQL de visualização deve corresponder exatamente às estruturas de colunas, enquanto as instruções no Editor SQL podem retornar qualquer formato de resultado. Teste lógica complexa primeiro no Editor SQL e depois adapte-a para visualizações.

Como escrever SQL para visualizações

O SQL de visualização deve retornar contagens de colunas e tipos de dados específicos. O Dashboard Studio não pode renderizar um gráfico de barras a partir de três colunas nem um tile de estatística a partir de dados de texto. Verifique a seção Dataset Requirements na guia SQL Query para ver exatamente o que a visualização escolhida espera antes de escrever a instrução. A tabela abaixo contém os tipos de visualização suportados:

Visualização
Requisito da consulta
Exemplo

Valor numérico único

SELECT COUNT(*) FROM schema.table

Duas colunas: categoria, valor

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

Duas colunas: rótulo, valor

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

Qualquer colunas

SELECT column1, column2, column3 FROM schema.table

Nenhuma consulta necessária

Apenas conteúdo Markdown

chevron-rightTiles de estatísticahashtag

Tiles de estatística exibem valores numéricos únicos. As instruções devem retornar exatamente uma linha com uma coluna numérica:

O nome da coluna não importa, apenas que o resultado seja um único valor numérico. O Dashboard Studio exibe esse valor com a formatação que você configurar em Visualization Settings.

chevron-rightGráficos de barrashashtag

Gráficos de barras exigem exatamente duas colunas: categoria (texto ou data) e valor (numérico). A primeira coluna se torna o eixo X, a segunda se torna a altura das barras:

Use ORDER BY para controlar a sequência das barras. Ordene por valor para comparações ranqueadas ou por categoria para progressões em séries temporais.

chevron-rightGráficos de pizzahashtag

Gráficos de pizza exigem exatamente duas colunas: rótulo (texto) e valor (numérico). A primeira coluna se torna os rótulos das fatias, a segunda determina o tamanho das fatias:

Adicione cláusulas LIMIT para categorias com muitos valores. Gráficos de pizza com mais de 20 fatias ficam ilegíveis; limite às 10–15 principais categorias.

chevron-rightTabelashashtag

Tabelas aceitam qualquer número de colunas com quaisquer tipos de dados. Selecione as colunas que deseja exibir:

Os nomes das colunas se tornam cabeçalhos da tabela. Use aliases com espaços para cabeçalhos legíveis: distance_km as "Distance (km)".

chevron-rightPainéis de textohashtag

Painéis de texto exibem valores textuais únicos ou strings formatadas. As instruções devem retornar uma coluna de texto:

As consultas de relatório seguem as mesmas regras estruturais que as consultas de visualização em painéis do dashboard. Como uma única instrução alimenta a tabela de dados, o gráfico e o mapa de localização juntos, você pode precisar combinar colunas que seriam escritas como consultas de painel separadas em um dashboard. Por exemplo, uma consulta de painel de gráfico de barras que retorna duas colunas não é suficiente para um relatório que também precisa de coordenadas GPS para o mapa de localização. Inclua todas as colunas necessárias para cada componente em uma única instrução. A lógica central de filtragem e JOIN permanece a mesma que nas consultas de painel; apenas a cláusula SELECT precisa ser mais abrangente.

Como escrever SQL para relatórios

Um relatório executa uma consulta SQL que alimenta três componentes simultaneamente: a tabela de dados, o gráfico e o mapa de localização. Ao contrário dos painéis do dashboard, onde cada painel tem sua própria consulta focada, a consulta de relatório deve retornar todas as colunas necessárias para cada componente em uma única instrução SELECT.

Requisitos de colunas por componente

Cada componente do relatório tem requisitos específicos de colunas. Sua consulta deve satisfazer todos os componentes que você ativou.

Componente
Colunas exigidas
Observações

Tabela de dados

Qualquer colunas

Todas as colunas retornadas aparecem como colunas da tabela

Gráfico

Pelo menos uma coluna de tempo ou categoria, pelo menos uma coluna numérica

As colunas de eixo são selecionadas nas configurações do gráfico

Mapa de localização

Latitude e longitude em graus decimais

O Dashboard Studio detecta automaticamente as colunas de coordenadas

Como a tabela de dados aceita quaisquer colunas, ela não impõe restrições adicionais. O gráfico e o mapa de localização dirigem a maioria das decisões estruturais.

Combinando componentes em uma consulta

Uma consulta que retorna apenas as colunas necessárias para um gráfico (duas colunas: categoria e valor) não pode também alimentar um mapa de localização. Você deve incluir todas as colunas exigidas em conjunto.

O exemplo a seguir retorna colunas para os três componentes: uma coluna de tempo e uma coluna numérica para o gráfico, colunas de coordenadas para o mapa de localização e atributos adicionais que aparecem na tabela de dados.

Nessa consulta, device_time e speed servem ao gráfico, latitude e longitude servem ao mapa de localização, e todas as colunas aparecem na tabela de dados.

circle-info

As tabelas brutas de telemática armazenam coordenadas e velocidade como inteiros escalados. As coordenadas são divididas por 10.000.000 (10⁷) para converter em graus decimais, e a velocidade é dividida por 100 (10²) para converter em km/h. Aplique essas conversões em qualquer consulta que leia de raw_telematics_data tables.

Adaptando consultas de painel do dashboard para relatórios

Qualquer consulta de painel de um dashboard é um ponto de partida válido para um relatório. O ajuste necessário depende de quais componentes você deseja habilitar.

Se a consulta do painel já for uma visualização de tabela retornando múltiplas colunas, ela pode já incluir tudo o que é necessário. Adicione colunas de coordenadas se o mapa de localização for requerido.

Se a consulta do painel for um gráfico de barras ou uma consulta de tile de estatística retornando resultados agregados, provavelmente ela não terá o detalhe em nível de linha necessário para a tabela de dados e o mapa de localização. Nesse caso, remova a agregação e trabalhe a partir dos dados subjacentes brutos ou da camada Silver em vez disso.

Livro de Receitas SQL contém exemplos de consultas prontos para uso para análises comuns de frota. As receitas do livro podem ser adaptadas para relatórios adicionando colunas de coordenadas quando o mapa de localização for necessário. A lógica central de WHERE e JOIN transfere diretamente; ajuste apenas a cláusula SELECT para cobrir todos os componentes necessários.

Como usar variáveis globais

Variáveis globais fornecem valores reutilizáveis em múltiplas instruções SQL. Defina variáveis em Settings > Configuration > Global Variables, então faça referência a elas usando ${variable_name} na sintaxe.

Defina variáveis para valores que mudam periodicamente, mas permanecem consistentes entre vários painéis: intervalos de data de análise, filtros por tipo de veículo ou valores de limite. Quando esses valores mudarem, atualize a definição da variável uma vez em vez de editar instruções SQL individuais.

As variáveis armazenam valores de texto. Converta-as para os tipos apropriados no SQL: '${variable_name}'::date para datas, '${variable_name}'::integer para números.

Para parâmetros específicos de instruções que mudam com frequência, você pode usar blocos de parâmetros CTE no início:

Esse padrão combina variáveis globais (intervalos de datas) com parâmetros específicos da instrução (limiares), mantendo todos os valores ajustáveis no topo para fácil manutenção.

Como acessar os esquemas do IoT Query

O IoT Query organiza dados nas camadas Bronze, Silver e Gold. Entender qual camada usar economiza tempo e melhora a clareza do SQL. Para detalhes completos do esquema, veja o IoT Query Schema Overviewarrow-up-right.

Camada Bronze contém pontos de rastreamento brutos dos dispositivos: bronze.tracking_data_core armazena cada posição GPS com timestamps, coordenadas e leituras de sensores. Use Bronze para análise em nível de ponto ou quando precisar de valores brutos de sensores que não foram processados nas camadas superiores.

Camada Silver fornece entidades processadas: silver.trips agrega pontos de rastreamento em registros de viagem com horários de início/fim, distância e duração. silver.zone_visits registra quando dispositivos entram e saem de geofences. silver.idle_events identifica períodos em que veículos permanecem parados com motores ligados. Use Silver para a maioria das necessidades de visualização, pois fornece estruturas prontas para análise.

Camada Gold oferece métricas pré-agregadas e modelos dimensionais para análises complexas. Use Gold para estatísticas em nível de frota ou análise multidimensional que exigiria joins complexos contra tabelas Silver.

Referencie tabelas usando schema.table no formato: silver.trips, não apenas trips. Inclua filtros de intervalo de datas nas cláusulas WHERE para limitar os dados escaneados:

A maioria das instruções SQL filtra por dispositivo, intervalo de tempo ou ambos. Adicione esses filtros cedo nas cláusulas WHERE para reduzir o volume de dados processado.

Como usar o Editor SQL

Acesse o Editor SQL na barra lateral esquerda em Tools. Use-o para três propósitos principais: testar a lógica antes de adicionar aos painéis, explorar esquemas de dados para entender colunas disponíveis e exportar dados que não precisam de visualização.

O Editor SQL suporta várias abas para diferentes instruções. Escreva SQL em abas, execute com o botão "Execute Query" e visualize os resultados na tabela abaixo. Os resultados mostram métricas de execução (tempo de execução, linhas retornadas) e suportam ordenação de colunas para exame rápido dos dados.

Exporte resultados como CSV usando o botão "Export CSV". Isso funciona para relatórios ad-hoc ou extrações de dados para análise externa. O Editor SQL não possui limite de linhas de resultado, ao contrário do SQL de visualização, que deve retornar conjuntos de dados focados.

Teste o SQL de visualização no Editor SQL antes de adicioná-lo aos painéis. Escreva a instrução, verifique se ela retorna as colunas e tipos de dados esperados e depois copie-a para a guia SQL Query do editor de painel. Esse fluxo captura problemas estruturais antes de configurar as opções de visualização.

Padrão de exploração para novos dados:

Padrões SQL comuns

A maior parte do SQL de visualização segue padrões semelhantes. Copie essas estruturas e ajuste filtros, colunas e agregações para suas necessidades específicas.

chevron-rightContagens em séries temporais para acompanhar tendênciashashtag
chevron-rightRankings por categoria para comparar gruposhashtag
chevron-rightCálculos de métricas para estatísticas agregadashashtag
chevron-rightResumo filtrado com múltiplas condiçõeshashtag

O que fazer quando o SQL falha

Falhas de execução se enquadram em três categorias: incompatibilidades estruturais com os requisitos de visualização, erros de sintaxe SQL ou filtros que retornam nenhum dado.

Incompatibilidades na estrutura de colunas

Ocorrem quando os resultados não correspondem às expectativas da visualização. Se você selecionou um gráfico de barras mas seu SQL retorna três colunas, o Dashboard Studio não pode renderizá-lo. Verifique Dataset Requirements na guia SQL Query. O gráfico de barras precisa exatamente de duas colunas (categoria, valor), então ajuste sua cláusula SELECT:

Erros de sintaxe SQL

Mostram mensagens de erro específicas. Problemas comuns incluem prefixos de esquema ausentes (trips em vez de silver.trips), erros de digitação em nomes de colunas ou conversões de data incorretas. Teste as instruções no Editor SQL para ver mensagens de erro detalhadas com números de linha.

Resultados vazios

Apesar da execução bem-sucedida, indicam que os filtros excluem todos os dados. Teste o SQL sem cláusulas WHERE no Editor SQL para verificar se a tabela contém dados e então adicione filtros incrementalmente para identificar qual condição está excluindo os resultados esperados.

Problemas de desempenho

Se as instruções executarem lentamente ou expirarem, adicione filtros de intervalo de datas nas cláusulas WHERE. Operações que escaneiam tabelas inteiras processam milhões de linhas desnecessariamente:

Para orientação adicional de desempenho, consulte Como acessar os esquemas do IoT Query para práticas recomendadas sobre filtragem e seleção de esquema.

Onde encontrar exemplos de SQL

O Livro de Receitas SQL fornece exemplos completos para análises telemáticas comuns. Essas receitas demonstram padrões para análise de viagens, cálculos de visitas a zonas, detecção de ociosidade e métricas de frota. Cada receita inclui a instrução SQL completa, explicação da lógica e resultados de exemplo.

Adapte os exemplos do Recipe Book para visualizações ajustando a cláusula SELECT para corresponder aos requisitos de visualização. Uma receita que retorna registros de viagem detalhados pode se tornar um gráfico de barras adicionando GROUP BY e agregação COUNT. Uma instrução que calcula métricas por veículo pode se tornar um tile de estatística somando across todos os veículos.

Você só precisa:

  1. Copiar exemplos de Recipe Book para o Editor do Dashboard Studio.

  2. Testar com seus dados reais.

  3. Verificar os resultados e então modificar a cláusula SELECT para sua visualização alvo.

A lógica central de WHERE e JOIN permanece a mesma; você ajusta apenas a estrutura de saída.

Para detalhes do esquema, veja o IoT Query Schema Overviewarrow-up-right. Esta referência explica as tabelas disponíveis, definições de colunas e relacionamentos entre as camadas Bronze, Silver e Gold.

Atualizado

Isto foi útil?