用途:该技能提供数据查询的性能优化规则,核心目标是减少返回数据量与传输负载,避免拉取完整数据集(尤其是十万行以上的大表)。
主要能力:
- 禁止全量获取:任何情况下都不要拉取完整数据集,应使用带列选择的定向查询,字段映射到具体可视化需求。
- 聚合策略优先级:最优为服务端 .groupBy() 聚合;次优为只选择必要列后在客户端聚合;可接受为多列选择后客户端聚合;最差为选择全部列。
- 每张图一个查询:每个可视化使用独立的优化查询,而非一次拉取全部数据再在客户端计算。
- 列选择策略:显式指定列,不要调用不带参数的 .select()(会拉取所有列);聚合时只选择分组列加聚合列。
- 常见模式:无分组的总量统计(选必要列后客户端求和);带过滤的计数(只选计数所需列);去重计数(只选目标列)。
使用方式:
- 优先使用 .groupBy() 配合聚合,如 .groupBy('region', { 'Sales_Amount': 'sum' })。
- 若无法服务端聚合,使用 .select() 限定列后客户端处理。
- 报告指出 .aggregate() 实际不可用,会触发错误 DA0057: An alias list was provided but it could not be parsed,应改用 .groupBy() 或客户端聚合替代。
- .groupBy() 必须提供分组列,不能只传聚合。
适用场景:需要按可视化组织数据查询、控制 payload 大小、降低大表查询延迟的前端与数据查询开发。
限制:资料未提供具体平台与版本兼容信息;.aggregate() 的失败原因未详述;分页与过滤仅为建议方向,未给出实现细节。