PyFlink 1.11 游乐场 - 序

简介: # 背景 Apache Flink Python API , 简称 PyFlink 是Apache Flink 对多语言支持的第一步,针对Python用户进行深度支持。PyFlink相对较新新的模块,第一个版本是在Flink 1.9 中发布的。之后在Flink 1.10和1.11两个大的版本发布中,PyFlink进行了大量的功能增加和性能优化。目前在国内也有一些企业应用PyFlink来支撑其数据

背景

Apache Flink Python API , 简称 PyFlink 是Apache Flink 对多语言支持的第一步,针对Python用户进行深度支持。PyFlink相对较新新的模块,第一个版本是在Flink 1.9 中发布的。之后在Flink 1.10和1.11两个大的版本发布中,PyFlink进行了大量的功能增加和性能优化。目前在国内也有一些企业应用PyFlink来支撑其数据计算业务。比如:聚美优品, 浙江墨芷。 但目前投产的企业用户大多是参与了PyFlink 社区扶持计划才得以顺利投产的,其根本原因是PyFlink目前缺少案例性介绍,缺少实战类的端到端的示例介绍。进而很多用户想用但是有无从用起。所以我和的PyFlink小伙伴讨论整理几个可以体现PyFlink核心应用和特点的示例供大家直观的体验PyFlink的功能特点,并且也可以按照示例介绍亲自动手开发PyFlink作业。快速了解PyFlink,进而解决您实际业务需求。

PyFlink 应用场景

PyFlink致力于将现有Flink的功能输出给Python用户,同时也会极大程度的让丰富的Python生态库功能借助于Flink具备分布式计算能力。

image.png

基于这样的目标,PyFlink所适用的场景覆盖Flink擅长的应用场景和Python生态所适应的场景,比如 事件驱动,数据分析,ETL等,如下图所示:

image.png

PyFlink的Roadmap

PyFlink按照先对齐Flink Java用户所能使用的功能,再逐渐集成各种主流的Python生态库,以这样的思考来规划PyFlink的功能开发,比如:1.9 提供 Table API&SQL, 1.10 提供Python UDF, 1.11 提供Pandas的生态库集成等,具体如下图所示:

roadmap-of-pyflink.gif

所以,在未来的1.12版本中,PyFlink将支持Python DataStream的功能,Python用可以享受到Flink90%的功能。同时Pandas UDAF的支持也进一步加强了Flink对Python生态的集成。

PyFlink 性能怎么样?

性能一直是用户关心的重点问题,Flink通过这几年的发展,其性能得到了目前Java用户的高度认可,也经历了多年阿里双11的历练,去年2019年双11实时计算峰值达到了25.51亿次/秒。那么Java性能这么优秀,Python用户可以享受到吗?当然可以,PyFlink架构决定了Python 用户编写的Table API/SQL作业和Java性能高度一致。PyFlink API架构如下图:

pyflink-udf-architecture.gif

这个架构决定了Python用户编写的Table API/SQL作业在运行的时候都是运行的Java算子,Python用户和Java用户都是运行在一套底层引擎之上。 所以大家也不用担心 PyFlink的执行性能。

当然上面架构没有体现PythonUDF的执行性能,因为Python UDF需要有独立的Python执行容器,那么目前PyFlink1.11版本相对于1.10有30倍的性能提升,初步测试比PySpark的UDF性能还要出色。后面案例我们也会有对比介绍。

本系列内容安排

本系列会为大家准备几个端到端的示例演示,从整体开发环境准备,到具体示例业务逻辑介绍,再到具体代码的开发逐一向大家进行详细介绍,整体包含的内容纲要如下:

  • PyFlink 1.11 游乐场 - 开发环境准备
  • PyFlink 1.11 游乐场 - 双11各地成交额统计(数据分析类)
  • PyFlink 1.11 游乐场 - 基于Pandas类库清洗熔炉温度采集数据(ETL类)
  • PyFlink 1.11 游乐场 - 应用Kmeans进行商品分类(机器学习类)
  • PyFlink 1.11 游乐场 - Python UDF 性能对比(PyFlink版本之间&PySpark和PyFlink对比)
  • PyFlink 1.11 游乐场 - 。。。
  • PyFlink 1.11 游乐场 - 。。。
  • PyFlink 1.11 游乐场 - 。。。
相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
Web App开发 监控 Java
3GPP相应的5G UDN场景及性能需求 | 带你读《5G UDN(超密集网络)技术详解》之十九
相比 IMT-2020 推进组,3GPP 对 5G UDN 场景的研究更加具有针对性。 在业务应用独立式部署(SA)技术组的研究中,与 UDN 相关的场景都是服务 室内用户的,具体有两种:办公室和热点区域。
3GPP相应的5G UDN场景及性能需求 | 带你读《5G UDN(超密集网络)技术详解》之十九
|
10月前
|
移动开发 前端开发 UED
React 音频预览组件:Audio Preview
本文介绍如何使用 React 构建音频预览组件,涵盖基础实现、常见问题及解决方案。通过 HTML5 `<audio>` 标签和 React 状态管理,实现播放控制。解决文件路径、浏览器兼容性等问题,并优化性能,避免状态不同步和内存泄漏,提升用户体验。
244 22
|
Java API C++
Java 8 Stream Api 中的 peek 操作
本文介绍了Java中`Stream`的`peek`操作,该操作通过`Consumer<T>`函数消费流中的每个元素,但不改变元素类型。文章详细解释了`Consumer<T>`接口及其使用场景,并通过示例代码展示了`peek`操作的应用。此外,还对比了`peek`与`map`的区别,帮助读者更好地理解这两种操作的不同用途。作者为码农小胖哥,原文发布于稀土掘金。
601 9
Java 8 Stream Api 中的 peek 操作
|
弹性计算 持续交付 Docker
阿里云云效产品使用合集之如何部署到阿里云服务器上的 Windows Server 上的 IIS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
算法
线搜索中有最速下降法、牛顿法、拟牛顿法、共轭梯度法汇总(下)
线搜索中有最速下降法、牛顿法、拟牛顿法、共轭梯度法汇总(下)
511 0
|
JavaScript 前端开发
Vue之函数式弹窗组件的封装原理
Vue之函数式弹窗组件的封装原理
821 0
|
存储 NoSQL 算法
【高阶数据结构】跳表 -- 详解
【高阶数据结构】跳表 -- 详解
|
存储 运维 API
一张图读懂TuGraph Analytics开源技术架构
通过一张图描述清楚TuGraph Analytics的整体架构和关键设计,帮助大家快速了解TuGraph Analytics项目轮廓。
一张图读懂TuGraph Analytics开源技术架构
|
DataWorks NoSQL 关系型数据库
DataWorks产品使用合集之如何跨账号链接PolarDB
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。