Apache Flink 1.9.0 为什么将支持 Python API ?

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 众所周知,Apache Flink(以下简称 Flink)的 Runtime 是用 Java 编写的,而即将发布的 Apache Flink 1.9.0 版本则会开启新的 ML 接口和新的 flink-python 模块,Flink 为什么要增加对 Python 的支持,想必大家一定好奇。

作者:孙金城(金竹)

本文目录:
1.最流行的编程语言
2.互联网最火热的领域
2.1大数据时代,数据量与日俱增
2.2数据的价值来源于数据分析
2.3数据价值最大化,时效性
3.阿尔法与人工智能
4.总结

众所周知,Apache Flink(以下简称 Flink)的 Runtime 是用 Java 编写的,而即将发布的 Apache Flink 1.9.0 版本则会开启新的 ML 接口和新的 flink-python 模块,Flink 为什么要增加对 Python 的支持,想必大家一定好奇。

也许大家都很清楚,目前很多著名的开源项目都支持 Python,比如 Beam,Spark,Kafka 等,Flink 自然也需要增加对 Python 的支持,这个角度分析也许很好,但我们想想为啥这些非常火热的项目都纷纷支持 Python 呢?Python 语言有怎样的“魔力”让这些著名的项目都青睐于他?我们看一下统计数据。

1.最流行的编程语言

行业分析公司 RedMonk 最新的最受欢迎的语言排名数据如下:

image

上图从 Github 和 StackOverflow 两个维度进行分析的前十名如下:

  • JavaScript
  • Java
  • Python
  • PHP
  • C++
  • C#
  • CSS
  • Ruby
  • C
  • TypeScript

Pytnon 名列第三,目前也非常流行的 R 和 Go 语言排在了 15 和 16 名。这个很客观的排名足以证明 Python 的受众是多么的庞大,任何项目对 Python 的支持就是在无形的扩大项目的受众用户!

2.互联网最火热的领域

就目前而言互联网最热的领域应该是大数据计算,以前单机的计算时代已经过去了,单机处理能力的提高速度远远落后于数据的与日俱增的速度,以下几方面将分析为何大数据时代最炽热的互联网领域是大数据计算。

2.1 大数据时代,数据量与日俱增

随着云计算、物联网、人工智能等信息技术的快速发展,数据量呈现几何级增长,我们先看一份预测数据,全球数据总量在短暂的 10 年时间会由 16.1 ZB增长到 163 ZB,数据量的快速增长已经远远超越单个计算机存储和处理能力,如下:

image

上图我们数据量的单位是 ZB,我们简单介绍一下数据量的统计单位,基本单位是 bit,按顺序给出所有单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。他们之间的转换关系是:

  • 1 Byte =8 bit
  • 1 KB = 1,024 Bytes
  • 1 MB = 1,024 KB
  • 1 GB = 1,024 MB
  • 1 TB = 1,024 GB
  • 1 PB = 1,024 TB
  • 1 EB = 1,024 PB
  • 1 ZB = 1,024 EB
  • 1 YB = 1,024 ZB
  • 1 BB = 1,024 YB
  • 1 NB = 1,024 BB
  • 1 DB = 1,024 NB

看到上面的数据量也许我们会质疑全球数据真的有这么恐怖吗,数据都从何而来? 其实我看到这个数据也深表质疑,但是仔细查阅了一下资料,发现全球数据的确在快速的增长着,比如 Facebook 社交平台每天有几百亿,上千亿的照片数据,纽约证券交易每天有几 TB 的交易数据,再说说刚刚发生的阿里巴巴 2018 年双 11 数据,从交易额上创造了 2135 亿的奇迹,从数据量上看仅仅是阿里巴巴内部的监控日志处理看就达到了 162 GB/秒。所以阿里巴巴为代表的互联网行业,也促使了数据量的急速增长,同样以阿里巴巴双 11 近 10 年来的成交额来用数字证明数据的增长,如下:

image

2.2 数据的价值来源于数据分析

如何让大数据产生价值呢?毋庸置疑,对大数据进行统计分析,让统计分析的结果帮助我们进行决策。比如推荐系统,我们可以根据一个用户长期的购买习惯,购买记录来分析其兴趣爱好,进而可以准确的进行有效推荐。那么面对上面的海量数据,在一台计算机上无法处理,那么我们如何在有限的时间内对全部数据进行统计分析呢?提及这个问题,我们不得不感谢 Google 发布的三大论文:

  • GFS - 2003年,Google 发布 Google File System 论文,这是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
  • MapReduce - 2004 年,Google 发布了 MapReduce 论文,论文描述了大数据的分布式计算方式,主要思想是将任务分解然后在多台处理能力较弱的计算节点中同时处理,然后将结果合并从而完成大数据处理。MapReduce 是针对分布式并行计算的一套编程模型,如下图所示:

image

  • BigTable - 2006 年,Google 发布了 BigTable 论文,是一款典型是 NoSQL 分布式数据库。

受益于 Google 的三大论文,Apache 开源社区迅速开发了 Hadoop 生态系统,HDFS,MapReduce 编程模型,NoSQL 数据库 HBase。并很快得到了全球学术界和工业界的普遍关注,并得到推广和普及应用。其中阿里巴巴在 2008 年就启动了基于 Hadoop 的云梯项目,Hadoop 就成为了阿里巴巴分布式计算的核心技术体系,并在 2010 年就达到了千台机器的集群,Hadoop在阿里巴巴的集群发展如下:

image

但利用 Hadoop 进行 MapReduce 的开发,需要开发人员精通 Java 语言,并要对 MapReduce 的运行原理有一定的了解,这样在一定程度上提高了 MapReduce 的开发门槛,所以在开源社区又不断涌现了一些为了简化 MapReduce 开发的开源框架,其中 Hive 就是典型的代表。HSQL 可以让用户以类 SQL 的方式描述 MapReduce 计算,比如原本需要几十行,甚至上百行才能完成的 wordCount,用户一条 SQL语句就能完成了,这样极大的降低了 MapReduce 的开发门槛。这样 Hadoop 技术生态不断发展,基于 Hadoop 的分布式的大数据计算逐渐普及在业界家喻户晓!

2.3 数据价值最大化,时效性

每一条数据都是一条信息,信息的时效性是指从信息源发送信息后经过接收、加工、传递、利用的时间间隔及其效率。时间间隔越短,时效性越强。一般时效性越强,信息所带来的价值越大,比如一个偏好推荐场景,用户在购买了一个“蒸箱”,如果能在秒级时间间隔给用户推荐一个“烤箱”的优惠产品,那么用户购买“烤箱”的概率会很高,那么在1天之后根据用户购买“蒸箱”的数据,分析出用户可能需要购买“烤箱”,那么我想这条推荐信息被用户采纳的可能性将大大降低。基于这样数据时效性问题,也暴露了 Hadoop 批量计算的弊端,就是实时性不高。基于这样的时代需求,典型的实时计算平台也应时而生,2009 年 Spark 诞生于 UCBerkeley 的 AMP 实验室, 2010 年 Storm 的核心概念 BackType 被 Nathan 提出。Flink 也以一个研究性的项目于 2010 年开始于德国柏林。

3.阿尔法与人工智能

在 2016 谷歌阿尔法围棋以 4:1 战胜围棋世界冠军、职业九段棋手李世石之后,人们逐渐用新的眼光审视让深度学习,而且掀起了人工智能的“狂热”。百度百科对人工智能(Artificial Intelligence),英文缩写为 AI 的定义是: 人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新技术科学。

image

而机器学习是进行人工智能的一种方法或者工具。机器学习在以 Spark,Flink 为首的大数据技术平台中具有较高的地位,尤其 Spark 近些年在 ML 方面做了巨大的努力,同时 PySpark 集成了很多优秀的机器学习类库,如典型的 Pandas,在这方面远远超过了 Flink,所以 Flink 正面面对自己的不足,在 Flink 1.9 中开启了新的 ML 接口和新的 flink-python 模块!

那么机器学习的重要和 Python 又有什么关系?我们看一下统计数据,看什么语言是最流行的机器学习语言。

IBM 的数据科学家 Jean-Francois Puget 曾经做过一个有趣的分析。他爬取了著名的求职网站 indeed 上雇主的岗位要求变动趋势,来评估当下市场上最受欢迎的岗位语言。其中当他单独搜索”machine learning”时候,也可以得到一个近似的结果:

image

其结构发现 Python 是与热的”machine learning”,虽然这是 2016 年的调查,但是也足以证明 Python 在”machine learning”方面的地位,同时上面我们提到的 RedMonk 的统计数据也足以证明这一点!

不仅仅是各种调查,我们也可以从 Python 的特点和现有的 Python 生态来说说为什么 Python 是机器学习的最好语言。

Python 是一种面向对象的解释型程序语言,由荷兰人(Guido van Rossum)于 1989 年发明,并于 1991 年发布了第一个版。Python 作为解释型语言,虽然跑得比谁都慢,但 Python 设计者的哲学是“用一种方法并且只有一种方法来做一件事”。在开发新的 Python 语法时,如果面临多种选择,Python 开发者一般会选择明确的没有或者很少有歧义的语法。简单易学的特点促使了 Python 有庞大的用户群体,进而很多机器学习的类库也是由 Python 开发的,比如:NumPy、SciPy 和结构化数据操作可以通过 Pandas 等等。所以 Python 这种丰富的生态系统为机器学习提供了一定程度的便利性,也必然成为了最受欢迎的机器学习语言!

4.总结

本篇重点描述了 Apache Flink 为什么需要支持 Python API。以实际数字说明目前我们处于一个大数据时代,数据的价值要依靠大数据分析,而由于数据的时效性的重要性而催生了著名的 Apache Flink 流式计算平台。

目前在大数据计算时代,AI 是炙手可热的发展方向,机器学习是 AI 的重要手段之一,而恰恰由于语言的特点和生态的优势,Python 成为了机器学习最重要的语言,进而表明了 Apache Flink 着手发力 Flink API 的动机!所谓时势造英雄,Apache Flink Python API 是时代的产物,是水顺自然而得之的必然!

Tips:

本文节选自金竹的博客【Apache Flink 说道系列】,点击「阅读原文」可查看作者特色说道系列原版文章~

/ Apache Flink 极客挑战赛,10 万奖金等你拿 /

详情链接:https://tianchi.aliyun.com/markets/tianchi/flink2019

image

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
打赏
0
0
0
0
36032
分享
相关文章
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势
小红书作为社交电商的重要平台,其笔记评论蕴含丰富市场洞察与用户反馈。本文介绍的小红书笔记评论API,可获取指定笔记的评论详情(如内容、点赞数等),支持分页与身份认证。开发者可通过HTTP请求提取数据,以JSON格式返回。附Python调用示例代码,帮助快速上手分析用户互动数据,优化品牌策略与用户体验。
Apache Flink 2.0.0: 实时数据处理的新纪元
Apache Flink 2.0.0 正式发布!这是自 Flink 1.0 发布九年以来的首次重大更新,凝聚了社区两年的努力。此版本引入分离式状态管理、物化表、流批统一等创新功能,优化云原生环境下的资源利用与性能表现,并强化了对人工智能工作流的支持。同时,Flink 2.0 对 API 和配置进行了全面清理,移除了过时组件,为未来的发展奠定了坚实基础。感谢 165 位贡献者的辛勤付出,共同推动实时计算进入新纪元!
308 1
Apache Flink 2.0.0: 实时数据处理的新纪元
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
【AI大模型】使用Python调用DeepSeek的API,原来SDK是调用这个,绝对的一分钟上手和使用
本文详细介绍了如何使用Python调用DeepSeek的API,从申请API-Key到实现代码层对话,手把手教你快速上手。DeepSeek作为领先的AI大模型,提供免费体验机会,帮助开发者探索其语言生成能力。通过简单示例代码与自定义界面开发,展示了API的实际应用,让对接过程在一分钟内轻松完成,为项目开发带来更多可能。
Python 实战!利用 API 接口获取小红书笔记详情的完整攻略
小红书笔记详情API接口帮助商家和数据分析人员获取笔记的详细信息,如标题、内容、作者信息、点赞数等,支持市场趋势与用户反馈分析。接口通过HTTP GET/POST方式请求,需提供`note_id`和`access_token`参数,返回JSON格式数据。以下是Python示例代码,展示如何调用该接口获取数据。使用时请遵守平台规范与法律法规。
Python 原生爬虫教程:京东商品详情页面数据API
本文介绍京东商品详情API在电商领域的应用价值及功能。该API通过商品ID获取详细信息,如基本信息、价格、库存、描述和用户评价等,支持HTTP请求(GET/POST),返回JSON或XML格式数据。对于商家优化策略、开发者构建应用(如比价网站)以及消费者快速了解商品均有重要意义。研究此API有助于推动电商业务创新与发展。
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
2369 73
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
270 56

相关产品

  • 实时计算 Flink版
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等