TGViewer
Python Backend | YeaHub Python Backend | YeaHub @yeahub_python_backend · 1.76K subscribers
Post #575 684
Потоковая обработка данных. Как еще можно применять генераторы в Python

Генераторы стали основой для работы с непрерывными потоками информации: live-метрики, события IoT, стримы логов и real-time аналитика

Например генератор потока данных от сенсора
import time
import random

def sensor_stream(sensor_id):
"""Поток показаний сенсора"""
value = 50.0
while True:
value += 1 # Новое показание
yield {
'sensor': sensor_id,
'value': value,
'timestamp': time.time()
}
time.sleep(1) # Задержка между измерениями


Фильтрация + агрегация на лету
def process_stream(stream, max_value=100):
"""Фильтрует аномалии и считает среднее за последние 5 значений"""
buffer = []
for point in stream:
if 0 < point['value'] < max_value: # Фильтрация
buffer.append(point['value'])
buffer = buffer[-5:] # Последние 5 значений

point['avg'] = sum(buffer) / len(buffer)
yield point


Применение в мониторинге систем
# Создаём поток данных
stream = sensor_stream('server_temp')
processed = process_stream(stream)

# Мониторим
for point in processed:
print(f"{point['sensor']}: {point['value']}°C (avg: {point['avg']:.1f})")

if point['avg'] > 30:
print("⚠️ Внимание")


Ключевые преимущества такого подхода:

1. Композируемость — генераторы легко объединяются в цепочки
2. Ресурсная эффективность — не храним полные массивы данных
3. Раннее обнаружение проблем — многие проблемы видно сразу, а не после обработки всего массива

⚡️
Генераторы позволяют обрабатывать данные в момент их появления, что критично для систем, в которых нужно отслеживать данные в реальном времени

⭐️ Пост Guru Python:
Сергей Филичкин
  • ❤ 2
  • 🔥 1
More from @yeahub_python_backend
  1. Oct 8, 2026#Собес #sql #order 🤔 Какой порядок выполнения SQL-запроса? 💬 Кратко: SQL выполняется не…
  2. Oct 7, 2026#Собес #memory 🤔 Middle+ Python Backend-разработчик в DELOTECH Техническое собеседование.…
  3. Oct 5, 2026#Собес #inheritance #composition #mixin 🤔 Какие есть способы переиспользования методов од…
  4. Oct 2, 2026#repository #собес 📚 Interactive Coding Challenges от Donne Martin Более 120 интерактивны…
  5. Oct 1, 2026#Собес #fork #git #repository 🤔 Что такое fork? 💬 Кратко: Fork — это копия чужого репози…
  6. Sep 30, 2026#Собес #python #versions #compatibility 🤔 Middle Python Backend разработчик в компанию Ba…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →