如何在Amazon QuickSight中展示数据表列的新旧值以作对比?
AWS Glue与QuickSight相关问题解答
1. QuickSight展示数据新旧值对比是否可行?
不可行。当前你的Glue爬虫逻辑是直接覆盖原表数据——每次更新CSV并重新爬取后,旧值会被新值完全替换,Glue数据目录中仅保留最新版本的数据,QuickSight只能读取到当前的最新表内容,没有历史数据可用于新旧值对比。
若要实现该需求,需调整数据存储与爬取逻辑:
- 保留历史数据文件:不要覆盖原CSV,给每个版本的文件添加时间戳后缀(如
rds_cost_202405.csv、rds_cost_202406.csv),让Glue爬虫将这些文件合并到同一张表中,同时新增更新时间字段标识数据版本。 - 借助版本化存储方案:使用AWS Glue数据版本控制功能,或同步数据到支持版本存储的数据源(如Amazon Athena分区表、Amazon RDS),留存每次更新的历史记录。
完成调整后,在QuickSight中可通过更新时间字段关联同一账号/服务的新旧数据,甚至通过计算字段拼接成“此前为X%,现为Y%”的格式展示对比结果。
2. 每次更新CSV创建单独数据表是否合理?
完全不合理。上千张表会引发诸多问题:
- 维护成本剧增:手动管理、问题排查、权限配置都会变得异常繁琐。
- QuickSight性能下滑:多表关联或批量导入时,查询速度会大幅变慢,仪表盘加载延迟严重。
- 数据冗余混乱:重复的表结构会浪费存储资源,还容易出现数据不一致的情况。
更合理的方案是:
- 采用分区表模式:以月份(或更新时间)作为分区键,将不同月份的CSV数据导入同一张表的对应分区,Glue爬虫可自动识别分区并完成更新。
- 统一数据格式:确保所有CSV的列结构一致,让爬虫能将所有数据合并到同一张表,避免表数量膨胀。
- 添加版本标识字段:在数据中新增
月份或更新批次字段,后续在QuickSight中通过字段筛选即可对比不同月份的成本差异。
内容的提问来源于stack exchange,提问作者qabootar
相关产品推荐
相关产品推荐

