Azure 流分析将 int64 输出为 int32

Azure Stream Analytics outputs an int64 as an int32

我有一个流分析作业,可以将时间戳转换为自 Epoch 以来的毫秒数。

为此,我使用 JavaScript 函数 returns 和 bigint,使用以下代码:

new Date(date).getTime()

当我在 Azure 门户中测试此作业时,我得到了正确的结果,例如: 2018-08-29T13:01:54.0000000Z 变为 1535547714000:

但是当我 运行 作业并开始将其输出存储在 Azure table 中时,1535547714000 变为 -2050577968

我注意到如果我将 bigint 1535547714000 转换为 int,我会得到 -2050577968。所以我检查了列的类型,奇怪的是,它是 Int64:

TL;DR: 作业输出 bigint,列类型为 bigint Int64 但不知何故,介于两者之间,该值似乎被转换为 int.

我该如何解决?

鲁道夫。如果要将数据传输到 Azure Table 存储,则必须遵循它的规则。

基于 doc, Azure Table Storage only supports int32 and int64 type, no bigint type. So, actually there is no mysterious mechanism to convert your data type, just when the bigint data into the table, it is converted to the corresponding Int64 type.However, it supposed to be 1535547714000,no way to be converted to int.You could commit feedback to Azure to post 这个问题。

作为解决方法,您可以尝试获取数据并将其转换为 Azure Table 存储 Azure 触发器函数中的 Int64。请参考这个doc.

希望对你有帮助。