Flink SQL与DataStream入门、进阶与实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 与Flink搭配使用的引擎

通过前文的学习,我们知道在生产环境中,仅依靠Flink是无法构建整条数据处理和数据服务链路的,本节我们来扩展学习一下在流处理的生产环境中与Flink搭配使用的引擎以及这些引擎所承担的角色。

图1-12是一条使用Flink进行实时数据处理的常见链路,其中和Flink搭配使用的引擎可以根据职责划分为两类。

❑实时数据存储引擎。

❑实时数据服务引擎。

图1-12 常见流处理链路

1.实时数据存储引擎

实时数据存储引擎通常在链路中负责中间结果的存储,可以根据具体职责细化为两类。第一类是在链路中承担实时链路搭建职责的消息队列引擎,常见的有Kafka、Pulsar等,Flink可以从消息队列引擎中实时读取数据,并将数据写到消息队列中。第二类是在实时链路中承担实时维度表职责的高速K-V存储引擎,常见的有Redis、HBase、MySQL等,Flink可以从高速K-V存储引擎中实时读取数据,从而丰富原有数据。

2.实时数据服务引擎

实时数据服务引擎通常在处理链路中负责查询结果数据,可以根据具体职责细化为OLAP、K-V两类。OLAP引擎常见的有ClickHouse、Doris等,通常提供灵活的多维即席查询功能,一般用于低QPS查询的数据分析类应用。K-V引擎常见的有Redis、HBase等,通常用于高QPS查询服务。此外,如果数据量、访问QPS属于中等量级,MySQL也常作为数据服务引擎被广泛使用。