Amazon web services AWS物联网分析增量窗口

Amazon web services AWS物联网分析增量窗口,amazon-web-services,aws-iot-analytics,Amazon Web Services,Aws Iot Analytics,我在让AWS物联网分析Delta窗口工作时遇到了实际问题 我正在尝试设置它,以便每天运行一个查询,只获取最后1小时的数据。根据文档,时间表功能可用于在我的案例中每小时使用cron表达式运行查询,增量窗口应限制我的查询仅包括在我的案例中最后一小时的指定时间窗口中的记录 我正在运行的SQL查询只是从dev_iot_analytics_数据存储中选择*,如果我不包括任何增量窗口,我会按预期获得记录。不幸的是,当我包含一个delta表达式时,我什么也得不到。我让数据积累了大约10天,所以数据库中有几百万

我在让AWS物联网分析Delta窗口工作时遇到了实际问题

我正在尝试设置它,以便每天运行一个查询,只获取最后1小时的数据。根据文档,时间表功能可用于在我的案例中每小时使用cron表达式运行查询,增量窗口应限制我的查询仅包括在我的案例中最后一小时的指定时间窗口中的记录

我正在运行的SQL查询只是从dev_iot_analytics_数据存储中选择*,如果我不包括任何增量窗口,我会按预期获得记录。不幸的是,当我包含一个delta表达式时,我什么也得不到。我让数据积累了大约10天,所以数据库中有几百万条记录。鉴于我不确定最佳格式是什么,我在条目中包含了以下时间字段:

datetime  :  2019-05-15T01:29:26.509
(A string formatted using ISO Local Date Time)

timestamp_sec  :  1557883766
(A unix epoch expressed in seconds)

timestamp_milli  :  1557883766509
(A unix epoch expressed in milliseconds)

AWS还自动添加了一个名为_dt的值,该值使用与我的datetime相同的格式,但似乎精确到1天之内。i、 e.给定日期内输入的所有值具有相同的值,例如2019-05-15 00:00:00.00

我尝试了一系列表达式,包括来自标准SQL和Presto的建议AWS表达式,因为我不确定该查询使用哪一个表达式。我知道他们使用Presto的一个子集进行分析,所以他们将其用于delta是有意义的,但文档只是说“。。。任何有效的SQL表达式'

到目前为止,我尝试过的表达方式都不走运:


from_unixtime(timestamp_sec)
from_unixtime(timestamp_milli)
cast(from_unixtime(unixtime_sec) as date)
cast(from_unixtime(unixtime_milli) as date)
date_format(from_unixtime(timestamp_sec), '%Y-%m-%dT%h:%i:%s')
date_format(from_unixtime(timestamp_milli), '%Y-%m-%dT%h:%i:%s')
from_iso8601_timestamp(datetime)


您使用的偏移量和时间表达式参数是什么

由于增量窗口是有效地插入到SQL中的筛选器,因此可以通过手动将筛选器表达式插入到数据集的查询中来解决这些问题

即,将具有-3分钟负偏移量和“from_unixtimemy_timestamp”时间表达式的增量窗口过滤器应用于“SELECT my_field from my_datastore”查询将转换为等效查询:

SELECT my_field FROM
    (SELECT * FROM "my_datastore" WHERE
        (__dt between date_trunc('day', iota_latest_succeeded_schedule_time() - interval '1' day)
                  and date_trunc('day', iota_current_schedule_time() + interval '1' day)) AND
        iota_latest_succeeded_schedule_time() - interval '3' minute < from_unixtime(my_timestamp) AND
        from_unixtime(my_timestamp) <= iota_current_schedule_time() - interval '3' minute)

尝试使用一个没有增量时间过滤器的类似查询,并为偏移量和时间表达式提供正确的值,然后查看得到的结果,即_dt在。。。只是限制扫描分区的优化。您可以将其删除以进行故障排除。

请尝试以下操作:

将查询设置为从dev_iot_analytics_数据存储中选择* 数据选择过滤器: 数据选择窗口:增量时间 补偿:-1小时 时间戳表达式:来自\u unixtimestamp\u秒 等待数据集内容运行一段时间,比如15分钟或更长时间。 检查内容
经过几周的测试,尝试了本文中的所有建议,以及更多建议,似乎技术性极强的答案是“关闭并重新打开”。我删除了整个分析堆栈,并用不同的名称重建了所有内容,现在它似乎正在工作


重要的是,尽管由于实际的解决方案,我已将此标记为正确答案。如果我的部署按预期运行,则和提供的答案都是正确的。

您好,我确实希望将增量构建到SQL查询中。此查询将生成最后1小时的数据。从dev_iot_analytics_数据存储中选择*,其中uu dt>=当前日期-间隔“1”天,从unixtimetimestamp>当前时间戳-间隔“1”小时。但是,当添加到增量窗口表达式时,这似乎不起作用。