Paimon在各大公司生产实践和优化总结

这是一篇汇总和个人学习文章,主要目的是总结一下Paimon在各大公司的落地做一个学习笔记。

本文的主要内容是关于Paimon在各大公司包括Vivo、Shopee、阿里、抖音等公司的落地实践,文末有文章来源地址,内容大概分为几个部分:

1.引入Paimon的背景和主要解决的问题

2.解决方案细节和基本架构

3.核心优化点

引入Paimon的背景和主要解决的问题

离线时效性问题

从各家公司分享的内部应用来看,大多数场景都是Lambda架构同时存在。离线批处理架构最大的问题是存储和时效,存储上Hive本身能力有限,大部分场景是insert overwrite,并且基本不关心文件组织形式。

Paimon为代表的湖框架可以精细管理每一个文件,除了简单的insert overwrite,具备比较强大的ACID能力,能够流式写入实现分钟级更新。

实时链路问题

以Flink+MQ为主的实时链路,主要的问题包括:

•成本较高,Flink周边技术栈众多,管理和运维成本高;并且因为中间结果不落地,需要大量的dump任务辅助进行问题定位和数据修复;

•任务稳定性,有状态的计算导致延迟等各种问题;

•中间结果不落地,需要大量的辅助任务协助排查问题。

所以我们可以定性的给Paimon解决的问题下一个结论:统一流批链路,提升时效的同时降低成本。

核心场景和解决方案

数据统一入湖

在各大公司的分享中,都提到了关于使用Paimon代替传统的Hive ODS层,将Paimon作为整个业务数据库的统一镜像表,提高数据链路的时效性并优化存储空间。

实际生产链路带来的好处如下:

•在传统离线和实时链路中,ODS分别由Hive表和MQ(一般是Kafka)来承载,在新链路中Paimon表作为ODS的统一存储,既满足流读又满足批读;

•采用Paimon后,由于整个链路是准实时的,可以将处理时间从小时级缩短到分钟级,通常控制在十分钟以内;

•Paimon对并发写操作有很好的支持,并且Paimon同时支持主键表和非主键表;

这里值得一提的是,Shopee开发了基于Paimon Branch的「日切功能」。简单的说即按照天进行数据切分,避免全量分区的数据冗余存储问题。

此外,Paimon社区也提供了一套工具,可以帮助大家进行schema evolution,将MySQL甚至Kafka的数据同步到Paimon中,上游增加列,Paimon表也会跟着增加列。

维度表 Lookup Join

Paimon主键表作为维度表场景,在各大公司都有成熟应用,实际生产环境经过很多次考验。

Paimon作为维度表的场景分为两类,一类是实时维度表:通过Flink任务接业务数据库实时更新;另一类是离线维度表,也就是通过Spark离线任务T+1更新,也是维度表的绝大数据场景。

Paimon维度表同样可以支持Flink Streamin SQL任务和Flink Batch任务。

我们在之前的文章Paimon生产环境问题小总结也提到过维度表优化的场景。

Paimon宽表场景

Paimon和其他的很多框架一样,支持Partial Update,LSM Tree架构使得Paimon有很高的点查与合并性能,但是这里要特别注意几个点:

•性能瓶颈,在超大规模数据更新或者超多列更新场景,后台合并性能会有明显的下降,需要谨慎测试后使用;

•Sequence Group排序,当业务有多个流进行拼接时,会给每个流定义一个单独的 Sequence Group,对每个Sequence Group排序字段需要合理选择,甚至会有多个字段排序情况;

PV/UV场景

在蚂蚁计算 PV/UV 指标的例子中,之前是使用 Flink 的全状态链路来实现的,但后来发现大量业务难以迁移到这种模式,因此将其替换为 Paimon。

利用 Paimon 的 upsert(更新或插入)更新机制来进行去重,并且利用 Paimon 的轻量级日志 changlog 来消费数据,为下游提供实时的 PV(Page View,页面浏览量)和 UV 计算。

在整体资源消耗方面,Paimon方案使得整体CPU使用率下降了60%,同时checkpoint的稳定性也得到了显著提升。此外,由于Paimon支持point-to-point(端到端)写入,任务的回滚和重置时间也大幅减少。整体架构因为变得更加简单,因此在业务研发成本上也实现了降低。

湖上OLAP

因为Spark和Paimon集成度很高,通过Spark或Flink进行一些ETL操作,将数据写入Paimon中,基于Paimon进行z-order排序、聚簇,甚至构建文件级索引,然后通过Doris或StarRocks进行OLAP查询,这样就可以达到全链路OLAP的效果。

总结

基本上面内容就是各大公司落地的主要场景,当然还有一些其他场景我们后续再持续补充。

文章内容来自:大数据技术与架构

更多Paimon文章:博客园 | 巨人肩膀

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

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

相关文章

简析自动驾驶产业链及其核心技术体系

一、自动驾驶产业链 自动驾驶产业链可以细分为感知层、决策层、执行层以及通信层等多个环节。上游部分主要包括提供环境感知所需的各种传感器(如激光雷达、毫米波雷达、摄像头等)、高精度地图服务、定位系统以及其他相关硬件设备;中游涵盖了…

第一节 布局与盒模型-Flex与Grid布局对比

一、核心特性对比​​ 1. ​​布局维度​​ ​​Flex 布局​​: ​​一维布局​​:仅支持单方向(水平或垂直)的排列,通过 flex-direction 控制主轴方向(row 或 column)。​​适用场景​​&…

国产USRP X410 PRO/PRO+(相参版):宽频段、大带宽、多通道的4×4高性能软件无线电设备

国产USRP X410 PRO/PRO(相参版)高性能软件无线电,作为USRP X410的进阶版本,X410 PRO/PRO核心均升级为Xilinx XCZU48DR FPGA芯片,显著提升了信号处理能力。平台延续了Xilinx Zynq UltraScale RFSoC的先进架构,集成四核ARM处理器及高…

Mac电脑-Office 2024 长期支持版(Excel、Word、PPT)

Office 2024 mac 是一款专为苹果电脑用户设计的高性能、高安全性的办公软件套装 集成了Word、Excel、PowerPoint、Outlook等经典应用,为用户提供了一站式的办公解决方案。 不仅继承了Office系列一贯的卓越性能,还在功能性和用户体验上进行了全面升级。…

vue2通过leaflet实现图片点位回显功能

需求:在图片上标点了,需要根据标记点在图片上进行回显功能,并且不会根据窗口大小导致标记点移位 1.效果 2.下载插件 用到的是leaflet插件:一个交互式地图 JavaScript 库,我下载是 "leaflet": "^1.9.4&…

OmniDocBench:一键评测PDF解析算法

绝大多数文档格式都能无损转换至PDF,解决了PDF解析,也就相当于解决了绝大多数文档的解析。所以,PDF解析算法是文档服务的基石技术。 PDF解析算法目前有两类技术路线 pipeline方法,整合layout analysis, OCR, formula/table reco…

[按键精灵安卓/ios脚本插件开发] 遍历获取LuaAuxLib函数库命令辅助工具

LuaAuxLib库 LuaAuxLib是按键精灵所有内置命令所在的库文件,有多种方式来获取LuaAuxLib库下的函数命令,例如反编译按键精灵手机端库文件等。这里咱们来介绍一种浅显易懂的方式来获取,直接for循环遍历获取函数名。 ScanLuaAuxLib 我们写一个自…

深度学习和计算机视觉的关系的理解

深度学习和计算机视觉的关系 深度学习作为人工智能的重要分支,近年来在计算机视觉领域取得了革命性突破。计算机视觉的核心任务包括图像分类、目标检测、语义分割等,而深度学习通过神经网络模型自动学习图像特征,极大提升了这些任务的准确率…

springboot开发项目 SLF4J+Logback日志框架集成【最终篇】

在这篇文章之前,实际对于 springboot和SLF4JLogback日志框架的使用 我已经分享过3篇关于springboot 日志的文章了。为什么会在写这篇最终篇,因为 前3篇分享的关于springBoot框架日志的配置方案, 发现了一个问题:只有项目启动的时候…

phpstudy无法启动apache,80端口被占用,完美解决

phpstudy无法启动apache,80端口被占用,完美解决 解决方法一(最推荐) 依次点击网站-管理-修改 将端口由80改为81,再点击确认后即可重新启动apache。 需要注意的是,网站的访问由127.0.0.1变为127.0.0.1:81。默认是80的端口所以可以不…

Loggers 配置解析(log4j.xml)

Loggers 配置解析 我们通过下面的例子来理解 log4j 的 Loggers 配置是如何决定日志输出规则的。 <Loggers><!-- 根Logger&#xff1a;全局配置 --><Root level"debug"><AppenderRef ref"consoleAppender" level"info"/&g…

Java 大视界 -- Java 大数据在智能政务舆情监测与引导中的情感分析与话题挖掘技术(272)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

[NocoDB] 在局域网中调整Float类型显示精度的部署经验

在单位局域网环境中,NocoDB有效地连接MySQL数据库和前端服务,做为中间件很方便。然而,在实际应用中,我们也会遇到一些较为隐藏的设置问题,比如此次经历的 float 显示精度不匹配问题。 问题环境 实际数据库:MySQL,表中有 float 类型的数据 原始数据来源:Excel表格 数据转…

Dockerfile 常见指令详解

Dockerfile 是一个文本文件&#xff0c;包含了一系列用于构建 Docker 镜像的指令。以下是 Dockerfile 中常见指令的详细解释&#xff1a; 基础指令 1. FROM 指定基础镜像&#xff0c;必须为第一条指令&#xff08;注释除外&#xff09;。 FROM ubuntu:20.04 FROM python:3.…

InnoDB Cluster 与 NDB Cluster 对比及部署指南

InnoDB Cluster 与 NDB Cluster 对比及部署指南 一、核心区别对比 特性InnoDB ClusterNDB Cluster存储引擎InnoDBNDB (内存优先)架构设计基于Group Replication分布式架构(数据节点管理节点SQL节点)一致性模型最终一致性/强一致性强一致性数据持久化磁盘存储为主内存存储为主…

PySide环境配置及工具使用

文章目录 [toc]1 概述1.1 PySide 能做什么&#xff1f;1.2 PySide 的优点1.3 PySide 的缺点1.4 示例代码&#xff08;简单窗口&#xff09; 2 环境准备2.1 安装必要软件2.2 修改 pip 源 3 PySide23.1 环境要求3.2 配置PySide23.3 工具配置 4 PySide64.1 环境4.2 配置PySide64.3…

数据标注师学习内容

目录 文本标注词性标注实体标注 图像标注语音标注 文本标注 词性标注 第一篇 第二篇 实体标注 点击这里 关系标注 事件标注 意图标注 关键词标注 分类标注 问答标注 对话标注 图像标注 拉框标注 关键点标注 2D标注 3D标注 线标注 目标跟踪标注 OCR标注 图像分类标注 语音…

【linux】文件与目录命令 - rsync

文章目录 1. 基本用法2. 常用参数3. 用法举例4. 注意事项 rsync 命令用于快速同步文件和目录&#xff0c;可用于本地和远程传输&#xff0c;支持增量同步、压缩、权限保留等特性。 1. 基本用法 语法&#xff1a; rsync [选项] 源 目标功能&#xff1a; 高效增量同步&#xff…

互联网大厂Java求职面试:电商系统高并发设计

互联网大厂Java求职面试&#xff1a;电商系统高并发设计 文章内容 面试官&#xff08;技术总监&#xff09;与郑薪苦的对话 面试官&#xff1a; “郑薪苦&#xff0c;欢迎来到我们的面试。今天我们会围绕一个非常热门的话题——电商系统的高并发设计进行深入探讨。你之前在某…

Nginx跨云反向代理排错:解密配置参数的“陷阱”

前言&#xff1a;在当今的云计算环境中&#xff0c;跨云平台的应用部署变得越来越常见。为了验证跨云平台反向代理的可行性&#xff0c;我们进行了一次测试。本次测试将后端程序部署在阿里云服务器&#xff0c;同时使用在腾讯云注册的已备案国内域名。我们在腾讯云控制台将域名…