当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
猜你喜欢
随机推荐
C + + things: from rice cookers to rockets, C + + is everywhere
[Python 1-6] Python tutorial 1 -- number
性能压测时,并发压力增加,系统响应时间和吞吐量如何变化
. net large data concurrency solution
STM32CubeIDE下载安装-GPIO基本配置操作-Debug调试(基于CMSIS DAP Debug)
What are the necessary laws and regulations to know when entering the Internet?
Improvement of maintenance mode of laravel8 update
Apache Kylin远程代码执行漏洞复现(CVE-2020-1956)
Solution to the problem of offline connection between ADB and mobile phone
On the software of express delivery cabinet and deposit cabinet under Windows
Workers, workers soul, draw lifelong members, become a person!
喜获蚂蚁offer,定级p7,面经分享,万字长文带你走完面试全过程
Flink from introduction to Zhenxiang (7. Sink data output file)
Essential for back-end programmers: distributed transaction Basics
重返全球第三,小米做对了什么?
On the concurrency of update operation
关于adb连接手机offline的问题解决
Golang 系统ping程序探测存活主机(任意权限)
Tips and skills of CSP examination
SQL quick query





