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

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

  • Подготовьтесь к работе
  • Проанализируйте данные из Object Storage
  • Подключитесь к данным для аналитической обработки
  • Выполните запрос
  • Исследуйте результат
  • Проанализируйте потоковые данные из Data Streams
  • Создайте поток данных
  • Настройте генерацию данных
  • Выполните запрос
  • Исследуйте результат
  • См. также
  1. Начало работы
  2. Единый анализ потоковых и аналитических данных

Единый анализ потоковых и аналитических данных

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 13 января 2026 г.
  • Подготовьтесь к работе
  • Проанализируйте данные из Object Storage
    • Подключитесь к данным для аналитической обработки
    • Выполните запрос
    • Исследуйте результат
  • Проанализируйте потоковые данные из Data Streams
    • Создайте поток данных
    • Настройте генерацию данных
    • Выполните запрос
    • Исследуйте результат
  • См. также

В этом примере вы рассчитаете стоимость поездок в такси в определенных локациях с помощью единого запроса к аналитическим и потоковым данным.

Текст SQL-запроса для обработки обоих видов данных совпадает, различаются только соединения и привязки к данным для бакета и потока.

Данные для аналитической обработки предварительно размещены в бакете Yandex Object Storage в файлах формата Parquet. Потоковые данные будут записаны с помощью генератора в специально созданный поток Yandex Data Streams.

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

Для выполнения примера:

  1. Подготовьтесь к работе.
  2. Проанализируйте данные из Object Storage.
  3. Проанализируйте потоковые данные из Data Streams.

Примечание

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 не делает никаких заявлений относительно точности этих данных.

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

Подготовьтесь к работеПодготовьтесь к работе

  1. Войдите в консоль управления или зарегистрируйтесь. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.
  3. Если у вас еще нет каталога, создайте его.
  4. Подключение к потоку данных будет выполняться от имени сервисного аккаунта. Создайте сервисный аккаунт с именем datastream-connection-account и ролью ydb.editor.
  5. Потоки данных используют Yandex Managed Service for YDB. Создайте бессерверную базу данных.

Проанализируйте данные из Object StorageПроанализируйте данные из Object Storage

Подключитесь к данным для аналитической обработкиПодключитесь к данным для аналитической обработки

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

  2. Перейдите в сервис Yandex Query.

  3. На панели слева выберите Учебник.

  4. В блоке Создать инфраструктуру для обучения нажмите кнопку Создать соединение.

    Откроется страница создания соединения. Просмотрите значения параметров по умолчанию, изменять их не нужно.

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

    Откроется страница создания привязки к данным. Просмотрите значения параметров по умолчанию, изменять их не нужно.

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

Выполните запросВыполните запрос

  1. В редакторе запросов в интерфейсе Query нажмите кнопку Новый аналитический запрос.

  2. В текстовом поле введите текст запроса:

    $data =
    SELECT
        *
    FROM
        `tutorial-analytics`;
    
    $locations =
    SELECT
        PULocationID
    FROM
        `tutorial-analytics`.`nyc_taxi_sample/example_locations.csv`
    WITH
    (
        format=csv_with_names,
        SCHEMA
        (
            PULocationID String
        )
    );
    
    $time =
    SELECT
        HOP_END() AS time,
        rides.PULocationID AS PULocationID,
        SUM(total_amount) AS total_amount
    FROM $data AS rides
    INNER JOIN $locations AS locations
        ON rides.PULocationID=locations.PULocationID
    GROUP BY
        HOP(CAST(tpep_pickup_datetime AS Timestamp?), "PT1M", "PT1M", "PT1M"),
        rides.PULocationID;
    
    SELECT
        *
    FROM
        $time;
    
  3. Нажмите кнопку Выполнить.

Исследуйте результатИсследуйте результат

После выполнения аналитического запроса станет доступен результат — распределение стоимости поездок в такси в определенных локациях.

# time PULocationID total_amount
1 2017-12-31T22:24:00.000000Z 120 7.54
2 2018-01-01T00:13:00.000000Z 120 48.8
3 2018-01-01T03:25:00.000000Z 120 30.8
4 2018-01-01T11:29:00.000000Z 120 32.88
5 2018-01-01T15:13:00.000000Z 120 9.8
6 2018-01-01T22:03:00.000000Z 120 14.8
7 2018-01-02T19:28:00.000000Z 120 7.3
8 2018-01-03T10:17:00.000000Z 120 81.3

Проанализируйте потоковые данные из Data StreamsПроанализируйте потоковые данные из Data Streams

Создайте поток данныхСоздайте поток данных

  1. В консоли управления выберите каталог, в котором нужно создать поток данных.
  2. Перейдите в сервис Data Streams.
  3. Нажмите кнопку Создать поток.
  4. Укажите базу данных Yandex Managed Service for YDB, созданную ранее.
  5. Введите имя потока данных: yellow-taxi.
  6. Нажмите кнопку Создать.

Настройте генерацию данныхНастройте генерацию данных

  1. Создайте соединение:

    1. В консоли управления выберите каталог, в котором нужно создать соединение.
    2. Перейдите в сервис Yandex Query.
    3. На панели слева выберите Учебник.
    4. Перейдите в Потоковый раздел.
    5. В блоке Создать инфраструктуру для обучения нажмите кнопку Создать соединение.
    6. В открывшемся окне в блоке Параметры типа соединения выберите базу данных и сервисный аккаунт, созданные ранее.
    7. Нажмите кнопку Создать.
  2. Создайте привязку к данным:

    1. Откроется страница для создания привязки к данным.
    2. В блоке Параметры привязки к данным выберите поток yellow-taxi, созданный ранее.
    3. Нажмите кнопку Создать.

Запустится генерация данных в поток yellow-taxi. Для управления генератором данных используйте кнопки Стоп и Старт.

Выполните запросВыполните запрос

  1. В редакторе запросов в интерфейсе Query нажмите кнопку Новый потоковый запрос.

  2. В текстовом поле введите текст запроса:

    $data =
    SELECT
        *
    FROM bindings.`tutorial-streaming`;
    
    $locations =
    SELECT
        PULocationID
    FROM
        `tutorial-analytics`.`nyc_taxi_sample/example_locations.csv`
    WITH
    (
        format=csv_with_names,
        SCHEMA
        (
            PULocationID String
        )
    );
    
    $time =
    SELECT
        HOP_END() AS time,
        rides.PULocationID AS PULocationID,
        SUM(total_amount) AS total_amount
    FROM $data AS rides
    INNER JOIN $locations AS locations
        ON rides.PULocationID=locations.PULocationID
    GROUP BY
        HOP(cast(tpep_pickup_datetime AS Timestamp?), "PT1M", "PT1M", "PT1M"),
        rides.PULocationID;
    
    SELECT
        *
    FROM
        $time;
    
  3. Нажмите кнопку Выполнить.

Исследуйте результатИсследуйте результат

После запуска запроса к потоковым данным станет доступен результат — общая стоимость поездок total_amount в определенных локациях PULocationID, совершенных после запуска запроса.

# PULocationID time total_amount
1 125 2022-02-15T12:03:00.000000Z 1275.4084
2 129 2022-02-15T12:03:00.000000Z 1073.0449
3 126 2022-02-15T12:03:00.000000Z 202.85883
4 121 2022-02-15T12:03:00.000000Z 636.8784
5 124 2022-02-15T12:03:00.000000Z 923.87805
6 127 2022-02-15T12:04:00.000000Z 2105.3125
...

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

  • Оператор HOP. Параметры окон в потоковой обработке данных
  • Агрегатные функции. Синтаксис YQL
  • Формат SQL-выражения
  • Аналитическая обработка данных
  • Потоковый анализ данных

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

Предыдущая
Потоковая обработка
Следующая
Обзор
Проект Яндекса
© 2026 ООО «Яндекс.Облако»