Потоковая обработка данных из Yandex Data Streams
В этом примере вы выполните потоковую обработку данных о поездках Нью-Йоркского такси. Данные для примера будут записаны с помощью генератора в специально созданный поток Yandex Data Streams.
В результате вы получите общую стоимость первых 10 поездок после начала обработки потоковых данных.
Для выполнения примера:
- Подготовьтесь к работе.
- Создайте поток данных.
- Настройте генерацию данных.
- Выполните запрос.
- Исследуйте результат.
Примечание
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 не делает никаких заявлений относительно точности этих данных.
Ознакомьтесь с источником
Подготовьтесь к работе
- Войдите в консоль управления
или зарегистрируйтесь. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. - Если у вас еще нет каталога, создайте его.
- Подключение к потоку данных будет выполняться от имени сервисного аккаунта. Создайте сервисный аккаунт с именем
datastream-connection-account
и рольюydb.editor
. - Потоки данных используют Yandex Managed Service for YDB. Создайте бессерверную базу данных.
Создайте поток данных
- В консоли управления
выберите каталог, в котором нужно создать поток данных. - Выберите сервис Data Streams.
- Нажмите кнопку Создать поток.
- Укажите базу данных Yandex Managed Service for YDB, созданную ранее.
- Введите имя потока данных:
yellow-taxi
. - Нажмите кнопку Создать.
Настройте генерацию данных
-
Создайте соединение:
- В консоли управления
выберите каталог, в котором нужно создать соединение. - В списке сервисов выберите Yandex Query.
- На панели слева выберите
Учебник. - Перейдите в Потоковый раздел.
- В блоке Создать инфраструктуру для обучения нажмите кнопку Создать соединение.
- В открывшемся окне в блоке Параметры типа соединения выберите базу данных и сервисный аккаунт, созданные ранее.
- Нажмите кнопку Создать.
- В консоли управления
-
Создайте привязку к данным:
- Откроется страница для создания привязки к данным.
- В блоке Параметры привязки к данным выберите поток
yellow-taxi
, созданный ранее. - Нажмите кнопку Создать.
Запустится генерация данных в поток yellow-taxi
. Для управления генератором данных используйте кнопки Стоп и Старт.
Выполните запрос
-
В редакторе запросов в интерфейсе Query нажмите кнопку Новый потоковый запрос.
-
В текстовом поле введите текст запроса:
$data = SELECT * FROM bindings.`tutorial-streaming` LIMIT 10; SELECT HOP_END() AS time, COUNT(*) AS ride_count, SUM(total_amount) AS total_amount FROM $data GROUP BY HOP(CAST(tpep_pickup_datetime AS Timestamp), "PT1M", "PT1M", "PT1M");
-
Нажмите кнопку Выполнить.
Исследуйте результат
После выполнения запроса станет доступен результат — общая стоимость total_amount
первых 10 поездок, совершенных после запуска запроса.
# | time | ride_count | total_amount |
---|---|---|---|
1 | 2022-11-28T16:05:00.000000Z | 10 | 5675.542679843059 |