组件名称 | 实时数据采样组件 |
---|---|
工具集 | 实时数据交互 |
组件作者 | 雪浪云 - 杭波 |
文档版本 | 3.0 |
功能 | 该组件用于降低输入实时数据的采样率,并且有不同的采样方式。 |
镜像名称 | suanpan-rtdata-filter:0.6 |
开发语言 | C |
组件原理
组件提供3种不同的采样模式,旨在降低输入数据的采样率。也就是说部分数据会被丢弃,这样可以满足后续组件的使用需求,因为部分组件运行的时间为分钟级或者小时级,若一秒钟发送一个数据过去,数据会大量堆积在消息队列里面,所以这里将其采样,来降低数据源的采样率。
模式1:每m个提取前n个模式
组件每次的CSV输出只有1行(不含表头)。举个例子,按照m=10,n=3的配置,若一次性输入一个20行的csv文件(不含表头),这里会提取6次1行的数据发出。如果一直输入一个1行的csv文件(不含表头),那么会以每10次csv文件输出3次1行CSV的模式工作。如下表的样例,对于m=10,n=3的情况,一次输入会输出6次1行的数据。
- 输入样例 | name | value | timestamp | | --- | --- | --- | | para1 | 2500.321 | 1635919551314000000 | | para2 | 2501.321 | 1635919551314000000 | | para3 | 2502.321 | 1635919551314000000 | | para4 | 2503.321 | 1635919551314000000 | | para5 | 2504.321 | 1635919551314000000 | | para6 | 2505.321 | 1635919551314000000 | | para7 | 2506.321 | 1635919551314000000 | | para8 | 2507.321 | 1635919551314000000 | | para9 | 2508.321 | 1635919551314000000 | | para10 | 2509.321 | 1635919551314000000 | | para11 | 2510.321 | 1635919551314000000 | | para12 | 2511.321 | 1635919551314000000 | | para13 | 2512.321 | 1635919551314000000 | | para14 | 2513.321 | 1635919551314000000 | | para15 | 2514.321 | 1635919551314000000 | | para16 | 2515.321 | 1635919551314000000 | | para17 | 2516.321 | 1635919551314000000 | | para18 | 2517.321 | 1635919551314000000 | | para19 | 2518.321 | 1635919551314000000 | | para20 | 2519.321 | 1635919551314000000 |
- 输出样例
这里输出了6次数据。
name | value | timestamp |
---|---|---|
para1 | 2500.321 | 1635919551314000000 |
name | value | timestamp |
---|---|---|
para2 | 2501.321 | 1635919551314000000 |
name | value | timestamp |
---|---|---|
para3 | 2502.321 | 1635919551314000000 |
name | value | timestamp |
---|---|---|
para11 | 2510.321 | 1635919551314000000 |
name | value | timestamp |
---|---|---|
para12 | 2511.321 | 1635919551314000000 |
name | value | timestamp |
---|---|---|
para13 | 2512.321 | 1635919551314000000 |
模式2:每n毫秒发出一个数据的模式。
组件内置一个定时器,只有当定时器到期的时候,csv数据才会被允许通过一行(只输出数据表的第一行,如果输入一个20行的数据(不含表头),后面的19行会被丢弃)。输出数据样例如下:
name | value | timestamp |
---|---|---|
para11 | 2510.321 | 1635919551314000000 |
模式3:变量组
在模板运行起来之后,就有很多变量数据输入此组件并且被解析出来,这里点击刷新就可以按行解析出多个输入的变量名。这里将变量名称输入变量选择(一个一行),就可以选择缓存哪些变量。当达到缓存设定的间隔,比如2000ms,就会把这些缓存的变量发送出去。
输出数据样例如下(这里选择了2个变量):
name | value | timestamp |
---|---|---|
para11 | 2510.321 | 1635919551314000000 |
para12 | 2511.321 | 1635919551314000000 |
输入桩
输入端子1
组件有1个输入
- 端口名称:输入数据
- 输入类型:CSV文件
- 功能描述:输入所需采样的CSV文件
- 示例:如下所示: | name | value | timestamp | | --- | --- | --- | | Test1 | 123 | 2021-01-22 12:12:33 | | Test2 | 456 | 2021-01-22 12:12:34 | | Test3 | 789 | 2021-01-22 12:12:35 |
对于组件原理
中的模式1和模式2,输入的CSV表头包含哪几列并没有限制,对于模式3,必须包含name,value和timestamp三列。
输出桩
组件有1个输出
输出端子1
- 端口名称:输出数据
- 输出类型:CSV文件
- 功能描述: 输出采样得到的CSV文件
- 示例:如下所示: | name | value | timestamp | | --- | --- | --- | | Test1 | 123 | 2021-01-22 12:12:33 | | Test2 | 456 | 2021-01-22 12:12:34 | | Test3 | 789 | 2021-01-22 12:12:35 |
数据接收方式
异步模式同步模式都支持
参数配置
右面板无参数设置
执行调优
建议不进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作
后面板连接
实时数据采样上游接入CSV上传。CSV上传由定时触发发起,这里默认是5秒的定时触发间隔。当用户上传了CSV之后,CSV文件以5s的间隔输入到实时数据采样组件。
实时采样组件采样的结果被数据转换(Csv2Json)转为JSON,发送到前面板显示结果。同时定时触发的输出也会覆盖Csv2Json的输出,防止前面板上的数据一直没发生变化。
部署后,CSV上传组件的示例文件如下,其中id列是算盘CSV默认需要加入的一列。
部署状态下的操作
在弹出的设置界面上,包含了数据统计和过滤模式两大模块。
数据统计实时显示了当前通过此组件的数据包数量(csv文件每一行算一个数量),已过滤代表已经被过滤器过滤的数据包数量。
过滤模式功能可以让用户设置3种不同的模式,点击提交之后会立刻生效,但会把数据统计给清零。