1、什么是流处理?
流处理是不断合并新数据以计算结果的动作。在流处理中,输入数据不受限制,并且没有预定的开始或结束。它只是形成一系列事件,这些事件到达流处理系统,例如信用卡交易,网站点击或来自物联网设备的传感器读数。
流是一种数据分发技术,其中数据生产者将数据记录写入有序数据流,数据使用者可以从中按相同顺序读取数据。这是一个简单的数据流图,说明了数据生产者,数据流和数据使用者。
每个数据流产品都对使用案例和要支持的处理技术进行了一系列假设。这些假设导致了某些设计选择,这些选择影响可以使用它们实现的流处理行为的类型。
来自维基百科;
流处理是一种计算机编程范例,等效于数据流编程,事件流处理和反应式编程,它使某些应用程序可以更轻松地利用有限形式的并行处理。 流处理是一项强大的技术,可以扫描来自传感器,信用卡刷卡,点击流和其他输入的大量数据,并几乎即时找到可行的见解。例如,流处理可以检测到包含数百万合法购买的流中的单个欺诈性交易,充当推荐引擎来确定特定客户在实际购物时要显示什么广告或促销,或者计算出最佳价格以用于只需几秒钟即可完成汽车服务。
术语“流处理”是指数据以某些外部系统或多个外部系统产生的事件的连续“流”形式进入处理引擎,并且处理引擎的运行速度如此之快,以至于所有决策都无需停止数据流和首先存储信息。
2、典型用例
流处理正在迅速获得普及并在各种业务领域中找到应用程序。随着证券交易所从场内交易转向电子交易,它在金融行业的首次使用得到了证实。如今,在几乎每个行业中,无论是通过人工活动,机器数据还是传感器数据生成流数据的任何地方,它都变得有意义。假设它起飞了,那么物联网将增加数据的数量,种类和速度,从而导致流处理技术的应用程序急剧增加。
流处理可以解决业务问题的一些用例包括:
- 网络监控
- 情报和监视
- 风险管理
- 电子商务
- 欺诈识别
- 智能订单路由
- 交易成本分析
- 定价与分析
- 市场数据管理
- 算法交易
- 数据仓库扩充
3、流处理和Hadoop
大数据架构包含用于实时分析的流处理,以及用于存储各种数据和长时间运行的计算的Hadoop。
Hadoop最初是从MapReduce开始的,后者提供批处理,其中查询耗时数小时,数分钟或最多数秒钟。对于大数据量的复杂转换和计算,这将是非常有用的。但是,对于临时数据探索和实时分析而言,它并不是很好。但是,多家供应商已经进行了改进,并为Hadoop添加了功能,使其不仅具有批处理框架的功能。
DWH,Hadoop和流处理彼此很好地互补。因此,在大数据时代,集成层显得尤为重要,因为您必须组合越来越多的不同接收器和源。
自2016年以来,出现了一个称为Streaming SQL的新想法。我们将一种语言称为“流SQL”,该语言使用户能够编写类似于查询的SQL来查询流数据。现在,几乎所有流处理器都支持流SQL。
4、选择流处理框架
数据流产品有很多,很难知道从哪里开始研究它们,哪些产品可以做什么等等。
在做出决定之前,必须进行典型的评估过程(长清单,短清单,概念证明)。
- 用于流分析的流处理编程语言
- 可视化开发和调试,而不是编码
- 实时分析
- 监控和警报
- 支持容错和高度优化的性能
- 产品成熟度
考虑一下项目需要上述哪些功能。此外,在做出选择之前,必须评估使用框架的成本,生产率,减少的工作量以及产品上市时间。
我们正处于一个数据的时代。在此过程中,时间至关重要,而速度将决定赢家和输家。
当必须快速连续处理数据(即必须实时计算和迅速反应)时,需要进行流处理。这个要求越来越多地出现在各个领域。市场上已经有许多不同的框架和产品。
许多用例需要快速,实时的决策。尽管可以使用数据库或批处理来实现它们,但是使用这种技术只会越来越复杂。相反,流提供了一种更自然的模型来考虑,捕获和实现这些实时流用例。流SQL提供了一种简单而强大的语言来对流用例进行编程。
现实情况是,大多数数据的价值会随着时间而下降。