amazon-web-services - AWS IoT Analytics 增量窗口

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

我在让 AWS IoT Analytics Delta Window ( docs ) 正常工作时遇到了实际问题。

我正在尝试将其设置为每天运行一个查询以仅获取最后 1 小时的数据。根据文档,schedule 功能可用于使用 cron 表达式运行查询(在我的情况下每小时一次),并且 delta window 应将我的查询限制为仅包含指定时间窗口内的记录(在我的例子中是最后一小时)。

我正在运行的 SQL 查询只是SELECT * FROM dev_iot_analytics_datastore,如果我不包含任何增量窗口,我将按预期获得记录。不幸的是,当我包含增量表达式时,我什么也得不到(永远)。我将数据积累了大约 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 天内。即在给定日期内输入的所有值都具有相同的值(例如 2019-05-15 00:00:00.00)

我尝试了标准 SQL 和 Presto 中的一系列表达式(包括建议的 AWS 表达式),因为我不确定此查询使用的是哪一个。我知道他们使用 Presto 的一个子集进行分析,因此他们将其用于增量是有道理的,但文档只是说“...任何有效的 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_unixtime(my_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 between ...) 只是限制扫描分区的优化。您可以将其删除以进行故障排除。

关于amazon-web-services - AWS IoT Analytics 增量窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144542/

相关文章:

java - AWS : Feature flag configurations must be accessed via AWS AppConfig Data's GetLatestConfiguration API

node.js - NodeJS 和 AWS SQS

node.js - 为 Amazon ApiGateway 中的 URI 指定的 HTTP 端点无效

csv - 使用COPY命令的Redshift错误1202 “Extra column(s) found”

grails - Elastic Beanstalk->使用Grails的RDS连接错误

amazon-web-services - AWS Cloudformation IoTAnalytics ServiceManagedS3 YAML