Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Query
    • Форматы данных и алгоритмы сжатия
      • Чтение данных с помощью соединений
      • Чтение данных с помощью привязок к данным
      • Запись данных
    • Работа с базами данных Managed Service for ClickHouse®
    • Работа с базами данных Managed Service for Greenplum®
    • Работа с базами данных Managed Service for MySQL®
    • Работа с базами данных Managed Service for PostgreSQL
    • Работа с базами данных Managed Service for YDB
    • Запись метрик в Yandex Monitoring
  • Управление доступом
  • Правила тарификации
  • Интеграции
  • Аудитные логи Audit Trails
  • Вопросы и ответы
  • Публичные материалы
  • Обучающие курсы

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

  • Настройка соединения
  • Модель данных
  • Описание схемы данных
  • Автоматический вывод схемы данных
  • Форматы путей к данным
  • Пример чтения данных c помощью соединений
  1. Источники и приемники данных
  2. Работа с Yandex Object Storage
  3. Чтение данных с помощью соединений

Чтение данных из Object Storage с помощью соединений с Query

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 6 марта 2025 г.
  • Настройка соединения
  • Модель данных
    • Описание схемы данных
    • Автоматический вывод схемы данных
    • Форматы путей к данным
  • Пример чтения данных c помощью соединений

При работе с Yandex Object Storage с помощью соединений удобно выполнять прототипирование, первоначальную настройку подключений к данным.

Пример запроса для чтения данных:

SELECT
    *
FROM
    object_storage.`*.tsv`
WITH
(
    format=tsv_with_names,
    SCHEMA
    (
        `timestamp` Uint32,
        action String 
    )
);

Настройка соединенияНастройка соединения

Чтобы создать соединение с Object Storage:

  1. В консоли управления выберите каталог, в котором нужно создать соединение.

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

  3. На панели слева перейдите на вкладку Соединения.

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

  5. Укажите параметры соединения:

    1. В блоке Общие параметры:

      • Имя — название соединения с Object Storage.
      • Тип — Object Storage.
    2. В блоке Параметры типа соединения:

      • Аутентификация бакета — выберите Публичный или Приватный в зависимости от типа доступа к чтению объектов в бакете.

        Для публичного бакета введите имя в поле Бакет.
        Для приватного бакета выберите:

        • Облако и каталог, в котором находится источник данных.

        • Выберите или создайте новый бакет.

        • Выберите или создайте новый сервисный аккаунт с ролью storage.viewer, от имени которого будет выполняться доступ к данным.

          Чтобы использовать сервисный аккаунт, пользователю нужна роль iam.serviceAccounts.user.

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

Модель данныхМодель данных

В Object Storage данные хранятся в файлах в бинарном виде. Для чтения данных используйте SQL-выражение:

SELECT
    <выражение>
FROM
    <соединение>.<путь>
WITH(
    FORMAT = "<формат_данных>",
    COMPRESSION = "<формат_сжатия>",
    SCHEMA = (<описание схемы>))
WHERE
    <фильтр>;

Где:

  • <соединение> — название соединения с хранилищем.
  • <путь> — путь к файлу или файлам внутри бакета. Поддерживаются wildcards *.
  • <формат_данных> — формат данных в файлах.
  • <формат_сжатия> — формат сжатия файлов.
  • <описание схемы> — описание схемы хранимых данных в файлах.

Описание схемы данныхОписание схемы данных

Описание схемы данных состоит из набора полей:

  • Названия поля.
  • Типа поля.
  • Признака обязательности данных.

Например, схема данных ниже описывает поле схемы с названием Year типа Int32 и требованием наличия этого поля в данных:

Year Int32 NOT NULL

Если поле данных помечено как обязательное, NOT NULL, но это поле отсутствует в обрабатываемом файле, то работа с таким файлом будет завершена с ошибкой. Если поле помечено как необязательное, NULL, то при отсутствии поля в обрабатываемом файле не будет возникать ошибки, но поле при этом примет значение NULL. Ключевое слово NULL в необязательных полях опционально.

Автоматический вывод схемы данныхАвтоматический вывод схемы данных

Автоматический вывод схемы доступен для всех форматов данных, кроме raw и json_as_string. Он удобен в том случае, когда схема содержит большое количество полей. Для того, чтобы не вводить эти поля вручную, используйте параметр WITH_INFER:

SELECT
    <выражение>
FROM
    <соединение>.<путь>
WITH(
    FORMAT = "<формат_данных>",
    COMPRESSION = "<формат_сжатия>",
    WITH_INFER="true")
WHERE
    <фильтр>;

Где:

  • <соединение> — название соединения с хранилищем.
  • <путь> — путь к файлу или файлам внутри бакета. Поддерживаются wildcards *.
  • <формат_данных> — формат данных в файлах.
  • <формат_сжатия> — формат сжатия файлов.

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

Форматы путей к даннымФорматы путей к данным

В Yandex Query поддерживаются следующие пути к данным:

Формат пути Описание Пример
Путь завершается символом / Путь к каталогу Путь /a адресует все содержимое каталога:
/a/b/c/d/1.txt
/a/b/2.csv
Путь содержит символ макроподстановки * Любые файлы, вложенные в путь Путь /a/*.csv адресует файлы в каталогах:
/a/b/c/1.csv
/a/2.csv
/a/b/c/d/e/f/g/2.csv
Путь не завершается символом / и не содержит символов макроподстановок Путь к отдельному файлу Путь /a/b.csv адресует конкретный файл /a/b.csv

Пример чтения данных c помощью соединенийПример чтения данных c помощью соединений

Пример запроса для чтения данных из Object Storage:

SELECT
    *
FROM
    connection.`folder/filename.csv`
WITH(
    format='csv_with_names',
    SCHEMA 
    (
        Year int,
        Manufacturer String,
        Model String,
        Price Double
    )
);

Где:

  • connection — название соединения с Object Storage.
  • folder/filename.csv — путь к файлу в бакете Object Storage.
  • SCHEMA — описание схемы данных в файле.

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

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