在group by分组的时候,某个key过多导致数据倾斜

news2024/12/26 22:21:40

解决方案:将 key 打散,给 key 增加随机前缀

在进行 group by 之前,先给每个 user_id 增加一个随机前缀,使得原本相同的 user_id 被打散到不同的分组中。

按带前缀的 key 进行分组

对带有随机前缀的 user_id 进行分组和聚合。

去掉前缀后再分组

在第一步的基础上,去掉前缀,再进行一次分组和聚合,得到最终的结果。

插入数据:

CREATE TABLE t_table (
  id INT,
  key STRING,
  value INT
);

INSERT INTO t_table VALUES
(1, 'A', 1),
(2, 'B', 2),
(3, 'A', 3),
(4, 'A', 4),
(5, 'C', 5),
(6, 'D', 6),
(7, 'A', 7),
(8, 'E', 8),
(9, 'F', 9),
(10, 'A', 10);

select *
from t_table;

添加随机前缀:

去掉前缀查询:

select substr(new_key,5) as ori_key,total_value
from (SELECT concat(substr(md5(key),1,4),key) AS new_key, SUM(value) AS total_value
FROM t_table
GROUP BY concat(substr(md5(key),1,4),key)) t1 ;

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

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

相关文章

重要涉密文件如何防窃取?四个方法有效防止文件泄密【文件保密管理】

随着信息化时代的发展,数据安全问题变得日益突出,特别是对于一些重要的涉密文件,其泄密将带来严重后果。因此,企业和个人在处理机密文件时,必须采取有效的措施来防止文件被窃取。 小编在本文将介绍四个有效的方法&…

三招教你搞定GPU服务器配置→收藏推荐配置

在AI人工智能应用日益渗透各行各业的今天,图形处理器(GPU)市场呈现出蓬勃发展的态势,其中GPU服务器市场更是炙手可热,其热度始终居高不下。随着人工智能、深度学习、大数据分析等前沿领域的不断拓展与深化,…

python+matplotlib 画一个漂亮的折线统计图

pythonmatplotlib 画一个漂亮的折线统计图 有详细的注释说明…… import matplotlib.pyplot as plt import numpy as np import mathdef draw_line_chart(Line_data_list,title,pic_name)::param Line_data_list: 折线数据源:param title: 图表名称:param pic_name: 保存图片名…

免费!OpenAI发布最新模型GPT-4o mini,取代GPT3.5,GPT3.5退出历史舞台?

有个小伙伴问我,GPT-4O mini是什么,当时我还一脸懵逼,便做了一波猜测: 我猜测哈,这个可能是ChatGPT4o的前提下,只支持文本功能的版本,速度更快 结果,大错特错。 让我们一起看看Open…

理解高并发

文章目录 1、如何理解高并发2、高并发的关键指标3、高并发系统设计的目标是什么?1_宏观目标2_微观目标1.性能指标2.可用性指标3.可扩展性指标 4、高并发的实践方案有哪些?1_通用的设计方法1.纵向扩展(scale-up)2.横向扩展&#xf…

【隐私计算】Cheetah安全多方计算协议-阿里安全双子座实验室

2PC-NN安全推理与实际应用之间仍存在较大性能差距,因此只适用于小数据集或简单模型。Cheetah仔细设计DNN,基于格的同态加密、VOLE类型的不经意传输和秘密共享,提出了一个2PC-NN推理系统Cheetah,比CCS20的CrypTFlow2开销小的多&…

数据结构—线性表和顺序表

线性表: 线性表是一个由n个具有相同特性的数据元素构成的有限序列。常用到的线性表都有:链表、队列、栈、顺序表.... 顺序表: 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构(顺序表的元素类型是包装类&#x…

[苍穹外卖]-10WebSocket入门与实战

WebSocket WebSocket是基于TCP的一种新的网络协议, 实现了浏览器与服务器的全双工通信, 即一次握手,建立持久连接,双向数据传输 区别 HTTP是短连接, WebSocket是长连接HTTP单向通信, 基于请求响应模型WebSocket支持双向通信 相同 HTTP和WebSocket底层都是TCP连接 应用场景…

Android 通过相机和系统相册获取图片,压缩,结果回调

一、需求背景 在常规的App开发中,很多时候需要用户上传图片来进行一些业务上的实现,例如用户反馈,图片凭证等。 二、实现功能 1.选择弹窗(即选择拍照或者相册) 2.申请权限(相机权限) 3.相机…

油耳用什么掏耳朵比较好?可视挖耳勺推荐平价

掏耳朵是一个轻松又舒服的感觉,很多人就会用棉签和普通耳勺越掏越进,在盲掏的过程中容易弄伤耳膜。所以我们在掏耳时要选好工具。市面上的智能可视挖耳勺,顶端带有摄像头,可以通过清楚的观察到耳道中的情况。但现在市面上关于可视…

【Unity学习心得】如何使用Unity制作“饥荒”风格的俯视角2.5D游戏

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、需要导入的素材二、要实现的步骤 俯视角2D人物移动控制2.5D风格的实现使用协程实现相机绕玩家旋转效果总结 前言 由于要找工作开始重新拾起学习Unity&#…

系统资源智能管理:zTasker软件的监控与优化

在创新的引领下,科技不断迭代升级,为我们应对快节奏生活的挑战提供了强大的工具。它让我们在协调工作与家庭的同时,也能保持内心的宁静与平衡——而自动化工具的出现,正是科技力量在提升工作效率和生活质量方面的体现。zTasker&am…

System.out源码解读——err 和 out 一起用导致的顺序异常Bug

前言 笔者在写一个小 Demo 的过程中&#xff0c;发现了一个奇怪的问题。问题如下&#xff1a; // 当 flagtrue 时打印 a1 &#xff1b;当 flagfalse 时打印 a2。 public static void main(String[] args) {boolean flag false;for (int i 0; i < 10; i) {if (flag) {Sys…

AI 与大模型如何助力金融研发效能最大化?

在金融行业&#xff0c;技术创新与严格合规的需求并行存在&#xff0c;推动着研发团队不断寻求更高效的解决方案。面对日益增长的市场竞争和技术进步&#xff0c;金融机构必须迅速适应变化&#xff0c;同时确保所有创新措施都符合监管要求。这种需求催生了对高效研发流程和先进…

深入掌握:如何进入Docker容器并运行命令

感谢浪浪云支持发布 浪浪云活动链接 &#xff1a;https://langlangy.cn/?i8afa52 文章目录 查看正在运行的容器使用 docker exec 命令进入容器进入容器的交互式 shell在容器中运行命令 使用 docker attach 命令附加到容器检查容器日志退出容器从 docker exec 方式退出从 docke…

趣味SQL | 从围棋收官到秦楚大战的数据库SQL语言实现

目录 0 前言 1 秦孝公大战商鞅 2 收官类型与城池特征 3 收官顺序与攻城策略 4 秦孝公展示SQL神功 5 写在最后 欲知后事如何&#xff0c;想进一步了解SQL这门艺术语言的&#xff0c;可以订阅我的专栏数字化建设通关指南&#xff0c;且听下回分解。专栏 原价99&#xff0c…

MacBook上怎么查找历史复制记录?

你是否经常遇到这样的情况:做内容或方案时,需要用到素材就去找,找到后回来粘贴,然后再去找,再回来粘贴?这个过程是不是很繁琐? 那么找到的素材要不要保存下来呢?每个都存成文件似乎太麻烦了。但如果不单独保存,过两天想再利用又找不到了,怎么办? 在网上看到的一段好文案、…

解锁头条创作新纪元:文字游侠AI工具助你解放双手 ,一键生成爆文!

如今&#xff0c;自媒体创作早已不再是专业人士的专属领地&#xff0c;而是成为了普通人轻创首选的新途径。然而&#xff0c;对于许多想要通过自媒体创业的朋友来说&#xff0c;创作内容的难度和耗时却成为了不可忽视的障碍。 今天&#xff0c;为大家揭秘一款颠覆性的AI写作神…

【附源码】用Python开发一个音乐下载工具,并打包EXE文件,所有音乐都能搜索下载!

现在听个歌&#xff0c;不是要这就是要那&#xff0c;乱七八糟的&#xff0c;下软件都下不赢。 于是决定加班熬夜来做一个&#xff0c;想怎么听就怎么听&#xff0c;大家自己看到就好&#xff0c;悄悄用&#xff0c;别告诉别人哈~ 好了不闲聊&#xff0c;开整&#xff01; 首先…

新书速览|循序渐进Vue.js 3.x前端开发实践

《循序渐进Vue.js 3.x前端开发实践》 本书内容 《循序渐进Vue.js 3.x前端开发实践》由一位拥有丰富前端开发经验的架构师撰写&#xff0c;旨在通过详尽的理论知识讲解和丰富的实践练习&#xff0c;帮助初学者深入掌握Vue.js框架&#xff0c;并能够独立开发商业级别的Web应用程…