Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Query
  • Управление доступом
  • Правила тарификации
    • SDK
    • Apache Airflow™
  • Интеграции
  • Аудитные логи Audit Trails
  • Вопросы и ответы
  • Публичные материалы
  • Обучающие курсы

В этой статье:

  • Возвращаемые значения
  • Соответствие YQL и Python-типов
  • Скалярные типы
  • Сложные типы
  • Опциональные типы
  • Контейнеры
  • Специальные типы
  1. Справочник
  2. Apache Airflow™

Apache Airflow™

Статья создана
Yandex Cloud
Обновлена 31 июля 2024 г.
  • Возвращаемые значения
  • Соответствие YQL и Python-типов
    • Скалярные типы
    • Сложные типы
    • Опциональные типы
    • Контейнеры
    • Специальные типы

Для работы под управлением Apache Airflow™ Yandex Query предоставляет пакет apache-airflow-providers-yandex. Задания Apache Airflow™ представляют собой приложения на языке Python, состоящие из набора операторов Apache Airflow™ и их зависимостей, определяющих порядок выполнения. Для выполнения запросов к Yandex Query в составе пакета содержится оператор Apache Airflow™ YQExecuteQueryOperator.

Для выполнения запросов к Yandex Query необходимо инициализировать YQExecuteQueryOperator оператор с помощью аргументов, указанных ниже.

Обязательные аргументы:

  • name — название задания Apache Airflow™.
  • sql — текст SQL-запроса, который необходимо выполнить в Yandex Query.

Опциональные аргументы:

  • folder_id — каталог, где будет исполняться запрос. Если не указан, то совпадает с каталогом Managed Service for Apache Airflow™.
  • yandex_conn_id — идентификатор подключения с типом yandexcloud, содержащий параметры соединения с Yandex Cloud. Если не указан, то используется соединение с именем yandexcloud_default. Соединение yandexcloud_default предустанавливается в составе Managed Service for Apache Airflow™, отдельно его заводить не нужно.

Пример:

yq_operator = YQExecuteQueryOperator(task_id="yq_operator", sql="SELECT 'Hello, world!'")

В данном примере создается задание Apache Airflow™ с идентификатором yq_operator, которое выполняет запрос SELECT 'Hello, world!'. Полный пример запуска запроса в Yandex Query из Managed Service for Apache Airflow™ находится в разделе Автоматизация задач Yandex Query с помощью Yandex Managed Service for Apache Airflow™.

Возвращаемые значенияВозвращаемые значения

Результатом успешного исполнения оператора YQExecuteQueryOperator являются данные в виде словаря (dict), содержащего массив описаний столбцов и массив строк с результатами.

Запрос:

yq_operator = YQExecuteQueryOperator(task_id="yq_operator", sql="SELECT 'Hello, World!'")

Результат:

{
  'rows': [['Hello, world!']],
  'columns': [{'name': 'column0', 'type': 'String'}]
}
Поле Описание
columns Массив колонок возвращаемого значения
columns[].name Имя колонки
columns[].type Тип данных колонки
rows Массив строк результатов возвращаемого значения. Количество элементов массива каждой строки совпадает с числом колонок из параметра columns

Соответствие YQL и Python-типовСоответствие YQL и Python-типов

Ниже приведены правила преобразования YQL-типов в Python-результаты.

Скалярные типыСкалярные типы

YQL-тип Python-тип Пример в Python
Int8, Int16, Int32, Uint8, Uint16, Uint32, Int64, Uint64 int 647713
Bool bool True
Float, Double double
NaN и Inf представляются в виде None
7.88731023
None
Decimal Decimal 45.23410083
Utf8 str Текст строки
String str
bytes
Текст строки

Сложные типыСложные типы

YQL-тип Python-тип Пример в Python
Json, JsonDocument str (весь узел вставляется как строка) {"a":[1,2,3]}
Date, Datetime, Timestamp datetime 2022-02-09

Опциональные типыОпциональные типы

YQL-тип Python-тип Пример в Python
Optional Оригинальный тип или None 1

КонтейнерыКонтейнеры

YQL-тип Python-тип Пример в Python
List<Type> list [1,2,3,4]
Dict<KeyType, ValueType> dict {key1: value1, key2: value2}
Set<KeyType> set set(key_value1, key_value2)
Tuple<Type1, Type2> tuple (element1, element2, ..)
Struct<Name:Utf8,Age:Int32> dict { "Name": "John", "Age": 128 }
Variant<Type1, Type2> с tuple list list[64563, 1]
Variant<value:Int32,error:String> со структурой dict {key1: value1, key2: value2}

Специальные типыСпециальные типы

YQL-тип Python-тип
Void, Null None
EmptyList []
EmptyDict {}

См. такжеСм. также

  • Автоматизация задач Yandex Query с помощью Yandex Managed Service for Apache Airflow™.

Была ли статья полезна?

Предыдущая
Соответствие YQL и Json-типов
Следующая
Интеграции
Проект Яндекса
© 2025 ООО «Яндекс.Облако»