当前位置:网站首页>Flink's sink: a preliminary study
Flink's sink: a preliminary study
2020-11-08 16:12:00 【Programmer Xinchen】
Welcome to visit mine GitHub
https://github.com/zq2599/blog_demos
Content : All original articles classified summary and supporting source code , involve Java、Docker、Kubernetes、DevOPS etc. ;
About sink
The following figure comes from Flink official , In the red box is sink, Visible real-time data from Source Start at , stay Transformation After the business logic is completed in sink end , therefore sink It can be used to process the calculation results , For example, console output or save database :
About 《Flink Of sink actual combat 》 Series articles
This article is about 《Flink Of sink actual combat 》 The first chapter of , In order to have a preliminary understanding of sink, Through the basic API and addSink Method analysis and research , Lay a good foundation for the subsequent coding practice ;
Full series Links
- 《Flink Of sink One of the real battles : On 》
- 《Flink Of sink The second part of the actual battle :kafka》
- 《Flink Of sink The third part of the actual battle :cassandra3》
- 《Flink Of sink The fourth part of the actual battle : Customize 》
Start with an instance code
- Here is a simple flink Application code , The red box print The way is sink operation :
- Here's the official sink The way , All are DataStream Class API, It can be directly called sink, Just in the code print It's one of them :
- Let's look at the picture above API Source code , First look at print Method , stay DataStream.java in , as follows , It's actually called addSink Method , Participation is PrintSinkFunction:
- The other is often used API yes writeAsText, Source code is as follows , Called writeUsingOutputFormat Method :
- track <font color="blue">writeUsingOutputFormat</font> Discovery is also called addSink, Participation is <font color="blue">OutputFormatSinkFunction</font>:
- print and writeAsText Behind the call addSink, So another common <font color="blue">writeAsCsv</font> Methods? ? It's a call addSink? Open it and see , and writeAsText Same call <font color="blue">writeUsingOutputFormat</font>, In this method, you are calling addSink:
- in summary ,data sink The key is <font color="blue">addSink</font> Input , namely <font color="blue">SinkFunction</font> Interface implementation , Use class diagrams to visualize common sink How is ability realized :
8. From the figure above, we can see the abstract class <font color="blue">RichSinkFunction</font> With all kinds of sink Ability is closely related , We should focus on it , Show method signature on class diagram , Here's the picture : 9. As shown in the figure above ,<font color="blue">RichSinkFunction</font> There is no content in itself , But it does <font color="blue">SinkFunction</font>, Inherit <font color="blue">AbstractRichFunction</font>, yes <font color="blue">RichFunction</font> and <font color="blue">SinkFunction</font> The combination of these two characteristics ; 10. <font color="blue">RichFunction</font> The characteristics of are in front of 《Flink Of DataSource Trilogy 》 We already know , It's about resources open and close; 11. <font color="blue">SinkFunction</font> The characteristics of ? It's obviously used to process the calculation results , The class diagram shows two invoke Method , Take a look at the official <font color="blue">PrintSinkFunction.java</font>: 12. <font color="blue">writer.write(record)</font> The source code is PrintSinkOutputWriter.java, As shown below :
Summary
thus , We're right Flink Of sink With a basic understanding :
- Be responsible for the processing of real-time calculation results ( Like output or persistence );
- The main implementation is to call DataStream.addSink Method ;
- Various sink The realization of ability , The main way is to achieve addSink The interface defined by the input parameter of the method ;
Later chapters , Together with sink Let's practice the coding of the aspect , The direction of actual combat : Experience the official sink Ability , Customize sink Ability to achieve ;
Welcome to the official account : Xinchen, programmer
WeChat search 「 Xinchen, programmer 」, I'm Xinchen , Looking forward to traveling with you Java The world ... https://github.com/zq2599/blog_demos
版权声明
本文为[Programmer Xinchen]所创,转载请带上原文链接,感谢
边栏推荐
- Eight ways to optimize if else code
- RabbitMQ之Helloworld
- Builder pattern
- LeanCloud 十月变化
- 非常规聚合问题举例
- Golang 系统ping程序探测存活主机(任意权限)
- 聊聊Go代码覆盖率技术与最佳实践
- Returning to the third place in the world, what did Xiaomi do right?
- 2035 we will build such a country
- Drink soda, a bottle of soda water 1 yuan, two empty bottles can change a bottle of soda, give 20 yuan, how much soda can you
猜你喜欢
Huawei has an absolute advantage in the 5g mobile phone market, and the market share of Xiaomi is divided by the market survey organization
Alibaba cloud accelerates its growth and further consolidates its leading edge
2035 we will build such a country
10 common software architecture patterns
On the concurrency of update operation
awk实现类sql的join操作
I used Python to find out all the people who deleted my wechat and deleted them automatically
我用 Python 找出了删除我微信的所有人并将他们自动化删除了
GopherChina 2020大会
read文件一个字节实际会发生多大的磁盘IO?
随机推荐
Golang ICMP协议探测存活主机
Returning to the third place in the world, what did Xiaomi do right?
Welcome to offer, grade P7, face-to-face sharing, 10000 words long text to take you through the interview process
AI weekly: employees are allowed to voluntarily reduce salary; company response: employees are happy and satisfied; tiger tooth HR takes employees out of the company; Sweden forbids Huawei ZTE 5g equi
非常规聚合问题举例
构建者模式(Builder pattern)
jsliang 求职系列 - 07 - Promise
What are the necessary laws and regulations to know when entering the Internet?
Flink的sink实战之一:初探
Apache Kylin远程代码执行漏洞复现(CVE-2020-1956)
2035我们将建成这样的国家
华为在5G手机市场占据绝对优势,市调机构对小米的市占出现分歧
Interpretation of deepmind's latest paper: the causal reasoning algorithm in discrete probability tree is proposed for the first time
How to solve the difference between NAT IP and port IP
谷歌开源能翻译101种语言的AI模型,只比Facebook多一种
学习记录并且简单分析
阿里云加速增长,进一步巩固领先优势
awk实现类sql的join操作
Build simple business monitoring Kanban based on Alibaba cloud log service
10个常见的软件架构模式