Documentation

tickscript.join() function

tickscript.join() is a user-contributed function maintained by the package author.

tickscript.join() merges two input streams into a single output stream based on specified columns with equal values and appends a new measurement name.

This function is comparable to Kapacitor JoinNode.

Function type signature
(measurement: A, tables: B, ?on: [string]) => stream[{C with _measurement: A}] where B: Record, C: Record
For more information, see Function type signatures.

Parameters

tables

(Required) Map of two streams to join.

on

List of columns to join on. Default is ["_time"].

measurement

(Required) Measurement name to use in results.

Examples

Join two streams of data

import "array"
import "contrib/bonitoo-io/tickscript"

metrics =
    array.from(
        rows: [
            {_time: 2021-01-01T00:00:00Z, host: "host1", _value: 1.2},
            {_time: 2021-01-01T01:00:00Z, host: "host1", _value: 0.8},
            {_time: 2021-01-01T02:00:00Z, host: "host1", _value: 3.2},
            {_time: 2021-01-01T00:00:00Z, host: "host2", _value: 8.4},
            {_time: 2021-01-01T01:00:00Z, host: "host2", _value: 7.3},
            {_time: 2021-01-01T02:00:00Z, host: "host2", _value: 7.9},
        ],
    )
        |> group(columns: ["host"])

states =
    array.from(
        rows: [
            {_time: 2021-01-01T00:00:00Z, host: "host1", _value: "dead"},
            {_time: 2021-01-01T01:00:00Z, host: "host1", _value: "dead"},
            {_time: 2021-01-01T02:00:00Z, host: "host1", _value: "alive"},
            {_time: 2021-01-01T00:00:00Z, host: "host2", _value: "alive"},
            {_time: 2021-01-01T01:00:00Z, host: "host2", _value: "alive"},
            {_time: 2021-01-01T02:00:00Z, host: "host2", _value: "alive"},
        ],
    )
        |> group(columns: ["host"])

tickscript.join(
    tables: {metric: metrics, state: states},
    on: ["_time", "host"],
    measurement: "example-m",
)

View example output


Was this page helpful?

Thank you for your feedback!


Introducing InfluxDB 3.0

The new core of InfluxDB built with Rust and Apache Arrow. Available today in InfluxDB Cloud Dedicated.

Learn more

State of the InfluxDB Cloud Serverless documentation

The new documentation for InfluxDB Cloud Serverless is a work in progress. We are adding new information and content almost daily. Thank you for your patience!

If there is specific information you’re looking for, please submit a documentation issue.