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

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

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

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

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 6 марта 2025 г.
  • Подготовьтесь к работе
  • Проанализируйте данные из 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-выражения
  • Аналитическая обработка данных
  • Потоковый анализ данных

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

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