Поделиться через


Синтаксис параметра Mustache

Это важно

Синтаксис параметров Mustache поддерживается только в устаревшем редакторе SQL. Databricks рекомендует использовать именованные маркеры параметров для новых запросов. При копировании запроса с помощью Mustache-синтаксиса в блокнот, редактор набора данных панели мониторинга AI/BI или в Genie необходимо преобразовать его в именованные маркеры параметров, чтобы он выполнялся.

В устаревшем редакторе SQL любая строка, упакованная в двойные фигурные скобки ({{ }}) рассматривается как параметр запроса. Мини-приложение отображается над панелью результатов, и в нем нужно задать значение параметра.

Добавьте параметр усов

  1. Нажмите Cmd + I. Параметр вставляется в положение курсора и появится диалоговое окно "Добавить параметр ".
  2. Введите ключевое слово, при необходимости измените название и выберите тип.
  3. Нажмите кнопку Добавить параметр.
  4. Задайте значение параметра в мини-приложении.
  5. Нажмите кнопку Применить изменения.
  6. Нажмите кнопку Сохранить.

Кроме того, введите {{ }} непосредственно в запрос и щелкните значок шестеренки в виджете параметра, чтобы настроить его.

Чтобы повторно запустить запрос с другим значением, обновите мини-приложение и нажмите кнопку "Применить изменения".

Редактирование, удаление и перестановка параметров

Изменить: щелкните значок шестеренки рядом с виджетом параметра. Чтобы запретить пользователям, не имеющим права на владение запросом, изменения значения параметра, нажмите кнопку «Показать только результаты».

Удалить: удалите маркер параметра из запроса. Мини-приложение удаляется автоматически.

Переупорядочение: нажмите и перетащите виджеты параметров в требуемом порядке.

Типы мини-приложений

Доступны следующие типы мини-приложений:

Текст

Принимает строку в качестве входных данных. Обратная косая черта, одиночные и двойные кавычки автоматически экранируются. Azure Databricks добавляет кавычки вокруг значения.

SELECT * FROM samples.tpch.customer WHERE c_name = {{ name_param }}

Number

Принимает число в качестве входных данных.

SELECT * FROM users WHERE age = {{ number_param }}

Дата и время

Параметризуются значения даты и времени. Доступны три варианта:

Тип Точность
Дата День
Дата и время Минута
Дата и время (с секундами) секунда

Все значения даты и времени передаются как строковые литералы и должны быть заключены в одинарные кавычки в запросе:

SELECT * FROM usage_logs WHERE date = '{{ date_param }}'

При выборе параметра Range Azure Databricks создает два параметра с помощью .start и .end суффиксов:

SELECT * FROM usage_logs
WHERE modified_time > '{{ date_range.start }}'
AND modified_time < '{{ date_range.end }}'

Замечание

Мини-приложение "Диапазон дат" возвращает правильные результаты только для DATEстолбцов типа. Для столбцов метки времени используйте виджет "Диапазон даты и времени".

Динамические значения дат: виджеты даты включают синий значок молнии. Щелкните его, чтобы выбрать динамические значения, например today, yesterday, this week, last week, last monthили last year. Эти значения обновляются автоматически.

Это важно

Динамические значения дат несовместимы с запланированными запросами.

Ограничивает входные данные предопределенным статическим списком. Поддерживает выбор одного значения и нескольких значений.

  • Одно значение: заключите параметр в одинарные кавычки в запросе.

  • Многозначное значение: включение нескольких значений в параметрах мини-приложения. Используйте опцию "Кавычки", чтобы управлять тем, помещать ли значения в одинарные кавычки, двойные кавычки или не использовать кавычки вообще. Обновите ваше WHERE условие, чтобы использовать IN.

    SELECT * FROM orders WHERE status IN ( {{ status_param }} )
    

    При выборе двойных кавычек запрос разрешается следующим образом: WHERE status IN ("value1", "value2", "value3").

Значения раскрывающегося списка — это строки. Чтобы использовать даты или метки времени, введите их в формате, необходимом для источника данных.

Выпадающий список на основе запросов

Заполняет варианты раскрывающегося списка из сохраненного запроса. Ведет себя как раскрывающийся список, но параметры являются динамическими.

  1. В разделе "Тип " на панели параметров выберите раскрывающийся список на основе запросов.
  2. Щелкните поле "Запрос" и выберите сохраненный запрос.

Если запрос возвращает несколько столбцов, Azure Databricks использует первый столбец. Если запрос возвращает столбцы с именем name и value, мини-приложение отображает столбец name, но передает связанный value в запрос во время выполнения.

Пример:

SELECT user_uuid AS 'value', username AS 'name' FROM users
value имя
1001 Джон Смит
1002 Джейн Доу
1003 Таблицы Бобби

Значение, передаваемое в базу данных во время выполнения, — это 1001, 1002 или 1003, а не отображаемое имя.

Замечание

Производительность снижается, если исходный запрос возвращает большое количество записей.