1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
{
"id": "tumbling_window_dataflow",
"target": "x86-64-unknown-linux-gnu",
"system_addr": "127.0.0.1:3001",
"mode": "debug",
"nodes": [
{
"id": "node_1",
"parallelism": 1,
"kind": {
"Source": {
"source_type": {
"Scalar": "I32"
},
"successors": [
{
"Local": {
"id": "node_2"
}
}
],
"kind": {
"Socket": { "addr": "127.0.0.1:5001", "kind": "udp"}
}
}
}
},
{
"id" : "node_2",
"parallelism" : 1,
"kind" : {
"Window": {
"channel_strategy" : "Forward",
"predecessor" : "node1",
"successors" : [
{
"Local" : {
"id" : "node_3"
}
}
],
"assigner" : {
"Tumbling" : {
"length" : 60
}
},
"window_function" : {
"input_type": {
"Scalar": "I32"
},
"output_type": {
"Scalar": "I64"
},
"builder_type": {
"Appender": {
"elem_ty": {
"Scalar": "I32"
}
}
},
"builder" : "||appender[i32]",
"udf" : "|e:i32,w:appender[i32]| merge(w,e):appender[i32]",
"materialiser" : "|agg:appender[i32]| len(result(agg)):i64"
},
"time_kind" : "Ingestion",
"window_kind" : "All"
}
}
},
{
"id": "node_3",
"parallelism": 1,
"kind": {
"Sink": {
"sink_type": {
"Scalar": "I64"
},
"predecessor": "node_2",
"kind": "Debug"
}
}
}
]
}