Faust是一个流处理库,将想法从KafkaStreams移植到Pytho。
它在Robihood用于构建高性能的分布式系统和实时数据管道,每天处理数十亿个事件。
Faust提供流处理和事件处理,与KafkaStreams,ApacheSpark/Storm/Samza/Flik等工具共享相似性,
它不使用DSL,它只是Pytho!这意味着您可以在流处理时使用所有您喜欢的Pytho库:NumPy,PyTorch,Padas,NLTK,Djago,Flask,SQLAlchemy,++
Faust需要Pytho3.6或更高版本才能使用新的asyc/await语法和变量类型注释。
特性:
简单易使用高度可用快速灵活性以下是处理传入订单流的示例:
#PythoStreams٩(◕‿◕)۶#Foreverscalableevetprocessig&i-memorydurableK/Vstore;#w/asycio&statictypig.importfaustapp=faust.App('myapp',broker='kafka://localhost')#Modelsdescribehowmessagesareserialized:#{"accout_id":"3fae-...",amout":3}classOrder(faust.Record):accout_id:stramout:it@app.aget(value_type=Order)asycdeforder(orders):asycfororderiorders:#processifiitestreamoforders.prit(f'Orderfor{order.accout_id}:{order.amout}')










评论