Перейти к содержанию

Редактор прямых запросов

Если вам нужно создать запрос, который нельзя выразить с помощью конструктора запросов, вы можете использовать SQL или другой подходящий язык запросов.

Примечание

В документации ещё можно встретить "редактор SQL". Это синоним "редактора прямых запросов". Запрос называется «прямым», а не «SQL», потому что вы можете запрашивать и базы данных, которые не используют SQL, такие как MongoDB и Google Analytics.

Также можно использовать возможности Glarus AI, чтобы генерировать SQL на основе естественного языка. Составьте промпт: опишите, что вы хотите получить и тщательно проверьте результат.

Что такое SQL?

SQL (произносится как «си́квел», или иногда как "эскюэ́ль" — люди спорят об этом) расшифровывается как Structured Query Language и является широко используемым стандартом для получения данных из баз данных.

Даже если вы не понимаете SQL или не знаете, как его использовать, стоит получить представление о том, как он работает внутри Glarus BI, потому что иногда другие пользователи будут делиться SQL‑запросами, которые могут быть вам полезны.

Запуск нового SQL-запроса

Выберите + Новый на главной панели навигации. Если у вас есть разрешения на использование редактора SQL, вы увидите возможность запустить новый SQL-запрос рядом с маленьким значком консоли.

Нажав SQL-запрос, вы увидите редактор, в котором можно писать и выполнять запросы на SQL (или на родном языке запросов вашей базы данных).

Редактор прямых запросов

Чтобы попробовать, убедитесь, что вы выбрали образец базы данных, а затем вставьте этот короткий SQL-запрос:

SELECT
    sum(subtotal),
    created_at
FROM orders
GROUP BY created_at;

Не беспокойтесь, если не понимаете синтаксис или назначение запроса. Нажмите синюю кнопку Выполнить запрос, чтобы отправить его и получить результат.

Вы заметите, что возвращаемая таблица — такая же как и при использовании конструктора запросов, где вы могли запросить сумму Промежуточный итог в таблице Заказы, сгруппированную по дате Создано в.

Запуск выделенной части запроса

Вы можете выполнить прямой запрос, нажав Ctrl + Enter в Windows и Linux или ⌘ + return на Mac. Вы также можете выполнить только часть запроса, выделив нужный фрагмент перед нажатием кнопки выполнения или перед использованием сочетания клавиш для выполнения запроса.

Запросы, созданные в редакторе SQL, можно сохранять, загружать, преобразовывать в модели и добавлять на дашборды точно так же, как запросы, созданные с помощью конструктора запросов.

Вы также можете ссылаться на модели и сохранённые запросы в своих SQL-запросах.

Использование ?? вместо оператора ?

Если вы используете оператор JSON ? в PostgreSQL, используйте вместо него эквивалентный оператор ??.

Это связано с ограничениями JDBC, который интерпретирует одиночный знак вопроса ? как заполнитель параметра.

Форматирование SQL-запросов

Вы можете форматировать свои SQL‑запросы, нажав на значок «документа» в боковой панели редактора.

До форматирования:

select sum(subtotal),
  created_at from orders group by created_at;

После форматирования:

SELECT
  sum(subtotal),
  created_at
FROM
  orders
GROUP BY
  created_at;

Инструмент форматирования работает только для SQL‑запросов и недоступен для SQLite и SQL Server.

Использование SQL-фильтров

Если вы работаете с прямым запросом с переменными, этот запрос может иметь виджеты фильтров в верхней части экрана над редактором. Виджеты фильтров позволяют изменять SQL-запрос перед его выполнением, влияя на результаты, которые вы можете получить.

SQL-фильтр

Написание SQL-запросов, использующих переменные или параметры, может быть очень эффективным, но это также и немного более сложный процесс, поэтому есть отдельная страница с более детальной информацией.

Фрагменты SQL

Вы можете использовать фрагменты SQL для сохранения, повторного использования и совместного использования кода SQL для нескольких запросов, составленных с помощью редактора SQL.

Как Glarus BI исполняет SQL-запросы

Когда вы запускаете запрос из редактора SQL, Glarus BI отправляет запрос в вашу базу данных точно так, как он написан. Любые результаты или ошибки, отображаемые в Glarus BI, аналогичны результатам или ошибкам, которые вы получили бы, если бы запустили запрос непосредственно в своей базе данных. Если синтаксис SQL вашего запроса не соответствует диалекту SQL, используемому вашей базой данных, ваша база данных не сможет исполнить запрос.

Редактор прямых запросов предназначен для чтения данных, а не для записи

Редактор SQL предназначен для получения ответов на вопросы о данных. Не используйте редактор для:

  • многооператорных запросов;
  • хранимых процедур и вызовов функций;
  • DDL-операторов (например CREATE, ALTER или DROP).

В зависимости от прав, настроенных для подключения, часть из перечисленного выше может работать, но это не поддерживается официально. Рекомендуем не использовать редактор прямых запросов для подобных задач.

Предупреждение

Используйте редактор прямых запросов по назначению — для чтения данных. Использование в других целях может привести к проблемам.

История версий запроса

Для запросов, дашбордов и моделей Glarus BI хранит историю версий для предыдущих пятнадцати версий этого элемента.

См. "История".

Изучение результатов SQL-запроса с помощью конструктора запросов

Для сохранённых SQL-запросов без параметров вы получите кнопку Изучить результаты. Она создаст новый запрос в конструкторе запросов, который использует результаты SQL-запроса в качестве источника данных.

Кнопка изучения результатов

Детализация в SQL-запросах

Визуализации, созданные с помощью SQL, имеют ограниченные возможности детализации:

  • Вы можете фильтровать результаты SQL-запросов, нажимая на точки данных, масштабировать временны́е ряды или карты и использовать некоторые действия заголовков столбцов.
  • Вы не сможете детализировать до неагрегированных записей, изменять временну́ю детализацию или разбивать данные по категориям или расположениям.

Кэширование результатов

См. политики кэширования запросов.

Дополнительная информация