【问题标题】:Azure stream analytics timestamp by formatAzure 流分析时间戳(按格式)
【发布时间】:2017-09-20 14:41:40
【问题描述】:

运行流分析时,我收到一条错误消息:

“由于不正确的时间戳而丢弃事件。仅限流分析 支持日期时间值的 ISO8601 格式"

我尝试了以下格式:

2017-09-19T13:17:29.0111070Z
2017-09-19T13:17:29.123456
2017-09-19 13:17:29.123456
2017-09-19T13:17:29.123
2017-09-19 13:17:29.123

但是,当我在流分析中的查询上使用“测试”按钮时,输出结果很好。另外,当我用子句注释掉时间戳时,查询可以工作,但 select 语句中的 System.timestamp 不会返回正确的时间。

这是格式问题还是其他问题?

【问题讨论】:

  • 您可以尝试通过表达式将时间戳显式转换为日期时间并使用它吗?可以使用 cast
  • 这可能对某些人有所帮助,错误不再出现,但流运行时没有输出(作为 csv 输出到 blob)。

标签: azure azure-stream-analytics


【解决方案1】:

首先,正如 Vignesh Chandramohan 所说,您可以尝试使用CAST 将表达式转换为 DateTime,并检查它是否返回数据转换错误,表明任何输入数据/值无法转换为类型 'datetime'。

其次,许多因素都可能导致没有输出问题,例如: 查询中的 where 子句过滤掉了阻止生成输出的事件;事件的时间戳在作业开始时间之前,因此正在删除事件等。

有关使用 Azure 流分析作业进行调试的详细步骤,请查看 Azure 门户上的诊断和解决问题this article: Troubleshooting guide for Azure Stream Analytics

【讨论】:

  • 我尝试了三件事,同时重新启动了流分析作业。当我不强制转换并使用“时间戳”时,我会收到没有输出的错误。当我注释掉“时间戳”时,我得到的输出没有错误。当我进行投射并使用“时间戳记”时,我没有收到错误但没有输出。此外,在所有这三种情况下,当我使用输入上的“测试”按钮时,它会显示所有三种情况的结果。
  • 如果在尝试了所有故障排除步骤后仍然无法找到问题的原因,您可以尝试create a support request 并获得 Azure 支持工程师的帮助。
  • 您好,有一个问题:作业的开始时间是否早于来自您的数据源的事件?您可以指定开始作业的时间(并且可以在过去开始作业)。如果活动时间早于您的开始时间,则不会对其进行处理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
  • 2021-09-19
  • 2011-12-04
  • 2015-02-05
  • 1970-01-01
相关资源
最近更新 更多