Apache Flink 是不是应该用于历史查询

Posted

技术标签:

【中文标题】Apache Flink 是不是应该用于历史查询【英文标题】:Should Apache Flink be used for historical queryingApache Flink 是否应该用于历史查询 【发布时间】:2018-05-22 03:08:02 【问题描述】:

我正在设计一个基于 Kafka 的事件源架构,并使用 Flink 进行流处理。

一个用例是查询(过滤和排序结果)随着时间的推移通过 Kafka 主题的历史交易数据。例如“给我过去 5 年所有具有这些属性的交易,按 xx 排序”。总交易历史将在 1000 万左右,以每年 100 万的速度增长。

Flink 本身是否是此类历史查询的正确工具,并且能够以合理的性能(几秒钟)做到这一点?还是我最好将来自 Kafka 的事件输入到 MongoDB/RDBMS 等可索引/可查询的数据存储中,并将其用于历史查询?

做前者感觉它会更紧密地遵循 Kappa 架构,而使用历史数据库感觉就像我正在从那个回到 Lambda 架构。

【问题讨论】:

如果我是你,我会用这两者做一个 MVP,看看性能上的差异。 【参考方案1】:

Flink 非常适合处理来自 Kafka 主题(或任何其他数据源)的历史数据,因为它支持事件时间处理,即基于记录中的时间戳而不是基于时钟的基于时间的处理处理机器(又名处理时间)。

如果你只想执行分析,你可能想看看 Flink 的 SQL 支持。

【讨论】:

以上是关于Apache Flink 是不是应该用于历史查询的主要内容,如果未能解决你的问题,请参考以下文章

Apache Flink从入门到放弃——Flink简介

Apache Flink从入门到放弃——Flink简介

Apache Flink从入门到放弃——Flink简介

手把手 | 一文读懂Apache Flink技术

干货 | 如何使用功能强大的 Apache Flink SQL

走进大数据丨Spark Streaming VS Flink