很长一段时间以来,公司所做的大部分数据处理都是作为批作业运行,例如,从数据库中转储的 CSV 文件、在一天结束时收集的日志文件等。但企业是实时一直运营的,与其只在一天结束时处理数据,还不如在数据到达时就对其做出反应?这是流处理的新兴世界。但是只有当数据捕获以流的方式完成时,流处理才成为可能;毕竟,我们无法将每天批量处理的 CSV 转储作为流处理。这种向流处理的转变推动了 Apache Kafka 的流行。但是,即使使用 Kafka,构建这种类型的实时数据管道也需要付出一些努力。
Apache Kafka 0.9+ 中的一项新功能 Kafka Connect 使构建和管理流数据管道变得更加容易。
1. 流数据平台:所有数据的中心枢纽
我们有机会在 LinkedIn 构建了一个基于 Kafka 的流数据平台。我们认为流数据的未来就是流数据平台,可以作为所有数据的中心枢纽,在公司范围内广泛运行并支持各种分布式应用程序和系统以流的方式实时消费和处理数据。
流数据平台可以完成两件事:
-
数据集成:流数据平台捕获事件流或者数据变改,并将它们提供给其他数据系统,例如,关系数据库、KV存储、Hadoop 或者数据仓库。
-
流式处理:支持对流进行连续、实时的处理与转换,并使结果在系统范围内可用。
在这里,我们只关注数据集成,并探讨 Kafka Connect 如何通过提供一个通用框架来实现数据集成(