利用Apache Kafka、Flink和Druid构建实时数据架构

译者 | 陈峻
审校 | 重楼
如今,对于使用批处理工作流程的数据团队而言,要满足业务的实时要求并非易事 。从数据的交付、处理到分析,整个批处理工作流往往需要大量的等待 , 其中包括:等待数据被发送到ETL工具处,等待数据被批量处理,等待数据被加载到数据仓库,甚至需要等待查询的完成 。
不过,开源世界已对此有了解决方案:通过Apache Kafka、Flink和Druid的协同使用,我们可创建一个实时数据架构,以消除上述等待状态 。如下图所示,该数据架构可以在从事件到分析、再到应用的整个数据工作流程中,无缝地提供数据的新鲜度、扩展性和可靠性 。

利用Apache Kafka、Flink和Druid构建实时数据架构

文章插图
目前,Lyft、Pinterest、Reddit和Paytm等知名公司,都在同时使用这三种由互补的数据流原生技术构建的应用,来共同处理各种实时用例 。
利用Apache Kafka、Flink和Druid构建实时数据架构

文章插图
用于实时应用的开源数据架构
上图展现的架构能够使得构建可观察性、物联网与遥测分析、安全检测与诊断、面向客户的洞察力、以及个性化推荐等实时应用,变得简单且易于实现 。下面,我们将和您探讨此类工具的各个组成部分,以及它们将如何被结合起来实现广泛的实时应用 。
流管道:Apache Kafka过去,RabbitMQ、ActiveMQ、以及其他被用来提供各种消息传递模式的消息队列系统,虽然可以将数据从生产者分发到消费者处,但是其可扩展性十分有限 。而随着Apache Kafka的出现,以及被80%的财富100强企业所使用 , 它已成为了流式数据的实际标准 。其根本原因在于 , Kafka架构远不止简单的消息传递 , 其多功能性使之非常适合在大规模的互联网上进行数据流传输 。而其容错性和数据一致性 , 则可以支持各类关键性任务应用 。同时,由Kafka Connect提供的各种连接器,也可与任何数据源相集成 。
利用Apache Kafka、Flink和Druid构建实时数据架构

文章插图
作为实时数据流平台的Apache Kafka
流处理:Apache FlinkKafka虽然能够提供实时数据,但是用户在需要兼顾实时效率和扩展性时,往往会选择Apache Flink 。作为一个高吞吐量且统一的数据流批处理引擎,Flink的独特优势在于能够大规模处理连续的数据流 。而作为Kafka的流处理器,Flink可以无缝地集成并支持精确的一次性语义(exactly-once semantics) 。也就是说,即使在系统出现故障时,它也能保证每个事件被精确地处理一次 。
具体而言,它会连接到Kafka主题 , 定义查询逻辑,然后连续输出结果,正所谓“设置好就不用管它(set it and forget it)” 。这使得Flink非常适用于对数据流的即时处理和可靠性要求较高的应用案例 。以下是Flink的两个常见用例:
填充与转换如果数据流在使用之前需要进行诸如:修改、增强或重组数据等操作,那么Flink是对此类数据流进行操作的理想引擎 。它可以通过持续处理 , 来保持数据的新鲜度 。例如 , 假设我们有一个安装在智能建筑中的、温度传感器的、物联网遥测用例 。其每一个被捕获的Kafka事件,都具有以下JSON结构:
{ "sensor_id":"SensorA," "temperature":22.5, "timestamp":“2023-07-10T10:00:00”}
  • 1.
如果每个传感器的ID都需要映射到一个位置,而且温度需要以华氏度为单位的话,那么Flink可以将JSON结构更新为:
{ “sensor_id”: “SensorA,” “location”: “Room 101”, “temperature_Fahreinheit”: 73.4, “timestamp”: “2023-07-10T10:00:00” }
  • 1.
并且将其直接发送到应用程序,或直接发回Kafka 。
 
利用Apache Kafka、Flink和Druid构建实时数据架构

文章插图
Flink数据处理的结构化表格示例
Flink在这方面的优势在于其处理大规模Kafka数据流的实时速度 。此外,填充和转换通常是一个无状态的过程 。每个数据记录都可以被修改,且无需维护其持久状态 。因此整体工作量最?。?且性能较高 。 
持续监控和警报通过将Flink的实时持续处理和容错功能相结合 , 我们可以为各种关键性应用的实时检测和响应需求,设计出理想的解决方案 。例如:当需要具备高检测灵敏度(如:亚秒级)和高采样率时,Flink的持续处理功能就非常适合作为数据服务层 , 被用于监控条件,触发警报,进而采取相应的行动 。


推荐阅读