Azure 流分析 input/output

Azure Streaming Analytics input/output

我实现了一个非常简单的流分析查询:

SELECT
    Collect()
FROM
    Input TIMESTAMP BY ts
GROUP BY
    TumblingWindow(second, 3)

我使用 python 脚本在事件中心输入上生成:

...
iso_ts = datetime.fromtimestamp(ts).isoformat()
data = dict(ts=iso_ts, value=value)
msg = json.dumps(data, encoding='utf-8')
# bus_service is a ServiceBusService instance
bus_service.send_event(HUB_NAME, msg)
...

我从队列消费:

...
while True:
    msg = bus_service.receive_queue_message(Q_NAME, peek_lock=False)
    print msg.body
...

问题是我在 Azure 门户中的任何一点都看不到任何错误(输入和输出已经过测试并且没有问题),但我无法从我的 运行 过程中获得任何输出!

我在查询 运行 时分享了一张诊断图片:

有人可以告诉我从哪里开始进行故障排除吗?

非常感谢!

更新

好的,我想我已经解决了问题。
首先,查询格式应该是这样的:

SELECT
  Collect()
INTO
  [output-alias]
FROM
  [input-alias] TIMESTAMP BY ts
GROUP BY
  TumblingWindow(second, 3)

我尝试删除 TIMESTAMP BY 子句,一切顺利;所以,我想问题出在那个条款上。

我粘贴了一个JSON-序列化输入数据的例子:

{
  "ts": "1970-01-01 01:01:17",
  "value": "foo"
}

有人可能会争辩说时间戳太旧(70 年代),但我也尝试使用当前时间戳,但没有得到任何输出和输入错误。

有人能想象出哪里出了问题吗?谢谢!

你能从 Azure 门户检查服务总线队列中收到的消息数吗?

我发现我的问题与 重复。

因此,解决方案是您不能使用 70 年代的数据,因为流式分析会认为 所有元组都已延迟并会丢弃它们

我重新尝试生成及时的元组,经过长时间的延迟后,我可以看到输出。

谢谢大家!