Flink 特性

Flink 特性文章目录一.简介1.什么是Flink2.特点3.对比4.流处理、批处理5.架构体系一.简介1.什么是FlinkApacheFlink是分布式大数据处理引擎,可对有限数据流和无限数据流进行状态计算,可部署在各种集群环境下,对各种大小的数据进行快速计算.flink官网2.特点批流统一(支持批计算和流计算);支持高吞吐、低延迟、高性能的流处理;支持带有事件时间窗口操作;支持有状态…


1. Flink 的核心特性

高吞吐和低延迟:每秒处理数百万个事件,毫秒级延迟;

结果的准确性:Flink 提供了事件时间(event-time)和处理时间(processing-time)语义。对于乱序事件流,事件时间语义仍然能提供一致且准确的结果;

精确一次(exactly-once)的状态一致性保证;

可以连接到最常用的存储系统,如 Apache Kafka、Elasticsearch、JDBC、(分布式)文件系统HDFS

高可用。本身高可用的设置,加上与 K8s,YARN 的紧密集成,再加上从故障中快速恢复和动态扩展任务的能力,Flink 能做到以极少的停机时间 7×24 全天候运行

能够更新应用程序代码并将作业(jobs)迁移到不同的 Flink 集群,而不会丢失应用程序的状态


2. 分层 API

在这里插入图片描述

  最底层级的抽象仅仅提供了有状态流,底层处理函数(Process Function)与 DataStream API 相集成,可以对某些操作进行抽象,它允许用户可以使用自定义状态处理来自一个或多个数据流的事件,且状态具有一致性和容错保证。除此之外,用户可以注册事件时间并处理时间回调,从而使程序可以处理复杂的计算。

  大多数应用并不需要底层抽象,而是直接针对核心 API(Core APIs) 进行编程,比如 DataStream API(用于处理有界或无界流数据)以及 DataSet API(用于处理有界数据集)。这些 API 为数据处理提供了通用的构建模块,比如由用户定义的多种形式的转换(transformations)、连接(joins)、聚合(aggregations)、窗口(windows)操作等。这些 API 处理的数据类型以类(classes)的形式由各自的编程语言所表示。

  Table API 是以表为中心的声明式编程,其中表在表达流数据时会动态变化。Table API 遵
循关系模型:表有二维数据结构(schema)(类似于关系数据库中的表),同时 API 提供可比较的操作,例如 select、join、group-by、aggregate 等。尽管 Table API 可以通过多种类型的用户自定义函数(UDF)进行扩展,仍不如核心 API更具表达能力,但是使用起来代码量更少,更加简洁。除此之外,Table API 程序在执行之前会使用内置优化器进行优化。可以在表与 DataStream/DataSet 之间无缝切换,以允许程序将 Table API 与DataStream 以及 DataSet 混合使用。

  Flink 提供的最高层级的抽象是 SQL。这一层抽象在语法与表达能力上与 Table API 类似,
但是是以 SQL 查询表达式的形式表现程序。SQL 抽象与 Table API 交互密切,同时 SQL 查询可以直接在 Table API 定义的表上执行。


今天的文章Flink 特性分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/29967.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注