ADF 复制活动正在将 adx 中的双列设置为 1.7976931348623157E308 值的“无穷大”

问题描述 投票:0回答:1

我们正在尝试将增量转换为 adx,其中增量列为双精度类型,其中的数据为“1.7976931348623157E308”,这是双精度最大值,并且使用复制活动,我们需要将此数据放入 adx kusto 中,在 kusto 中值是“无穷大”,想知道背后的原因以及如何解决这个问题。

azure-data-factory double kql infinity
1个回答
0
投票
  • ADX 对浮点数使用
    real
    数据类型,对应于 64 位 IEEE 754 格式。 ADX 中的
    real
    类型的范围比 Delta 中双精度型的最大值小。
  • 在传输过程中,当ADF检测到超出ADX范围的值时,它会自动将其转换为
    infinity
    ,遵循IEEE 754处理溢出的标准。 这可能是复制数据时获得
    infinity
    值的原因,如下所示:

enter image description here

要复制双列值,请使用数据流而不是复制活动。

  • ADF 数据流使用自己的引擎处理内存中的数据,除非明确配置,否则并不总是强制执行源类型和接收器类型之间的严格转换。
  • 因此,它可以按原样传输
    1.7976931348623157E308
    ,而不会触发溢出机制。

将增量表添加为数据流中的源,将 ADX 数据库添加为数据流中的接收器,使用数据流活动创建管道,选择创建的数据流,在数据流调试后,您将能够按原样复制数据。

['tableName']
|  project  <columnName> 

enter image description here

更多信息可以参考MS文档

© www.soinside.com 2019 - 2024. All rights reserved.