网易游戏基于 Flink 的流式 ETL 建设
- 前言 -
摘要:网易游戏资深开发工程师林小铂为大家带来网易游戏基于 Flink 的流式 ETL 建设的介绍。内容包括:
业务背景 专用 ETL EntryX 通用 ETL
调优实践
未来规划
- 业务背景 -
网易游戏流式 ETL 需求特点
日志分类及特点
网易游戏 ETL 服务剖析
- 运营日志专用 ETL -
运营日志 ETL 发展历程
运营日志 ETL 架构
Python UDF 实现
运营日志 ETL 运行时
- EntryX 通用 ETL -
EntryX 基本概念
先介绍 EntryX 的三个基本概念,Source、StreamingTable 和 Sink。用户需要分别配置这个三个模块,系统会根据这些自动生成 ETL 作业。
EntryX ETL 管道
实时离线统一 Schema
实时数据仓库集成
EntryX 一个重要的定位是作为实时仓库的统一入口。刚刚其实已经多次提到 Kafka 表,但还没有说实时数仓是怎么做的。实时数仓的常见问题是 Kafka 并没有原生支持 schema 元数据的持久化。目前社区的主流解决方案是基于 Hive MetaStore 来保存 Kafka 表的元数据,并复用 HiveCatalog 来直接对接到 Flink SQL。
EntryX 运行时
- 调优实践 -
HDFS 写入调优
HDFS 写入调优 - 数据流预分区
基于 OperatorState 的 SLA 统计
数据容错及恢复
- 未来规划 -
第一个是数据湖的支持。目前我们的日志绝大多数都是 append 类型,不过随着 CDC 和 Flink SQL 业务的完善,我们可能会有更多的 update、delete 的需求,因此数据湖是一个很好的选择。 第二个会提供更加丰富的附加功能,比如实时的数据去重和小文件的自动合并。这两个都是对业务方非常实用的功能。 最后是一个支持 PyFlink。目前我们的 Python 支持只覆盖到数据集成阶段,后续数据仓库的 Python 支持我们是希望通过 PyFlink 来实现。
作者:林小铂
来源:
http://www.whitewood.me/2020/12/20/%E7%BD%91%E6%98%93%E6%B8%B8%E6%88%8F%E5%9F%BA%E4%BA%8E-Flink-%E7%9A%84%E6%B5%81%E5%BC%8F-ETL-%E5%BB%BA%E8%AE%BE/
评论