温柔的介绍流计算领域

8分钟阅读2天前

- - -

通过本文的结尾,您不会是这样的宝贝:P

从这篇文章学习成果:

  • 流计算是什么和你为什么要学习呢?
  • 典型的流体系结构的分布式计算
  • 流/ DB /流处理器的实时OLAP商店

✅流计算是什么和你为什么要学习呢?

作为工程师,我们今天应该学习技术,是供电企业,在未来几十年将继续这样做。推论这个想法,提出一些商务语境暑热的流处理技术:

在过去的十年,一个出现多个企业在以下领域:

  • 旅游预订——Booking.com Makemytrip Google-Flights
  • 快速交付应用程序——Grofers / Zepto / Instamart
  • 股票交易/ Fintech——Zerodha / Groww /条纹
  • Fin-Tech——PhonePe / BharatPe / PayTM
  • 毫升培训——砖
  • 库存跟踪- Rivigo / Uber-freight
公司利用实时数据的权力

1共同的本质在织物上面的公司:

✅他们都对事件的反应中生成实时系统!

事件可以上下文基于产品的性质。例如:

  • 订舱申请
  • 快递人员的实时位置
  • 实时股票价格的波动
  • 金融交易的实时检测等。

通过上面的介绍,我们可以消化的实时处理事件的核心技术基础设施的公司。一个正式的术语,有经验的软件工程师发明了流处理

✅我们用分治法学习意味着什么。

——是一个连续的数据流/事件。在大多数情况下无限

你可能听说过批处理(基本上就是典型MapReduce的架构让你去做)。正在处理中,固定大小的数据有节奏的。例子:处理所有数据一天到达边界通过首先存储24小时然后它通过计算系统获得的结果。

批处理和流的概念

现在认为流处理处理这个数据在超小micro-batches和喂养的计算,只要它的到来。例子:条纹在构建实时欺诈检测毫升系统,谈到这里(link-to-stripe-article),他们需要低毫秒级的答案是否金融交易欺诈。

因此流处理技术是一种体系结构范式,帮你实现! !

如果你是一个新手流处理,考虑给它一些时间。起初的事情看起来非常相似的批处理和流处理之间,但是当你深入了解建筑、状态管理、计算、服务层的性质,这是当你将开始欣赏错综复杂。我们都知道,魔鬼在于细节:)

✅典型工业实时数据流体系结构。

现在我们知道一点关于流处理。让我们双击典型的工业用建筑来实现这一点。

请注意,建立一个组织的体系结构一直是一个旅程。因此普通人架构几乎永远不会要求太多的组件。简单的谷歌与节点重火力点客户机应该足以满足初始用例。

吻! !

只有当你深入思考问题基于因素我复杂的这篇文章中,在上一节,你意识到你的组织需要通过移动实时流媒体架构的范式转变,你应该尝试使用以下组件。

这是一个典型的香草味道的数据流体系结构。

✅我将简要谈谈这里的不同组件使用。

  • 组织中的数据可以驻留在不同类型的数据库和卡夫卡通常是最可靠的组件作为高速公路连接您的数据到其他数据系统。在这种情况下,我们称之为数据最初居住的地方像水槽系统源系统和最终的目的地。
  • 卡夫卡连接是一个可靠的、分布式的框架,帮助您构建连接器实现这一壮举。你可以阅读更多关于它在这里

一旦你有卡夫卡的照片,然后你需要一个实时处理数据的系统。通过处理——我的意思是,你应该能够编写工作分割成数据流的实时结果。

这样的壮举可以通过Apache Flink或卡夫卡流。在一个非常粗糙的水平,认为它们是实时、低延迟的Hadoop系统(它不是最好的类比,但好的开始:-))。我将解释关于他们在接下来的这篇文章的标题本身。

现在您已经处理您的数据和计算输出表使用Apache Flink /卡夫卡流。你需要思考的服务层这将作为一个为您的用户/客户触点与流的输出工作,你跑Flink等等。

对于这样一个场景,如果你的用户/客户——将问题事务性查询输出,然后一个典型的Postgres-like数据存储可以很好地为你服务。

如果你希望你的用户/客户——将问题分析查询的输出流的工作,然后再休息事情分成2例:

面临的外部用户分析:这是你预见数以千计的范式或成千上万的用户发布为毫秒级的延迟分析系统上查询的结果。对于这样的用例,技术(如Apache黑比诺/ Rockset,真正做好这项工作,因为他们的高度优化的索引层和micro-sharded存储减少他们在数据系统查询的行数为您服务的结果。

内部用户面对分析:如果你预见自己的员工上运行分析查询的输出流工作,然后通常Apache德鲁伊是一个战斗系统,帮助您实现这一壮举。可以给它一个读吗在这里

如果我告诉你,你可以结合的力量:

  • 流处理系统像Flink KStreams
  • 触点/服务层为用户——Apache黑比诺,Apache德鲁伊

在一个系统,它可以帮助您运行流处理工作,与此同时,存在数据更易于调试。

这种类型的系统,在一个非常高的水平,使您能够运行流处理工作,同时提供一个数据库的接触点流的工作和服务层。

有什么区别流处理器/实时OLAP商店/流数据库! !

有提到这里许多系统,你可能会扔掉你的笔记本电脑和你所选择的职业的问题:)

  1. 流处理:一个流处理应用程序是一个DAG(直接无圈图),其中每个节点是一个处理步骤。你写的DAG写个人处理功能,数据流经过时执行操作。这些函数可以是无状态的操作,比如转换或过滤或有状态操作,比如聚合,记得以前执行的结果。有状态的流处理用于从流数据获得的见解。
  2. 流媒体数据库:这种技术可以摄取数据流数据来源,让他们立即用于查询。它扩展了有状态的流处理,把从数据库附加功能,如柱状文件格式、索引、物化视图增量更新,和散集查询执行。

简而言之,流数据库将存储作为流处理用例的一等公民。不消说,持久状态是多么有用。但也昂贵吗?(等到你听说计算空间分离设计的选择)。

一个有趣的开源和完全托管服务,我最近遇到了RisingWave实验室提供流媒体数据库之上的生锈! !是的,你没有看吗:)

3所示。实时OLAP数据存储:这些是高度优化的柱状数据存储平台pre-compute一系列指标的数据服务和毫秒级的延迟查询的用户规模。你可以看看我的这篇文章,了解这项技术。链接

✅一些我喜欢的东西流数据库技术,同时分析开源项目RisingWave

  • 结合的力量流处理层与服务层,1系统,它能减少2系统的复杂性。如果你曾与分布式系统在生产的好处,你会很感激。
  • 存储为核心流工作,使更容易调试,略微妙时Apache Flink, KStreams等等。
  • Postgres像SQL查询数据的语义——一个工程师的新员工培训时间与流DB是零,因为每一个工程师都知道SQL语义和这正是如何编排流工作也在这个科技和访问的结果计算。
  • 特别自然的查询——当你写一个ETL管道使用Flink / KStream工作,你通常会将其部署到刺激,然后让它运行在连续的数据流。然而,如果你打电话需要调试问题在你的工作,那么你需要运行特别验证等工作。和流媒体DB是一个很好的选择。您可以设置BI系统和仪表盘上的这一层。这种可能性是无限的:P
  • 解耦的存储和计算——原生云时代最大的好处,就是支付您使用基于消费的模式。经过设计文档出现在上升波开源库,这明显分离存储和计算提供了你无限的可扩展性与规模经济和壳你的美元是必要的。也有缺点。突然钉在你的系统中,如果需要计算但不容易,那么系统将会自动扩展,最终延迟会导致下游服务问题,尽管这是一个微妙的细节,会对自己的整个文章:)
  • 性能——我们一直在讨论延迟通过这篇文章,因此基准性能标准系统是有意义的。该网站声称RisingWave 10 - 50%的速度比Apache Flink ! !虽然他们还没有发布一个基准测试报告,我热切期待着一样:)

这是一个温和的介绍了解的世界相同的流处理和技术力量。敬请期待,我的下一篇文章中,我们分析在选择时要考虑的问题之一,这些技术的基础设施。

- - -

- - -

0的追随者

工程师@支流,时,流媒体实时分布式系统| | k8网络|意见是我:)

Baidu