文档文档

testing.diff() 函数

testing.diff() 生成两个数据流之间的差异。

该函数基于组键匹配来自每个数据流的表。对于每个匹配的表,它生成一个差异。任何添加或删除的行都作为行添加到表中。创建一个名为 diff 的附加字符串列,如果该行存在于 got 表中但不存在于 want 表中,则包含 - ;如果情况相反,则包含 +

如果表不同,diff() 函数至少发出一行;如果表相同,则不发出任何行。生成的具体差异可能会发生变化。diff() 可用于在查询中执行内联差异。

函数类型签名
(
    <-got: stream[A],
    want: stream[A],
    ?epsilon: B,
    ?nansEqual: C,
    ?verbose: D,
) => stream[{A with _diff: string}]

有关更多信息,请参阅 函数类型签名

参数

got

包含要测试的数据的数据流。默认值为管道转发数据 (<-)。

want

(必需) 包含要对照测试的数据的数据流。

epsilon

指定两个浮点值之间可以相差多远,但仍被视为相等。默认为 0.000000001。

verbose

在输出中包含详细差异。默认为 false

nansEqual

NaN 浮点值视为相等。默认为 false

示例

输出两个表数据流之间的差异

import "sampledata"
import "testing"

want = sampledata.int()
got =
    sampledata.int()
        |> map(fn: (r) => ({r with _value: if r._value > 15 then r._value + 1 else r._value}))

testing.diff(got: got, want: want)

查看示例输入

返回表数据流与预期输出之间的差异

import "testing"

want = from(bucket: "backup-example-bucket") |> range(start: -5m)

from(bucket: "example-bucket")
    |> range(start: -5m)
    |> testing.diff(want: want)

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像当前一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看