当前位置: 首页 > news >正文

Apache Paimon主键表的一些最佳实践

今天我们说说Paimon主键表的一些使用上的注意事项。

一、主键表

主键表是Paimon的一种表类型。用户可以插入、更新或删除表中的记录。

说的直白点就是,允许你设置唯一主键,然后覆盖更新。

Bucket选择

无论分区表还是未分区表,Bucket都是最小的读写单元。每个Bucket包含一个LSM树及其变更日志文件。

用户可以通过提供bucket-key选项来指定分桶列。如果未指定bucket-key,那么就根据整条记录的hash值进行数据分布(最新版本中,创建Append Queue表时必须指定bucket-key),如果指定了主键,那么会根据主键进行hash。

Bucket数量会限制处理的最大并行度。但是这个值不是越大越好,一般每个Bucket中的数据量官方推荐的值是200MB-1GB,事实上2G左右也可以,但是总之Bucket中的数量不能过多。

同时Paimon是支持扩容Bucket的,并且提供了Rescale Bucket的功能对历史数据重新分布。

跨分区更新问题

Paimon主键表本身是允许设置分区的。例如你的某一张表设置了天分区,如果你的Primary Key不包含分区键,这时候就会出现跨分区更新的问题。根据你的合并引擎不同,表现不同:

  • Deduplicate:删除旧分区中的数据,并将新数据插入到新分区中;

  • PartialUpdate & Aggregation:将新数据插入旧分区;

  • FirstRow:如果有旧值,则忽略新数据

数据量较大时,性能下降明显。

所以,强烈建议,如果你要用主键表,那么最好是不带分区,并且配合行级别过期能力进行数据失效。

核心配置就两个:

'record-level.expire-time': 要保留的时间,秒值
'record-level.time-field': 过期字段,INT类型

文件合并

压缩是一个资源密集型过程,会消耗一定的CPU时间和磁盘IO,因此过于频繁的压缩可能会导致写入速度变慢。

Paimon框架本身提供了通用的压缩策略。大多数场景,你不需要做任何事情。但是如果你的任务因为compaction导致lag,那么有两种方案可以考虑:

  1. 同步变异步

直接把这两个参数打开,数据写入不会受到文件合并的影响。

num-sorted-run.stop-trigger = 2147483647
sort-spill-threshold = 10
  1. 启动专属压缩任务

Paimon给我们提供了Dedicated Compaction压缩策略,这个策略类似Hudi中的Off-line Compaction。

什么意思呢?你可以单独启动一个任务专门进行文件的合并。

例如:

<FLINK_HOME>/bin/flink run \/path/to/paimon-flink-action-0.8.2.jar \compact \--warehouse s3:///path/to/warehouse \--database test_db \--table test_table \--partition dt=20221126,hh=08 \--partition dt=20221127,hh=09 \--table_conf sink.parallelism=10 \--catalog_conf s3.endpoint=https://****.com \--catalog_conf s3.access-key=***** \--catalog_conf s3.secret-key=*****

d66b8567de58797589b887854c537555.png300万字!全网最全大数据学习面试社区等你来!

如果这个文章对你有帮助,不要忘记 「在看」 「点赞」 「收藏」 三连啊喂!

e4ffff8a0ea8ad4df614a52a7f6ede62.png

83335edc319a2067474f3fadb6514d98.jpeg

全网首发|大数据专家级技能模型与学习指南(胜天半子篇)

互联网最坏的时代可能真的来了

我在B站读大学,大数据专业

我们在学习Flink的时候,到底在学习什么?

193篇文章暴揍Flink,这个合集你需要关注一下

Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS

Flink CDC我吃定了耶稣也留不住他!| Flink CDC线上问题小盘点

我们在学习Spark的时候,到底在学习什么?

在所有Spark模块中,我愿称SparkSQL为最强!

硬刚Hive | 4万字基础调优面试小总结

数据治理方法论和实践小百科全书

标签体系下的用户画像建设小指南

4万字长文 | ClickHouse基础&实践&调优全视角解析

【面试&个人成长】社招和校招的经验之谈

大数据方向另一个十年开启 |《硬刚系列》第一版完结

我写过的关于成长/面试/职场进阶的文章

当我们在学习Hive的时候在学习什么?「硬刚Hive续集」

相关文章:

Apache Paimon主键表的一些最佳实践

今天我们说说Paimon主键表的一些使用上的注意事项。 一、主键表 主键表是Paimon的一种表类型。用户可以插入、更新或删除表中的记录。 说的直白点就是&#xff0c;允许你设置唯一主键&#xff0c;然后覆盖更新。 Bucket选择 无论分区表还是未分区表&#xff0c;Bucket都是最小的…...

React面试常见题目(基础-进阶)

React面试常见题目及详细回答讲解 基础题目&#xff08;20个&#xff09; 什么是React&#xff1f; 回答&#xff1a;React是一个用于构建用户界面的JavaScript库&#xff0c;它允许你将UI拆分成可复用的组件。React起源于Facebook的内部项目&#xff0c;用于构建高性能的Web应…...

AI赋能:开启你的副业创业之路

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;越来越多的人开始探索与之相关的副业机会。AI不仅深刻改变了我们的工作和生活方式&#xff0c;还为愿意学习和运用这项技术的人们打开了丰富的创业和增收之门。今天&#xff0c;我们就来盘点几条与AI相关的副…...

前端文件上传组件流程的封装

1. 前端文件上传流程 选择文件&#xff1a; 用户点击上传按钮&#xff0c;选择要上传的文件。使用 <input type"file"> 或 FileReader API 读取文件。 文件校验&#xff1a; 校验文件的大小、格式等信息&#xff0c;提前过滤掉不符合要求的文件&#xff0c;避免…...

图像篡改研究

使用生成对抗网络 (GAN) 来篡改已有的图片涉及生成和修改图像的技术。以下是如何使用GAN对现有图像进行篡改的详细步骤&#xff1a; 1. 选择合适的GAN模型 不同类型的GAN模型适用于不同的图像处理任务。以下是几个常见的GAN模型及其应用&#xff1a; CycleGAN&#xff1a;用…...

wlan的8种组网方式的区别

1&#xff09;方式一&#xff1a;直连模式 二层组网&#xff08;直接转发/ 集中转发&#xff09; &#xff08;2&#xff09;方式二&#xff1a;直连模式 三层组网&#xff08;集中转发&#xff09; &#xff08;3&#xff09;方式三&#xff1a;旁挂模式 二层组网&#xff08;…...

取消element-ui中账号和密码登录功能浏览器默认的填充色,element-ui登录账号密码输入框禁用浏览器默认填充色问题

标题 问题展示 修改后 <div class="loginForm"><el-formref="formB":model="formDataB":rules="rulesB"class="login-form"label-position="left"><el-form-item prop="userNo" clas…...

Postman:高效的API测试工具

在现代软件开发中&#xff0c;前后端分离的架构越来越普遍。前端开发者与后端开发者之间的协作需要一种高效的方式来测试和验证API接口。在这个背景下&#xff0c;Postman作为一款强大的API测试工具&#xff0c;受到了广泛的关注和使用。 今天将介绍什么是Postman、为什么要使用…...

设计模式-观察者模式(代码实现、源码级别应用、使用场景)

提示&#xff1a;观察者模式的代码实现、观察者模式的使用场景、观察者模式源码级别的应用、观察者模式的优点、 文章目录 前言一、定义二、类图三、代码实现四、应用场景五、源码级别的应用总结 前言 随着时间的推移&#xff0c;我现在越来越感觉自己的代码不够优雅了&#x…...

9种 Vuejs 常用事件修饰符与使用指南

前言 事件修饰符是 Vue.js 中一种特殊的语法标记&#xff0c;通过在事件名称后加上 . 和修饰符名称&#xff0c;可以轻松地修改事件的默认行为。这些修饰符不仅能够提升代码的清晰度&#xff0c;还能够避免一些常见的编程陷阱。Vue.js 提供了一系列事件修饰符&#xff0c;帮助…...

第十四题刮开有奖

这道题还是将我们下载好的附件先查壳 发现无壳且为32位 所以我们用32位的IDA打开 打开后ShftF12发现一串可疑的字符串 我们跟进看看 发现了这个函数 看这里有string数组 首先给了一串七v7 v8v9的数据 下面还有一个函数 我们再跟进一下 发现这大概是前面v7那堆数据的加密方式 我…...

vue3+vite使用dataV后项目运行报错、页面空白问题

Vue 大屏数据展示组件库官网&#xff1a;http://datav.jiaminghi.com/guide/ 我的版本是&#xff1a;“jiaminghi/data-view”: “^2.10.0” 一、dataV引入&#xff0c;看官网也可 // 安装 &#xff08; 我的安装版本 "jiaminghi/data-view": "^2.10.0" …...

PDF 【人工智能白皮书 】【大模型安全实践白皮书】【大模型白皮书】【大模型/深度学习/人工智能原理/心智学习】

【2024 中国人工智能发展白皮书 】【2023 中国人工智能白皮书】【大模型/深度学习/人工智能原理/心智学习】 前言下面所有涉及到的白皮书文件的总下载链接&#xff08;网盘&#xff09;&#xff1a; 2024 人工智能发展白皮书 深圳市易行网数字科技有限公司2024 大模型训练数据白…...

【vue】13.深入理解递归组件

在Vue.js的开发实践中&#xff0c;组件是构建界面的核心概念。而递归组件则是一种特殊的组件&#xff0c;它能够自己调用自己&#xff0c;从而创造出无限嵌套的界面结构。本文将带你了解递归组件的应用&#xff0c;以及如何在Vue中实现和使用它。 一.什么是递归组件&#xff1f…...

【OFDM】OFDM Radar Algorithms in Mobile Communication Networks

[1] Maximum Likelihood Speed and Distance Estimation for OFDM Radar 1-CRB估计 1-初步形式 首先单频信号频率估计的CRB,也就是原文Eq.(3.53) v a r [ ω ^ ] ≥ 6 σ N 2 ( N 2 − 1 ) N \mathrm{var}[\hat{\omega}]\geq\frac{6\sigma_N^2}{(N^2-1)N} var[ω^]≥(N2−…...

如何检测java中的内存泄露及溢出,并预防?

引言 在Java开发中,内存管理是一个至关重要的方面。尽管Java有垃圾回收机制,但开发者仍然需要关注内存泄漏和溢出的问题。 内存泄漏会导致应用程序的性能下降,甚至崩溃,而内存溢出则会导致Java虚拟机(JVM)抛出OutOfMemoryError异常。 本文将探讨如何检测Java项目中的内…...

kafka 如何减少数据丢失?

大家好&#xff0c;我是锋哥。今天分享关于【kafka 如何减少数据丢失?】面试题&#xff1f;希望对大家有帮助&#xff1b; kafka 如何减少数据丢失? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Apache Kafka 是一个高吞吐量的分布式消息队列&#xff0c;广泛用…...

CTF-PWN: 虚表(vtable)

vtable vtable&#xff08;虚表&#xff0c;virtual table&#xff09;是面向对象编程中的一个关键概念&#xff0c;主要用于实现多态性&#xff08;polymorphism&#xff09;。它是一种数据结构&#xff0c;通常是一个指针数组&#xff0c;包含了类的虚函数&#xff08;virtu…...

Redis 集群 总结

前言 相关系列 《Redis & 目录》&#xff08;持续更新&#xff09;《Redis & 集群 & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Redis & 集群 & 总结》&#xff08;学习总结/最新最准/持续更新&#xff09;《Redis & 集群…...

2024校园交友系统构建指南/保姆版教程与技巧uniapp+php支持二开

一、建构技巧 1.前后端分离:采用前后端分离的开发模式&#xff0c;有助于提升开发效率&#xff0c;降低维护成本。前端专注于用户界面和交互体验&#xff0c;后端专注于业务逻辑和数据处理。 2.数据安全与隐私保护&#xff1a;实现细粒度的用户权限控制&#xff0c;确保用户数…...

如何高效为离线音乐库批量下载同步歌词:LRCGET工具全解析

如何高效为离线音乐库批量下载同步歌词&#xff1a;LRCGET工具全解析 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否拥有大量本地音乐文件却苦于…...

告别Let‘s Encrypt:用开源XCA构建私有CA,签发全站浏览器信任的SSL证书

1. 为什么你需要私有CA&#xff1f; 每次看到浏览器里那个"不安全"的红色警告&#xff0c;我就浑身难受。以前我也和大家一样用Lets Encrypt&#xff0c;直到有次紧急发布时遇到证书续期失败&#xff0c;整个团队熬夜排查到凌晨三点。从那天起&#xff0c;我就开始研…...

AI智能体技能栈构建:基于Claw与Hermes框架的模块化实践

1. 项目概述&#xff1a;构建我的AI智能体技能栈最近在折腾AI智能体&#xff08;Agent&#xff09;的开发&#xff0c;特别是围绕Claw和Hermes这两个框架。如果你也对这个领域感兴趣&#xff0c;想打造一个能处理复杂任务、拥有多种技能的智能助手&#xff0c;那么我整理的这个…...

OpenClaw集成xAI Grok模型:一键配置与API兼容性解析

1. 项目概述&#xff1a;为OpenClaw解锁xAI Grok模型支持 如果你和我一样&#xff0c;既是OpenClaw的忠实用户&#xff0c;又对xAI推出的Grok系列模型&#xff08;特别是Grok 4.1&#xff09;的强大推理能力垂涎已久&#xff0c;那么之前肯定也卡在了同一个地方&#xff1a;Ope…...

别再被Linux的free命令骗了!手把手教你读懂‘可用内存’和‘实际空闲内存’的区别

别再被Linux的free命令骗了&#xff01;手把手教你读懂‘可用内存’和‘实际空闲内存’的区别 刚接触Linux服务器管理时&#xff0c;看到free -m输出里那个触目惊心的"free"数值&#xff0c;我的第一反应是&#xff1a;"天哪&#xff0c;内存快用完了&#xff0…...

FABRK全栈框架:模块化设计与AI辅助开发实战解析

1. 项目概述&#xff1a;一个为AI时代而生的全栈开发框架如果你和我一样&#xff0c;在过去几年里反复搭建过各种SaaS应用、管理后台或者数据看板&#xff0c;你一定会对那种重复劳动感到厌倦。每次新项目启动&#xff0c;都要重新配置身份验证、集成支付、设计仪表盘组件、处理…...

小白/程序员必备!收藏这份大模型AI学习资料,抓住高薪职业赛道!

小白/程序员必备&#xff01;收藏这份大模型AI学习资料&#xff0c;抓住高薪职业赛道&#xff01; 随着AI技术发展&#xff0c;AI人才需求激增&#xff0c;薪资待遇飙升。本文针对小白和程序员学习大模型AI的三大难题&#xff1a;缺乏理论、资源受限、底层逻辑难懂&#xff0c;…...

HoRain云--PHP安全插入MySQL数据指南

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...

感应照明技术:从工业到家用,一场技术降维的工程冒险

1. 项目概述&#xff1a;当感应照明技术走进寻常百姓家最近在整理一些老旧的行业资料时&#xff0c;翻到了2014年的一则新闻&#xff0c;讲的是当时一家初创公司“Finally Light Bulb Company”宣布要推出一款售价低于10美元的感应灯泡&#xff0c;用来替代传统的白炽灯。这让我…...

初创公司如何构建高效董事会:从法律合规到战略增长引擎

1. 创业公司的董事会&#xff1a;从法律义务到增长引擎对于很多初次创业的创始人来说&#xff0c;“董事会”这个词听起来可能既遥远又麻烦。它像是公司法条里一个冷冰冰的规定&#xff0c;或者是在融资时不得不向投资人妥协、让渡控制权的象征。尤其是在公司刚起步、团队只有三…...