广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python流处理Python
  • 785
分享到

Python流处理Python

Python 2023-01-31 07:01:50 785人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

Faust是一个流处理库,将kafka流中的思想移植到python中。 它被用于Robinhood去构建高性能的分布式系统和实时数据通道,每天处理数十亿的数据。 Faust同时提供流处理和事件处理,同类型的工具分享例如:Kafka St

Faust是一个流处理库,将kafka流中的思想移植到python中。

它被用于Robinhood去构建高性能的分布式系统和实时数据通道,每天处理数十亿的数据。

Faust同时提供流处理和事件处理,同类型的工具分享例如:Kafka Streams, Apache spark/StORM/Samza/flink

它不需要使用一个DSL,仅需要用到Python!这意味着你在做流处理的时候可以使用所有你喜欢的Python库:NumPy, PyTorch, pandas, NLTK, Django, flask, sqlAlchemy等等。

 

由于需要使用新的async/await语法和变量类型注释方法,Faust需要使用python3.6以上的版本。

这里有一个处理输入命令流的示例:

这个agent装饰器定义了一个“流处理器”,它本质上是一个Kafka topic,并且可以对接收到的每个事件做一些处理。

这个agent是一个async def的函数,因此它还可以异步执行其他操作,如WEB请求。

这个系统可以持久化状态,执行方式类似于数据库。表被命名成分布式的key/value储存,你可以使用常规的Python字典来做这件事。

 

在每台机器上的本地用c++编写的超快嵌入式数据库(被称为RocksDB)存储表。

 

表还可以存储可选的“窗口”聚合计数,以便跟踪“前一天的单击次数”或“前一个小时的单击次数”。与Kafka流一样,我们支持滚动、跳跃和滑动时间窗口,旧窗口可以过期以阻止数据填充。

为了提高可靠性,我们使用Kafka topic作为“预写日志”。当一个密钥被更改时,我们将其发布到更新的日志上。备用节点使用这个更新日志来保存数据的较精确副本,并在任何节点发生故障时支持立即恢复。

 

对于用户来说,表只是一个字典,但是数据在重新启动和跨节点复制之间存在,所以在故障发生时其他节点可以自动接管。

您可以通过URL统计页面浏览数量:

发送到Kafka topic的数据是分区的,这意味着点击数将用URL的这种方式进行分片。因此,同一个URL的每个计数都会立刻被传递给同一个Faust worker实例。

Faust支持任何类型的流数据:字节、Unicode和序列化结构,同时也支持使用现代Python语法的“模型”来描述流中的keys和value是如何被序列化的。

Faust是静态类型的,使用mypy类型检查器,所以您在编写应用程序时可以充分利用静态类型的优势。

Faust源代码很小,组织良好,是学习Kafka流实现的好资源。

 

在引言页学习更多关于Faust的知识

去阅读更多关于Faust,系统请求,安装指导,论坛资源等等,或者直接访问快速开始的教程。在一个编写流处理的应用中去查看关于Faust应用,然后通过使用者手册深入探讨。深层次的信息都根据不同主题在这个手册中进行说明

 

Faust是…

 

简介

Faust非常容易使用。在学习其他的流处理方法时,你总是需要从一个复杂的hello-world工程和相应的基础要求开始学习。Faust仅仅需要Kafka,剩下的就是只需要Python,如果你知道Python的话你就可以直接使用Faust去做流处理的工作了,并且它可以整合和他相关的一切。

 

这儿有一个简单的应用程序你可以做:源代码是Python的

您可能会被async和await这两个关键字吓到,但是您在使用Faust时不需要知道asyncio是如何工作的:只要模仿这些例子就可以得到您想要的结果。

示例应用程序启动两个任务:一个是处理流,另一个是向流发送事件的后台线程。在实际的应用程序中,您的系统将向Kafka topic发布事件,您的处理器可以从Kafka topic获取事件信息,并且只需要后台线程将数据输入到我们的示例中。

 

高可用

Faust是高度可用的,并且可以在网络问题和服务器崩溃中生存下来。在节点失败的情况下,它可以自动恢复,并且表将接管备用节点。

 

分布式的

根据您的应用程序的需要启动更多实例。

 

快速

一个单内核的Faust worker实例已经可以每秒处理数万个事件,我们有理由相信,一旦我们能够支持一个更优化的Kafka客户端,吞吐量就会增加。

 

灵活性

Faust就是Python,而流是一个无限的异步迭代器。如果您知道如何使用Python,那么您已经知道如何使用Faust,它可以与您喜欢的Python库一起使用,比如DjanGo、Flask、SQLAlchemy、NTLK、NumPy、Scikit、Tensorflow等等。

 

安装

您可以通过Python包或从源文件中安装Faust

使用pip安装它:

绑定

Faust还定义了一组setuptools扩展,可以用来安装Faust,并且有一个给定特性的依赖关系。

您可以在您的需求中或在pip命令行中使用方括号来指定它们。使用逗号分隔多个包:

 

以下的绑定均是有效的:

商店

 

最优化

 

传感器

 

事件循环

 

调试

 

下载并从源文件中安装

下载的Faust版本的网址是:Http: //pypi.python.org/pypi/faust

您可以这样安装它:

如果当前没有使用virtualenv,则必须以特权用户的身份执行最后一个命令。

 

使用开发版本

您可以使用以下pip命令安装Faust的版本:

常见问题

Faust可以在Django/Flask/etc上使用吗?

使用gevent

这种方法适用于任何可以与gevent一起工作的阻塞Python库。

使用gevent需要您安装aiogevent模块,您可以将其作为Faust的包进行安装:

然后要实际使用eventlet作为事件循环,您要么在faust程序中使用-L <faust --loop>

警告

非常重要的是,它位于模块的最顶端,并且在导入库之前执行。

 

Faust可以在Tornado上使用吗?

可以!使用tornado.platform.asyncio链接:http://www.tornadoweb.org/en/stable/asyncio.html

 

Faust可以在Twisted上使用吗?

可以!使用asyncio反应器实现:https://twistedmatrix.com/documents/17.1.0/api/twisted.internet.asyncioReactor.html

 

是否支持Python3.5或者更早的版本?

目前还没有支持Python 3.5的计划,但是欢迎您为这个项目做出贡献。

以下是实现这一目标所需的一些步骤

源代码转换以重写变量注释到注释

--结束END--

本文标题: Python流处理Python

本文链接: https://www.lsjlt.com/news/191653.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python流处理Python
    Faust是一个流处理库,将kafka流中的思想移植到Python中。 它被用于Robinhood去构建高性能的分布式系统和实时数据通道,每天处理数十亿的数据。 Faust同时提供流处理和事件处理,同类型的工具分享例如:Kafka St...
    99+
    2023-01-31
    Python
  • Python入门学习之Python流处理过程
    目录Faust简介高可用性分布式的快速灵活性安装绑定下载并从源文件中安装使用开发版本常见问题 Faust是一个流处理库,将kafka流中的思想移植到Python中 它被用于Robin...
    99+
    2022-11-12
  • python Faust流处理库是什么
    这篇文章主要介绍了python Faust流处理库是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python Faust流处理库是什么文章都会有所收获,下面我们一起来看看吧。概念Faust是robinho...
    99+
    2023-06-30
  • 用 Python 简化数据处理流程的 w
    注1:本文同步也发表在我的独立博客中。 注2:本文所述方法肯定不是最简单的,但对我这非编程相关专业的人来说已经提高很多效率了。如果你有更好的办法,欢...
    99+
    2023-01-31
    数据处理 流程 Python
  • 怎么在python中使用 Faust流处理库
    怎么在python中使用 Faust流处理库?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向...
    99+
    2023-06-14
  • 简洁高效的Python流处理库Faust怎么用
    简洁高效的Python流处理库Faust怎么用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在分布式系统和实时数据处理中,流处理是十分重要的技术。在数据密集型应用中,数据快...
    99+
    2023-06-15
  • python ftp 处理
    Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件FTP的工作流程及基本操作可参考协议RFC959ftp登陆连接from ftplib import FTP #加载ftp模...
    99+
    2023-01-31
    python ftp
  • Python处理JSON
    Python处理JSONjson.dumpsencoding:把一个Python对象编码转换成Json字符串 json.loadsdecoding:把Json格式字符串解码转换成Python对象Python encode() 函数用于将 P...
    99+
    2023-01-31
    Python JSON
  • Python OpenCV对图像进行模糊处理详解流程
    其实我们平时在深度学习中所说的卷积操作,在 opencv 中也可以进行,或者说是类似操作。那么它是什么操作呢?它就是图像的模糊(滤波)处理。 均值滤波 使用 opencv 中的cv2...
    99+
    2022-11-12
  • 【python图像处理】python中定
    python中的颜色相关的定义在matplotlib模块中,为方便使用,这里给大家展示一下在这个模块中都定义了哪些选颜色。 1、颜色名称的导出 导出代码如下: import matplotlib for name, hex in matp...
    99+
    2023-01-31
    图像处理 python
  • 【python图像处理】python绘制
    3D图形在数据分析、数据建模、图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行3D图形的绘制,包括3D散点、3D表面、3D轮廓、3D直线(曲线)以及3D文字等的绘制。 准备工作: python中绘制3...
    99+
    2023-01-31
    图像处理 python
  • Python图像处理【3】Python图像处理库应用
    Python图像处理库应用 0. 前言1. 将 RGB 图像转换为灰度图像算法1.1 算法原理3.2 算法实现 2. 使用 PIL 库计算图像差异2.1 算法原理2.2 算法实现 ...
    99+
    2023-09-06
    python 图像处理 计算机视觉
  • Python 错误处理
    1.1   错误处理1.1.1   try>>> try:...    print('try...')...    r = 10 / 0...    print('result:', r)... except ZeroDi...
    99+
    2023-01-31
    错误 Python
  • Python并发处理
    1.创建并销毁线程#!/usr/bin/python #code to execute in an independent thread import time def countdown(n):     while n > 0:...
    99+
    2023-01-31
    Python
  • Python时间处理
    Python时间处理# _*_ coding: utf-8 _*_ import time import calendar import datetime # time模块中的三种时间形式 print("time stamp:", t...
    99+
    2023-01-31
    时间 Python
  • Python文件处理
    本文给大家介绍Python文件处理相关知识,具体内容如下所示: 1.文件的常见操作 文件是日常编程中常用的操作,通常用于存储数据或应用系统的参数。python提供了os、os.path、shutil等模块...
    99+
    2022-06-04
    文件 Python
  • Python -- 异常处理
    当一个小人物冲向大时代,有多少伤害埋伏左右;      -- 北岛《城门开》当一个大梦想埋于小身体,有多少潜能冲破束缚。      -- 小Q 《梦想家》-------------------------------------------...
    99+
    2023-01-31
    异常 Python
  • python异常处理
    import re,random,traceback kk ='<img src="//kanimg.9ku.com/Article/20170727/1501135687683763.gif" alt="不要惹怒胖子,后果自己看"&...
    99+
    2023-01-31
    异常 python
  • Python并行处理
    原文:Parallel Processing in Python 作者:Frank Hofmann 翻译:Diwei 当你在机器上启动某个程序时,它只是在自己的“bubble”里面运行,这个气泡的作用就是用来将同...
    99+
    2023-01-31
    Python
  • python -【mongo】 处理Ob
    ObjectID简介 mongo存储的数据在没有特别指定_id数据类型时,默认类型为ObjectID ‘_id’: ObjectId(‘55717c9eb2c983c127000000’) ObjectId is a 1...
    99+
    2023-01-31
    python mongo Ob
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作