养殖类网站模板,重庆做网站推广的公司,免费建视频网站,名字设计logo图片目录
Flink关键特性
流式处理
丰富的状态管理
丰富的时间语义支持 Data pipeline
容错机制
Flink SQL
CEP in SQL Flink 应用程序可以消费来自消息队列或分布式日志这类流式数据源#xff08;例如 Apache Kafka 或 Kinesis#xff09;的实时数据#xff0c;也可以从各…目录
Flink关键特性
流式处理
丰富的状态管理
丰富的时间语义支持 Data pipeline
容错机制
Flink SQL
CEP in SQL Flink 应用程序可以消费来自消息队列或分布式日志这类流式数据源例如 Apache Kafka 或 Kinesis的实时数据也可以从各种的数据源中消费有界的历史数据。同样Flink 应用程序生成的结果流也可以发送到各种sink中。 Apache Flink由于其广泛的特性是开发和运行许多不同类型应用的优秀选择。Flink的特性包括对流和批处理的支持、复杂的状态管理、event-time处理语义、以及exactly-once保证。此外Flink可以部署在各种资源管理平台上例如Yarn、Mesos和Kubernetes也可以作为一个standalone的集群。Flink具有高可用性没有单点故障的情况。Flink已经被证明可以扩展到数千个核和TB级的应用并提供高吞吐量和低延迟。 Flink关键特性 流式处理
在自然环境中数据的产生原本就是流式的。无论是来自 Web 服务器的事件数据证券交易所的交易数据还是来自工厂车间机器上的传感器数据其数据都是流式的。Flink是高吞吐、高性能、低时延的实时流处理引擎能够提供ms级时延处理能力。 无界流是有始无终的数据流即无限数据流程序必须持续不断地对到达的数据进行处理。有界流是限定大小的有始有终的数据集合即有限数据流批处理是有界数据流处理的范例。可以对整个数据集的数据进行排序、统计或汇总计算后再输出结果。
这种以流为世界观的架构获得的最大好处就是具有极低的延迟。 丰富的状态管理
Flink 是有状态的流处理Flink算子是有状态的如何处理一个事件可能取决于该事件之前所有事件数据的累积结果流处理应用需要在一定时间内存储所接收到的事件或中间结果以供后续某个时间点访问并进行后续处理。 状态由一个任务维护并且用来计算某个结果的所有数据都属于这个任务的状态可以认为状态就是一个本地变量可以被任务的业务逻辑访问。
Flink会进行状态管理包括状态一致性、故障处理以及高效存储和访问以便开发人员可以专注于应用程序的逻辑。Flink提供丰富的状态管理包括多种基础状态类型、丰富的State BackendState可以存储在内存上或RocksDB等上并支持异步以及增量的Checkpoint机制、精确一次语义等等。
Flink 应用程序的状态访问都在本地进行因为这有助于其提高吞吐量和降低延迟。通常情况下 Flink 应用程序都是将状态存储在 JVM 堆上但如果状态太大我们也可以选择将其以结构化数据格式存储在高速磁盘中。 丰富的时间语义支持
时间是流处理应用的重要组成部分对于实时流处理应用来说基于时间语义的窗口聚合、检测、匹配等运算是非常常见的。Flink提供了丰富的时间语义支持。 Event-time使用事件本身自带的时间戳进行计算使乱序到达或延迟到达的事件处理变得更加简单。Ingestion Time是数据进入Flink的时间Processing Time是每一个执行基于时间操作的算子的本地系统时间与机器相关如默认的时间属性。Watermark支持Flink引入Watermark概念用以衡量事件时间的发展。Watermark也为平衡处理时延和数据完整性提供了灵活的保障。当处理带有Watermark的事件流时在计算完成之后仍然有相关数据到达时Flink提供了多种处理选项如将数据重定向side output或更新之前完成的计算结果。高度灵活的流式窗口支持Flink能够支持时间窗口、计数窗口、会话窗口以及数据驱动的自定义窗口可以通过灵活的触发条件定制实现复杂的流式计算模式。 Data pipeline ETL抽取-转换-加载是在存储系统间转换和移动数据的一种常用方法。通常ETL任务会定期的触发将业务数据系统中的数据拷贝到分析数据库或数据仓库中。 data pipeline的作用和ETL任务类似。它们转换数据将数据从一个存储系统移动到另一个存储系统。然而data pipeline操作不是定期的触发而是作为一个连续不断的流处理方式处理数据。因此它们能从不断产生数据的源中读取记录并以较低延迟将其移动到目的地。
连续的data pipelines相比周期性的ETL作业其最大的优点使具有更低的延迟。此外data pipeline更加通用可以用于更多场景因为它们能连续地使用和发出数据。 容错机制
分布式系统单个task或节点的崩溃或故障往往会导致整个任务的失败。Flink提供了任务级别的容错机制保证任务在异常发生时不会丢失用户数据并且能够自动恢复。
Flink的Checkpoint和故障恢复能力保证了任务在故障发生前后的应用状态一致性为某些特定的存储支持了事务型输出的功能即使在发生故障的情况下也能够保证精确一次的输出。
Flink基于Checkpoint实现容错用户可以自定义对整个任务的Checkpoint策略当任务出现失败时可以将任务恢复到最近一次Checkpoint的状态从数据源重发快照之后的数据。即重置数据源从状态中记录的上次消费的偏移量开始重新进行消费处理。而且状态快照在执行时会异步获取状态并存储并不会阻塞正在进行的数据处理逻辑。
Savepoint一个Savepoint就是应用状态的一致性快照Savepoint与Checkpoint机制相似但Savepoint需要手动触发Savepoint保证了任务在升级或迁移时不丢失掉当前流应用的状态信息便于任何时间点的任务暂停和恢复。 Flink SQL
Table API和SQL借助了Apache Calcite来进行查询的解析校验以及优化可以与DataStream和DataSet API无缝集成并支持用户自定义的标量函数聚合函数以及表值函数。简化数据分析、ETL等应用的定义。下面代码实例展示了如何使用Flink SQL语句定义一个会话点击量的计数应用。
SELECT userId, COUNT(*)
FROM clicks
GROUP BY SESSION(clicktime, INTERVAL 30 MINUTE), userIdCEP in SQL
Flink允许用户在SQL中表示CEPComplex Event Processing查询结果以用于模式匹配并在Flink上对事件流进行评估。
CEP SQL 通过MATCH_RECOGNIZE的SQL语法实现。MATCH_RECOGNIZE子句自Oracle Database 12c起由Oracle SQL支持用于在SQL中表示事件模式匹配。CEP SQL使用举例如下
SELECT T.aid, T.bid, T.cid
FROM MyTableMATCH_RECOGNIZE (PARTITION BY useridORDER BY proctimeMEASURESA.id AS aid,B.id AS bid,C.id AS cidPATTERN (A B C)DEFINEA AS name a,B AS name b,C AS name c) AS T