网易实时数仓 | 流式ETL实践方案
肉眼品世界
共 9597字,需浏览 20分钟
· 2021-06-07
点击上方 "肉眼品世界"关注, 深度价值体系传递
业务背景
专用 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 统计
第二个我想分享的是我们的 SLA 统计工具。背景是我们的用户经常会通过 Web UI 来进行调试和问题的排查,比如不同 subtask 的输入输出数目,但这些 metric 会因为作业重启或者 failover 而重置,因此我们开发了基于 OperatorState 的 SLA-Utils 工具来统计数据的输入和分类输出。这个工具设计得非常轻量级,可以很容易集成到我们自己的服务或者用户的作业里面。
数据容错及恢复
五.未来规划
第一个是数据湖的支持。目前我们的日志绝大多数都是 append 类型,不过随着 CDC 和 Flink SQL 业务的完善,我们可能会有更多的 update、delete 的需求,因此数据湖是一个很好的选择。
第二个会提供更加丰富的附加功能,比如实时的数据去重和小文件的自动合并。这两个都是对业务方非常实用的功能。
最后是一个支持 PyFlink。目前我们的 Python 支持只覆盖到数据集成阶段,后续数据仓库的 Python 支持我们是希望通过 PyFlink 来实现。
推荐阅读:
评论
Apache Paimon毕业,湖仓架构的未来发展趋势!
北京时间 2024 年 4 月 16日,开源软件基金会 Apache Software Foundation(以下简称 ASF)正式宣布 Apache Paimon 毕业成为 Apache 顶级项目(TLP, Top Level Project)。经过社区的共同努力和持续创新,Apache Paim
程序源代码
0
FaceChain高保真人像风格生成挑战赛:一等奖方案
Datawhale分享 作者:马琦钧,Datawhale成员简 介大家好,我是马琦钧,Datawhale成员,毕业于浙江农林大学,统计学/会计学双学位,获得过由阿里云、谷歌、百度、CVPR、思否、极棒等举办的相关赛事奖项。本次主要分享 FaceChain 高保真人像风
Datawhale
1
从原理到实践:掌握DPDK内存池技术
前言:本文整理下之前的学习笔记,基于DPDK17.11版本源码分析。主要分析一下内存管理部分代码。一、概述内存管理是数据面开发套件(DPDK)的一个核心部分,以此为基础,DPDK的其他部分和用户应用得以发挥其最佳性能。本系列文章将详细介绍DPDK提供的各种内存管理的功能。但在此之前,有必要先谈一谈为
开源Linux
0
魔改Transformer!9种提速又提效的模型优化方案
向AI转型的程序员都关注了这个号👇👇👇Transformer目前已经成为人工智能领域的主流模型,应用非常广泛。然而Transformer中注意力机制计算代价较高,随着序列长度的增加,这个计算量还会持续上升。为了解决这个问题,业内出现了许多Transformer的魔改工作,以优化Transformer
机器学习AI算法工程
0
微服务与领域驱动设计,架构实践总结
来源:知了一笑👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:http://116.62.199.48/ ,新
小哈学Java
0
8则实用的纯CSS布局排版技巧 | 网易4年实践
「链接和长图失效,请大家点击阅读原文查看详情」前言开发每一张网页都离不开布局排版,基于良好布局排版打下基础,才能使后续的开发更顺利。当然不能停留在IExplorer时代那种局限思维上,没办法解决的布局排版都用JS实现😂。今时不同往日,现代CSS属性能更好地快速实现各种布局排版,节约更多时间去摸鱼😉。
前端迷
10