加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

被社区关注的Blink开源到底向上游贡献了什么?

发布时间:2019-02-02 04:07:14 所属栏目:建站 来源:大沙
导读:副标题#e# 导读:如同我们去年 12 月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源。今天,我们终于等到了这一刻。 阿里资深技术专家大沙,将为大家详细介绍本次开源的 Blink 主要功能和优化点,希望与业界

有了上面提到的诸多架构和实现上的重构。Blink 的 SQL/TableAPI 在功能和性能方面都取得了脱胎换骨的变化。在批计算方面,首先 Blink batch SQL 能够完整的跑通 TPC-H 和 TPC-DS,且性能上有着极大的提升。如上图所示,是这次开源的 Blink 版本和 Spark 2.3.1 的 TPC-DS 的基准性能对比。柱状图的高度代表了运行的总时间,高度越低说明性能越好。可以看出, Blink 在 TPC-DS 上和 Spark 相比有着非常明显的性能优势。而且这种性能优势随着数据量的增加而变得越来越大。在实际的场景这种优势已经超过 Spark 的三倍。在流计算性能上我们也取得了类似的提升。我们线上的很多典型作业,它的性能是原来的 3 到 5 倍。在有数据倾斜的场景,以及若干比较有挑战的 TPC-H Query,流计算性能甚至得到了数十倍的提升。

除了标准的关系型 SQL API。TableAPI 在功能上是 SQL 的超集,因此在 SQL 上所有新加的功能,我们在 TableAPI 也添加了相对应的 API。除此之外,我们还在 TableAPI 上引入了一些新的功能。其中一个比较重要是缓存功能。在批计算场景下,用户可以根据需要来缓存计算的中间结果,从而避免不必要的重复计算。它极大的增强了交互式编程体验。我们后续会在 TableAPI 上添加更多有用的功能。其实很多新功能已经在社区展开讨论并被社区接受,例如我们在 TableAPI 增加了对一整行操作的算子:map、flatMap、aggregate、flatAggregate(Flink FLIP29)等等。

Hive 的兼容性

我们这次开源的版本实现了在元数据和数据层将 Flink 和 Hive 对接和打通。国内外很多公司都还在用 Hive 在做自己的批处理。对于这些用户,现在使用这次 Blink 开源的版本,就可以直接用 Flink SQL 去查询 Hive 的数据,真正能够做到在 Hive 引擎和 Flink 引擎之间的自由切换。

为了打通元数据,我们重构了 Flink catalog 的实现,并且增加了两种 catalog,一个是基于内存存储的 FlinkInMemoryCatalog,另外一个是能够桥接 Hive metaStore 的 HiveCatalog。有了这个 HiveCatalog,Flink 作业就能读取 Hive 的 metaData。为了打通数据,我们实现了 HiveTableSource,使得 Flink 任务可以直接读取 Hive 中普通表和分区表的数据。因此,通过这个版本,用户可以使用 Flink SQL 读取已有的 Hive 元数据和数据,做数据处理。未来我们将在 Flink 上继续加大对 Hive 兼容性的支持,包括支持 Hive 特有的请求、数据类型和 Hive UDF 等等。

Zeppelin for Flink

为了提供更好的可视化和交互式体验,我们做了大量的工作让 Zeppelin 能够更好的支持 Flink。这些改动有些是在 Flink 上的,有些是在 Zeppelin 上的。在这些改动全部推回 Flink 和 Zeppelin 社区之前,大家可以使用这个 Zeppelin 镜像(具体细节请参考 Blink 代码里的 docs/quickstart/zeppelin_quickstart.md)来测试和使用这些功能。这个用于测试的 Zeppelin版本,首先很好的融合和集成了 Flink 的多种运行模式以及运维界面。使用文本 SQL 和 TableAPI 可以自如的查询 Flink 的静态表和动态表。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读