首页 > 解决方案 > Quicksight:填补缺失的日子

问题描述

我们有显示值随时间变化的原始数据(在我们的示例中,每个“机器”)。如果值(“not_processed”列)在某一天发生了变化,则有一行。

我假设许多其他人在处理随时间变化的数据时也有类似的需求。如果可能的话,我们想选择选项 1。如果这不起作用,那么我们可能被迫选择选项 2。

我们的计划:选项 1。
我们希望有一个 Quicksight 数据透视表来显示随时间的变化。所有日子都没有单独的记录。因此,逻辑应该是在数据透视表中应考虑先前的给定值。

这是 RAW DATA 的样子以及我们希望数据透视表的样子的示例 在此处输入图像描述

Quicksight 端有什么方法可以处理这种情况并提供如上例所示的数据透视表?

备份计划:选项 2
当然,一种选择是每天创建一行并将机器作为 RAW DATA。换句话说,在 RAW DATA 中填写缺失的天数。但是,这意味着我们必须创建许多类似的记录才能让 Quicksight 报告正常工作。数据量会增加很多。

如果我们被迫执行这个计划,最好有某种工具来“扩展”我们的原始数据。

AWS 端是否有任何工具可用于在 RAW DATA 中“填补缺失的日子”?如果是这样,怎么做?任何样品都会非常有益。

编辑如果我在 Quicksight 枢轴上添加数据,它不会显示缺失的天数。看: 在此处输入图像描述

标签: amazon-quicksight

解决方案


[编辑:由于新信息,此解决方案需要先决条件]

您可以使用选项 1 并创建一个数据透视表。要使数据透视表起作用,您必须至少选择一列(在您的情况下是机器)并选择数据透视表图标。

AWS 官方博客上的更多详细信息。

[先决条件]

该文件需要包含丢失的数据才能使数据透视表按预期工作。选项 2some tool from AWS用于执行此操作。用于插入缺失数据的运行脚本(在 pandas、petl 等中)的工具可以是

  • 具有任何受支持运行时的 AWS Lambda ,安排在晚上 11:55。
  • 如果数据非常大,AWS Glue(计划)和 PySpark。
  • 计划的 ECS Fargate(支持任何运行时,由于 docker),用于可能需要超过 15 分钟来处理的中等数据大小(Lambda 超时)

我不会推荐任何这些,因为会有开发开销,并且您必须将文件保留在 S3 上(如果它们现在不在上面)。

推荐:您可以简单地更新您的代码以检查为该机器添加的最后一行是否是最后一天,如果没有在添加当天记录之前为所有缺失的天添加虚拟行。如果文件为空,您必须在配置中包含开始日期。


推荐阅读