SQL фрагменты¶
SQL-фрагменты — это повторно используемые фрагменты SQL или собственные запросы. Любой, у кого есть разрешения на редактор SQL, может создавать и редактировать фрагменты, которые затем становятся доступными для всех авторов SQL.
Например, если вы часто выполняете запросы, включающие несколько таблиц, вы можете сохранить код SQL, соединяющий эти таблицы, в виде фрагмента, чтобы вы (и другие сотрудники вашей организации) могли повторно использовать этот код в нескольких вопросах.
Как создрать фрагмент¶
Вот простой запрос с соединением с использованием образца базы данных, входящего в состав GlarusBI.
SELECT *
FROM orders AS o
LEFT JOIN products AS p
ON o.product_id = p.id
Давайте сохраним все после FROM как фрагмент для повторного использования в других запросах.
В SQL редакторе:
Выделите раздел SQL, который вы хотите сохранить. В этом случае мы выберем следующий код SQL:
orders AS o LEFT JOIN products AS p ON o.product_id = p.id
Щелкните правой кнопкой мыши выделенный раздел.
Выберите Сохранить как фрагмент чтобы создать Фрагмент. Появится модальное окно с выделенным оператором SQL.
Редактируйте, назовите и опишите свой фрагмент. Имена фрагментов должны быть уникальными. Нажмите кнопку «Сохранить», чтобы создать фрагмент.
В данном случае мы назвали фрагмент «Заказы и товары». Фрагмент теперь будет доступен для всех. Вот как выглядит фрагмент в редакторе SQL:
SELECT *
FROM {% raw %}{{snippet: Orders and Products}}{% endraw %}
При написании в редакторе SQL теперь вы можете начать вводить {% raw %}{{snippet:}}{% endraw %}
, и GlarusBI предложит варианты автозаполнения для доступных фрагментов.
Примечание. Если вы используете псевдонимы во фрагменте, вам также необходимо соблюдать эти псевдонимы за пределами фрагмента. Например, если псевдоним products AS p
для фрагмента кода, код вне фрагмента должен будет использовать псевдоним p
для ссылки на столбцы в этой таблице (как в p.column_name
).
Меню фрагментов¶
Боковая панель редактора SQL имеет меню Фрагменты SQL, в котором перечислены доступные и заархивированные фрагменты.
Щелкните значок фрагмента в правой части редактора SQL под значком справочника данных и значком переменных χ. GlarusBI выдвинет боковое меню со списком доступных фрагментов.
В меню фрагментов SQL вы можете:
Создать фрагмент. Нажмите «+» в правом верхнем углу боковой панели «Фрагменты SQL», чтобы создать новый фрагмент.
Предварительно просмотреть фрагменты. Нажмите на стрелку вниз справа от фрагмента, чтобы увидеть его описание и предварительный просмотр кода SQL. Также есть возможность редактировать фрагмент.
Вставить фрагмент. Нажмите на название фрагмента, чтобы вставить его в ваш запрос в текущем местоположении курсора.
Осуществить поиск фрагментов. Если вы сохранили более 15 фрагментов, слева от кнопки «+» появится значок Поиск (классическое увеличительное стекло). Обратите внимание, что результаты поиска включают только фрагменты, на которые у пользователя есть разрешения. Папки фрагментов SQL не заполняют результаты поиска.
Редактировать фрагмент Вы можете изменить имя, описание и код фрагмента.
Архивировать и разархивировать фрагмент В модальном окне «Правка» можно заархивировать фрагмент, который удаляет фрагмент из меню фрагмента и параметров автозаполнения в редакторе SQL.
Редактирование фрагментов¶
Вы можете редактировать фрагмент кода в любое время, выбрав его в боковом меню SQL фрагменты в редакторе SQL. Нажмите стрелку вниз справа от фрагмента, затем нажмите Изменить. Вы можете изменить код SQL, имя фрагмента и описание фрагмента.
Редактирование фрагментов — отличный способ внести изменения сразу во многие вопросы. Если, например, вы сохранили код SQL для извлечения пользовательских данных из таблиц X, Y и Z как фрагмент «Данные пользователя», но вам нужно изменить способ извлечения этих данных (например, добавив данные из другого столбца или таблицы), вы можете обновить код SQL во фрагменте, и все вопросы, в которых используется фрагмент «Данные пользователя», будут иметь обновленный код.
Редактирование названия фрагмента. Изменение имени фрагмента приведет к обновлению имени фрагмента в каждом вопросе, в котором используется этот фрагмент. Это не нарушит существующие вопросы (базовый SQL остается неизменным), но имейте в виду, что другие пользователи могут быть застигнуты врасплох, обнаружив, что вы переименовали фрагмент, который они часто используют, с «Заказы и продукты» на «Все вещи» или что-то другое.
Редактирование SQL фрагмента. Здесь мы должны напомнить вам, что с большой силой приходит большая ответственность. Есть одно важное предостережение при редактировании фрагментов, достойное выноски:
Внимание: если вы отредактируете фрагмент и включите неработающий код, вы нарушите все вопросы, в которых используется этот фрагмент. Обязательно протестируйте свой код, прежде чем сохранять его в существующем фрагменте.
Архивирование фрагментов¶
Архивация фрагментов поможет убрать устаревшие или менее релевантные фрагменты. Когда вы архивируете фрагмент, он больше не отображается в раскрывающемся списке автозаполнения фрагмента, и больше не отображается в основном списке фрагментов на боковой панели редактора SQL.
Архивация фрагмента не влияет на существующие запросы, использующие этот фрагмент, поэтому вы можете безопасно архивировать фрагмент, не затрагивая вопросы.
Вы можете получить доступ к заархивированному фрагменту из меню боковой панели фрагментов, нажав кнопку «Архив» в левом нижнем углу боковой панели.
Хотя фрагмент нельзя удалить, его можно заархивировать и разархивировать в любое время.
Примечание: два фрагмента не могут иметь одно и то же имя, так как даже если фрагмент заархивирован, он может быть активен в вопросах.
Разрешения фрагментов¶
Любой пользователь, у которого есть права редактора SQL хотя бы для одной из ваших подключенных баз данных, сможет просматривать боковую панель фрагментов, а также сможет создавать, редактировать, архивировать или разархивировать любые фрагменты — даже фрагменты, предназначенные для использования с базами данных. У пользователя нет прав на редактирование SQL.
Некоторые планы содержат дополнительные функции для организации фрагментов в папки и настройки разрешений для этих папок. См. нашу документацию по папкам и разрешениям фрагментов SQL.
Узнайте больше¶
SQL фрагменты vs Сохраненные вопросы vs Просмотры. Документация Metabase.
Если у вас возникли проблемы с SQL-запросом, перейдите к руководству по устранению неполадок с SQL.