Flink编程模型与API(二)

DataSources模块定义了DataStream API 中数据输入操作,Flink中内置了很多数据源Source,例如:文件数据源、Socket数据源、集合数据源,同时也支持第三方数据源,例如:Kafka数据源、自定义数据源,下面分别使用DataStream API进行一一演示。

File Source

以上文件Source除了读取Text数据之外,还可以读取avro、csv、json、parquet格式对应文件,具体API可以参照官网:https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/datastream/formats/overview/。

Socket Source

Flink读取Socket数据在前几个小节中已经演示过,这里不再读取Socket中的数据。Socket Source常用于程序测试。

集合 Source

Flink可以读取集合中的数据得到DataStream,这里我们自定义POJO创建StationLog对象来形成集合数据。

StationLog对象Java代码如下:

Kafka Source

读取Kafka中Value数据

读取Kafka中Key、Value数据

自定义 Source

对于一些其他的数据源,我们也可以实现自定义Source进行实时数据获取。自定义数据源有两种实现方式:

通过实现SourceFunction接口来自定义无并行度(也就是并行度只能为1)的Source。

通过实现ParallelSourceFunction 接口或者继承RichParallelSourceFunction 来自定义有并行度的数据源。

无论是那种接口实现方式都需要重写以下两个方法:

run():大部分情况下都需要在run方法中实现一个循环产生数据,通过Flink上下文对象传递到下游。

cancel():当取消对应的Flink任务时被调用。

SourceFunction接口实现

实现SourceFunction 接口实现无并行度的自定义Source,java代码和Scala代码分别如下

ParallelSourceFunction接口实现

相关推荐
Wang's Blog16 分钟前
Java框架快速入门: Spring Security+OAuth2之自定义数据库表结构实现认证
java·数据库·spring
鲸能云26 分钟前
550 亿能源托管市场开闸:全周期能源管理平台怎么设计?
大数据
2501_9304724433 分钟前
上云迁移验收-CVM健康校验用例与数据库比对报告
数据库·人工智能·阿里云·云计算·腾讯云
是翎1 小时前
OpenAI 官方 GPT-Image 2.5 提示词指南与示例
大数据·人工智能·gpt·深度学习·自然语言处理·知识图谱
南京兴帝文化传媒有限公司1 小时前
本地生活服务GEO优化实操:设备维修商地图关键词布局与流量转化
大数据·生活·企业数字化运营·geo优化教程·品牌知识体系·geo优化实操·csdn运营技巧
lisw051 小时前
大数据哲学:借助大数据科学服务拓展人类与数据的关系!
大数据·哲学
anxiao_m1 小时前
不同行业适配哪些云桌面?四大主流品牌场景适配详解
网络·数据库·人工智能
AI人工智能集结号1 小时前
AI搜索可见度监测软件有哪些?选择时如何区分功能范围
大数据·人工智能
南京兴帝文化传媒有限公司1 小时前
本地生活商家GEO获客技术实践:宁国理发店地图优化实现新客增长60%
大数据·生活·geo优化教程·品牌知识体系·geo优化实操
IT小白杨1 小时前
TikTok多账号运营体系安全运营攻略:移动端优先架构下的环境隔离技术解析
大数据·经验分享·tcp/ip·安全·架构·指纹浏览器