You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 王雷 <hn...@163.com> on 2020/04/18 13:41:41 UTC

Flink Weekly | 每周社区动态更新 - 2020/04/18

大家好,本文为 Flink Weekly 的第十三期,由王雷整理,主要内容包括:近期社区开发进展,邮件问题答疑以及 Flink 最新社区动态及技术文章推荐。




Flink 开发进展

■ [Releases] Tzu-Li (Gordon) Tai 发布了 Apache Flink Stateful Functions 2.0.0。

[1]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/ANNOUNCE-Apache-Flink-Stateful-Functions-2-0-0-released-td34121.html




■ [Releases] Yu Li 发起了关于发布 Flink 1.10.1 版本的讨论,即将发布的 1.10.1 版本还有1个 Blocker。预计下周会有一个 RC 版本。

[2]http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Releasing-Flink-1-10-1-td38689.html




■ [Releases] 1.9.3 版本所有的 blocker issues 都已经被解决,Dian Fu 正在准备发布第一个候选版本。

[3]http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Releasing-Flink-1-9-3-td40086.html




■ [SQL] 在 FLIP-84 重构 TableEnvironment 和 Table 方案中,遗漏了提交 DQL 任务的场景,godfreyhe 重新发起了 FLIP-84 的投票,已通过。

[4]http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/VOTE-FLIP-84-Improve-amp-Refactor-API-of-TableEnvironment-amp-Table-td39543.html




■ [SQL] FLIP-122 关于在新的 TableFactory 中使用新的 connector 属性的投票已通过。

[5]http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/RESULT-VOTE-FLIP-122-New-Connector-Property-Keys-for-New-Factory-td39935.html




■ [SQL] FLIP-110 关于支持在创建表的语句中增加 like 语法的投票已通过。

[6]http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/VOTE-FLIP-110-Support-LIKE-clause-in-CREATE-TABLE-td39554.html




■ [Python] FLIP-121 关于支持 Cython 优化 Python UDF 的投票已通过。

[7]http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-FLIP-121-Support-Cython-Optimizing-Python-User-Defined-Function-td39577.html




■ [Runtime] FLIP-119 关于对调度策略优化的投票通过,优化主要集中在运行批处理作业时避免资源死锁等。

[8]http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/VOTE-FLIP-119-Pipelined-Region-Scheduling-td39585.html




邮件问题答疑

■ guanyq 在社区提问如何查询 flink job 的异常日志。田志声推荐使用 log agent (比如 filebeat) 统一采集作业的日志,然后收集到 ElasticSearch 查看。

[9]http://apache-flink.147419.n8.nabble.com/flink-td2378.html




■ chanamper 希望能在 Java Api 中使用 LocalGlobal 的聚合优化方法,Congxian Qiu 予以了回答,DataStream API 暂时没有 local aggregation 的功能,可以通过给 key 拼前缀或者后缀来达到类似的效果。

[10]http://apache-flink.147419.n8.nabble.com/Flink-keyby-td2309.html




■ 111 发现 flink 中的 calcite 依赖 guava 16 以上的版本,hbase-connector 模块依赖 guava 12.0 版本,经过 shade 后,作业运行正常,但是在 IDEA 运行单元测试会冲突。目前只能通过 mvn test 来运行单元测试,或者把单元测试改为连接远程 Hbase 的方法来解决。

[11]http://apache-flink.147419.n8.nabble.com/Flink1-10-0-flink-hbase-guava-td2385.html




■ KristoffSC 在社区提问在用 RocksDB 作为 StateBackend 的情况下,少量的 MapState,每个 state 的大小很大,和很多的 ValueState,每个 state 的大小很小相比,哪种性能更高。Congxian Qiu 认为这两者没有区别,并给予了详细的解析。

[12]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/State-size-Vs-keys-number-perfromance-td34135.html




■ 111 在使用 TopN 语句时遇到了 ”This calc has no

useful projection and no filter. It should be removed by CalcRemoveRule” 的问题,Jark 认为这是由于 codegen bug 导致。

[13]http://apache-flink.147419.n8.nabble.com/Flink-SQL-1-10-ROW-NUMBER-td2355.html




■ Dongwon Kim 在社区里提问关于在 NullAwareMapIterator 中抛出 NPE 的问题,Jark Wu 认为这是由于 HeapMapState iterator 的一处 bug 导致返回空的 iterator所致。

[14]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/NPE-from-NullAwareMapIterator-in-flink-table-runtime-blink-td34083.html




■ Krzysztof Zarzycki 希望能够用 Flink SQL 实现动态修改 job 的拓扑图,以动态的增删业务的处理分支。该功能目前还不支持,大家对该功能的实现进行了讨论。

[15]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Dynamic-Flink-SQL-td33853.html




■ Salva Alcántara 在 snapshotState 方法中对 keyed state 进行了 clear 处理。job 启动后,没有一条数据进入 input streams 时,触发 checkpoint 会报 NPE。Yun Tang 对该问题进行了回复,讲述了 keyed state 和 operator state 的区别,并根据 Salva Alcántara 的业务逻辑推荐他使用 operator state。

[16]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Using-MapState-clear-put-methods-in-snapshotState-within-KeyedCoProcessFunction-valid-or-not-td31353.html




■ Aaron Levin 遇到了在 RocksDB 中存储含有百万个元素的 ListState 的应用场景,担心在这种场景下会遇到一些问题。Seth Wiesman 回复说 RocksDB's JNI bridge 不支持超过 2GB 的 ListState。Aljoscha Krettek 提供了另外的思路,可以把数据分成多个key,分散处理。

[17]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/ListState-with-millions-of-elements-td34153.html




■ Robin Cassan 遇到了 checkpoint 因超时失败时,接下来的 checkpoint 出现雪球效应的问题。Congxian Qiu 回答说非对齐的 checkpoint 可以解决该问题,但该方案还未实现。

[18]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Making-job-fail-on-Checkpoint-Expired-td34051.html




■ Gyula Fóra 遇到了 source 表含有 nullable 字段,将 null 数据过滤掉,写入对应字段类型 STRING NOT NULL 的 sink 表时,报类型不兼容的错误。Timo Walther 告知 type system 仍然在完善中,该问题是已知问题。

[19]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Inserting-nullable-data-into-NOT-NULL-columns-td34198.html




■ forideal 在一个任务中提交了三个 SQL,使用的同一个 source 表。Flink 的拓扑图显示,该 source 表被读取了3遍。Jark Wu 告知 multi-sink optimization 在 flink 1.10 版本中只支持 TableEnvironment,StreamTableEnvironment 将在 flink 1.11 版本中提供支持。

[20]http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Multiple-SQL-Optimization-td34221.html




活动 / 博客文章 / 其他

■ Flink 消息聚合处理方案

[21]https://ververica.cn/corporate_practice/flink-message-aggregation-processing-scheme/



■ Flink 新场景:OLAP 引擎性能优化及应用案例

[22]https://ververica.cn/developers/olap-engine-performance-optimization-and-application-cases/




■ Iceberg 在基于 Flink 的流式数据入库场景中的应用

[23]https://ververica.cn/developers/icebergs-application-in-flink-based-streaming-data-warehousing-scenario/




■ Flink 流批一体的实践与探索

[24]https://ververica.cn/developers/practice-and-exploration-of-flink-flow-batch-integration




■ Apache Flink Training

[25]https://training.ververica.com




■ Flink Forward 全球在线会议中文精华版直播上线,聚焦 Alibaba、Google、AWS、Uber、Netflix、新浪微博等海内外一线厂商,经典 Flink 应用场景,最新功能、未来规划一览无余。直播详情及预约观看:

[26]https://developer.aliyun.com/live/2594?spm=a2c6h.14242504.J_6074706160.2.3fca361f4cYyQx




■ Flink 中文社区直播:《PyFlink 核心功能介绍》,由 Apache Flink PMC 程鹤群分享,直播回顾:

[27]https://ververica.cn/developers/flink-training-course3/

Re: Flink Weekly | 每周社区动态更新 - 2020/04/18

Posted by Kurt Young <yk...@gmail.com>.
感谢整理!

Best,
Kurt


On Sat, Apr 18, 2020 at 9:43 PM 王雷 <hn...@163.com> wrote:

> 大家好,本文为 Flink Weekly 的第十三期,由王雷整理,主要内容包括:近期社区开发进展,邮件问题答疑以及 Flink
> 最新社区动态及技术文章推荐。
>
>
>
>
> Flink 开发进展
>
> ■ [Releases] Tzu-Li (Gordon) Tai 发布了 Apache Flink Stateful Functions 2.0.0。
>
> [1]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/ANNOUNCE-Apache-Flink-Stateful-Functions-2-0-0-released-td34121.html
>
>
>
>
> ■ [Releases] Yu Li 发起了关于发布 Flink 1.10.1 版本的讨论,即将发布的 1.10.1 版本还有1个
> Blocker。预计下周会有一个 RC 版本。
>
> [2]
> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Releasing-Flink-1-10-1-td38689.html
>
>
>
>
> ■ [Releases] 1.9.3 版本所有的 blocker issues 都已经被解决,Dian Fu 正在准备发布第一个候选版本。
>
> [3]
> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Releasing-Flink-1-9-3-td40086.html
>
>
>
>
> ■ [SQL] 在 FLIP-84 重构 TableEnvironment 和 Table 方案中,遗漏了提交 DQL
> 任务的场景,godfreyhe 重新发起了 FLIP-84 的投票,已通过。
>
> [4]
> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/VOTE-FLIP-84-Improve-amp-Refactor-API-of-TableEnvironment-amp-Table-td39543.html
>
>
>
>
> ■ [SQL] FLIP-122 关于在新的 TableFactory 中使用新的 connector 属性的投票已通过。
>
> [5]
> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/RESULT-VOTE-FLIP-122-New-Connector-Property-Keys-for-New-Factory-td39935.html
>
>
>
>
> ■ [SQL] FLIP-110 关于支持在创建表的语句中增加 like 语法的投票已通过。
>
> [6]
> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/VOTE-FLIP-110-Support-LIKE-clause-in-CREATE-TABLE-td39554.html
>
>
>
>
> ■ [Python] FLIP-121 关于支持 Cython 优化 Python UDF 的投票已通过。
>
> [7]
> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-FLIP-121-Support-Cython-Optimizing-Python-User-Defined-Function-td39577.html
>
>
>
>
> ■ [Runtime] FLIP-119 关于对调度策略优化的投票通过,优化主要集中在运行批处理作业时避免资源死锁等。
>
> [8]
> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/VOTE-FLIP-119-Pipelined-Region-Scheduling-td39585.html
>
>
>
>
> 邮件问题答疑
>
> ■ guanyq 在社区提问如何查询 flink job 的异常日志。田志声推荐使用 log agent (比如 filebeat)
> 统一采集作业的日志,然后收集到 ElasticSearch 查看。
>
> [9]http://apache-flink.147419.n8.nabble.com/flink-td2378.html
>
>
>
>
> ■ chanamper 希望能在 Java Api 中使用 LocalGlobal 的聚合优化方法,Congxian Qiu
> 予以了回答,DataStream API 暂时没有 local aggregation 的功能,可以通过给 key 拼前缀或者后缀来达到类似的效果。
>
> [10]http://apache-flink.147419.n8.nabble.com/Flink-keyby-td2309.html
>
>
>
>
> ■ 111 发现 flink 中的 calcite 依赖 guava 16 以上的版本,hbase-connector 模块依赖 guava
> 12.0 版本,经过 shade 后,作业运行正常,但是在 IDEA 运行单元测试会冲突。目前只能通过 mvn test
> 来运行单元测试,或者把单元测试改为连接远程 Hbase 的方法来解决。
>
> [11]
> http://apache-flink.147419.n8.nabble.com/Flink1-10-0-flink-hbase-guava-td2385.html
>
>
>
>
> ■ KristoffSC 在社区提问在用 RocksDB 作为 StateBackend 的情况下,少量的 MapState,每个 state
> 的大小很大,和很多的 ValueState,每个 state 的大小很小相比,哪种性能更高。Congxian Qiu
> 认为这两者没有区别,并给予了详细的解析。
>
> [12]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/State-size-Vs-keys-number-perfromance-td34135.html
>
>
>
>
> ■ 111 在使用 TopN 语句时遇到了 ”This calc has no
>
> useful projection and no filter. It should be removed by CalcRemoveRule”
> 的问题,Jark 认为这是由于 codegen bug 导致。
>
> [13]
> http://apache-flink.147419.n8.nabble.com/Flink-SQL-1-10-ROW-NUMBER-td2355.html
>
>
>
>
> ■ Dongwon Kim 在社区里提问关于在 NullAwareMapIterator 中抛出 NPE 的问题,Jark Wu 认为这是由于
> HeapMapState iterator 的一处 bug 导致返回空的 iterator所致。
>
> [14]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/NPE-from-NullAwareMapIterator-in-flink-table-runtime-blink-td34083.html
>
>
>
>
> ■ Krzysztof Zarzycki 希望能够用 Flink SQL 实现动态修改 job
> 的拓扑图,以动态的增删业务的处理分支。该功能目前还不支持,大家对该功能的实现进行了讨论。
>
> [15]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Dynamic-Flink-SQL-td33853.html
>
>
>
>
> ■ Salva Alcántara 在 snapshotState 方法中对 keyed state 进行了 clear 处理。job
> 启动后,没有一条数据进入 input streams 时,触发 checkpoint 会报 NPE。Yun Tang 对该问题进行了回复,讲述了
> keyed state 和 operator state 的区别,并根据 Salva Alcántara 的业务逻辑推荐他使用 operator
> state。
>
> [16]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Using-MapState-clear-put-methods-in-snapshotState-within-KeyedCoProcessFunction-valid-or-not-td31353.html
>
>
>
>
> ■ Aaron Levin 遇到了在 RocksDB 中存储含有百万个元素的 ListState
> 的应用场景,担心在这种场景下会遇到一些问题。Seth Wiesman 回复说 RocksDB's JNI bridge 不支持超过 2GB 的
> ListState。Aljoscha Krettek 提供了另外的思路,可以把数据分成多个key,分散处理。
>
> [17]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/ListState-with-millions-of-elements-td34153.html
>
>
>
>
> ■ Robin Cassan 遇到了 checkpoint 因超时失败时,接下来的 checkpoint 出现雪球效应的问题。Congxian
> Qiu 回答说非对齐的 checkpoint 可以解决该问题,但该方案还未实现。
>
> [18]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Making-job-fail-on-Checkpoint-Expired-td34051.html
>
>
>
>
> ■ Gyula Fóra 遇到了 source 表含有 nullable 字段,将 null 数据过滤掉,写入对应字段类型 STRING NOT
> NULL 的 sink 表时,报类型不兼容的错误。Timo Walther 告知 type system 仍然在完善中,该问题是已知问题。
>
> [19]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Inserting-nullable-data-into-NOT-NULL-columns-td34198.html
>
>
>
>
> ■ forideal 在一个任务中提交了三个 SQL,使用的同一个 source 表。Flink 的拓扑图显示,该 source
> 表被读取了3遍。Jark Wu 告知 multi-sink optimization 在 flink 1.10 版本中只支持
> TableEnvironment,StreamTableEnvironment 将在 flink 1.11 版本中提供支持。
>
> [20]
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Multiple-SQL-Optimization-td34221.html
>
>
>
>
> 活动 / 博客文章 / 其他
>
> ■ Flink 消息聚合处理方案
>
> [21]
> https://ververica.cn/corporate_practice/flink-message-aggregation-processing-scheme/
>
>
>
> ■ Flink 新场景:OLAP 引擎性能优化及应用案例
>
> [22]
> https://ververica.cn/developers/olap-engine-performance-optimization-and-application-cases/
>
>
>
>
> ■ Iceberg 在基于 Flink 的流式数据入库场景中的应用
>
> [23]
> https://ververica.cn/developers/icebergs-application-in-flink-based-streaming-data-warehousing-scenario/
>
>
>
>
> ■ Flink 流批一体的实践与探索
>
> [24]
> https://ververica.cn/developers/practice-and-exploration-of-flink-flow-batch-integration
>
>
>
>
> ■ Apache Flink Training
>
> [25]https://training.ververica.com
>
>
>
>
> ■ Flink Forward 全球在线会议中文精华版直播上线,聚焦
> Alibaba、Google、AWS、Uber、Netflix、新浪微博等海内外一线厂商,经典 Flink
> 应用场景,最新功能、未来规划一览无余。直播详情及预约观看:
>
> [26]
> https://developer.aliyun.com/live/2594?spm=a2c6h.14242504.J_6074706160.2.3fca361f4cYyQx
>
>
>
>
> ■ Flink 中文社区直播:《PyFlink 核心功能介绍》,由 Apache Flink PMC 程鹤群分享,直播回顾:
>
> [27]https://ververica.cn/developers/flink-training-course3/