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.
希望对你有帮助。
我有一个流分析作业,可以将时间戳转换为自 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.
希望对你有帮助。