PyFlink 1.11 游乐场 - 序

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: # 背景 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轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
9月前
|
Python
python实现简单排序
python实现简单排序
【Leetcode -551.学生出勤记录Ⅰ -557.反转字符串中的单词Ⅲ】
【Leetcode -551.学生出勤记录Ⅰ -557.反转字符串中的单词Ⅲ】
34 0
|
5月前
|
存储 IDE 搜索推荐
解锁Python黑科技:字典树Trie,让你的数据检索快到飞起!
字典树(Trie),又称前缀树或单词查找树,是一种专为字符串快速检索设计的高效数据结构。本文深入探讨了Trie树的基本原理及其在Python中的实现方法,并展示了如何通过插入和搜索操作来提高数据检索性能。Trie树广泛应用于自动补全、拼写检查、IP路由表以及数据压缩等领域,其高效的前缀匹配能力使其成为处理大量字符串的理想选择。通过本文的学习,你将能更好地利用Trie树解决实际问题,提升编程技能。
203 0
|
9月前
|
算法
leetcode代码记录(子集
leetcode代码记录(子集
38 0
【八大排序(四)】快排-到底多快才能追上奔驰车里的夏树?(下)
【八大排序(四)】快排-到底多快才能追上奔驰车里的夏树?(下)
【八大排序(四)】快排-到底多快才能追上奔驰车里的夏树?(下)
【八大排序(四)】快排-到底多快才能追上奔驰车里的夏树?(上)
【八大排序(四)】快排-到底多快才能追上奔驰车里的夏树?
|
算法 测试技术 Android开发
LeetCode 周赛上分之旅 # 36 KMP 字符串匹配殊途同归
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
88 0
|
消息中间件 存储 分布式计算
5万字Spark全集之末尾Structured Streaming续集!!!!!(二)
5万字Spark全集之末尾Structured Streaming续集!!!!!
208 0
5万字Spark全集之末尾Structured Streaming续集!!!!!(二)
|
SQL 消息中间件 分布式计算
5万字Spark全集之末尾Structured Streaming续集!!!!!(一)
5万字Spark全集之末尾Structured Streaming续集!!!!!
182 0
5万字Spark全集之末尾Structured Streaming续集!!!!!(一)
|
算法 前端开发 程序员
「LeetCode」剑指Offer-41数据流中的中位数⚡️
「LeetCode」剑指Offer-41数据流中的中位数⚡️
109 0
「LeetCode」剑指Offer-41数据流中的中位数⚡️