Flink Data Source详解

ops/2024/12/26 13:20:42/

注意在高版本中SourceFunction以及其子类RichSourceFunction、ParallelSourceFunction等已经被标记为废弃,所以我们要看数据源的实现只需要关注Source接口(org.apache.flink.api.connector.source.Source)。了解Source背后的架构和运行原理有助于我们更好的使用Source,或者自定义实现新的数据源。

1. Data Source概览

1)核心组件

一个数据源有三个核心组件:split、SplitEnumerator和SourceReader。

  • split(分片):是对source数据的一部分切分,如一个文件或者日志分区。分片是 source 进行任务分配和数据并行读取的基本粒度。
  • SourceReader(源读取器):会请求split并进行处理,例如读取split所表示的文件或日志分区。SourceReader 在 TaskManagers 上的 SourceOperators 中并行运行,并生成并行的事件流/记录流。 
  • SplitEnumerator(分片枚举器):SplitEnumerator会生成split并将它们分配给 SourceReader。它在 JobManager 上以单实例运行,负责对未分配的split进行维护,并以均衡的方式将其分配给 reader。 

http://www.ppmy.cn/ops/145132.html

相关文章

LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI搜索引擎

背景 上一篇文章介绍了如何使用 Ollama 和 Dify 搭建个人 AI 助手。首先通过 Ollama 私有化部署了 Qwen2.5 (7B) 模型,然后使用 Docker Compose 一键部署了 Dify 社区版平台。在 Dify 平台上,通过普通编排的方式,创建了基于 Qwen2.5 模型的聊…

Docker安装Neo4j

拉取镜像源 docker pull neo4j(:版本号) //缺省 “:版本号” 时默认安装latest版本的编写运行脚本 docker run --name neo4j -d \ -p 27474:7474 -p 27687:7687 \ -v /usr/local/docker/neo4j/data:/data \ -v /usr/local/docker/neo4j/logs:/logs \ -v /usr/local/docker/…

GitLab 停止为中国区用户提供 GitLab.com 账号服务

GitLab 通知中国区用户将停止提供 GitLab.com 账号服务,建议现有用户迁移到极狐。 中国 IP 地址现在访问 GitLab.com 会跳转到 about.gitlab.com,推荐用户访问极狐。 Gundaz Aghayev 写道:GitLab 在发送中国地区用户的电子邮件通知中称&…

【知识科普】认识正则表达式

文章目录 概览正则表达式的基本组成正则表达式的基本语法示例 常见表达式手机号码1. 通用手机号正则表达式2. 匹配特定号段的手机号正则表达式3. 注意事项4. 示例代码 电子邮箱1. 基本邮箱正则表达式2. 更严格的邮箱正则表达式3. Python中的邮箱正则表达式4. 注意事项 身份证年…

C++ 内存管理:原理、技巧与实战

目录 第一章:C++ 内存管理基础 1.1 C++ 内存布局剖析 1.2 内存分配与释放:核心机制详解 1.2.1 new/delete 操作符 1.2.2 malloc/free 函数 第二章:智能指针 —— 内存管理利器 2.1 智能指针概览 2.2 常用智能指针类型 2.2.1 unique_ptr 2.2.2 shared_ptr 2.2.3 we…

helm函数

默认函数介绍 在 Helm 中,default 函数用于为变量提供默认值,以确保模板渲染不会因为变量未定义或为空值而失败。基本语法如下: {{ default "默认值" .变量 }} 或者: {{ .Valumes.XX | default "latest" }}…

金融数据可视化实现

一、设计题目 金融数据可视化 二、设计目的 使学生掌握用Pandas第三方库数据计算、数据分析的知识与能力。Pandas是专门用于数据分析的库,其提供的read_excel()方法可以方便的读取xlsx格式的文件中的数据到Pandas中的DataFrame中。 DataFrame.plot(kindline)&am…

Echarts的高级使用,动画,交互api

加载动画 <script>// axisData 就是一个二维数组, 数组中的每一个元素还是一个数组, 最内层数组中有两个元素, 一个代表身高, 一个代表体重;var mCharts echarts.init(document.querySelector("div"));mCharts.showLoading();$.get("data/test_data.json…