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

网站开发最佳实践wordpress连接公众号

网站开发最佳实践,wordpress连接公众号,做视频的教学直播网站,英文外贸网站制作校招面试经常会问大家有没有过调优的经验,相信大家的回答基本都是往数据倾斜和小文件问题这两方面回答,对于数据倾斜相信大部分同学对热key打散或null值引发的倾斜已经非常熟悉,但这些内容面试官也是听腻了,希望大家在面试时候讲一…

校招面试经常会问大家有没有过调优的经验,相信大家的回答基本都是往数据倾斜和小文件问题这两方面回答,对于数据倾斜相信大部分同学对热key打散或null值引发的倾斜已经非常熟悉,但这些内容面试官也是听腻了,希望大家在面试时候讲一些高大尚的案例,在描述的时候一定要有背景,有解决方案,最后结果,毕竟数据倾斜不会无故产生,一定是有业务背景的,这里给大家分享一种数据倾斜优化案例。

图片

1.Uid和oaid之间的转化

在用增的拉新拉回业务中,经常会用到oaid来识别具体的设备是不是公司用户,所以我们需要将uid→oaid,需求目的:找到当日拉新的uid对应的oaid映射关系

代码如下:

  • 1.从id mapping表中找出uid→oaid的映射关系;

  • 2.根据最后一次活跃时间对uid→oaid映射关系去重;

  • 3.将算法提供的uid人群圈选出对应的oaid。

原来的sql

selectt1.user_id,oaid_md5
from(selectL.uid user_id,md5(L.oaid) oaid_md5from(selectdistinct uid,oaidfrom(selectuid,oaid,row_number() over (partition by oaidorder bycast(last_active_timestamp as bigint) desc) as rnfromidmapping as GwhereG.p_date = '20250324'and G.left_type = 'USER_ID'and G.right_type = 'OAID') ttwherett.rn = 1) as Lleft join (selectidfromzuobishebei -- 作弊设备wherep_date = '{{ds_nodash}}'and supplier = 'cheat') as P on (md5(L.oaid) = P.id)whereP.id is null) t2join (SELECTuser_idFROMlist_ground_truthWHEREp_date = '20250324') t1 on t1.user_id = t2.user_id

粗略一看,符合正常计算流程和顺序,但这段sql出现了明显的数据倾斜。

图片

经过排查代码中有两块可能引起倾斜,一个是join,一个row number,先查询一下uid→oaid映射情况,发现部分的uid映射过10亿多的oaid,导致在去重的时候发生了数据倾斜。

图片

解决方案

  • 1.使用过滤条件和分组操作减少数据量;

  • 2.通过调整连接顺序和提前应用过滤条件,减少了中间数据量;

  • 3.如果倾斜仍然存在,考虑对倾斜字段进行分区或使用 broadcast join 来进一步优化。

优化后:

SELECTuser_id,md5(paid) AS oaid
FROM(SELECTuser_id,paid,ROW_NUMBER() OVER (PARTITION BY user_idORDER BYCAST(last_active_timestamp AS BIGINT) DESC) AS rnFROM(SELECTt1.user_id,t2.paid,t2.last_active_timestampFROM(SELECTuser_idFROMlist_ground_truthWHEREp_date = '20250324') t1JOIN (SELECTuid,oaid,G.last_active_timestampFROMidmappingGWHEREG.p_date = '20250324'AND G.left_type = 'USER_ID'AND G.right_type = ‘ OAID ’GROUP BYG.left_value,G.right_value,G.last_active_timestamp) t2 ON t1.user_id = t2.uid) t3) t1
WHERErn = 1

原始脚本和优化后的脚本在逻辑上保持一致,但重点在于先jion较小的表(idmapping和 list_ground_truth),在进行row number,这样可以在join时先走map join同时减少row number执行的数据量。

http://www.dtcms.com/a/561063.html

相关文章:

  • 数据库-基础命令
  • 蚌埠做企业网站wordpress外网访问不了
  • Linux网络接口配置:静态IP与动态IP设置(附代码示例)
  • 做同城特价的网站qwins是哪个网站做的
  • 基础算法精讲 03 | 滑动窗口|ASCII表如如何使用|substr函数
  • 中国建设银行官网首页 网站首页网站文件目录结构
  • GitHub Actions for AI:构建企业级模型CI/CD流水线
  • DevOps——CI/CD持续集成与持续交付/部署的理解与部署
  • 建立网站的公司平台七牛云存储 wordpress连接失败
  • 利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
  • 深圳网站设计网站制作深圳网站建设推进
  • 电力电子技术 第十三章——PWM逆变器
  • 网站建设方案应该怎么写wordpress用户评论图片
  • xtuoj 2021
  • 数据科学每日总结--Day8--数据挖掘
  • 达梦DEM监控工具部署
  • 机器学习实践项目(二)- 房价预测 - 认识数据
  • 李宁运动服网站建设规划书网站内链少改怎么做
  • 安装JDK安装GIT安装IDEA
  • 定制报表系统设计与实现
  • 最具价值的网站建设商业策划公司十大公司
  • 网站开发设计公东莞智通人才招聘网官网
  • 【BFS 解决FloodFill 算法】3. 岛屿的最⼤⾯积(medium)
  • 【JUnit实战3_23】 第十四章:JUnit 5 扩展模型(Extension API)实战(上)
  • python_study--week3
  • 【Excalidraw】简洁好看的超轻量级画图白板
  • 手写Autosar架构的CAN通讯协议栈2(CanIf模块详解-上)
  • 【Agentic RL 专题】三、深入浅出强化学习算法 TRPO 和PPO
  • 中国最好的建站公司毕业设计模板
  • 《算法通关指南:数据结构和算法篇 --- 栈相关算法题》--- 1. 【模板】栈,2.有效的括号