Article body
正文
摘要:“问数慢”常把问题文本、数据查询、分析生成和数据更新混在同一个等待时间里。团队可先用同一问题建立查询基线,再分别记录首响应、查询基线、完整分析和数据新鲜度,在候选冷暖状态、查询复杂度、并发和刷新竞争下做单变量对照。这样的记录不能替代生产监控,却能让数据团队、业务方和实施人员围绕同一份样本定位问题,并验证直连、加速引擎或聚合数据集是否适合目标负载。
1 把“慢”拆成四项可核查的记录
业务人员发出“本月华东地区退款率为什么上升?”后,看到的是一段连续等待。排查人员需要把这段等待拆开。首响应从点击发送开始,到界面出现首个可见反馈结束;查询基线耗时记录同一指标、时间范围和筛选条件在可复用图表或数据集查询中的执行时间,它只用于对照,不代表 AI 链路内部的查询时间;完整分析从发送问题到得到可阅读结论结束;数据新鲜度则核对结果所用数据与源端业务事件之间的时间差,并记录最近一次成功更新的时间。
这四项记录回答不同问题。查询基线慢,先看数据集、数据源、范围和模型;查询基线正常而完整分析拖长,需要保留问题原文、返回状态和发生时段,交给相关人员核对生成链路;结果很快却落后于业务事件,则检查数据更新节奏。AI 可能为一次“原因”问题发起多次查询,团队应记录可见的查询次数和条件;无法获得的内部时间填“不可得”。不要用单次端到端等待替代这些判断。
先选择两个真实且可脱敏的样本:一个常用、筛选条件少的日常指标,一个包含较长时间范围或更多维度组合的复杂指标。固定指标定义、权限角色、数据集版本、时间范围和浏览器环境。AI 问题应固定措辞;若问题依赖上下文,重新开一个干净会话,避免上轮对话改变条件。
2 先脱离生成链路,建立查询基线
在 AI 问数界面之外,以图表或数据集查询复现同一指标、粒度、过滤条件和排序,重复运行并记录耗时。该操作先确认数据查询本身是否构成瓶颈。性能使用指引说明,仪表盘和图表的刷新会绕过可能存在的缓存并重新下推查询。团队可把“正常重复访问”标为暖态,把首次请求或刷新请求标为候选冷态,同时标记数据集是否导入引擎和是否处在更新窗口。刷新请求不等于清空全栈缓存,它只能构成这一层的对照。HENGSHI SENSE 产品使用性能问题指引也提示,多表联合、数据聚合和数据合并数据集上的聚合型新增字段会放大实时计算成本,嵌套层数也会增加生成代价。
基线记录不需要假设产品提供原生全链路追踪。团队可以用统一计时方法、页面可见状态、查询样本和数据集更新记录完成第一轮归因。若单用户候选冷态和暖态都慢,优先缩小时间范围、维度组合或模型层级后复测;若只有候选冷态慢,记录缓存条件与数据更新时间;若并发上升后尾部样本变慢,继续做受控容量验证。每次只改变一个因素,避免把多项改动归因给某一个设置。
3 用单变量对照复现慢样本
先用少量预跑确认样本可复现,再预先确定正式测试的样本数或持续时长。正式测试报告样本数、持续时间、中位数和 P95(第 95 百分位耗时)。AI 对同一问题的多轮输出可能不同,团队应同时记录问题原文、可见查询次数和条件、输出差异;不可见的内部时间填“不可得”。随后维持同一批问题、相同角色和相同数据范围,只改变候选冷暖状态、查询范围、并发数或更新状态。并发应同时记录发起的查询数、打开的仪表盘页面数和每页图表数,因为这些条件都会影响后端负载。测试期间避免把业务高峰、网络切换和数据模型改版混入样本。
| 对照维度 | 保持不变的条件 | 本轮记录 |
|---|---|---|
| 候选冷态与暖态 | 同一问题、指标、筛选和用户角色 | 首次或刷新请求、正常重复访问、各时间指标 |
| 数据范围与复杂度 | 同一数据集和并发数 | 日期跨度、维度数量、关联或聚合层级、P95 |
| 并发 | 同一问题集、范围、候选冷暖状态 | 同时查询数、成功数、失败数、各时间指标的 P95 |
| 刷新竞争 | 同一查询与并发数 | 更新前、更新中、更新后的耗时和失败信息 |
失败率和 P95 要与样本数一起看。少量样本中的一个超时不足以说明容量上限;多轮中重复出现的尾部变慢,才值得作为容量风险提交。记录中也要写清楚测试是否触及生产高峰,以及是否获得了环境负责人同意。人工压测会占用真实资源,测试人员应控制发起频率,并在异常时停止新增压力。
4 根据证据选择数据路径和预聚合粒度
基线确认查询侧存在压力后,再评估数据路径。HENGSHI SENSE 支持直连与加速引擎:开启引擎会把数据集数据导入引擎,对该数据集的查询直接访问引擎表,并可设置更新计划。导入后,数据集的基本权限以所有者权限为基础,团队需要在测试前复核授权。加速引擎说明同时指出,Hive、Spark、Impala、Presto、MaxCompute 等大数据源不建议大规模导入引擎,应优先考虑直连;关闭引擎前还要核对数据集或指标是否使用了源库不支持、但引擎支持的函数。测试报告应把权限和兼容性条件写入结论,不能把“导入引擎”设为所有慢查询的默认答案。
数据已按稳定粒度反复分析时,团队可以评估聚合数据集。它围绕维度、度量和过滤条件定义预聚合逻辑,把大表收敛为服务分析的小表;创建数据集本身不等于物化落表,查询时仍可能实时计算。需要固化结果时,可在适用场景为该数据集开启加速引擎。数据聚合数据集说明给出了该对象的定义。建模前先写出报表需要下钻到的最低粒度,并逐项核对指标能否向上汇总。去重计数、比率、期末余额和跨期指标不能把下层结果直接相加;团队应保留其计算所需的分子、分母、日期或明细,随后用同一问题集比对口径。
加速路径会引入数据同步条件。源端行数据变化后,导入引擎的数据集需要通过立即更新或更新计划保持时效;更新计划支持调度、前置依赖、重试、优先级和失败告警。数据集更新说明列出了这些配置及全量、增量更新边界。容量测试应把“数据从何时开始可见”与“查询用了多长时间”分开报告,避免用快的旧数据替代新数据。
5 把结果交给能决策的人
测试结束后,报告应包含问题样本、固定条件、每轮唯一变量、样本数、各时间指标的中位数与 P95、失败信息和数据新鲜度。若要比较方案,只比较在同一问题集、同一数据规模和同一并发下的记录。结果足以支持下一步选择:调整数据集模型和范围、复核更新计划,或在适合的场景验证加速引擎与聚合数据集。底层参数、资源规格和容量阈值需要结合部署环境由负责人员评估,不能从一次测试外推。
下列模板用于人工压测和问题复现记录,不是 HENGSHI SENSE 的产品配置或 API。
批次:2026-10-19-01
问题样本:退款率上升原因(脱敏)
固定条件:角色 / 数据集版本 / 指标粒度 / 时间范围
固定运行状态:暖态;无更新竞争
唯一变量:并发从 1 升至 5
样本数:__;成功:__;失败:__
首响应(毫秒):中位数 __;P95 __
查询基线(毫秒):中位数 __;P95 __
完整分析(毫秒):中位数 __;P95 __
数据新鲜度:源端事件时间 __;最近成功更新 __
异常与处置:__
这份记录把“用户觉得慢”转成能复验的条件和数据。实施、数据和业务负责人据此复测后,再决定改动范围,并保留改动前后的同条件样本。