Structed Streaming
概论
结构化流式查询使用微批处理引擎进行处理,该引擎将数据流作为一系列小批量作业处理,从而实现低至100毫秒的端到端延迟和完全一次的容错保证。但是,自Spark 2.3以来,引入了一种称为连续处理的新型低延迟处理模式,它可以实现低至1毫秒的端到端延迟,并且具有至少一次的保证。
编程模型
结构化流中的关键思想是将实时数据流视为连续追加的表。这导致新的流处理模型非常类似于批处理模型。您将流式计算表示为静态表上的标准批处理查询,Spark将其作为无界输入表上的增量查询运行。
基本概念
将输入数据流视为“输入表”。到达流的每个数据项都像一个新行被附加到输入表。
对输入的查询将生成“结果表”。每个触发间隔(例如,每1秒),新行将附加到输入表,最终更新结果表。每当结果表更新时,我们都希望将更改的结果行写入外部接收器。
“输出”定义为写入外部存储器的内容。输出可以以不同的模式定义:
(1)完全模式(Complete Mode)
整个更新的结果表(Result Table)将被写入到外部存储。这取决于外部连接决定如何操作整个表的写入。
(2)追加模式(Append Mode)
只有从上一次触发后追加到结果表中新行会被写入到外部存储。适用于已经存在结果表中的行不期望被改变的查询。
(3)更新模式(Update Mode)
只有从上一次触发后在结果表中更新的行将会写入外部存储(Spark 2.1.1之后才可用)。这种模式不同于之前的完全模式,它仅仅输出上一次触发后改变的行。如果查询中不包含聚合,这种模式与追加模式等价的。
Structed Streaming相关推荐
- structed streaming基础---跳过的坑
1.spark structed streaming 报如图下面的错误 在pom.xml加这个配置即可 <spark.version>2.3.0</spark.version> ...
- 2021年大数据Spark(五十二):Structured Streaming 事件时间窗口分析
目录 事件时间窗口分析 时间概念 event-time 延迟数据处理 延迟数据 Watermarking 水位 官方案例演示 事件 ...
- Queries with streaming sources must be executed with writeStream.start()
1.美图 2.背景 原始代码 package com.lcc.spark.structed.streaming;import com.lcc.spark.structed.streaming.conf ...
- Structured Streaming系列-6、事件时间窗口分析
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 传送门:大数据系列文章目录 官方网址:http://spark.apache.org/. ht ...
- 数据湖之iceberg系列(一)iceberg能做什么
1 前言 HIVE的缺陷 Hive的元数据依赖一个外部的MySQL和HDFS文件系统,通过MySQL找到相关的parition之后,需要为每个partition去HDFS文件系统上按照分区做目录的li ...
- 数据湖技术 Iceberg 的探索与实践
随着大数据存储和处理需求的多样化,如何构建一个统一的数据湖存储,并在其上进行多种形式的数据分析成了企业构建大数据生态的一个重要方向.Netflix 发起的 Apache Iceberg 项目具备 AC ...
- 【实践案例】Databricks 数据洞察在美的暖通与楼宇的应用实践
简介: 获取更详细的 Databricks 数据洞察相关信息,可至产品详情页查看:https://www.aliyun.com/product/bigdata/spark 作者 美的暖通与楼宇事业部 ...
- Unable to instantiate SparkSession with Hive support because Hive classes are not found
文章目录 1.美图 2.背景 1.美图 2.背景 Exception in thread "main" java.lang.IllegalArgumentException: Un ...
- spark封神之路(1)-spark简介
1 Spark简介 Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apa ...
最新文章
- 当Elasticsearch遇见Kafka
- c语言double变量后面几个0,C语言double型变量的初始化到底是是0还是0.0?
- nodejs启动机制分析
- 记一次ORM的权衡和取舍
- java structs hibernate php_eclipse+hibernate+structs 环境搭建
- RHEL7及CentOS7的语言、字符编码、键盘映射、X11布局设置(localectl)-系统管理(1)...
- php pdo 抛出异常模式,php实现的PDO异常处理操作分析
- USB协议 - UVC标准协议规范(二)
- vba 涉及合并取消合并单元格
- lineedit加入边框 qt_qt qlineedit 边框
- DaZeng:Vue全家桶实现小米商城(二)
- 前端H5各种qq,微博,fb,whatsapp等网页分享的链接
- linux下mysql(rpm)安装使用手册
- c语言缓冲区溢出函数,示例C程序上的缓冲区溢出
- ETCP集团董事长谭龙:智慧停车不只是工具,更是社会公器
- 基于区块链技术的智能网联汽车数据跨境安全研究
- 移动支付新发展:开拓支付领域,不止于支付服务
- 美国签证DS-160填表指南(内含图文)
- 京东店铺如何做基础评价?这样做轻松500+评
- 数据智能架构的度量标准
热门文章
- 含泪整理最优质生鲜食品网页设计模板素材,你想要的这里都有
- queue队列的访问
- away3d中创建中文3d字体
- 数字证书(CA)的申请、安装及应用
- Windows10家庭版安转App提示”管理员已阻止你运行此应用...“的解决办法-至简版
- 目前市场上用于个人计算机的硬盘尺寸是,2016年计算机组装与维修高考题
- jquery ajax traditional:true
- 哪里有鸿蒙系统,终于有手机厂商接入鸿蒙系统了
- php制作水印案例,PHP实例程序:实现给上传图片加水印图案的做法总结
- ParameterDirection参数类型