前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何定位10TB数据查询错误?

如何定位10TB数据查询错误?

作者头像
公众号guangcity
发布2024-01-23 15:49:43
640
发布2024-01-23 15:49:43
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

问题:在SQL执行引擎侧对sort做了一些优化,集群机器从23台缩容18台之后,这个sql运行后出现了结果错误的问题,在原来23台以及其他规模的集群场景下没任何问题,数据出来不对了,幸亏这是个测试场景,于是便可以出debug包进行调试。 ​ ​思路:其中几个关键点。 ​ ​第一:数据不一致,这里指的是优化后的向量化执行引擎与优化前的向量化执行引擎的结果对比。 第二:集群规模发生了变更。 ​ ​所以基于这两点进行分析。 ​ 1.​首先通过debug包捞出计算后的数据,如果符合预期那么优化前后的数据应该是匹配的,数据规模是10TB,数据行数大约是1.3亿条,抓取多少条能分析出问题是一个比较重要的参数,于是设置了200进行对比,其结果如下:

图中左侧为正常数据,右侧为错误数据,可以看到的是丢了中间一部分数据,其余数据完全是对的,从sort算法的优化逻辑上来看,算法的bug率比较低。所以可以先pass掉优化算法问题,应该是下游数据输入问题?带这这个问题继续深入。

2.继续看第二点集群规模发生了变更,这导致了一个问题,plan发生了变更,由于这个优化功能是有开关的,如果下游的sort也走了这个优化就异常了,果不其然,集群缩容之后,plan下游多了一个sort,这个测试功能被异常进入,导致数据异常,这里恰好验证了前面的想法:数据输入侧有问题!

经过两个关键点的分析,快速改了一版,验证后,数据恢复正常。本次调试在10TB数据规模下才复现的问题着实令人棘手,不过还能怎么办呢?当攒点经验吧。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档