Выполнение скрипта (с поддержкой стриминга)
Важно
Данная команда устарела.
Рекомендуемый инструмент для выполнения запросов в YDB CLI — это команда ydb sql.
С помощью подкоманды yql вы можете выполнить YQL-скрипт. Скрипт может содержать запросы разных типов. В отличие от scripting yql, подкоманда yql устанавливает стрим и получает данные через него. Выполнение запроса в стриме позволяет снять ограничение на размер читаемых данных.
Общий вид команды:
ydb [global options...] yql [options...]
        
    global options— глобальные параметры.options— параметры подкоманды.
Посмотрите описание команды выполнения YQL-скрипта:
ydb yql --help
        
    Параметры подкоманды
| 
 Имя  | 
 Описание  | 
| 
 
  | 
 Время, в течение которого должна быть выполнена операция на сервере.  | 
| 
 
  | 
 Режим сбора статистики. 
  | 
| 
 
  | 
 Текст YQL-скрипта для выполнения.  | 
| 
 
  | 
 Путь к файлу с текстом YQL-скрипта для выполнения.  | 
| 
 
  | 
 Формат вывода. 
  | 
Работа с параметризованными запросами
Ниже приведена краткая справка, расширенное описание с примерами смотрите в статье Выполнение параметризованных YQL-запросов и скриптов.
| Имя | Описание | 
|---|---|
-p, --param | 
Значение одного параметра YQL-запроса в формате $name=value, где $name — имя параметра, а value — его значение (корректный JSON value). | 
--param-file | 
Имя файла в формате JSON в кодировке UTF-8, в котором заданы значения параметров, сопоставляемые с параметрами YQL-запроса по именам ключей. | 
--input-format | 
Формат представления значений параметров. Действует на все способы их передачи (через параметр команды, файл или stdin).Возможные значения:  | 
--stdin-format | 
Формат представления параметров и фрейминг для stdin. Чтобы задать оба значения, укажите параметр дважды.Формат представления параметров на stdinВозможные значения: 
 stdin не задан, то применяется формат, заданный параметром --input-format.Разделение наборов параметров (фрейминг) для stdinВозможные значения: 
  | 
--columns | 
Строка с именами колонок, заменяющими header CSV/TSV документа, читаемого со stdin'а. Имена колонок должны быть в том же формате, что и сам документ. | 
--skip-rows | 
Число строк с начала данных, читаемых со stdin'a, которые нужно пропустить, не включая строку header'a. | 
--stdin-par | 
Имя параметра, значение которого будет передано через stdin, указывается без символа $. | 
--batch | 
Режим пакетирования значений наборов параметров, получаемых через stdin.Возможные значения: 
  | 
--batch-limit | 
Максимальное количество наборов параметров в пакете для адаптивного режима пакетирования. Установка в 0 снимает ограничение.Значение по умолчанию — 1000. | 
--batch-max-delay | 
Максимальная задержка отправки на обработку полученного набора параметров для адаптивного режима пакетирования. Задается в виде числа с размерностью времени - s, ms, m.Значение по умолчанию — 1s (1 секунда). | 
Примеры
Примечание
В примерах используется профиль quickstart, подробнее смотрите в Создание профиля для соединения с тестовой БД.
Скрипт создания строковой таблицы, заполнения её данными, и получения выборки из этой таблицы:
ydb -p quickstart yql -s '
    CREATE TABLE series (series_id Uint64, title Utf8, series_info Utf8, release_date Date, PRIMARY KEY (series_id));
    COMMIT;
    UPSERT INTO series (series_id, title, series_info, release_date) values (1, "Title1", "Info1", Cast("2023-04-20" as Date));
    COMMIT;
    SELECT * from series;
  '
        
    Вывод команды:
┌──────────────┬───────────┬─────────────┬──────────┐
| release_date | series_id | series_info | title    |
├──────────────┼───────────┼─────────────┼──────────┤
| "2023-04-20" | 1         | "Info1"     | "Title1" |
└──────────────┴───────────┴─────────────┴──────────┘
        
    Выполнение скрипта из примера выше, записанного в файле script1.yql, с выводом результатов в формате JSON:
ydb -p quickstart yql -f script1.yql --format json-unicode
        
    Вывод команды:
{"release_date":"2023-04-20","series_id":1,"series_info":"Info1","title":"Title1"}
        
    Примеры передачи параметров в скрипты приведены в статье о передаче параметров в команды исполнения YQL.