首页 > 其他分享 >Flink(一)概述

Flink(一)概述

时间:2024-09-25 14:45:41浏览次数:6  
标签:有界流 处理 Flink API 概述 数据流 数据

Flink概述

  • Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算

Flink特点

事件驱动(Event-driven)

  • 事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作
  • 比较典型的就是以kafka为代表的消息队列几乎都是事件驱动型应用
  • 应用程序能够对实时数据流做出快速响应
  • 例如,假设系统需要识别短时间内先出现小额交易后紧跟大额交易的模式,这可能是信用卡被盗用的迹象,Flink程序会持续监控交易事件流,当检测到这种模式时,就会触发一个警报,并可能阻止进一步的交易,直到情况得到验证

流和批的思想

  • 批处理:有界、持久、大量,非常适合需要访问全套记录才能完成的计算工作,一般用于离线统计

  • 流处理:无界、实时, 无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作,一般用于实时统计

  • 无界数据流:无界数据流有一个开始但是没有结束,它们不会在生成时终止并提供数据,必须连续处理无界流,也就是说必须在获取后立即处理event,处理无界数据通常要求以特定顺序(例如事件发生的顺序)获取event,以便能够推断结果完整性

  • 有界数据流:有界数据流有明确定义的开始和结束,可以在执行任何计算之前通过获取所有数据来处理有界流,处理有界流不需要有序获取,因为可以始终对有界数据集进行排序,有界流的处理也称为批处理

Spark VS Flink

  • spark的世界观中,一切都是由批次组成的,离线数据是一个大批次,而实时数据是由一个一个无限的小批次组成的
  • flink的世界观中,一切都是由流组成的,离线数据是有界限的流,实时数据是一个没有界限的流,这就是所谓的有界流和无界流

分层API

  • Flink提供了分层API,以适应不同类型的数据处理需求和用户偏好

  • Stateful Stream Processing:这是最底层的API,提供了ProcessFunction,允许开发者进行有状态的流处理。它提供了对时间和状态的细粒度控制,适用于需要管理复杂状态和定时器的场景

  • Core API:包括了DataStream API和DataSet API,这些API提供了数据处理的基本操作,如数据转换、分组、聚合、窗口和状态管理,DataStream API用于流处理,而DataSet API用于批处理

  • Table API & SQL:Table API是一个基于表的声明式DSL,它提供了关系型数据模型和类似SQL的操作,如select、project、join、group-by等,Table API可以在流和批数据上以相同的语义执行查询,并产生相同的结果,SQL API则允许用户直接使用SQL语句进行数据处理,而无需编写Java或Scala代码

标签:有界流,处理,Flink,API,概述,数据流,数据
From: https://www.cnblogs.com/shihongpin/p/18431224

相关文章

  • 利用 Flink CDC 实现实时数据同步与分析
    1.概述1.1简要介绍什么是FlinkCDC(ChangeDataCapture)FlinkCDC(ChangeDataCapture)是一种用于实时捕获和处理数据库中数据变更的技术。它通过监控数据库的变更事件,将这些事件转化为流式数据,使得数据处理系统(如ApacheFlink)能够以流的方式实时处理和分析数据。FlinkC......
  • Gymnasium 学习笔记:gymnasium.Env 概述
    简要介绍Gymnasium的整体架构和个模块组成。Gymnasium提供了强化学习的环境,下面主要介绍gymnasium.Env和gymnasium.MujocoEnv两个类。1.gymnasium.Envgymnasium.Env(Generic[ObsType,ActType])是环境的基类,其是泛型类,其可以接受ObsType和ActType两个类型,分别对应......
  • Flink CDC介绍:基于流的数据集成工具
    FlinkCDC是一个基于流的数据集成工具,旨在为用户提供一套功能更加全面的编程接口(API)。该工具使得用户能够以YAML配置文件的形式,优雅地定义其ETL(Extract,Transform,Load)流程,并协助用户自动化生成定制化的Flink算子并且提交Flink作业。FlinkCDC在任务提交过程中......
  • 【SpringBoot】@Validated @Valid 参数校验概述以及使用方式
    1 前言最近在思考SpringBoot中的参数校验,比如我们写一段业务代码,首要的就是校验参数,单据编码空不空,数量空不空,客户空不空等,最简单的就是单独抽个方法逐个进行ifelse校验,高级点的整个校验工厂,当需要校验某种业务的时候,拿到校验器来校验,可以是简单工厂或者工厂方法都可以实......
  • 尚硅谷-flink
    一、介绍1.简介flink是一个开源的分布式流处理框架优势:高性能处理、高度灵活window操作、有状态计算的Exactly-once等详情简介,参考官网:https://flink.apache.org/flink-architecture.html中文参考:https://flink.apache.org/zh/flink-architecture.......
  • flink 大批量任务提交 yarn 失败问题
    问题现象用户迁移到新集群后,反馈他们开发平台大量flink任务提交失败了,当时集群的yarn资源是足够的排查过程用户是在他们的开发平台上提交的,查看他们失败的任务,发现是他们提交端主动Kill的,接着沟通发现他们提交平台有个逻辑就是提交到yarn的flink任务,如果在2......
  • Spark学习(一):概述
    Spark学习(一):概述上周六面试腾讯时被问到是否了解Spark,彼时对Spark毫无接触故答不了解,面试结束后了解到Spark与MapReduce渊源颇深,去年夏天学习MIT6.824分布式系统设计时曾深入学习过MapReduce(分布式学习:MapReduce-pinoky-博客园(cnblogs.com))故对Spark产生兴趣,由此开始学习......
  • 数据结构 - 概述及其术语
    经过上一章节《数据结构与算法之间有何关系?》的阐述,相信大家对数据结构多少有了点了解,今天我们将进入数据结构的正式学习中。在计算机科学中,数据结构是一种数据管理、组织和存储的格式。它是相互之间存在一种或多种特定关系的数据元素的集合。在计算机中一个静态数据是没有灵魂......
  • Transact-SQL概述(SQL Server 2022)
    新书速览|SQLServer2022从入门到精通:视频教学超值版_sqlserver2022出版社-CSDN博客《SQLServer2022从入门到精通(视频教学超值版)(数据库技术丛书)》(王英英)【摘要书评试读】-京东图书(jd.com)SQLServer数据库技术_夏天又到了的博客-CSDN博客在前面的章节中,其实已......
  • 第23篇 委托的概述
    什么是委托?委托可以说是把一个方法代入另一个方法执行,相当于指向函数的指针;事件就相当于保存委托的数组;1.实例化委托的方式:方式1:通过new创建实例:publicdelegatevoidShowDelegate();或者publicdelegatestringShowDelegate(stringstr);ShowDelegated=newShowDele......