——读The 8 Requirements of Real-Time Stream Processing笔记
这篇文章介绍了8条实时流处理所需要的要求与特征,然后对比了传统DBMS(或者是内存DBMS),Rule engine与SPE在处理流数据方面所能达到的上面8条特征中的几条。
1. Eight Rules for stream processing
Rule
1: Keep the data moving
The first requirement for a real-time stream processing system
is to process messages “in-stream”, without any requirement to store them to
perform any operation or sequence of operations. Ideally the system should also
use an active (i.e., non-polling) processing model.
Rule
2: Query using SQL on Streams(StreamSQL)
The second requirement is to support a high-level “StreamSQL” language
with built-in extensible stream-oriented primitives and operators.
Rule
3: Handle stream imperfections(delayed, missing, and out-of-order data)
The third requirement is to have built-in mechanisms to provide
resiliency against stream “imperfections”, including missing and out-of-order
data, which are commonly present in real-world data streams.
Rule
4: Generate Predictable Outcomes
The fourth requirement is that a stream processing engine must
guarantee predictable and repeatable outcomes.
Rule
5: Integrate Stored and Streaming Data
The fifth requirement is to have the capability to efficiently
store, access, and modify state information, and combine it with live streaming
data. For seamless integration, the system should use a uniform language when
dealing with either type of data.
Rule
6: Guarantee Data Safety and Availability
The sixth requirement is to ensure that the applications are up
and available, and the integrity of the data maintained at all times, despite
failures.
Rule
7: Partition and Scale Applications Automatically
The seventh requirement is to have the capability to distribute
processing across multiple processors and machines to achieve incremental
scalability. Ideally, the distribution should be automatic and
transparent.
Rule
8: Process and Respond Instantaneously
The eighth requirement is that a stream processing system must
have a highly-optimized, minimal-overhead execution engine to deliver real-time
response for high-volume applications.
2. DBMS, Rule Engine, SPE对比
DBMS在处理数据上是先存储后处理的,即“process-after-store” model. 所以在处理实时数据流方面天生就不是适合,尽管可以利用内存数据库来缓和效率方面的弱势, 同时其也具备trigger的特性,
但所有这些都不显得不够可扩展。
Rule Engine 虽然某种程度上能够处理实时的数据流,
但其在Rule Language方面有欠缺, 不能够拥有类似SQL的表达能力。对数据流的处理操作有限。
只有SPE是专门为处理实时流数据定做的。有许多天生的特性,专门用来处理和操作流数据。
下面就是它们的一个对比:
|
DBMS
|
Rule
engine
|
SPE
|
Keep
the data moving
|
No
|
Yes
|
Yes
|
SQL
on streams
|
No
|
No
|
Yes
|
Handle
stream imperfections
|
Difficult
|
Possible
|
Possible
|
Predictable
outcome
|
Difficult
|
Possible
|
Possible
|
High
availability
|
Possible
|
Possible
|
Possible
|
Stored
and streamed data
|
No
|
No
|
Yes
|
Distribution
and scalability
|
Possible
|
Possible
|
Possible
|
Instantaneous
response
|
Possible
|
Possible
|
Possible
|
- 大小: 32.2 KB
- 大小: 63.3 KB
分享到:
相关推荐
1. 不同的分布式流处理框架在功能和性能上各有特点,选择时需要根据具体的应用场景来决定。 2. 容错机制是流处理框架的核心组成部分,它影响了系统的稳定性和可靠性。 3. 性能指标,包括延迟、吞吐量和消息交付保障...
在这里,我们将深入探讨与"工作流 图像处理"相关的知识点。 1. **图像处理基础**:图像处理涉及对数字图像进行操作,以改善其质量、提取有用信息或进行艺术创作。主要技术包括滤波、阈值分割、直方图均衡化、边缘...
* Flink:Flink是一个原生的流处理系统,提供高级的API,支持批处理和流处理。Flink的架构基于Master-Slave风格,具有良好的可扩展性和高性能。 * Storm:Storm是一个分布式实时计算系统,主要用于处理大规模的数据...
3. 模型化方式:文章提出了通过模型化的方式来处理实时数据流,这一方法意指建立一套可动态装配的软件执行程序,从而简化数据流处理工作,并提高数据处理的易用性、性能和吞吐量。 4. 数据处理流程:实时数据流处理...
本文将对比分析几种主流的开源工作流引擎,包括JBPM4、Activiti5、OSWorkflow以及Shark,并针对它们的特点、优势和劣势进行详细的探讨。 #### 二、JBPM4 - **数据库**: 使用Hibernate 3作为持久层框架。 - **持久...
【流处理与批处理概述】 在大数据领域,流处理和批处理是两种主要的数据处理模式,它们各自有其独特的优势和适用场景。 【批处理】 批处理是大数据处理的早期形式,尤其适用于处理大量静态数据集。批处理系统通常...
在设计和实现这个通用的分布式数据流处理系统过程中,作者对比分析了三种典型的数据流系统,深入研究了它们的优缺点,以便更好地优化资源分配和负载均衡。实验结果表明,该系统在吞吐量和资源优化方面表现出色,能够...
分布式流处理技术与这些技术的主要区别在于处理数据的方式和时机。分布式批处理技术主要适用于离线场景,处理的数据是静态的,而分布式流处理强调的是数据动态实时到达时的处理。内存计算则更加强调处理速度和效率,...
在中国的工作流市场,不同的提供商有各自独特的技术特点和应用场景。本篇文章将探讨国内几家主要工作流软件的核心技术,并进行对比分析。 首先,多数国内工作流产品倾向于作为中间件服务于软件公司,而非直接面向...
该架构的主要特点是在IPC(数字摄像机)与存储设备之间设置了一个独立的流媒体服务器。流媒体服务器负责接收IPC传输过来的视频码流,并进行相应的处理,最终将处理后的数据存储到存储设备中。 1. **视频码流的处理*...
本文将探讨选择流处理系统时应注意的几个关键因素,并对比几种主流的开源流处理框架。 1. 运行时和编程模型: 流处理系统的运行时和编程模型决定了其功能和适用场景。原生流处理和微批处理是两种主要实现方式。...
- **引擎特性比较**:对比不同流处理引擎的特点,比如Apache Kafka、Apache Flink等,考虑它们的灵活性、可扩展性、低延迟支持等因素。 - **特定用例需求**:根据具体的应用场景和需求(如数据类型、吞吐量等)选择...
在众多流处理框架中,Apache Storm、Spark Streaming和Samza是颇具影响力的三个。接下来,我们将深入探讨这三个框架的特点、优势以及它们之间的对比。 Apache Storm是一个开源的分布式实时计算系统,它能够处理无界...
本项目旨在探讨和比较CPU与GPU在处理图片任务上的性能差异,特别地,通过C++编程语言并利用CUDA(Compute Unified Device Architecture)库来实现这一目标。CUDA是NVIDIA公司开发的一种并行计算平台,它允许程序员...
分布式流式数据处理框架:功能对比以及性能评估 分布式流式数据处理框架是当前大数据处理领域中的热门话题,旨在处理海量的数据流,并实时地对其进行处理和分析。本文将对当前主流的分布式流式数据处理框架进行功能...
该DSP流处理器拥有高效的数据流处理能力,通过并行指令执行显著提升了处理效率。作者不仅提出了基于流处理器的程序模型,而且最大化地利用了流处理器的体系结构特性,旨在实现更高效的图像处理。 研究选取了灰度...
根据给定文件的部分内容,我们可以识别出与工作流相关的多个技术和工具,以及它们之间可能的对比关系。下面将详细阐述这些知识点。 1. JBPM与Hibernate3 JBPM(Java Business Process Management)是业务流程管理...
对比传统的Spark-Streaming框架,邦盛流立方平台在存储支持和计算逻辑管理方面具有自身的特点,提供了高可用的分布式缓存以及即刻上线的计算逻辑。 流立方平台的核心功能包括流式处理、高速缓存、时序处理和复杂...
本文将从设计工具、数据库支持、运行环境以及与其他工作流的兼容性等多个维度对比分析两种主流的工作流引擎——Flowable与Camunda,并在此基础上给出选型建议。 #### 一、设计工具对比 **1.1 Camunda 设计器** ...