Azure Stream Analytics输入会损坏包含时区信息的字符串

Azure Stream Analytics输入会损坏包含时区信息的字符串,azure,stream,analytics,timestamp-with-timezone,asa,Azure,Stream,Analytics,Timestamp With Timezone,Asa,我正在使用Azure事件中心收集基于时间的事件。已将Azure Stream Analytics(ASA)连接到it 这将导致ASA级别的时区信息丢失 我所确定的是: 我已经发送了JSON格式的数据,其中包含一个时间戳与ISO8601兼容的字符串。例如。: “事件时间戳”:“2016-09-02T19:51:38.657+02:00” 我通过ServiceBus Explorer(感谢编写此工具的人员)检查该字符串是否与Event Hub中的字符串完全一致 在流分析中,我添加了事件中心作为输入。

我正在使用Azure事件中心收集基于时间的事件。已将Azure Stream Analytics(ASA)连接到it

这将导致ASA级别的时区信息丢失

我所确定的是: 我已经发送了JSON格式的数据,其中包含一个时间戳与ISO8601兼容的字符串。例如。: “事件时间戳”:“2016-09-02T19:51:38.657+02:00”

我通过ServiceBus Explorer(感谢编写此工具的人员)检查该字符串是否与Event Hub中的字符串完全一致

在流分析中,我添加了事件中心作为输入。当我在Azure门户中使用SAMPLE DATA选项时,这会导致数据包含:“event_timestamp”:“2016-09-02T17:51:38.6570000”

为什么流分析正在删除时区信息

根据ISO 8601,在时间戳中不指定时区意味着反时间戳转换为本地时间。这是否意味着Azure资源运行的时区?在这种情况下,如何使用地理位置复制

这意味着,在消费数据并将其显示在仪表板中之后,所有时间都与运行流分析的服务器的时间有关

我是否需要在JSON负载中单独添加时区信息,然后重新构建它

我的结论是ASA实际上会从我的数据流中删除/销毁信息。 想象一下这个ASA查询:从[myinput]选择*进入[myoutput]

这将更改我的数据的内容(*)。所有显示为带有时区信息的datetime的字符串都将被转换

在我看来,这是非常不受欢迎的行为


我对本论坛中其他人的意见非常感兴趣。

Azure中的所有内容都在UTC时区中运行,除非另有支持和明确配置(支持设置时区的服务不多)

如果仔细查看引用的样本,您会注意到时间戳在ASA中转换为UTC,这就是时区信息缺失的原因:

发送至事件中心:
“事件时间戳”:“2016-09-02T19:51:38.657+02:00”

在ASA中收到:
“事件时间戳”:“2016-09-02T21:51:38.6570000”

请注意,您的事件以19:51:38.657+2:00发送,ASA读取的21:51:38.6570000完全相同

更新

我不是ISO标准方面的专家,但以下是ASA Docu的一些练习:

datetime定义一个日期,该日期与具有 基于24小时时钟并相对于 UTC(时区偏移0)

兑换:

按照ISO 8601标准转换为日期时间的日期时间字符串


据记录,日期时间以UTC为单位。因此,无需明确指定它。我不知道这是否适合ISO,首先是因为WikiPedia不是ISO文档,其次是因为我不是ISO专家

我同意这一点。但时区信息丢失的事实又如何呢。(信息降级)如果没有使用时间表示给出UTC关系信息,则假定时间为本地时间---来源:wikipedia。这意味着ASA应读取21:51:38.6570000Z以表示当前UTC