近年来,随着实时化需求的场景日益增多,企业已不满足于简单使用流计算或批计算进行数据处理,采用一套引擎即可实现低延迟、高吞吐、高稳定的强大性能逐渐成为更多企业的追求。Apache Flink 作为领先的开源大数据计算引擎,在流批一体的探索上日臻成熟,并在稳定性、性能和效率方面都经受住了阿里巴巴双11的严苛生产环境考验。
如今,除电商行业外,Flink 流批一体的应用几何?在降本增效的需求驱动下,企业如何实现数据与算力价值最大化?
12月13日-15日,Flink Forward Asia 2020 在线峰会,来自字节跳动、腾讯、快手、微博、Bigo、网易游戏、知乎、爱奇艺、小米、京东、汽车之家、贝壳找房、58同城、好未来、360、网易云音乐、有赞、蚂蚁集团、天猫等 19 家各行业的先行者们分享优秀的技术实践案例,及其实用、可落地的技术应用开发经验。
本文节选 Flink Forward Asia 2020 在线峰会行业实践专场主题分享,并详细介绍各主题内容供大家参考,更多大会议程请点击「阅读原文」~
快手基于 Apache Flink 的持续优化实践
本次议题主要介绍快手基于 Apache Flink 在稳定性、可用性及 SQL 引擎方面进行的持续优化与实践。重点包括三部分:
稳定性优化。各类单点故障造成的作业重启,优化故障发现、作业重启过程,进一步缩短作业恢复时间。
作业启动优化。优化作业启动流程,进一步缩短作业升级启动时间。
Flink SQL 优化。在 Flink SQL 应用过程的问题做进一步优化,包括优化 udf 重复执行,优化 groupby bounded 场景下数据倾斜问题。
徐帅 | Apache Flink Contributor,Bigo计算平台负责人
主要介绍 Bigo 实时计算平台的建设及为支持业务场景所做扩展及优化。分为几个小节:
介绍 Bigo 实时计算平台的发展过程及现状。
介绍在 Flink 上做的优化及一些自己的特色。包括跟 Pulsar,ClickHouse 等生态的结合。
介绍典型的业务场景。重点介绍视频、直播等 App 打点数据要通过 Flink 进行实时 ETL 之后落到 Hive 里。在此过程中我们解决了打点数据的自动化接入、自动切分,不同 topic 相互隔离,端到端 Exactly once,根据 Event time 来保证 Hive partition 写完整并创建 meta 等问题。
介绍 Flink 对业务带来的效率上的提升。APP 上的功能每天都在进行 ABTest,传统走批处理的方法计算资源消耗多,而且时效性太差。通过将原先批处理的链路改造为用 Flink 做实时的计算,实现了流批一体,大大的提高了 ABTest 的效率,并且节省了资源。
曹富强 | 微博机器学习研发中心数据计算负责人,高级系统工程师
基于 Flink 搭建的微博实时计算平台
微博实时数仓的搭建和应用
Flink 在机器学习的应用及平台化
批流一体 Flink SQL
许振文 | 腾讯游戏增值服务部数据中心后台开发组组长
现在网络游戏市场规模已经达到数百亿美元的量级,在大数据和微服务技术的浪潮中,如何通过数据化营销来优化游戏运营?
本议题将介绍针对这一应用趋势而构建的腾讯游戏数据营销服务开发平台,讲述如何将大数据和微服务进行合理的拆分,以及通过对这些能力合理有效的组织和架构来为游戏业务提供多样化的数据营销服务。在内部如何根据游戏业务数据化运营场景实践落地大规模的 Flink、Kafka、ServiceMesh 等技术。
为大家揭示迄今为止数据与游戏结合的丰富技术落地场景,以及游戏领域数据技术基础设施和技术平台架构,并与大家探讨未来数据技术与游戏结合的更多可能性。
知乎基于 Sqoop 搭建了自己的离线数据集成平台,在过往的使用过程中受限于 Sqoop 架构的限制和社区不够活跃的状态,许多平台能力和体验的改进难以实现。
Flink 作为新一代的分布式计算引擎,拥有非常积极活跃的用户社区和开发者生态。Flink 丰富成熟的数据源支持和灵活的开发能力是知乎下一代数据集成平台的理想基座。
本次主题将分享知乎以 Flink 为基础打造的通用数据集成平台,打通知乎内部各项数据资产。
基于 Flink 和 LogMiner 的 Oracle CDC 实践
崔星灿 | Apache Flink Committer,Wealthsimple 软件工程师
作为一家金融科技公司,Wealthsimple 长期依赖 Oracle General Ledger 存储用户交易等账目数据。为了支持账户余额及金融产品持仓等相关业务,账簿团队需要从 Oracle 中持续导出最新入账数据进行核算。
现有基于 SQL 轮询的数据获取方式存在着延迟较高、无法检测数据更新等弊端,为此团队决定采用 Change Data Capture(CDC)替换当前方案。实践过程中,我们借助 Oracle LogMiner 和 Flashback Query 实现了基本的数据捕获逻辑,并将其嵌入到 Flink Source Connector 中。同时,为了保证端到端的精确一次语义,我们基于 XA Transaction 完成了一个支持两阶段提交的 Flink JDBC Sink Connector。
本次演讲内容将会涵盖使用 LogMiner 和 Flink 捕获 Oracle 数据改动的基础知识,以及团队在上述项目初期的探索与思考。
蒋文伟 | 杭州网易云音乐数据智能部资深数据平台开发工程师
SQL 作为优秀的数据处理语言被广泛使用,但原生的 Flink SQL 在实际使用过程中往往会遇到无法满足业务的情况,本次主题将介绍云音乐为解决这些问题而进行的工作。主要分享内容为:
功能扩展与封装,建立了支持模块化与组件化的 Notebook 开发环境。
性能调优,解决业务实际场景中遇到的读写方面瓶颈。
强化运维监控,建立自己的智能诊断体系。
分享内部案例。
京东于2018-开始基于 Flink+K8s 深入打造高性能、稳定、可靠、易用的实时计算平台,支撑了京东内部多条业务线平稳度过618、双11多次大促。
本次讲演将分享京东 Flink 在实践过程中遇到的问题、挑战和解决方案,对社区版 Flink 所做的定制和优化,以及未来的展望和规划。
沈磊 | Apache Flink Contributor,有赞数据研发
本次分享主要讲解有赞 Flink 基于 K8S 容器化改造的实践化经验。在 Flink SQL 方面,也会分享在 Flink SQL 的实践,如高可用 HBase、无密 MySQL Connector 实践,Flink SQL 与 ClickHouse 集成,以及支持 checkpoint 作为状态恢复等。
最后会分享 Flink Jar 和 SQL 任务血缘元数据自动化采集经验分享,通过任务元数据信息,帮助业务方更好的管理和维护自己的实时任务。
冯海涛 | 58同城大数据部门架构师,实时计算平台负责人
58实时计算平台简介
Flink 在58的业务实践
平台化建设
未来规划
为满足私有云部署下,使用有限资源对 PB 级机器数据进行秒级即席查询,进行安全分析的需求,360 本地安全大脑利用机器数据的高度重复性、查询的规律性、以及命中数据比例低的特点,设计并实现了“Blink + ORC 文件存储 + 文件索引”的查询方案。
方案通过索引机制,把只占原始 ORC 文件大小的 1/100,000 的 ORC 各种有效的统计信息(min/max、字典表、bloom filter)持久化进外部数据库,并引入Space Filling Curve算法对多列数据进行排序来提升多列数据的有序性,大幅度减少需要进入 Blink 的 ORC 数据规模,同时在 Blink SQL 中进行对 ORC 的查询优化。
好未来实时数据分析现状
好未来实时续报数仓建设
好未来实时数据分析平台
展望与规划
林小铂 | Apache Flink Contributor,网易游戏资深开发工程师
流式 ETL 是实时计算中最为基础的应用,而在网易游戏,由于游戏业务迭代快导致数据 Schema 变更频繁,所以将复杂的计算延后到数据仓库计算的 ELT 是更为常用的模式。建设流式 ELT 主要的挑战是让用户无感知地平滑迁移到流式 ELT,其中包括 Python UDF、HDFS 写入优化及异常处理实践。
网易游戏大数据平台建设的早期建立了基于 Hadoop Streaming + Python 脚本的离线 ELT 框架,因此在 2018 -建立基于 Flink 的流式 ELT 时首要任务是提供 Python UDF,综合考虑后实现了一套基于 Jython 的 Python UDF 框架。
流式 ELT 的瓶颈通常在 HDFS,因此流式 ELT 主要从两个途径优化 HDFS 写入:一是通过数据流分区令每个 sink subtask 接收尽量少的分区的数据,从而减少打开的文件数;二是通过以每个数据分区只打开一个文件并不断 append 的形式来写入,来减少文件总数和 RPC 数(需配合每次 checkpoint 时同步文件长度机制和取消文件前缀,有分钟级别的脏读风险)。在异常处理方面,提供基于 SideOutput 的错误流来分类保存不同的错误码的数据(比如迟到事件或 UDF 异常),另外使用基于 State 的 Accumulator 来记录消息的流向,并采集到 ELK 做可视化监控。
从2019年开始接入,Flink 在小米支撑了越来越多的业务,包括信息流推荐、商业广告、小米金融等重要业务,目前运行作业数已经达到上千个,极大地推动了计算的实时化,提升了数据的价值。随着应用规模的扩大,我们也遇到了越来越多的挑战和问题,包括稳定性、易用性、运维支持方面等等。
本次分享主要从如下几个方面进行了介绍,包括 Flink SQL 平台化的思考与实践、遇到的业务稳定性问题以及解决思路、以及我们在提升问题排查和业务支持效率等方面做的工作。
叶炜晨 | 爱奇艺技术经理,实时大数据相关业务负责人
近年来,随着信息流推荐、在线效果广告、实时报表和实时运营等新业务场景的出现,实时大数据成了大数据领域最重要的发展方向之一。
本次分享介绍了爱奇艺大数据团队在基于 Flink 的实时数据生产分发、实时数仓建设、流数据服务、流批一体等领域的实践和演进过程,以及相关的一些体系化思考。
在蚂蚁集团我们服务着支付、数金、保险以及广告等多元化搜索场景,为满足不同场景在数据量、复杂度以及延迟性等指标上差异化需求,我们以 Flink 为核心构建了一套搜索数据增全量一体化处理平台。本次分享主要介绍平台建设的应用实践以及关键技术点,具体如下:
平台背景与技术挑战
支持中间态共享的增全量一体化架构
全量计算裁剪技术
多业务资源共享实现
动态长度窗口算子
大比例扩散场景应对
字节跳动基于 Flink 的 MQ-Hive 实时数据集成
数据集成的挑战
现有解决方案及痛点
基于 Flink 的 MQ-Hive 解决方案
未来展望
分享小红书在推荐算法、实时数仓、风控、数据同步等场景遇到的问题和解决办法,在此过程中我们迭代出一个可用的 SQL 平台,拆解该平台是如何服务公司内其他用户迭代业务的以及后续我们面临的挑战。
主要介绍贝壳实时计算平台的构建、实时数仓的落地,以及面向事件驱动场景的通用平台建设。贝壳实时计算紧跟业界发展,为公司各业务线的实时计算相关各种场景提供了有力的支持。
实时计算平台建设:为满足公司各种业务方实时计算的需求, 我们构建了功能完善的实时计算平台 Hermes。平台支持模板任务、场景任务以及自定义任务的开发,提供了完善的管理和监控,保障了任务的稳定、高效运行。
实时数仓落地:随着实时计算平台功能的不断完善,使得实时数仓建设成为了可能。我们构建了完善的开发规范,提供了丰富的实时数据模型及构建能力,目前已经应用公司的各种实时指标、实时大屏等业务场景。
实时事件处理平台建设:为了满足业务方对线上用户行为的实时响应的需求,基于流计算的 Pandora 事件处理平台应运而生。平台将用户行为标准化,提供了事件定义和管理、功能完善的规则引擎、灵活方便的动作触发等能力,简化了业务开发流程,满足了业务方对用户行为实时响应的需求。
未来发展方向:贝壳的未来实时计算会紧跟社区发展潮流,继续做好实时计算相关基础能力的建设,在流批一体化、事件驱动等方向继续努力。
以上为 Flink Forward Asia 2020 在线峰会行业实践节选,了解更多大会详情及大会预约可点击「阅读原文」。12月13日,全球 38+ 一线厂商,70+ 优质议题,我们在 Flink Forward Asia 在线峰会等你~