如何获取算子处理一条数据记录的时间

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

如何获取算子处理一条数据记录的时间

pkuvisdudu
Hi,


我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?


谢谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制
Reply | Threaded
Open this post in threaded view
|

回复:如何获取算子处理一条数据记录的时间

pkuvisdudu
有人知道么




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2019年12月31日 17:14,张江 写道:
Hi,


我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?


谢谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制
Reply | Threaded
Open this post in threaded view
|

回复:如何获取算子处理一条数据记录的时间

猫猫
算子内记时,测流输出。


------------------ 原始邮件 ------------------
发件人:&nbsp;"张江"<[hidden email]&gt;;
发送时间:&nbsp;2020年1月1日(星期三) 晚上8:44
收件人:&nbsp;"user-zh"<[hidden email]&gt;;

主题:&nbsp;回复:如何获取算子处理一条数据记录的时间



有人知道么




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2019年12月31日 17:14,张江 写道:
Hi,


我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?


谢谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制
Reply | Threaded
Open this post in threaded view
|

回复:如何获取算子处理一条数据记录的时间

pkuvisdudu
可以讲的详细点么
非常感谢




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年01月02日 08:09,猫猫 写道:
算子内记时,测流输出。


------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"张江"<[hidden email]&gt;;
发送时间:&nbsp;2020年1月1日(星期三) 晚上8:44
收件人:&nbsp;"user-zh"<[hidden email]&gt;;

主题:&nbsp;回复:如何获取算子处理一条数据记录的时间



有人知道么




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2019年12月31日 17:14,张江 写道:
Hi,


我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?


谢谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制
Reply | Threaded
Open this post in threaded view
|

回复:如何获取算子处理一条数据记录的时间

猫猫
只有如下算子支持测流输出。

ProcessFunction

CoProcessFunction

ProcessWindowFunction

ProcessAllWindowFunction

如果要计时的话,需要将你的逻辑全部放到相关函数中。在逐条处理的时候,记录数据ID和时间,写成一个新的数据流并行输出出去。
但实际上我们很少这样做,因为很难将所有逻辑全部放到一个算子中。


比较常见的方式是,在整体上数据有流入和流出,所以增加流入和流出算子,在数据经过的时候,记录数据ID,并形成新的数据流,然后写入到数据库进行合并就行了。
这种可以考虑采样的方式,例如根据ID取模获取数据,但缺点是监控嵌入了执行逻辑,并且必须有并行度为1的统计算子,可能会影响性能。

更为合理的看法是,当数据量不堆积的时候,时间也不是问题。
我们只要看kafka-offset的消费速度就行了。一定时间消费多少条,平均下来就是速率的。适用于压满性能的时候用。

可能还有更好的处理方式,我还没有了解,flink好像自身也有一定的监控能力。
但你的需求到底是什么?你为什么要知道一条数据的处理时间?而不是一批数据的处理时间?
你关心每个算子的时间,还是关心数据整体的处理时间?还是关心某个业务的执行时间?

提供一下场景为佳。






------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"张江"<[hidden email]&gt;;
发送时间:&nbsp;2020年1月2日(星期四) 上午9:27
收件人:&nbsp;"user-zh"<[hidden email]&gt;;
抄送:&nbsp;"user-zh"<[hidden email]&gt;;
主题:&nbsp;回复:如何获取算子处理一条数据记录的时间



可以讲的详细点么
非常感谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年01月02日 08:09,猫猫 写道:
算子内记时,测流输出。


------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
发件人:&amp;nbsp;"张江"<[hidden email]&amp;gt;;
发送时间:&amp;nbsp;2020年1月1日(星期三) 晚上8:44
收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;;

主题:&amp;nbsp;回复:如何获取算子处理一条数据记录的时间



有人知道么




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2019年12月31日 17:14,张江 写道:
Hi,


我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?


谢谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制
Reply | Threaded
Open this post in threaded view
|

回复:如何获取算子处理一条数据记录的时间

pkuvisdudu
我其实是想知道算子的数据处理能力,得到一个算子每秒钟最多能处理多少条数据。比如说map算子,我需要知道它一秒钟最多能转换多少数据,之后根据source端的数据量来设置算子的并行度




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年01月02日 10:28,猫猫 写道:
只有如下算子支持测流输出。

ProcessFunction

CoProcessFunction

ProcessWindowFunction

ProcessAllWindowFunction

如果要计时的话,需要将你的逻辑全部放到相关函数中。在逐条处理的时候,记录数据ID和时间,写成一个新的数据流并行输出出去。
但实际上我们很少这样做,因为很难将所有逻辑全部放到一个算子中。


比较常见的方式是,在整体上数据有流入和流出,所以增加流入和流出算子,在数据经过的时候,记录数据ID,并形成新的数据流,然后写入到数据库进行合并就行了。
这种可以考虑采样的方式,例如根据ID取模获取数据,但缺点是监控嵌入了执行逻辑,并且必须有并行度为1的统计算子,可能会影响性能。

更为合理的看法是,当数据量不堆积的时候,时间也不是问题。
我们只要看kafka-offset的消费速度就行了。一定时间消费多少条,平均下来就是速率的。适用于压满性能的时候用。

可能还有更好的处理方式,我还没有了解,flink好像自身也有一定的监控能力。
但你的需求到底是什么?你为什么要知道一条数据的处理时间?而不是一批数据的处理时间?
你关心每个算子的时间,还是关心数据整体的处理时间?还是关心某个业务的执行时间?

提供一下场景为佳。






------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"张江"<[hidden email]&gt;;
发送时间:&nbsp;2020年1月2日(星期四) 上午9:27
收件人:&nbsp;"user-zh"<[hidden email]&gt;;
抄送:&nbsp;"user-zh"<[hidden email]&gt;;
主题:&nbsp;回复:如何获取算子处理一条数据记录的时间



可以讲的详细点么
非常感谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年01月02日 08:09,猫猫 写道:
算子内记时,测流输出。


------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
发件人:&amp;nbsp;"张江"<[hidden email]&amp;gt;;
发送时间:&amp;nbsp;2020年1月1日(星期三) 晚上8:44
收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;;

主题:&amp;nbsp;回复:如何获取算子处理一条数据记录的时间



有人知道么




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2019年12月31日 17:14,张江 写道:
Hi,


我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?


谢谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制
Reply | Threaded
Open this post in threaded view
|

回复:如何获取算子处理一条数据记录的时间

贺小令(晓令)
可以看看现有metrics是否满足需求,例如numRecordsInPerSecond。 详细可以参考https://ci.apache.org/projects/flink/flink-docs-stable/monitoring/metrics.html#io


------------------------------------------------------------------
发件人:张江 <[hidden email]>
发送时间:2020年1月2日(星期四) 19:24
收件人:user-zh <[hidden email]>
抄 送:user-zh <[hidden email]>
主 题:回复:如何获取算子处理一条数据记录的时间

我其实是想知道算子的数据处理能力,得到一个算子每秒钟最多能处理多少条数据。比如说map算子,我需要知道它一秒钟最多能转换多少数据,之后根据source端的数据量来设置算子的并行度




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年01月02日 10:28,猫猫 写道:
只有如下算子支持测流输出。

ProcessFunction

CoProcessFunction

ProcessWindowFunction

ProcessAllWindowFunction

如果要计时的话,需要将你的逻辑全部放到相关函数中。在逐条处理的时候,记录数据ID和时间,写成一个新的数据流并行输出出去。
但实际上我们很少这样做,因为很难将所有逻辑全部放到一个算子中。


比较常见的方式是,在整体上数据有流入和流出,所以增加流入和流出算子,在数据经过的时候,记录数据ID,并形成新的数据流,然后写入到数据库进行合并就行了。
这种可以考虑采样的方式,例如根据ID取模获取数据,但缺点是监控嵌入了执行逻辑,并且必须有并行度为1的统计算子,可能会影响性能。

更为合理的看法是,当数据量不堆积的时候,时间也不是问题。
我们只要看kafka-offset的消费速度就行了。一定时间消费多少条,平均下来就是速率的。适用于压满性能的时候用。

可能还有更好的处理方式,我还没有了解,flink好像自身也有一定的监控能力。
但你的需求到底是什么?你为什么要知道一条数据的处理时间?而不是一批数据的处理时间?
你关心每个算子的时间,还是关心数据整体的处理时间?还是关心某个业务的执行时间?

提供一下场景为佳。






------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"张江"<[hidden email]&gt;;
发送时间:&nbsp;2020年1月2日(星期四) 上午9:27
收件人:&nbsp;"user-zh"<[hidden email]&gt;;
抄送:&nbsp;"user-zh"<[hidden email]&gt;;
主题:&nbsp;回复:如何获取算子处理一条数据记录的时间



可以讲的详细点么
非常感谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年01月02日 08:09,猫猫 写道:
算子内记时,测流输出。


------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
发件人:&amp;nbsp;"张江"<[hidden email]&amp;gt;;
发送时间:&amp;nbsp;2020年1月1日(星期三) 晚上8:44
收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;;

主题:&amp;nbsp;回复:如何获取算子处理一条数据记录的时间



有人知道么




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2019年12月31日 17:14,张江 写道:
Hi,


我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?


谢谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制
Reply | Threaded
Open this post in threaded view
|

回复: 回复:如何获取算子处理一条数据记录的时间

戴嘉诚
In reply to this post by pkuvisdudu
你可以在算子中计算,然后上传到自定义的Flink Metrics中,这样就能看到平均一个算子的时间了.

发件人: 张江
发送时间: 2020年1月2日 19:18
收件人: user-zh
抄送: user-zh
主题: 回复:如何获取算子处理一条数据记录的时间

我其实是想知道算子的数据处理能力,得到一个算子每秒钟最多能处理多少条数据。比如说map算子,我需要知道它一秒钟最多能转换多少数据,之后根据source端的数据量来设置算子的并行度




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年01月02日 10:28,猫猫 写道:
只有如下算子支持测流输出。

ProcessFunction

CoProcessFunction

ProcessWindowFunction

ProcessAllWindowFunction

如果要计时的话,需要将你的逻辑全部放到相关函数中。在逐条处理的时候,记录数据ID和时间,写成一个新的数据流并行输出出去。
但实际上我们很少这样做,因为很难将所有逻辑全部放到一个算子中。


比较常见的方式是,在整体上数据有流入和流出,所以增加流入和流出算子,在数据经过的时候,记录数据ID,并形成新的数据流,然后写入到数据库进行合并就行了。
这种可以考虑采样的方式,例如根据ID取模获取数据,但缺点是监控嵌入了执行逻辑,并且必须有并行度为1的统计算子,可能会影响性能。

更为合理的看法是,当数据量不堆积的时候,时间也不是问题。
我们只要看kafka-offset的消费速度就行了。一定时间消费多少条,平均下来就是速率的。适用于压满性能的时候用。

可能还有更好的处理方式,我还没有了解,flink好像自身也有一定的监控能力。
但你的需求到底是什么?你为什么要知道一条数据的处理时间?而不是一批数据的处理时间?
你关心每个算子的时间,还是关心数据整体的处理时间?还是关心某个业务的执行时间?

提供一下场景为佳。






------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"张江"<[hidden email]&gt;;
发送时间:&nbsp;2020年1月2日(星期四) 上午9:27
收件人:&nbsp;"user-zh"<[hidden email]&gt;;
抄送:&nbsp;"user-zh"<[hidden email]&gt;;
主题:&nbsp;回复:如何获取算子处理一条数据记录的时间



可以讲的详细点么
非常感谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年01月02日 08:09,猫猫 写道:
算子内记时,测流输出。


------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
发件人:&amp;nbsp;"张江"<[hidden email]&amp;gt;;
发送时间:&amp;nbsp;2020年1月1日(星期三) 晚上8:44
收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;;

主题:&amp;nbsp;回复:如何获取算子处理一条数据记录的时间



有人知道么




| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2019年12月31日 17:14,张江 写道:
Hi,


我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?


谢谢


| |
张江
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

Reply | Threaded
Open this post in threaded view
|

Re:回复: 回复:如何获取算子处理一条数据记录的时间

pkuvisdudu
好的,谢谢

在 2020-01-06 20:04:09,"戴嘉诚" <[hidden email]> 写道:

>你可以在算子中计算,然后上传到自定义的Flink Metrics中,这样就能看到平均一个算子的时间了.
>
>发件人: 张江
>发送时间: 2020年1月2日 19:18
>收件人: user-zh
>抄送: user-zh
>主题: 回复:如何获取算子处理一条数据记录的时间
>
>我其实是想知道算子的数据处理能力,得到一个算子每秒钟最多能处理多少条数据。比如说map算子,我需要知道它一秒钟最多能转换多少数据,之后根据source端的数据量来设置算子的并行度
>
>
>
>
>| |
>张江
>|
>|
>邮箱:[hidden email]
>|
>
>签名由 网易邮箱大师 定制
>
>在2020年01月02日 10:28,猫猫 写道:
>只有如下算子支持测流输出。
>
>ProcessFunction
>
>CoProcessFunction
>
>ProcessWindowFunction
>
>ProcessAllWindowFunction
>
>如果要计时的话,需要将你的逻辑全部放到相关函数中。在逐条处理的时候,记录数据ID和时间,写成一个新的数据流并行输出出去。
>但实际上我们很少这样做,因为很难将所有逻辑全部放到一个算子中。
>
>
>比较常见的方式是,在整体上数据有流入和流出,所以增加流入和流出算子,在数据经过的时候,记录数据ID,并形成新的数据流,然后写入到数据库进行合并就行了。
>这种可以考虑采样的方式,例如根据ID取模获取数据,但缺点是监控嵌入了执行逻辑,并且必须有并行度为1的统计算子,可能会影响性能。
>
>更为合理的看法是,当数据量不堆积的时候,时间也不是问题。
>我们只要看kafka-offset的消费速度就行了。一定时间消费多少条,平均下来就是速率的。适用于压满性能的时候用。
>
>可能还有更好的处理方式,我还没有了解,flink好像自身也有一定的监控能力。
>但你的需求到底是什么?你为什么要知道一条数据的处理时间?而不是一批数据的处理时间?
>你关心每个算子的时间,还是关心数据整体的处理时间?还是关心某个业务的执行时间?
>
>提供一下场景为佳。
>
>
>
>
>
>
>------------------&nbsp;原始邮件&nbsp;------------------
>发件人:&nbsp;"张江"<[hidden email]&gt;;
>发送时间:&nbsp;2020年1月2日(星期四) 上午9:27
>收件人:&nbsp;"user-zh"<[hidden email]&gt;;
>抄送:&nbsp;"user-zh"<[hidden email]&gt;;
>主题:&nbsp;回复:如何获取算子处理一条数据记录的时间
>
>
>
>可以讲的详细点么
>非常感谢
>
>
>| |
>张江
>|
>|
>邮箱:[hidden email]
>|
>
>签名由 网易邮箱大师 定制
>
>在2020年01月02日 08:09,猫猫 写道:
>算子内记时,测流输出。
>
>
>------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
>发件人:&amp;nbsp;"张江"<[hidden email]&amp;gt;;
>发送时间:&amp;nbsp;2020年1月1日(星期三) 晚上8:44
>收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;;
>
>主题:&amp;nbsp;回复:如何获取算子处理一条数据记录的时间
>
>
>
>有人知道么
>
>
>
>
>| |
>张江
>|
>|
>邮箱:[hidden email]
>|
>
>签名由 网易邮箱大师 定制
>
>在2019年12月31日 17:14,张江 写道:
>Hi,
>
>
>我是刚学习flink的菜鸟,现在想对一个算子,获取其处理一条数据记录的时间。请问这个应该怎么做?
>
>
>谢谢
>
>
>| |
>张江
>|
>|
>邮箱:[hidden email]
>|
>
>签名由 网易邮箱大师 定制
>