Flink 基础教程 (2):为何选择 Flink 1.1&1.1.1

阅读数:9 2019 年 11 月 24 日 22:28

Flink基础教程(2):为何选择 Flink 1.1&1.1.1

(流处理欠佳的后果)

内容简介
近年来,流处理变得越来越流行。作为高度创新的开源流处理器,Flink 拥有诸多优势,包括容错性、高吞吐、低延迟,以及同时支持流处理和批处理的能力。本书分为 6 章,侧重于介绍 Flink 的核心设计理念、功能和用途,内容涉及事件时间和处理时间、窗口和水印机制、检查点机制、性能测评,以及 Flink 如何实现批处理。
本书面向有兴趣学习如何分析大规模流数据的读者。

谁需要和流数据打交道呢?首先映入脑海的是从事传感器测量和金融交易的工作人员。对于他们来说,流处理非常有用。但是流数据来源非常广泛,两个常见的例子是:网站获得的能够反映用户行为的点击流数据,以及私有数据中心的机器日志。事实上,流数据来源无处不在,但是从连续事件中获得数据并不意味着可以在批量计算中使用这些数据。如今,处理大规模流数据的新技术正在改变这一状况。

如果说处理大规模流数据是一个历史性难题,我们为什么还要不厌其烦地尝试打造更好的流处理系统呢?在介绍支持流处理的新架构及新技术之前,我们先来谈谈不能很好地处理流数据会有什么后果。


(零售业和市场营销)

在现代零售业中,网站点击量就代表了销量。网站获得的点击数据可能是大量、连续、不均匀的。用以往的技术很难处理好如此规模的数据。仅是构建批量系统处理这些数据流 1 就很有挑战性:结果很可能是需要一个庞大且复杂的系统。并且,传统的做法还会带来数据丢失、延迟、错误的聚合结果等问题。这样的结果怎能对商业领域有所帮助呢?

1 在本书中,“数据流”是指由连续数据组成的流;“流数据”是指数据流中的数据。——译者注

假设你正在向首席执行官汇报上一季度的销售数据,你肯定不想事后因为使用了不准确的数据而不得不向首席执行官更正汇报结果。如果不能良好地处理点击数据,你很可能对网站点击量进行不准确的计算,这将导致广告投放报价和业绩数字不准确。

航空旅客服务业面临同样的挑战:航空公司需要快速、准确地处理从各种渠道获得的大量数据。例如,当为一名旅客办理登机手续时,需要对该旅客的机票预订数据进行核对,还需要核对行李处理信息、航班状态信息和账单信息。如果没有强大的技术来支持流处理,这种规模的数据是很难不出错的。近几年,美国四大航空公司中有三家都出现了大面积的服务中断,这几次故障都可以归咎于大规模实时数据处理失败。

当然,很多相关问题(如怎样避免重复预订酒店或演唱会门票),一般都能够通过有效的数据库操作来解决,但是这种操作相当费钱,也费精力。尤其当数据量增加时,成本会飙升,并且在某些情况下,数据库的反应速度会变得特别慢。由于缺乏灵活性,开发速度受到影响,项目在庞大又复杂或者不断发生变化的系统中进展缓慢。想要在大型系统中处理流数据,并且在保持一致性的同时有效地控制成本,难度非常大。

幸运的是,现代的流处理器经常可以用新的方式解决这些问题,这使得实时处理大规模数据的成本更低。流处理还激发了新的尝试,比如构建一个系统,该系统能够基于顾客当下购买的商品实时给出相关的建议,看看他们是否还需要买一些别的商品。这不代表流处理器替代了数据库(远远不能替代),而是说在数据库处理不好时,流处理器提供了更好的解决方案。这样做也使数据库得以解脱,不用再参与对当前业务状态的实时分析。第 2 章在介绍流处理架构时将对这一转变做更深入的讲解。

Flink基础教程(2):为何选择 Flink 1.1&1.1.1

图灵地址 https://www.ituring.com.cn/book/2036

评论

发布