experimental.join() 函数
experimental.join()
随时可能更改。
experimental.join()
在组键和 _time
列上连接两个表流。
已弃用
experimental.join()
已弃用,推荐使用 join.time()
。join
包为多种连接方法提供支持。
使用 fn
参数,使用输入表中的值映射新的输出表。
注意:要连接具有不同字段或度量值的表流,请使用 group()
或 drop()
从组键中删除 _field
和 _measurement
,然后再进行连接。
函数类型签名
(fn: (left: A, right: B) => C, left: stream[A], right: stream[B]) => stream[C] where A: Record, B: Record, C: Record
有关更多信息,请参阅函数类型签名。
参数
left
(必需)要连接的两个表流中的第一个。
right
(必需)要连接的两个表流中的第二个。
fn
(必需)具有 left 和 right 参数的函数,该函数使用 left
和 right
输入记录中的值映射新的输出记录。返回值必须是记录。
示例
连接两个表流
import "array"
import "experimental"
left =
array.from(
rows: [
{_time: 2021-01-01T00:00:00Z, _field: "temp", _value: 80.1},
{_time: 2021-01-01T01:00:00Z, _field: "temp", _value: 80.6},
{_time: 2021-01-01T02:00:00Z, _field: "temp", _value: 79.9},
{_time: 2021-01-01T03:00:00Z, _field: "temp", _value: 80.1},
],
)
right =
array.from(
rows: [
{_time: 2021-01-01T00:00:00Z, _field: "temp", _value: 75.1},
{_time: 2021-01-01T01:00:00Z, _field: "temp", _value: 72.6},
{_time: 2021-01-01T02:00:00Z, _field: "temp", _value: 70.9},
{_time: 2021-01-01T03:00:00Z, _field: "temp", _value: 71.1},
],
)
experimental.join(
left: left,
right: right,
fn: (left, right) =>
({left with lv: left._value, rv: right._value, diff: left._value - right._value}),
)
连接具有不同字段和度量值的两个表流
import "experimental"
s1 =
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "foo" and r._field == "bar")
|> group(columns: ["_time", "_measurement", "_field", "_value"], mode: "except")
s2 =
from(bucket: "example-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "baz" and r._field == "quz")
|> group(columns: ["_time", "_measurement", "_field", "_value"], mode: "except")
experimental.join(
left: s1,
right: s2,
fn: (left, right) => ({left with bar_value: left._value, quz_value: right._value}),
)
此页面是否对您有帮助?
感谢您的反馈!