18个PPT,29个提问解答,都在这儿啦!

4月25-26日,全球首个 Apache 顶级项目在线盛会 Flink Forward 中文精华版重磅开播,聚焦 Alibaba、 Google、AWS、Uber、Netflix、DellEMC、微博、滴滴等各大互联网公司实时计算的经典场景和业务故事,由 Flink 核心贡献者们对 19 个优质 talk 进行中文翻译及解说,您可免费在线观看。

为期一天半的 Flink Forward 中文精华版在北京、上海、杭州三地进行联动直播,吸引了全球近 20000 人次开发者在线观看。除优质内容外,Flink Forward 精华版还首次开创问题征集,在线观看直播的同学可及时对嘉宾分享提出疑问并邀请讲师在线解答。

大会全部提问及解答:
https://shimo.im/sheets/twgyxGh9hqy6DHYk/MODOC/

直播回顾及 Flink 社区学习资料大礼包下载请点击:

Flink Forward 全球在线会议中文精华版0425
Flink Forward 全球在线会议中文精华版0426

以下选取了大会部分具有代表性的问题及讲师回答,共享给大家。

Keynote: Introducing Stateful Functions 2.0: Stream Processing meets Serverless Applications

解说嘉宾:李钰(绝顶),Apache Flink Committer,Apache Flink 1.10 Release Manager,阿里巴巴高级技术专家。

「Q」:PyFlink 支持 Stateful Function 吗?另外 Stateful Function 的 State 管理是怎么样的?
「A」:目前暂不支持。

Stateful Function 的 State 管理和通常 streaming 作业的 State 管理是一样的,并没有作特殊处理。actor system 或者说应用这块,它和 stream processing 有一个很大的区别在于流处理是一个 DAG (有向无环图)的结构。但是 actor system 是可能有环的。Stateful Function 实际上是增加了一个 feedback loop 支持,但它并没有去改动 runtime 内核,可以理解为是利用 streaming 自带的 state 管理来做的。

圆桌 | Lyft: 基于 Flink 的准实时海量数据分析平台

解说嘉宾:王阳(亦祺),阿里巴巴技术专家。

「Q」:Flink 实时写 parquet 文件会不会产生大量小文件呀?怎么处理小文件问题呢?
「A」:用 StreamingFileSink 去写 Parquet 格式的数据是会产生小文件的,这样会导致 presto/hive client 去分析时性能比较差,Lyft 的做法是通过 SuccessFile Sensor 让 airflow 自动调度一些 ETL 的任务来进行 compaction 和 deduplication,已经处理完成的会将 rawevent 的分区 swap 出去。这样处理以后得到更好的数据质量,同时提升交互式查询的性能。

演讲 | 微博基于 Flink 的机器学习实践

分享嘉宾:

  • 于茜,微博机器学习研发中心高级算法工程师。多年来致力于使用 Flink 构建实时数据处理和在线机器学习框架,有丰富的社交媒体应用推荐系统的开发经验。
  • 曹富强,微博机器学习研发中心系统工程师。现负责微博机器学习平台数据计算模块。主要涉及实时计算 Flink,Storm,Spark Streaming,离线计算 Hive,Spark 等。目前专注于 Flink 在微博机器学习场景的应用。
  • 于翔,微博机器学习研发中心算法架构工程师。

「Q」:Gemini 是怎么使用的?
「A」:这个问题比较复杂,后期我们会在公众号发布详细的使用说明及对比实验。

Tips:后期微博机器学习研发中心团队将就“如何使用 Gemini”主题分享一篇技术文章,除详细的使用说明外还有对比实验分析,敬请期待!

「Q」:样本的多流 join 是基于哪种窗口实现的?
「A」:Flink 现有的窗口计算不能满足我们的业务需求,我们用 union + timer 实现了滑动窗口,数据存储到 map state 里,底层采用 rocksdb + ssd 硬盘来存储,并且自定义了样本的 trigger 触发机制。我们对比过 rocksdb,java heap 这两种 state backend 的策略,在均衡业务场景,处理速度和硬件代价之后,最终选择rocksdb + ssd 来作为 state 的 backend。

「Q」:多媒体特征计算是怎么通过 Flink 支持的,能详细解释下吗?这块的稳定性如何?如何保证的?
「A」:首先我们在 gpu上部署算法模型,并且把模型封装成 rpc 服务。然后通过 Flink 来调用 rpc 服务,实时的生成图片,视频的各种特征。

稳定性 :我们通过 Flink metrics,对整个作业的全流程做监控,包括但不限于rpc服务的耗时,成功率等指标。通过 At Least Once 机制来保证每条数据都处理一次。通过对 source (kafka) 端上的监控来监控整体作业的延迟。

另外根据业务场景引入了高可用的保障机制(对账系统),来保证数据处理的稳定性,目前重点业务可以达到99.999%的成功率。

「Q」:模型上线后如何使应用自动将原始输入数据转变成模型需要的输入变量?
「A」:模型上线预测时,在在线系统中,我们从特征服务中获取特征字段,拼接出原始特征数据,然后经过一个特征处理的模块,将原始样本转化为模型需要的输入数据(可以是libsvm格式或者是适合 DNN 的其他数据格式),然后传到模型服务模块,特征处理的输出的数据格式以及特征处理的代码,训练与预测时保持一致的,唯一的区别在于训练的数据相对在线预测的数据会多出 label 相关的字段。

演讲 | Alink:提升基于 Flink 的机器学习平台易用性

分享嘉宾:杨旭(品数),阿里巴巴资深技术专家。

「Q」:支持实时机器学习的算法多吗?如何防止个别奇异值对模型的影响?
「A」:Alink 所有的分类、回归模型都支持流式数据的预测,在线学习算法方面目前支持 FTRL。在各个模型训练时,有对特殊数据的处理,另外,使用 Alink 的数据处理组件,也可以在训练前进行数据清洗。

「Q」:1.10 已经没有 FlinkML 了吧?FlinkML 和 ALink 之间的关系是?
「A」:FlinkML 为 Flink 自带的机器学习算法库,分为旧的版本和新的版本。在做 Alink 前,我们首先认真调研了当时的 FlinkML(即旧版本 FlinkML)的情况,其仅支持 10 余种算法,支持的数据结构也不够通用,在算法性能方面做的优化也比较少,而且其代码也很久没有更新。所以,我们放弃了基于旧版 FlinkML 进行改进、升级的想法,决定基于 Flink 重新设计研发机器学习算法库,随后发展为现在的 Alink。

在 Alink 发展的过程中,我们一直与 Flink 社区紧密关联,在每年的 Flink Forward 大会上汇报我们的进展,共同探讨技术问题,获取反馈和建议。随着 Alink 功能的不断增强和完善,社区中欢迎 Alink 进行开源的呼声日益高涨,我们可开始和 Flink 社区更紧密联系,推动开源 Alink 的代码进入 FlinkML。

与此同时,社区中更多的人意识到旧版 FlinkML 的问题,决定整个废弃掉旧版 FlinkML,建设新版 FlinkML。我们积极参加新版 FlinkML API 的设计,分享 Alink API 设计的经验;Alink 的 Params 等概念被社区采纳;之后开始为新版 FlinkML 贡献算法实现代码,已提交了 40 余个 PR,包括算法基础框架、基础工具类及若干算法实现。

Alink 包含了非常多的机器学习算法,在向 FlinkML 贡献的过程中,需要社区 commiter 的讨论设计与审查代码,这个过程有助于代码的精益求精,但由于社区 commiter 的资源有限,代码完全贡献到 FlinkML 的过程会持续很长时间。这时,我们不得不考虑是否有其他方式,可以让用户先用起来,Alink 单独开源是个很好的解决方式,它与向 FlinkML 继续贡献算法实现,可以同时进行。用户的使用反馈也有助于我们更好的改进算法实现。此想法获得了社区的支持,获得了公司内领导和同事的支持,在 Flink Forword Asia 2019 大会上,宣布了 Alink 开源。

圆桌 | Flink SQL 之 2020:舍我其谁

解说嘉宾:伍翀(云邪),Apache Flink PMC,阿里巴巴技术专家。

「Q」:demo 里的 catalog 里表的元数据是基于内存的还是持久化到外部存储的?
「A」:demo 里有注册了两个 catalog,一个 default catalog(内存),一个 hive catalog(持久化),两种 catalog 都能存批的表和流的表(其实 Flink SQL 不区分流和批的表)

「Q」:本案例跟您上一次(2020年2月份)讲的 flink SQL 案例 中用到的特性有什么不一样吗?
「A」:本次 demo 覆盖的 feature 更全,包括 4 种 join,流批一致性,CEP 等等。

圆桌 | Apache Flink 误用之痛

解说嘉宾:孙金城(金竹),Apache Member,Apache Flink PMC,阿里巴巴高级技术专家。

「Q」:Flink 窗口计算,heap 状态存取消耗很多 cpu,对比 spark 相同逻辑窗口计算多耗很多 cpu,请问有没有优化方案?
「A」:这个要看具体的场景,需要更细致的场景说明一下?一般的优化方法如下:

  1. 尽量用增量聚合替代全量聚合[1]。不仅减小 state 的大小,而且能在数据抵达窗口时就开始计算。
  2. 注意下 Type 是否都能被 Flink 识别,否则序列化反序列化会用默认的 Kryo,导致序列化反序列化加大 cpu 开销[2]。可以配上env.getConfig().disableGenericTypes(); 来禁用 Kryo,验证下是否类型都被Flink识别了。

[1] https://ci.apache.org/projects/flink/flink-docs-master/dev/stream/operators/windows.html#processwindowfunction-with-incremental-aggregation
[2] https://ci.apache.org/projects/flink/flink-docs-stable/dev/types_serialization.html#data-types-serialization

「Q」:请问多个窗口级联相同的 keyby 可以使用 datastreamutil 吗?多个 key 特别长有没有方法优化
「A」:
1.可以用 DataStreamUtil 来级联,避免多次 shuffle。
2.业务上如果有办法优化 key 的长度是最好的,比如减少字段数;或者抽取指定长度或位置的数据作为 key。其次,技术上可以将 key hash 下,比如取 md5,但是这个会带来多余的 cpu 损耗,需要和 key 偏长而带来的网络或 io 损耗来权衡,看哪个代价更高。

圆桌 | Uber :使用 Flink CEP 进行地理情形检测的实践

解说嘉宾:付典,Apache Flink Committer,阿里巴巴技术专家。

「Q」:CEP 一般怎么调优性能?
「A」:Flink CEP 里,规则的复杂程度对于性能影响很大,所以如果遇到性能问题,可以从是否可以从业务的角度简化规则的角度来优化

「Q」:那个不同的 key 的窗口错开是使用自定义窗口 trigger 吗?
「A」:可以理解为实现了一个自定义的 WindowAssigner,WindowAssigner 针对每个 key 在调用的时候,加入了随机的因素,从而使得不同的 key 得到的窗口范围不一样。

演讲 | A deep dive into Flink SQL

分享嘉宾:伍翀(云邪),Apache Flink PMC,阿里巴巴技术专家。

「Q」:minibatch 减少与 state 交互的方式可以在 datastream 中用吗?
「A」:minibatch 优化目前只在 SQL 层的聚合算子中实现了,DataStream 中用不了。

「Q」:Flink SQL 为了支持流批统一,底层用了大量 CodeGen 技术,同样的 SQL 在底层 codegen 出不同的代码,这个 codegen 过程消耗时间吗?对应批,尤其是 OLAP 这种场景,需要快速出结果的场景,codegen 会占整个过程时间的比例?
「A」:目前 codegen 发生在编译期,因此只执行一次,所以对于流作业和批作业都还好。不过对于 OLAP 场景确实对于 codegen 以及 代码编译都会非常敏感,也是以后的一个优化方向,目前还没有评测过 codegen 的耗时。

「Q」:stream 模式可能拿不到 statistics 的情况下 join 的优化是怎么做的?
「A」:目前流计算模式的所有优化都是确定性的优化,没有考虑 statistics。不过批的优化已经考虑了。在拿不到 stats 的时候,我们会有默认的统计值,比如 rowcount=10^8。

演讲 | Flink's application at Didi

分享嘉宾:薛康,现任滴滴技术专家,实时计算负责人。毕业于浙江大学,曾任百度高级研发工程师,对大数据生态建设有丰富经验。

「Q」:能讲一下 streamsql 在线 debug 功能实现原理吗?
「A」:解析 SQL,替换 source 和 sink 为文件和标准输出,然后正常执行 DML,把结果打印到标准输出,展示在平台上。

「Q」:sql IDE 中写的 sql ,血缘关系是怎么实现的?
「A」:每个 connector 会上报连接的数据源信息,比如 kafka 集群、topic等,作为指标上报到 kafka,然后存入 druid,由平台串联各个环节,组成完整链路。

「Q」:想问下怎么监控各个 flink 集群中作业的运行状态,类似于 flink-web 上的每个作业状态(运行或失败)。
「A」:定期通过 yarn api 拿到每个 app 的 JM 地址,通过 JM 的 restful API 拿到正在运行的 job 信息,判断每个 job 的启动时间,如果在两次判断之间,说明期间有过重启,累积一定次数就可以报警。注意判断刚提交的情况。

「Q」:kafka table 的元数据管理,group.id,start-mode 这种运行时参数怎么持久化?还是只保存静态的 kafka connection 信息 / schema 信息,group.id/start-mode 等作为表参数传入?
「A」:确实,只保存静态信息,比较个性化的运行时信息作为参数,通过 set key=value 的形式作为 job 的一部分一起提交。

演讲 | Data Warehouse, Data Lakes, What's Next?

分享嘉宾:金晓军(仙隐),阿里巴巴高级技术专家。

「Q」:hologres 能支持高性能的更新操作来实现 Flink RetractSink 吗?
「A」:可以支持。其实如果用了 hologres,直接存明细就好了,大部分场景不需要做预聚合,需要的时候直接查询。

「Q」:hologres 大数据量的查询效率如何?能支持更新删除操作不?
「A」:可以支持,目前线上有万亿级别的表做多维分析,能够在200ms以内算出结果。hologres 支持更新和删除。

「Q」:hologres 相较于现在社区的数据湖框架 hudi,delta 和 iceberg 的差异点是什么?
「A」:

  1. hologres 是数据 ingestion 实时生效,而目前开源方案是 mini-batch,类似于flink和 spark streaming 的区别。
  2. Hologres 本身是提供服务能力,可以直接给线上应用提供服务,更高的SLA。
  3. hologres 能提供高 qps 的查询能了,可以直接作为 flink 的维表。

演讲 | 终于等到你:PyFlink + Zeppelin

分享嘉宾:

  • 孙金城(金竹),Apache Member,Apache Flink PMC,阿里巴巴高级技术专家。
  • 章剑锋(简锋),Apache Member,Apache Zeppelin PMC,阿里巴巴高级技术专家。

「Q」:既然定位在全面整合 Python,那么加强 Jupyter notebook 就好了吧,Zeppelin vs Jupyter怎么考虑?
「A」:首先 PyFlink 会在 Zeppelin 和 Jupyter 中都会进行支持,目前是 Zeppelin走在前面。Zeppelin vs Jupyter 来讲 Zeppelin更加侧重大数据的计算场景, Jupyter 更贴合机器学习的场景,Zeppelin 可以多租户企业级使用,Jupyter 更适合单用户场景。

「Q」:flink on zeppelin 的最佳应用场景有哪些?
「A」:批流计算的 ETL 和数据分析,适合用 flink sql,pyflink 和 table api。

「Q」:Zeppelin 对 K8s 的支持目前如何,社区有这块的规划吗?另外 Zeppelin on K8s 为啥选择使用 Pod 来部署 Zeppelin Server 而不是 statefulset 或者 deployment 呢?
「A」:这块正在做,依赖于 flink 对 k8s 的支持,预计 zeppelin 0.9 + flink 1.11 可以完美支持 k8s。

Production-Ready Flink and Hive Integration - what story you can tell now?

解说嘉宾:李锐(天离),Apache Hive PMC,阿里巴巴技术专家。

**「Q」:既然有 hive 了,也有好用的 Hive 客户端工具,比如 dbvis。如果公司业务是使用 hive 做离线批查询,值得再通过其他框架这样整合吗?我直接使用 dbvis 来做 hive 分析不就好了?
疑问:Hive 是批分析工具,有必要强行和流整合吗?专工具专用是不是更好些?**
「A」:还是有不少用户需要对 hive 做实时化改进的,比如实时写入,或者通过 presto、impala 等做交互式查询。Flink 与 Hive 整合可以完全是批的模式,获取比 Hive 原有批处理更好的性能。另一方面我们也观察到有用户希望能够实时的消费写入 Hive 的数据,这种情况就需要跟流整合了。

「Q」:1.10 中可以在 hivecatalog 上建 kafka 表,是不是已经可以接 kafka 数据写人 hive 表中了(及批流已经统一了)?
「A」:不是的,1.10 只是通过 hive catalog 来保存 kafka 表的元数据,但写入实际数据的时候还是只支持批式的写入。流式写入 hive 表要 1.11 才支持。

D3BD265F-1EFD-4C7E-A64E-951391596B30-352-000000CC68375C0C.jpg

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSDN公众号新功能上线,居然还能搜出小姐姐???(文末有福利)

为了给各位打工人更好的搜索体验CSDN总是在学习新技能这次CSDN公众号又给大家带来了一项全新的搜索技能在CSDN旗下的公众号内回复消息就能自动回复想搜索的内容啦小编来给大家演示一下,在公众号内输入“mysql安装教程”,就能得到CSDN全站内关于mysql安装…

使用Blink SQL+UDAF实现差值聚合计算

本案例根据某电网公司的真实业务需求,通过Blink SQLUDAF实现实时流上的差值聚合计算,通过本案例,让读者熟悉UDAF编写,并理解UDAF中的方法调用关系和顺序。 感谢军长在实现过程中的指导。笔者水平有限,若有纰漏&#xf…

VBA - 字典实例集锦

目录 前言1. 按接收日期批量不重复编号2. 用字典实现3个ComboBox关联的三级下拉3. 填表4. 二级字典嵌套-字典统计不重复计次5. 三级字典嵌套-根据机型汇总统计数量6. 二级字典嵌套-汇总调研数据7. 字典法去重7.1 对表格中的一列数据去重7.2 对一维数组去重8. 将字典输出到工作表…

如何在SQL Server 2019中添加数据敏感度分类的命令

作者 | Jordan Sanders翻译 | 火火酱。责编 | 晋兆雨头图 | CSDN付费下载于视觉中国为了确保数据库安全性和完整性,数据库管理员日常需要运行多种操作。因此,无论在何种情况下,我们都不能忽视数据库中敏感数据的重要性。在本文中,…

支撑数千家天猫商家CRM业务,数云高弹性数据库如何做

“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈余浪潮的到来”。-----麦肯锡 基于互联网和大数据和时代背景,用户在互联网上留下更多的印记…

vue中forEach循环的使用

//data为集合 data.forEach(function(item, index) {//item 就是当日按循环到的对象//index是循环的索引,从0开始 })//定义班次详细数组var bcglxiangxiList new Array();//定义班次详细对象var bcxiangxi {};//循环传递的参数bcglXiangXiListParam.forEach(ele…

全国高速恢复收费!阿里云:自由流“3大特色能力”使能智慧之路

5月6日,全国高速公路正式恢复收费。ETC普及优化程度、高速自由流收费模式等成为热点话题。随着取消省界高速公路收费站和全国ETC的普及,极大提升高速公路网通行效率,有效降低物流运输成本,减少收费站“堵车”现象,高速…

JavaScript 中,break , continue , return 的区别

break , continue , return 的区别 break :结束当前的循环体(如 for、while)continue :跳出本次循环,继续执行下次循环(如 for、while)return :不仅可以退出循环,还能够…

移动云11.11,钜惠High不停!

一年一度的双十一又来啦全民购物车已开起来!然而复杂的优惠规则催生一大批通宵达旦看直播的定金人和尾款人对这些套路,移动云统统Say NO作为一朵有服务温度的“云”,让优惠简单点让用户买想买的东西,省该省的钱五重惊喜&#xff0…

设计大数据量表结构

上篇文章讲解了传统数据库的一些设计注意点。 本篇为第二篇,在大数据量的情况下,如何去提前设计这个表结构,来达到一个比较好的效果。对于团队,对于后续的维护和扩展都带来更大的便利。 自增id 自增id还是可以有,但是…

去除字符串最后一位的几种方法

1.使用slice方法 /*** slice(start,end)* start 要截取的字符串的起始下标 如果为负数从后面开始算起 -1指的是字符串的最后一位* end 要截取的字符串的结尾下标 如果为负数从后面开始算起 -1指的是字符串的最后一位* start 和 end 都是下标*/let str "122889," str…

VBA中的字符串处理

目录 1 VBA中的字符串2 VBA中处理字符串的函数2.1 比较字符串2.1.1 比较运算符2.1.2 StrComp函数2.2 转换字符串2.2.1 StrConv函数2.2.2 Str函数2.2.3 CStr函数2.3 创建字符串2.3.1 Space函数2.3.2 String函数2.4 获取字符串的长度2.5 格式化字符串2.6 查找字符串2.6.1 InStr函…

使用Blink CEP实现差值聚合计算

使用Blink SQLUDAF实现差值聚合计算介绍了如何使用Blink SQLUDAF实现实时流上的差值聚合计算,后来在与付典就业务需求和具体实现方式进行探讨时,付典提出通过CEP实现的思路和方法。 本文介绍通过CEP实现实时流上的差值聚合计算。 感谢付典在实现过程中的…

企业微信小程序_授权登录接口获取用户userid

文章目录一、前置知识1. 阅读 企业微信小程序开发文档2. 企业微信小程序登录流程3. 微信小程序区别二、前端部分2.1. 调用登录接口2.2. 请求后端接口2.3. 项目源码三、后端部分3.1. yml配置3.2. 获取用户信息接口3.3. 获取token3.4. 工具类3.5. vo对象四、调试部分4.1. 模式切换…

我输给了一个 25 岁的男人

未来的你:小伙计你好,我是 10 年后的你,刚穿越回来,还是热乎的。现在的你:Are you sure?大哥,从你那憔悴的神色里可以看出日夜颠倒的作息和毫无爱情发酵的灵魂,随便喊个人来看看,咱…

阿里云公共DNS安全传输服务介绍(DoH/DoT)

概述 阿里公共DNS致力于为广大的互联网用户提供快速、稳定和安全的DNS解析。然而传统的DNS查询和应答采用UDP和TCP明文传输,存在网络监听、DNS劫持、中间设备干扰的风险: 网络监听风险:即便用户采用HTTPs加密的方式访问站点,DNS…

Excel VBA - 文件及目录操作

目录 一. 文件处理1.1 Name 语句1.2 FileCopy 语句1.3 Kill 语句1.4 GetAttr 函数1.5 SetAttr 语句1.6 FileLen 函数1.7 FileDateTime 函数二. 目录处理2.1 CurDir 函数2.1 ChDir 语句2.3 ChDrive 语句2.4 Dir 函数2.5 MkDir 语句2.6 RmDir 语句三. 文件读写3.1 Open 语句3.2 C…

企业微信小程序_集成微信小程序插件_地图选点插件

官网文档: https://lbs.qq.com/miniProgram/plugin/pluginGuide/locationPicker 具体操作参考官网文档即可,讲的很详细

一文教你如何在生产环境中在Kubernetes上部署Jaeger

作者 | Dotan Horovit翻译 | 火火酱~责编 | 晋兆雨出品 | CSDN云计算日志、指标和跟踪是“可观察性”领域的三大支柱。最近几个月,随着OpenTelemetry标准化以及Jaeger开源项目从CNCF孵化项目中顺利毕业,分布式跟踪领域出现了很多创新。根据DevOps Pulse…

一篇讲透如何理解数据库并发控制

01数据库并发控制的作用 1.1 事务的概念 在介绍并发控制前,首先需要了解事务。数据库提供了增删改查等几种基础操作,用户可以灵活地组合这几种操作,实现复杂的语义。在很多场景下,用户希望一组操作可以做为一个整体一起生效&…