《3、网易游戏基于 Flink 的流式 ETL 建设-zx.pdf》由会员分享,可在线阅读,更多相关《3、网易游戏基于 Flink 的流式 ETL 建设-zx.pdf(29页珍藏版)》请在三个皮匠报告上搜索。
1、网易游戏基于 Flink 的流式 ETL 建设 林小铂 网易游戏 资深开发工程师 专用ETL #2 业务背景 #1#3 调优实践 #4 未来规划 #5 通用ETL #1业务背景 网易游戏 ETL 服务概况 网易游戏流式 ETL 需求特点 游戏行业 MongoDB 等 schema-free 的数据库流行。 数据异构 以复杂内嵌字段避免 大部分 Join 需求。 反范式设计 提取转换一次,加载到不同 数据仓库(Hive/Kafka)。 实时离线 数据一致 数据表多且变更频繁, 需要完善的异常处理。 容错及恢复 日志分类及特点 日志类别描述格式主要用途目标存储 运营日志玩家行为日志 header
2、+ json 文本 报表/分析/推荐Hive/Kafka 业务日志业务事件日志文本/二进制报表/分析/推荐Hive/Kafka 程序日志程序运行日志文本日志检索/分析ES/Hive/Kafka 网易游戏 ETL 服务剖析 运营日志专用 ETL #2 运营日志 ETL 发展历程 v1 基于 Hadoop Streamingv2 基于 Spark Streamingv3 基于 Flink DataStream 建立基于 Hadoop Streaming + Python 通用处理和 UDF 的离线 ETL。 基于 Spark Streaming 的 POC,但因微批 调优困难、小文件多等问题没广泛
3、应用。 基于 Flink DataStream + Jython 运行时 框架,无缝迁移原有 Python UDF。 201320172018 运营 ETL 架构 Python UDF 实现 运营 ETL 运行时 EntryX 通用 ETL #3 EntryX 基本概念 ETL 作业的输入数据源,通常 是原始数据 Kafka Topic 或经过 分发过滤的 Kafka Topic 可以混合一至多种异构文本数据 Source 定义 ETL 管道的元数据 设置转换函数,定义流表 Schema 流表 Schema 类似 DDL,包括表 属性、字段名、数据类型、约束等 StreamingTable 流表 定义流表到目标储存系统表的 Schema 逻辑映射(字段映 射、表属性映射) 数据物理格式的自动转换/加载 Sink EntryX ETL 管道 实时离线统一 Schema 实时表 与 离线表 的