13

Streamz: Python pipelines to manage continuous streams of data

 4 years ago
source link: https://streamz.readthedocs.io/en/latest/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Continuous data streams arise in many applications like the following:

  1. Log processing from web servers
  2. Scientific instrument data like telemetry or image processing pipelines
  3. Financial time series
  4. Machine learning pipelines for real-time and on-line learning

Sometimes these pipelines are very simple, with a linear sequence of processing steps:

uqYz6n7.png!web

And sometimes these pipelines are more complex, involving branching, look-back periods, feedback into earlier stages, and more.

fUnqu2u.png!web

Streamz endeavors to be simple in simple cases, while also being powerful enough to let you define custom and powerful pipelines for your application.

Why not Python generator expressions?

Python users often manage continuous sequences of data with iterators or generator expressions.

def fib():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

sequence = (f(n) for n in fib())

However iterators become challenging when you want to fork them or control the flow of data. Typically people rely on tools like itertools.tee , and zip .

x1, x2 = itertools.tee(x, 2)
y1 = map(f, x1)
y2 = map(g, x2)

However this quickly become cumbersome, especially when building complex pipelines.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK