Faust是一个流处理库,将想法从KafkaStreams移植到Python。
它在Robinhood用于构建高性能的分布式系统和实时数据管道,每天处理数十亿个事件。
Faust提供流处理和事件处理,与KafkaStreams,ApacheSpark/Storm/Samza/Flink等工具共享相似性,
它不使用DSL,它只是Python!这意味着您可以在流处理时使用所有您喜欢的Python库:NumPy,PyTorch,Pandas,NLTK,Django,Flask,SQLAlchemy,++
Faust需要Python3.6或更高版本才能使用新的async/await语法和变量类型注释。
特性:
简单易使用高度可用快速灵活性以下是处理传入订单流的示例:
#PythonStreams٩(◕‿◕)۶#Foreverscalableeventprocessing&in-memorydurableK/Vstore;#w/asyncio&statictyping.importfaustapp=faust.App('myapp',broker='kafka://localhost')#Modelsdescribehowmessagesareserialized:#{"account_id":"3fae-...",amount":3}classOrder(faust.Record):account_id:stramount:int@app.agent(value_type=Order)asyncdeforder(orders):asyncfororderinorders:#processinfinitestreamoforders.print(f'Orderfor{order.account_id}:{order.amount}')
评论