【问题标题】:AWS IoT Analytics queries for retrieving data from dataset using boto3使用 boto3 从数据集中检索数据的 AWS IoT Analytics 查询
【发布时间】:2019-04-02 02:30:07
【问题描述】:

我们可以在从 AWS IoT Analytics 的数据集中检索数据时使用查询吗?我想要两个时间戳之间的数据。我使用 boto3 来获取数据。我没有看到在获取数据集内容中使用查询的任何选项下面是 boto3 代码: response = client.get_dataset_content( datasetName='string', versionId='string' )

有没有人建议如何使用查询或如何在 AWS IoT Analytics 中检索两个时间戳之间的数据?

谢谢, 潘卡伊

【问题讨论】:

    标签: amazon-web-services aws-iot aws-iot-analytics


    【解决方案1】:

    坦率地说,最简单的方法是自己进行时间过滤(get_dataset_content 的结果是一个 csv 文件)。

    这就是 QuickSight 所做的,可让您及时导航数据集。

    如果这不可行,则替代方法是重新处理数据存储,使用更新的管道过滤除您感兴趣的时间范围以外的所有内容(更多信息here)。您应该注意,虽然对StartPipelineReprocessing 使用startTimeendTime 参数很有吸引力,但它们只是近似于最接近的小时。

    【讨论】:

    • 谢谢。是的,我将 csv 文件转换为 json 字符串格式。现在需要按时间戳过滤
    • 我应该补充一点,有第三方软件可以帮助您可视化您的 AWS IoT 数据 - 我为其中一个软件工作,它有一个免费套餐:devicepilot.com
    【解决方案2】:

    可能有几种方法可以做到这一点,具体取决于您的工作流程,如果您有更多详细信息,那将很有帮助。

    可能的方法是;

    1) 创建一个计划查询,以每小时运行一次(例如),查询看起来像这样;

    SELECT * FROM my_datastore WHERE __dt >= current_date - interval '1' day
    AND my_timestamp >= now() - interval '1' hour
    

    您可能需要调整时间戳的格式以适应您的存储方式(纪元秒、纪元毫秒、ISO8601 等)。如果您将其设置为每小时运行一次,则每次执行时,您将获得最后一小时的数据。请注意,__dt 约束仅通过将扫描限制在最近一天来帮助您的查询运行得更快(更便宜)。

    2) 您可以通过使用数据集的 delta 窗口函数来改进上述内容,它可以让您更轻松地获取自上次运行查询以来到达的数据。然后,您可以简化查询,使其看起来像;

    select * from my_datastore where __dt >= current_date - interval '1' day
    

    并配置增量时间窗口以查看您的时间戳字段。然后,您可以通过执行查询的频率(每 15 分钟、每小时等)控制检索多少数据。

    3) 如果您有更通用的要求来获取您正在以编程方式计算的 2 个时间戳之间的数据,并且可能不是 now() 的形式 - 某个间隔,您可以这样做的方法是创建一个数据集,然后使用修改后的 SQL 表达式更新数据集,然后使用 create-dataset-content 运行它。这样,数据集内容就会更新为每次执行所需的结果。如果对此感兴趣,我可以扩展实际所需的 python。

    4) 正如 Thomas 所建议的,使用数据集提取更大的数据块(例如最后一天)通常同样容易,然后过滤到代码中所需的时间戳。例如,如果您使用 panda dataframes 并且有很多相关问题(例如 this one)都有很好的答案,这将特别容易。

    【讨论】:

    • 感谢 Roger 的帮助,我从数据集中提取数据并在代码中使用时间过滤器。我的时间戳过滤器将在几天或几个月内,它会根据用户而有所不同,因此最好在我的代码中使用过滤器。正如你在第 3 点中提到的那样)我做了同样的事情并且它奏效了。
    猜你喜欢
    • 1970-01-01
    • 2019-07-09
    • 2022-12-12
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    相关资源
    最近更新 更多