大数据:【学习笔记系列】Flink 中的 DataStream API 和 DataSet API

Apache Flink 提供了两种主要的数据处理APIDataStream API 和 DataSet API,这两种API分别针对不同的数据处理场景设计。以下是对这两种API的详细介绍:

DataSet API

概述
DataSet API 是 Flink 的一个批处理API,用于处理有界的数据集。这个API适合用于静态数据,可以在数据全部可用时进行全面的批处理计算。DataSet API 提供了一系列丰富的操作,如 map, reduce, join, groupBy 等,允许用户对数据集进行复杂转换聚合操作。

关键特点

  • 批处理优化:Flink 对批处理进行了优化,例如通过优化执行计划任务调度来提高处理效率
  • 适用场景:适用于所有数据在处理开始前都已经可用的场景,例如离线分析批量ETL任务。
  • 丰富的操作:提供了广泛的转换操作,支持复杂的数据处理流程算法实现。

使用场景示例

  • 数据清洗预处理:对采集的数据批量进行格式化清洗转换预处理操作。
  • 大规模数据分析:进行数据挖掘模式识别,如机器学习算法训练评估

DataStream API

概述
DataStream API 是 Flink 的流处理API,用于处理无界的数据流。DataStream API 强调数据生成时即时处理,支持实时的数据摄取、转换和输出。这个API支持事件时间(Event Time)、处理时间(Processing Time)和摄取时间(Ingestion Time),允许开发者根据时间属性进行精确的流处理和时间管理。

关键特点

  • 实时流处理:能够处理连续不断的数据流,适用于实时数据分析监控
  • 时间管理:支持复杂的时间和窗口操作,如窗口聚合、事件时间处理等。
  • 灵活性和可扩展性:可以轻松扩展至大规模集群,处理TB级别的数据流。

使用场景示例

  • 实时监控系统:对实时生成的数据进行分析,用于金融欺诈检测、社交媒体分析等。
  • 实时推荐和个性化服务:根据用户的实时行为数据推送相关内容或广告。
  • 实时数据摄取和ETL:对流式的日志数据进行实时过滤聚合存储

总结与比较

DataSet API 和 DataStream API 的主要差异

  • 数据类型:DataSet API 处理有界数据集(批处理),而 DataStream API 处理无界数据流(流处理)。
  • 用例适应性:DataSet API 更适合于需要一次性处理全量数据的场景,DataStream API 更适合于需要持续处理实时数据的场景。
  • 操作类型:虽然两者都提供了丰富的数据转换操作,但 DataSet API 更侧重于批量数据的高效处理,DataStream API 更侧重于流数据的实时处理和时间窗口管理。

随着时间的推移,Flink 社区推荐使用 DataStream API 来处理有界和无界数据流,因为 Flink 正在将更多的开发重点放在流处理上,并逐步优化 DataStream API 以支持批处理场景,逐渐让 DataSet API 退役。这表示未来的开发和优化都将集中在 DataStream API 上,使其能够处理更广泛的数据处理任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/553335.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习 Lecture 9 信息增益、One-hot、回归树、集成树、随机森林、XGBoost模型

一、信息增益(Information Gain) 决定使用什么特征来划分一个节点取决于什么样的特征选择最能减少熵(也就是使纯度最大化) 在决策树中,熵的减少被称为信息增益。 所以如何选择呢? 假设现在有三个特征可以选择&#…

CUDA 以及MPI并行矩阵乘连接服务器运算vscode配置

一、CUDA Vscode配置 (一)扩展安装 本地安装 服务器端安装 (二) CUDA 配置 .vscode c_cpp_properties.json {"configurations": [{"name": "Linux","includePath": ["${workspa…

【NUCLEO-G071RB】004——GPIO-按键EXTI外部中断控制LED闪烁

NUCLEO-G071RB:004——GPIO-按键EXTI外部中断控制LED闪烁 设计目标电路原理图芯片配置程序修改 设计目标 电路原理图 与NUCLEO-G071RB:003——GPIO-按键控制LED灯相同 芯片配置 1、PC13(B1):EXTI外部中断模式&…

STM32 USB虚拟串口

电路原理图 usb部分 晶振部分 usb与单片机连接 配置信息 sys配置信息 rcc配置信息 usb配置信息 虚拟串口配置信息 时钟配置信息 项目配置信息 代码 包含文件 主函数代码 实验效果 修改接收波特率依然可以正常接收,也就是说单片机可以自动适应上位机的波特率设置。…

【Day 1】HTML 与 CSS

1 前端 网站的工作流程: 首先我们需要通过浏览器访问发布到前端服务器中的前端程序,这时候前端程序会将前端代码返回给浏览器浏览器得到前端代码,此时浏览器会将前端代码进行解析,然后展示到浏览器的窗口中,这时候我…

EVI增强型植被指数

​随着遥感技术的发展,我们对地球上的植被状况有了更深入的了解,而其中一种重要的工具就是EVI(Enhanced Vegetation Index,增强型植被指数)。EVI不仅是一种植被指数,更是一种对植被生态系统健康和生产力评估…

统一SQL-支持unpivot列转行

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库:Oracle 目标数据库:TDSQL-MySQL 操作目标 在Oracle中,可以使用unpivot将列转换成行,在TDSQL-MySQL中没有对应的功能,由…

设计模式学习(六)——《大话设计模式》

设计模式学习(六)——《大话设计模式》 简单工厂模式(Simple Factory Pattern),也称为静态工厂方法模式,它属于类创建型模式。 在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂…

C++算法题 - 矩阵

目录 36. 有效的数独54. 螺旋矩阵48. 旋转图像73. 矩阵置零289. 生命游戏 36. 有效的数独 LeetCode_link 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现…

【IoTDB 线上小课 02】开源增益的大厂研发岗面经

还有友友不知道我们的【IoTDB 视频小课】系列吗? 关于 IoTDB,关于物联网,关于时序数据库,关于开源...给我们 5 分钟,持续学习,干货满满~ 5分钟学会 大厂研发岗面试 之前的第一期小课,我们听了 I…

SpringMVC(二)【请求与响应】

0、测试环境 我们简化开发,创建一个简单的环境(因为没有其它包比如 service、dao,所以这里不用 Spring 容器,只用 SpringMVC 容器): Servelet 容器配置: package com.lyh.config;import org.s…

jmeter及PTS压测介绍和使用

一、常用压测工具: loadrunner apache ab(单接口压测最方便) jmeter 阿里云PTS(原生上传jmeter脚本进行压测) 二、jmeter可以压测不同的协议和应用 web http https jdbc for database TCP 三、使用场景及优点 1、功能…

飞行机器人专栏(十四)-- Kinect DK 人体骨骼点运动提取方法

系列文章目录 Ubuntu 18.04/20.04 CV环境配置(下)--手势识别TRTposeKinect DK人体骨骼识别_ubuntu kinect骨骼测试-CSDN博客文章浏览阅读1.3k次。trt_pose_ros kinect实现手势识别和人体骨骼识别,用于机器人运动控制参考_ubuntu kinect骨骼测…

SpringCloud(一)

微服务框架 一、分布式架构 分布式架构︰根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。 优点: 降低服务耦合有利于服务升级拓展 微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征: 单一职责:微…

【函数式接口使用✈️✈️】通过具体的例子实现函数结合策略模式的使用

目录 前言 一、核心函数式接口 1. Consumer 2. Supplier 3. Function,> 二、场景模拟 1.面向对象设计 2. 策略接口实现(以 Function 接口作为策略) 三、对比 前言 在 Java 8 中引入了Stream API 新特性,这使得函数式编程风格进…

数据库工具解析之 OceanBase 数据库导出工具

背景 大多数的数据库都配备了自己研发的导入导出工具,对于不同的使用者来说,这些工具能够发挥不一样的作用。例如:DBA可以使用导数工具进行逻辑备份恢复,开发者可以使用导数工具完成系统间的数据交换。这篇文章主要是为OceanBase…

编曲知识20:人声和声处理 分轨导出 总线处理

和声处理 和声 声像注意不要和主旋律重叠 各个效果器的处理幅度可以更大 呼吸音可直接去掉 尽量不要和主旋律共用一个混响延迟轨 注意音量、注意主次 和声拓展-模拟合唱 录制两轨同八度的主旋律或低八度高八度的主旋律 声像左右分配 音量拉低 将各个合唱轨进行失真处理 …

【Pytorch】VSCode实用技巧 - 默认终端修改为conda activate pytorch

VScode修改配置使得启动终端为conda环境 VScode跑项目,在启动pytorch项目时往往会有千奇百怪的问题,最常见的就是显示“conda activate pytorch”后会要求“conda init”,但输入后实际上也不行,这是因为VSCode默认终端为 Powersh…

网站模板-慈善捐赠基金会网站模板 Bootstrap4 html

目录 一.前言 二.预览 三.下载链接 一.前言 这是一个慈善网站的页面。页面包含了导航栏、横幅部分、关于、使命、新闻、活动、捐赠和页脚等不同的部分。该网站还包含了一些CSS样式和JavaScript脚本来实现交互和样式效果。 这个网站的具体结构如下: 导航栏部分&a…

kafka---topic详解

一、分区与高可用 在Kafka中,事件(events 事件即消息)是以topic的形式进行组织的;同时topic是分区(partitioned)的,这意味着一个topic分布在Kafka broker上的多个“存储桶”(buckets)上。这种数据的分布式放置对于可伸缩性非常重要,因为它允许客户端应用程序同时从多个…