当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 一分钟全面看懂forsage智能合约全球共享以太坊矩阵计划
- 构建者模式(Builder pattern)
- 刚刚好,才是最理想的状态
- 数据库连接报错之IO异常(The Network Adapter could not establish the connection)
- What is SVG?
- 京东落地DevOps平台时爆发的冲突如何解决?
- 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
- Rabbitmq (1) - basic introduction
- read文件一个字节实际会发生多大的磁盘IO?
- Development of uni app imitating wechat app
猜你喜欢
The network adapter could not establish the connection
机械硬盘随机IO慢的超乎你的想象
wanxin finance
What is the database paradigm
Design by contract (DBC) and its application in C language
Improvement of maintenance mode of laravel8 update
新型存算一体芯片诞生,利好人工智能应用~
Flink from introduction to Zhenxiang (7. Sink data output file)
Rabbitmq (1) - basic introduction
Flink的sink实战之一:初探
随机推荐
LiteOS-消息队列-实战
Build simple business monitoring Kanban based on Alibaba cloud log service
I used Python to find out all the people who deleted my wechat and deleted them automatically
RabbitMQ之Helloworld
一分钟全面看懂forsage智能合约全球共享以太坊矩阵计划
Design by contract (DBC) and its application in C language
Elasticsearch learning one (basic introduction)
write文件一个字节后何时发起写磁盘IO
GopherChina 2020大会
漫画:寻找股票买入卖出的最佳时机(整合版)
谷歌开源能翻译101种语言的AI模型,只比Facebook多一种
华为在5G手机市场占据绝对优势,市调机构对小米的市占出现分歧
Development of uni app imitating wechat app
学习记录并且简单分析
How to solve the conflict when JD landed on Devops platform?
2020-11-05
DeepMind 最新论文解读:首次提出离散概率树中的因果推理算法
Using k3s to create local development cluster
Workers, workers soul, draw lifelong members, become a person!
TypeScript(1-2-2)