
Sergey Nivens - Fotolia
实时流分析系统需要消息代理的帮助
实时分析应用程序通常涉及多个需要正确组织和协调的数据流,该作业调用新的消息排队技术。
大数据平台的用途日益广泛,其中之一就是捕捉不断被摄取、处理、存储和分析的数据流。实时流分析提供了业务活动的即时可见性并提供运营报告,这对于能够在事件展开时快速处理传入数据的组织特别有益。
一个常见的例子是装备各种厂房机床的制造商,其中嵌入式传感器测量了操作环境的各个方面,并越来越越来越多地通过该方面在数据流中传达这些测量事情互联网(物联网)。这些数据流被输入一个中央系统并进行分析以进行开发预测维护模型这可以识别即将到来的设备故障和驱动风险零件的先发制人的替代品,从而减少计划生计划的停机时间。
交付和物流服务公司是另一个案例。许多人从车载计算机和传感器上捕获其卡车上的无数的运营指标,包括燃料使用,速度和加速度,进气和轮胎压力的数据。结合基于GPS的位置数据,也在流中收集通过IOT连接传输,指标可用于评估减少燃料消耗的方法,提高驾驶习惯以及速度交付时间。
电力公司已经在电网上部署了监控设备,以传输有关能源消耗、网络压力和设备故障潜在风险的数据。数据流可以通过分析来寻找平衡电力传输的方法,确定在用电高峰时可能被断电的选定“热”设备,并预测维修人员在离开车库之前可能需要的部件类型。
在数据流中没有流动
所有这些例子都有一些共同特征。在每种情况下,有多个源产生数据并独立流式传输它,有时将来自许多设备的流组合以创建单个逻辑流。这需要在本地层次处的逻辑“代理”来融合数据,然后将其传输到集中位置。
但是,仍然留下了各种各样的传入数据流,用户可能希望独立地将每个人摄入实时分析系统- 甚至到逻辑数据馈送中实际数据源之间的区分。另外,可能以异步方式过滤,处理和存储来自不同流的数据。
在这种情况下,它开始清楚地清楚地将大数据平台部署到摄取,流程和分析数据流仅部分地解决了整体挑战启用实时流分析。另一个大障碍是如何组织将流数据转发到分析系统的方法,以保持生成数据的操作事件的完整性。IT和分析团队需要确保合并和转发数据流的过程保持传感器读数、警报和其他数据点创建的顺序。
在分布式环境中运行时,这更具挑战性,特别是当数据流在不同机器上协作过程中的一系列事件中相互交互时。保持事项适当协调的需要为统称代理机制创造先决条件,其可以管理所有传入流中的数据的排队和传输。
数据流管理功能
这种代理必须能够通过始发源监督流数据的组织,同时保留事件顺序并在源中维护数据一致性的同时组合不同的流。同时,它必须传输数据流,而不会导致所需的实时交付中的任何显着延迟。并且在数据流环境失败时,它必须提供具有恢复保证的容错。
Apache Kafka.已成为大数据生态系统中容错消息代理和排队系统的最突出的例子。Kafka在LinkedIn创建并作为开源技术发布,适用于Spark Streaming,Storm,Samza,Flink和其他流处理平台,以及HBase,Hadoop的伴侣数据库。它充当实时消息流的清算室,提供可扩展性和可靠性功能的组合,以帮助解决高性能的需求流分析应用程序涉及大量数据。
Kafka使用发布和订阅消息格式从源传送到目标系统的数据流。在Kafka中生成的消息持续在磁盘上,并在软件运行的服务器集群中跨不同的节点复制。因为数据被复制,可以同时支持多个订阅者到不同的数据流;复制还允许工具在群集中平衡工作负载,以在节点故障情况下维护性能和数据可用性。
例如,还可提供其他开源消息代理技术 - 例如,RabbitMQ和ActiveMQ。随着更多公司认识到等待成为的潜在商业价值接入数据流,更多的是它们还有可能会看到需要部署Kafka或其他消息传递系统来支持实时流分析应用程序。