Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все руководства
    • Получение статистики запросов к объекту с использованием S3 Select
    • Получение статистики посещения сайта с использованием S3 Select
    • Получение статистики запросов к объектам с использованием Yandex Query
    • Анализ поресурсной детализации расходов
    • Шифрование на стороне сервера
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Анализ логов с использованием DataLens
    • Монтирование бакетов к файловой системе хостов Yandex Data Processing
    • Использование Object Storage в Yandex Data Processing
    • Импорт данных из Object Storage, обработка и экспорт в Managed Service for ClickHouse®
    • Подключение бакета как диска в Windows
    • Миграция данных из Yandex Data Streams с помощью Yandex Data Transfer
    • Использование гибридного хранилища в Yandex Managed Service for ClickHouse®
    • Загрузка данных из Yandex Managed Service for OpenSearch в Yandex Object Storage с помощью Yandex Data Transfer
    • Автоматическое копирование объектов из бакета в бакет
    • Регулярное асинхронное распознавание аудиофайлов в бакете
    • Обучение модели в Yandex DataSphere на данных из Object Storage
    • Подключение к Object Storage из VPC
    • Перенос данных в Yandex Managed Service for PostgreSQL с использованием Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for Greenplum® с помощью Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for ClickHouse® с помощью Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Обмен данными между Yandex Managed Service for ClickHouse® и Yandex Data Processing
    • Загрузка данных из Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Хостинг статического сайта на фреймворке Gatsby в Object Storage
    • Миграция базы данных из Managed Service for PostgreSQL в Object Storage
    • Обмен данными между Yandex Managed Service for ClickHouse® и Yandex Data Processing
    • Импорт данных из Yandex Managed Service for PostgreSQL в Yandex Data Processing с помощью Sqoop
    • Импорт данных из Yandex Managed Service for MySQL® в Yandex Data Processing с помощью Sqoop
    • Миграция данных из Yandex Object Storage в Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL® в Yandex Object Storage
    • Выгрузка данных Greenplum® в холодное хранилище Yandex Object Storage
    • Загрузка данных из Яндекс Директ в витрину Yandex Managed Service for ClickHouse® с использованием Yandex Cloud Functions, Yandex Object Storage и Yandex Data Transfer
    • Миграция данных из Elasticsearch в Yandex Managed Service for OpenSearch
    • Загрузка состояний Terraform в Object Storage
    • Блокировка состояний Terraform с помощью Managed Service for YDB
    • Визуализация данных Yandex Query
    • Публикация обновлений для игр
    • Резервное копирование ВМ с помощью Хайстекс Акура
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veeam Backup
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Резервное копирование кластера Managed Service for Kubernetes в Object Storage
    • Разработка пользовательской интеграции в API Gateway
    • Сокращатель ссылок
    • Хранение журналов работы приложения
    • Разработка навыка Алисы и сайта с авторизацией
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Telegram-бота
    • Репликация логов в Object Storage с помощью Fluent Bit
    • Репликация логов в Object Storage с помощью Data Streams
    • Загрузка аудитных логов в SIEM ArcSight
    • Загрузка аудитных логов в SIEM Splunk
    • Создание сервера MLFlow для логирования экспериментов и артефактов
    • Работа с данными с помощью Yandex Query
    • Федеративные запросы к данным с помощью Query
    • Распознавание архива изображений в Vision OCR
    • Конвертация видео в GIF на Python
    • Автоматизация задач с помощью Managed Service for Apache Airflow™
    • Обработка файлов детализации в сервисе Yandex Cloud Billing
    • Развертывание веб-приложения с JWT-авторизацией в API Gateway и аутентификацией в Firebase
    • Поиск событий Yandex Cloud в Yandex Query
    • Поиск событий Yandex Cloud в Object Storage
    • Создание внешней таблицы на базе таблицы из бакета с помощью конфигурационного файла
    • Миграция базы данных из Google BigQuery в Managed Service for ClickHouse®
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

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

  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Создайте каталог
  • Создайте сервисный аккаунт для проекта DataSphere
  • Добавьте сервисный аккаунт в проект
  • Создайте авторизованный ключ для сервисного аккаунта
  • Создайте секрет
  • Создайте ноутбук
  • Начните работу в Query
  • Подключитесь к данным в Object Storage
  • Создайте привязку к данным
  • Настройте партицирование в Object Storage
  • Hive-партицирование
  • Расширенное партицирование
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Работа с данными с помощью Yandex Query

Работа с данными с помощью Yandex Query

Статья создана
Yandex Cloud
Обновлена 6 марта 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
    • Создайте каталог
    • Создайте сервисный аккаунт для проекта DataSphere
    • Добавьте сервисный аккаунт в проект
    • Создайте авторизованный ключ для сервисного аккаунта
    • Создайте секрет
    • Создайте ноутбук
  • Начните работу в Query
  • Подключитесь к данным в Object Storage
    • Создайте привязку к данным
  • Настройте партицирование в Object Storage
    • Hive-партицирование
    • Расширенное партицирование
  • Как удалить созданные ресурсы

Yandex Query — это интерактивный сервис для бессерверного анализа данных. С его помощью можно обрабатывать информацию из различных хранилищ без необходимости создания выделенного кластера. Поддерживается работа с хранилищами данных Yandex Object Storage, Yandex Managed Service for PostgreSQL, Yandex Managed Service for ClickHouse®.

В этом руководстве вы подключитесь к источнику данных в Object Storage и выполните запросы к ним из ноутбука JupyterLab с помощью Query.

  1. Подготовьте инфраструктуру.
  2. Начните работу в Query.
  3. Подключитесь к данным Object Storage.
  4. Настройте партицирование данных в Object Storage.

Если созданные ресурсы вам больше не нужны, удалите их.

Ноутбук с примерами также доступен на GitHub.

Открыть в DataSphere

Перед началом работыПеред началом работы

Перед началом работы нужно зарегистрироваться в Yandex Cloud, настроить сообщество и привязать к нему платежный аккаунт:

  1. На главной странице DataSphere нажмите Попробовать бесплатно и выберите аккаунт для входа — Яндекс ID или рабочий аккаунт в федерации (SSO).
  2. Выберите организацию Yandex Cloud Organization, в которой вы будете работать в Yandex Cloud.
  3. Создайте сообщество.
  4. Привяжите платежный аккаунт к сообществу DataSphere, в котором вы будете работать. Убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его в интерфейсе DataSphere.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки инфраструктуры для работы с данными Object Storage входит:

  • плата за использование вычислительных ресурсов DataSphere;
  • плата за хранение данных в бакете;
  • плата за объем считанных данных при исполнении запросов Query.

Подготовьте инфраструктуруПодготовьте инфраструктуру

Войдите в консоль управления Yandex Cloud и выберите организацию, в которой вы работаете с DataSphere. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт.

Если у вас есть активный платежный аккаунт, на странице облака вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура.

Примечание

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

Создайте каталогСоздайте каталог

Консоль управления
  1. В консоли управления выберите облако и нажмите кнопку Создать каталог.
  2. Введите имя каталога, например data-folder.
  3. Нажмите кнопку Создать.

Создайте сервисный аккаунт для проекта DataSphereСоздайте сервисный аккаунт для проекта DataSphere

Консоль управления
  1. Перейдите в каталог data-folder.
  2. В списке сервисов выберите Identity and Access Management.
  3. Нажмите кнопку Создать сервисный аккаунт.
  4. Введите имя сервисного аккаунта, например yq-sa.
  5. Нажмите Добавить роль и назначьте сервисному аккаунту роли:
    • yq.editor — для отправки запросов Query.
    • storage.viewer — для просмотра содержимого бакета и объектов Object Storage.
  6. Нажмите кнопку Создать.

Добавьте сервисный аккаунт в проектДобавьте сервисный аккаунт в проект

Чтобы сервисный аккаунт мог запускать проект DataSphere, добавьте его в список участников проекта.

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. На вкладке Участники нажмите Добавить участника.
  3. Выберите аккаунт yq-sa и нажмите Добавить.
  4. Измените роль сервисного аккаунта на Editor.

Создайте авторизованный ключ для сервисного аккаунтаСоздайте авторизованный ключ для сервисного аккаунта

Чтобы сервисный аккаунт мог отправлять запросы Query, создайте авторизованный ключ.

Примечание

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

Консоль управления
  1. В консоли управления перейдите в каталог data-folder.
  2. В списке сервисов выберите Identity and Access Management.
  3. На панели слева выберите Сервисные аккаунты.
  4. В открывшемся списке выберите сервисный аккаунт yq-sa.
  5. Нажмите кнопку Создать новый ключ на верхней панели и выберите пункт Создать авторизованный ключ.
  6. Выберите алгоритм шифрования и нажмите Создать.
  7. Нажмите Скачать файл с ключами.

Создайте секретСоздайте секрет

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

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. В блоке Ресурсы проекта нажмите Секрет.
  3. Нажмите Создать.
  4. В поле Имя задайте имя секрета — yq_access_key.
  5. В поле Значение вставьте полное содержимое скачанного файла с авторизированным ключом.
  6. Нажмите Создать.

Создайте ноутбукСоздайте ноутбук

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. Нажмите кнопку Открыть проект в JupyterLab и дождитесь окончания загрузки.
  3. На верхней панели нажмите File и выберите New ⟶ Notebook.
  4. Выберите ядро и нажмите Select.

Начните работу в QueryНачните работу в Query

Пакет yandex_query_magic предоставляет magic commands для работы в Jupyter. Установите его для отправки запросов в Query. Скопируйте код в ячейки ноутбука yq-storage.ipynb:

  1. Откройте проект DataSphere:

    1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

    2. Нажмите кнопку Открыть проект в JupyterLab и дождитесь окончания загрузки.
    3. Откройте вкладку с ноутбуком.
  2. Установите пакет yandex_query_magic:

    %pip install yandex_query_magic
    
  3. После завершения установки на верхней панели выберите Kernel ⟶ Restart kernel....

  4. Загрузите расширение:

    %load_ext yandex_query_magic
    
  5. Настройте подключение, указав идентификатор каталога data-folder и название секрета с авторизованным ключом:

    %yq_settings --folder-id <идентификатор_каталога> --env-auth yq_access_key
    
  6. Выполните тестовый запрос к Query:

    %yq select "Hello, world!"
    

Подключитесь к данным в Object StorageПодключитесь к данным в Object Storage

Для примера возьмем данные о поездках Нью-Йоркского желтого такси. Данные заранее размещены в Object Storage в общедоступном бакете yq-sample-data в каталоге nyc_taxi_csv.

Примечание

Yandex Cloud предоставляет набор данных — поездки Нью-Йоркского такси — на условиях “как есть” (as is). Yandex Cloud не дает никаких заверений, явных или подразумеваемых, гарантий или условий в отношении использования вами указанного датасета (набора данных). В пределах, разрешенных вашим местным законодательством, Yandex Cloud не несет никакой ответственности за любые убытки или ущерб, включая прямые, побочные, специальные, косвенные, случайные или штрафные, возникшие в результате использования вами датасета.

NYC Taxi and Limousine Commission (TLC):

Данные были собраны и предоставлены NYC Taxi and Limousine Commission (TLC) поставщиками технологий, уполномоченными в рамках Taxicab & Livery Passenger Enhancement Programs (TPEP/LPEP). Данные о поездке не были созданы TLC, и TLC не делает никаких заявлений относительно точности этих данных.

Ознакомьтесь с Источником датасета и Правилами его использования.

Создайте подключение Query:

Консоль управления
  1. В консоли управления выберите каталог data-folder.

  2. В списке сервисов выберите Yandex Query.

  3. На панели слева выберите Соединения.

  4. Нажмите кнопку Создать.

  5. Введите имя соединения, например storage-connection.

  6. Выберите тип соединения Object Storage и укажите Параметры типа соединения:

    • В поле Аутентификация бакета выберите Публичный и укажите имя бакета.
    • Укажите имя бакета — yq-sample-data.
  7. Нажмите кнопку Создать.

Создайте привязку к даннымСоздайте привязку к данным

Привязка к данным содержит информацию о форматах и расположении файлов в бакете, а также о списке полей данных и их типах. Query может обрабатывать данные в форматах CSV, TSV, Json и Parquet. При этом данные в форматах CSV, TSV, Json могут быть дополнительно запакованы внешним архиватором: gzip, zstd и другими. Для данных в формате Parquet поддерживается сжатие Snappy, LZ4, ZSTD и другие.

Чтобы создать привязку к данным:

Консоль управления
  1. В консоли управления выберите каталог data-folder.

  2. В списке сервисов выберите Yandex Query.

  3. На панели слева выберите Привязки.

  4. Нажмите кнопку Создать.

  5. В блоке Параметры соединения:

    • Тип — выберите Object Storage.
    • Соединение — выберите storage-connection.
  6. В блоке Параметры привязки к данным:

    1. Введите имя привязки, например yq_binding.
    2. В поле Путь укажите путь к данным — nyc_taxi_sample/data/.
    3. Выберите тип сжатия — gzip.
  7. В блоке Настройки формата в поле Формат выберите csv_with_names.

  8. В блоке Колонки добавьте две колонки со следующими именами и типами данных:

    • tpep_pickup_datetime — DATETIME.
    • trip_distance — DOUBLE.
  9. Чтобы проверить корректность указанных данных, нажмите кнопку Предпросмотр. Внизу должна появиться таблица.

  10. Нажмите кнопку Создать.

Чтобы проверить подключение, получите данные таблицы из ячейки ноутбука:

%yq SELECT * FROM yq_binding LIMIT 100;

Настройте партицирование в Object StorageНастройте партицирование в Object Storage

В Query можно существенно снизить время запроса, если настроить правила партицирования (размещения) данных в Object Storage, которые позволят считывать только нужные данные. Например, когда файлы в бакете рассортированы в каталогах по годам, то при запросе Query будет искать данные только в заданных каталогах.

Query поддерживает два варианта указания правил размещения данных: Hive-партицирование и Расширенное партицирование.

Hive-партицированиеHive-партицирование

Размещение файлов в стиле Apache Hive™ — это размещение данных в структуре каталогов вида ключ=значение/ключ2=значение2/.... Этот формат используется в системах, изначально построенных вокруг экосистемы Apache Hadoop™, например, в Apache Spark™.

Например, данные из используемого датасета Yellow Taxi расположены в каталогах по правилам Hive-партицирования:

  • year=2021/month=1/...
  • year=2021/month=2/...
  • ...
  • year=2022/month=1/...
  • year=2022/month=2/...

Настройте Hive-партицирование:

  1. Склонируйте привязку к данным yq_binding:

    Консоль управления
    1. В консоли управления выберите каталог data-folder.

    2. В списке сервисов выберите Yandex Query.

    3. На панели слева нажмите Привязки.

    4. В строке с привязкой yq_binding нажмите кнопку и выберите Клонировать.

    5. Укажите имя привязки — yq_tutorial_hive_partitioned.

    6. В блоке Колонки партиционирования:

      1. Выберите режим Базовый.
      2. Добавьте колонку с именем year и типом данных UINT32.
      3. Добавьте колонку с именем month и типом данных UINT32.
    7. Нажмите кнопку Изменить.

  2. Чтобы проверить результат, выполните следующий запрос:

    %yq SELECT * FROM yq_tutorial_hive_partitioned WHERE year=2021
    

Расширенное партицированиеРасширенное партицирование

Иногда данные в Object Storage расположены по уникальным правилам. Для таких случаев существует режим расширенного партицирования, который позволяет указать собственный шаблон пути размещения данных.

При работе в режиме расширенного партицирования необходимо описать каждый компонент пути year и month по отдельности, указав диапазоны их значений. Затем нужно указать шаблон пути в бакете Object Storage, где хранятся данные.

Настройте расширенное партицирование:

  1. Склонируйте привязку данных yq_binding:

    Консоль управления
    1. В консоли управления выберите каталог data-folder.

    2. В списке сервисов выберите Yandex Query.

    3. На панели слева нажмите Привязки.

    4. В строке с привязкой yq_binding нажмите кнопку и выберите Клонировать.

    5. Укажите имя привязки — yq_tutorial_partition_projection.

    6. В блоке Колонки партиционирования:

      1. Выберите режим Расширенный.
      2. Добавьте колонку с именем year и типом данных UINT32:
        • Тип формата — integer.
        • Интервал:
          • Мин. — 2019
          • Макс. – 2024
          • Шаг — 1.
        • Кол-во символов — 2.
      3. Добавьте колонку с именем month и типом данных UINT32:
        • Тип формата — integer.
        • Интервал:
          • Мин. — 1
          • Макс. – 12
          • Шаг — 1.
        • Кол-во символов — 2.
    7. Нажмите кнопку Изменить.

  2. Чтобы проверить результат, выполните следующий запрос:

    %yq SELECT * FROM yq_tutorial_partition_projection WHERE year=2021
    

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы:

  • удалите бакет;
  • удалите проект.

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

Предыдущая
Создание сервера MLFlow для логирования экспериментов и артефактов
Следующая
Федеративные запросы к данным с помощью Query
Проект Яндекса
© 2025 ООО «Яндекс.Облако»