当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Solution to the problem of offline connection between ADB and mobile phone
- 我用 Python 找出了删除我微信的所有人并将他们自动化删除了
- Rabbitmq (1) - basic introduction
- Examples of unconventional aggregation
- 阿里云视频云技术专家 LVS 演讲全文:《“云端一体”的智能媒体生产制作演进之路》
- Alibaba cloud accelerates its growth and further consolidates its leading edge
- Learn to record and analyze
- Application of four ergodic square of binary tree
- On the software of express delivery cabinet and deposit cabinet under Windows
- 浅谈OpenGL之DSA
猜你喜欢

喜获蚂蚁offer,定级p7,面经分享,万字长文带你走完面试全过程

GopherChina 2020大会

Eight ways to optimize if else code

Development of uni app imitating wechat app

打工人,打工魂,抽终身会员,成为人上人!

10个常见的软件架构模式

这几个C++的坑,一旦踩中了,加班是肯定避免不了了!

阿里云视频云技术专家 LVS 演讲全文:《“云端一体”的智能媒体生产制作演进之路》

别再在finally里面释放资源了,解锁个新姿势!

Tencent: Although Ali's Taichung is good, it is not omnipotent!
随机推荐
[开源] .Net 使用 ORM 访问 华为GaussDB数据库
浅谈OpenGL之DSA
.NET 大数据量并发解决方案
Xiaoqingtai officially set foot on the third day of no return
新型存算一体芯片诞生,利好人工智能应用~
How does the system response time and throughput change with the increase of concurrency pressure during performance pressure testing
我用 Python 找出了删除我微信的所有人并将他们自动化删除了
Station B STM32 video learning
Returning to the third place in the world, what did Xiaomi do right?
Liteos message queuing
How does Alibaba cloud's maxcompute add (original ODPs) work?
Talk about go code coverage technology and best practices
基于阿里云日志服务快速打造简版业务监控看板
Golang ICMP协议探测存活主机
Leancloud changes in October
Blockchain weekly: the development of digital currency is written into the 14th five year plan; Biden invited senior adviser of MIT digital currency program to join the presidential transition team; V
On the concurrency of update operation
第五章编程题
谷歌开源能翻译101种语言的AI模型,只比Facebook多一种
10个常见的软件架构模式