Написание SQL-запросов
Dashboard Studio использует SQL для извлечения данных из схем IoT Query. Вы пишете SQL в двух контекстах: в редакторах панелей, где выражения обеспечивают визуализации, и в автономном SQL Editor для исследования данных. На этой странице объясняется, как писать эффективный SQL для обоих контекстов, с акцентом на требования к визуализациям, поскольку у них есть специфические структурные ограничения.
Где используется SQL
Dashboard Studio предоставляет две среды SQL для разных целей. Понимание, когда использовать каждую из них, поможет работать эффективнее.
Запросы для визуализаций поддерживают отдельные панели в отчетах. Эти выражения вы пишете во вкладке редактора панели SQL Query каждая панель выполняет одно выражение, которое должно возвращать данные в определённой структуре, соответствующей типу визуализации. Эти выражения выполняются при загрузке или обновлении отчётов, поэтому производительность важна для пользовательского опыта. SQL для визуализаций не может изменять данные; все выражения выполняются только для чтения как SELECT операции против схем IoT Query.
SQL Editor поддерживает исследование данных и экспорт. Откройте SQL Editor через левую боковую панель в разделе Tools. Пишите любые SELECT-выражения, чтобы изучить структуру данных, проверить предположения или экспортировать результаты в CSV. SQL Editor отображает полные таблицы результатов с возможностью сортировки столбцов и предоставляет метрики выполнения. Используйте его для тестирования логики перед добавлением SQL в панели визуализации или для одноразового извлечения данных, которым не нужна визуализация.
Ключевое различие: SQL для визуализаций должен соответствовать точной структуре столбцов, тогда как выражения в SQL Editor могут возвращать любой формат результата. Сначала тестируйте сложную логику в SQL Editor, затем адаптируйте её для визуализаций.
Как писать SQL для визуализаций

SQL для визуализаций должен возвращать конкретное количество столбцов и типы данных. Dashboard Studio не сможет отобразить столбчатую диаграмму из трёх столбцов или статистическую плитку из текстовых данных. Перед написанием запроса проверьте раздел Dataset Requirements во вкладке SQL Query, чтобы точно узнать, что ожидает выбранная визуализация. В таблице ниже перечислены поддерживаемые типы визуализаций:
Два столбца: категория, значение
SELECT column1, COUNT(*) FROM schema.table GROUP BY column1
Два столбца: метка, значение
SELECT category, SUM(value) FROM schema.table GROUP BY category
Stat tiles
Stat tiles отображают одиночные числовые значения. Выражения должны возвращать ровно одну строку с одним числовым столбцом:
Имя столбца не важно, важно только, чтобы результат был одним числовым значением. Dashboard Studio отображает это значение с форматированием, которое вы настраиваете в Visualization Settings.
Bar charts
Bar charts требуют ровно два столбца: категория (текст или дата) и значение (числовое). Первый столбец становится осью X, второй — высотой столбцов:
Используйте ORDER BY чтобы контролировать последовательность столбцов. Сортируйте по значению для ранжированных сравнений или по категории для временных рядов.
Pie charts
Pie charts требуют ровно два столбца: метка (текст) и значение (числовое). Первый столбец становится метками секторов, второй определяет размеры секторов:
Добавляйте LIMIT для категорий с большим количеством значений. Круговые диаграммы с более чем 20 секторами становятся нечитаемыми; ограничивайте до топ-10–15 категорий.
Tables
Tables принимают любое количество столбцов любых типов данных. Выберите столбцы, которые хотите отобразить:
Имена столбцов становятся заголовками таблицы. Используйте псевдонимы с пробелами для читабельных заголовков: distance_km as "Distance (km)".
Text panels
Text panels отображают одиночные текстовые значения или форматированные строки. Выражения должны возвращать один текстовый столбец:
Как использовать глобальные переменные
Глобальные переменные обеспечивают повторно используемые значения в нескольких SQL-выражениях. Определите переменные в Settings > Configuration > Global Variables, затем обращайтесь к ним, используя ${variable_name} синтаксис.

Определяйте переменные для значений, которые периодически меняются, но остаются одинаковыми в нескольких панелях: диапазоны дат для анализа, фильтры по типу транспортного средства или пороговые значения. При изменении таких значений обновите определение переменной один раз, вместо редактирования отдельных SQL-выражений.
Переменные хранят текстовые значения. Приводите их к нужным типам в SQL: '${variable_name}'::date для дат, '${variable_name}'::integer для чисел.
Для параметров, специфичных для выражения и часто меняющихся, можно использовать блоки параметров CTE в начале:
Этот шаблон комбинирует глобальные переменные (диапазоны дат) с параметрами, специфичными для выражения (пороги), удерживая все настраиваемые значения вверху для удобного обслуживания.
Как получить доступ к схемам IoT Query
IoT Query организует данные по уровням Bronze, Silver и Gold. Понимание, какой уровень использовать, экономит время и повышает ясность SQL. Для подробной информации по схемам смотрите IoT Query Schema Overview.
Bronze layer содержит сырые трековые точки от устройств: bronze.tracking_data_core хранит каждую GPS-позицию с временными метками, координатами и показаниями датчиков. Используйте Bronze для анализа на уровне точек или когда требуются необработанные значения датчиков, не агрегированные в более высокие уровни.
Silver layer предоставляет обработанные сущности: silver.trips агрегирует трековые точки в записи поездок с временем начала/окончания, расстоянием и длительностью. silver.zone_visits записывает моменты входа и выхода устройств из геозон. silver.idle_events определяет периоды, когда транспортные средства находятся в стоячем положении с работающим двигателем. Используйте Silver для большинства потребностей визуализации, поскольку он предоставляет структуры, готовые для анализа.
Gold layer предлагает предварительно агрегированные метрики и размерные модели для сложной аналитики. Используйте Gold для статистики по всему парку или многомерного анализа, который потребовал бы сложных объединений по таблицам Silver.
Обращайтесь к таблицам по формату schema.table : silver.trips, а не просто trips. Включайте фильтры по диапазонам дат в WHERE, чтобы ограничить объём обрабатываемых данных:
Большинство SQL-выражений фильтруют по устройству, диапазону времени или по обоим параметрам. Добавляйте эти фильтры в начале WHERE, чтобы уменьшить объём обрабатываемых данных.
Как использовать SQL Editor
Откройте SQL Editor через левую боковую панель в разделе Tools. Используйте его для трёх основных задач: тестирования логики перед добавлением в панели, изучения схем данных для понимания доступных столбцов и экспорта данных, которым не требуется визуализация.

SQL Editor поддерживает несколько вкладок для разных выражений. Пишите SQL во вкладках, выполняйте с помощью кнопки "Execute Query" и просматривайте результаты в таблице ниже. Результаты показывают метрики выполнения (время выполнения, число строк) и поддерживают сортировку столбцов для быстрого изучения данных.
Экспортируйте результаты в CSV через кнопку "Export CSV". Это удобно для одноразовых отчётов или извлечения данных для внешнего анализа. SQL Editor не имеет ограничения на число строк результата, в отличие от SQL для визуализаций, который должен возвращать сфокусированные наборы данных.
Тестируйте SQL для визуализаций в SQL Editor перед добавлением в панели. Напишите выражение, убедитесь, что оно возвращает ожидаемые столбцы и типы данных, затем скопируйте его во вкладку SQL Query редактора панели. Такой рабочий процесс выявляет структурные проблемы до настройки параметров визуализации.
Шаблон исследования новых данных:
Распространённые шаблоны SQL
Большинство SQL для визуализаций следует схожим шаблонам. Копируйте эти структуры и при необходимости настраивайте фильтры, столбцы и агрегации под свои задачи.
Что делать, если SQL не выполняется
Сбой выполнения попадает в три категории: структурное несоответствие требованиям визуализации, синтаксические ошибки SQL или фильтры, возвращающие пустой результат.
Несоответствия структуры столбцов
Происходят, когда результаты не соответствуют ожиданиям визуализации. Если вы выбрали столбчатую диаграмму, а ваш SQL возвращает три столбца, Dashboard Studio не сможет её отобразить. Проверьте Dataset Requirements во вкладке SQL Query. Для столбчатой диаграммы требуется ровно два столбца (категория, значение), поэтому отредактируйте ваш SELECT:
Синтаксические ошибки SQL
Показывают конкретные сообщения об ошибках. Частые проблемы включают отсутствие префиксов схем (trips вместо silver.trips), опечатки в названиях столбцов или некорректное приведение дат. Тестируйте выражения в SQL Editor, чтобы увидеть подробные сообщения об ошибках с номерами строк.
Пустые результаты
Несмотря на успешное выполнение, означают, что фильтры исключают все данные. Протестируйте SQL без WHERE в SQL Editor, чтобы проверить, есть ли данные в таблице, затем добавляйте фильтры по одному, чтобы определить, какое условие исключает ожидаемые результаты.
Проблемы с производительностью
Если выражения выполняются медленно или время выполнения истекает, добавьте фильтры по диапазону дат в WHERE. Операции, сканирующие целые таблицы, обрабатывают миллионы строк без необходимости:
Для дополнительной информации по оптимизации производительности смотрите Как получить доступ к схемам IoT Query за рекомендациями по фильтрации и выбору схемы.
Где найти примеры SQL
Книга SQL Recipe Book содержит полные примеры для распространённых телематических анализов. Эти рецепты демонстрируют шаблоны для анализа поездок, вычисления визитов в зоны, обнаружения простоя и метрик парка. Каждый рецепт включает полный SQL-запрос, объяснение логики и примеры результатов.
Адаптируйте примеры из Recipe Book для визуализаций, изменив SELECT так, чтобы он соответствовал требованиям визуализации. Рецепт, возвращающий подробные записи поездок, можно преобразовать в столбчатую диаграмму, добавив GROUP BY и агрегат COUNT. Выражение, рассчитывающее метрики по каждому транспортному средству, можно превратить в stat tile, добавив SUM по всем транспортным средствам.
Вам нужно всего лишь:
Скопировать примеры из Recipe Book в Editor Dashboard Studio.
Протестировать на ваших реальных данных.
Проверить результаты, затем изменить SELECT для целевой визуализации.
Основная логика WHERE и JOIN остаётся прежней; вы изменяете только структуру вывода.
Для сведений о схемах смотрите IoT Query Schema Overview. Это справочное руководство объясняет доступные таблицы, определения столбцов и взаимосвязи между уровнями Bronze, Silver и Gold.
Последнее обновление
Это было полезно?