资讯专栏INFORMATION COLUMN

spark系列-结构化数据流-基本内容

IT那活儿 / 2172人阅读
spark系列-结构化数据流-基本内容

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!


简  介


spark结构化数据流是可扩展和容错的,基于spark sql引擎,可以用批处理方法处理结构化数据流,spark sql引擎负责以增量连续方式运行,并在流数据到达进行更新,可以使用scala、java、python或R的DataSet/DataFrame API来表示数据流聚合、时间窗口等,通过检查点、预写日志方式实现容错。
在内部默认结构化流数据查询使用微批处理引擎进行处理,其将数据流作为一系列小批处理作业,从而实现端到端100毫秒以下的延迟,并保证仅一次容错。
但是自spark2.3以来,我们引入了一个称作“Continuous Processing”新的低延迟处理模式,他可以实现端到端一毫秒的低延迟,并且至少一次容错保证。根据实际需要可以选择使用哪一种模式。


编程模型


Structured Streaming的关键是将实时数据流作为无边界的连续追加的表,这非常像批处理模型,你可以将流处理作为一个静态表进行处理。
基本概念
将输入流作为源数据表,每个消息实体作为表的一行追加到表中。
针对输入表查询将生成结果表,每触发一次,新的ROW DATA将被追加到输入表中,然后更新结果表,不管什么什么时候更新,我们都希望将更新后的数据写入到外部存储器。


外部存储器模式


1. Complete Mode:每次触发整个结果表将写入到外部存储器。适用场景:适用于聚合查询输出的情况。
2. Append Mode:每次次触发后追加到结果表中的新行才会被写入到外部存储器,适用场景:默认是这种模式,该模式保证每行只输出一次,所以适用于结果表中现有行不会更改的查询。
在查询过程中, 如果没有使用 watermark 机制, 则不能使用聚合操作. 如果使用了 watermark 机制, 则只能使用基于 event-time 的聚合操作。
3. Update Mode:每次触发后在结果表中较上次触发后更新或新增的行才会写入到外部存储器。如果没有聚合操作, 则该模式与 append 模式一致. 如果有聚合操作, 则可以基于 watermark 清理过期的状态。

请注意结构化数据流只读取最近的可用的数据而不是整个数据表,然后更新结果表,然后就丢弃输入数据,就是结构化数据流只保留处理最新状态的数据。




本文作者:潘宗昊

本文来源:IT那活儿(上海新炬王翦团队)


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129581.html

相关文章

  • Spark 』2. spark 基本概念解析

    摘要:原文基本概念解析写在前面本系列是综合了自己在学习过程中的理解记录对参考文章中的一些理解个人实践过程中的一些心得而来。是项目组设计用来表示数据集的一种数据结构。 原文:『 Spark 』2. spark 基本概念解析 写在前面 本系列是综合了自己在学习spark过程中的理解记录 + 对参考文章中的一些理解 + 个人实践spark过程中的一些心得而来。写这样一个系列仅仅是为了梳理个人学习...

    Luosunce 评论0 收藏0
  • Spark 』4. spark 之 RDD

    摘要:是设计用来表示数据集的一种数据结构。而正因为满足了这么多特性,所以把叫做,中文叫做弹性分布式数据集。按照这篇论文中文译文的解释,窄依赖是指子的每个分区依赖于常数个父分区即与数据规模无关宽依赖指子的每个分区依赖于所有父分区。 原文链接 写在前面 本系列是综合了自己在学习spark过程中的理解记录 + 对参考文章中的一些理解 + 个人实践spark过程中的一些心得而来。写这样一个系列仅仅是...

    timger 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<