Kafka + OSA 处理快数据的核武器

摘要:

什么是快数据,如何高效的处理快数据, Kafka + OSA可以达到极高的性能,堪称处理快数据的核武器。

 

内容:

什么是快数据

要了解什么是快数据,让我们先回顾什么是大数据。大数据的概念本身比较抽象,一个比较有代表性的是 4V 定义,即认为大数据需满足 4个特点:规模性(Volume)、 多样性(Variety)、高速性(Velocity) 和价值性 (Value)。

 

而快数据则是为了实现高速性(Velocity) 而产生的。“快”来自一些众所周知的法则:时间就是金钱,数据的价值也具有时效性,数据的价值随着时间折旧越快。

如下图所示:金融交易类的数据,其价值以毫秒计算,如股指期货的指数数据,其价值瞬间就耗散,几分钟之前的股指数据几乎没有任何价值。航班的库存(剩余座位)信息,随着机票销售的进行,剩余数量在不断变化中,可能20秒之前的剩余座位数据对现在已经不具备参考意义。天气预报、实时路况和机票价格数据,其有效时间可能会稍长一些,以小时计算。2、3个小时之前的路况拥堵信息,已经不能作为人们出行的参考依据了。还有一些数据有效性可能会更长一些,比如商品房的售价,汽车的零售价,商家报给消费者的价格,有效期会是几天的时间。

 

很多数据首先是快数据,其次才是大数据。那么就需要正确认识数据的生命周期,充分利用数据的实时价值,比如机票的价格数据,需要根据库存情况进行以小时为单位的动态调整。航班起飞后,这架航班上的机票销售数据就成为历史数据,实时价值丧失,这时候可以作为大数据的一部分,成为未来机票价格制定的参考依据。

 

快数据处理技术

下面给出了不同业务处理数据快慢的比较。从数据分析的技术实现视角分析,目前的大数据处理可以分为如下三个类型:

  • 复杂的批量数据处理(batch processing),常见的实现框架如Hadoop/Mapreduce,数据处理的时间跨度在数十分钟到数小时之间。
  • 增强的历史数据的交互式查询(inter-active query),常见的实现框架如Dremel/Impala,数据处理的时间跨度在数十秒到数分钟之间。
  • 基于实时事件数据流的数据处理(event streaming processing),常见的实现框架如Oracle OSA、Apache Strom。数据处理的时间跨度在数百毫秒到数秒之间。

以上的三种方式,最符合快数据定义的是第三种。基于实时事件数据流的数据处理不光是能够提供更快的数据处理效率,而是采用了一种完全不同于离线批处理的模式。这两种处理模式,批处理(Batch Processing)是先存储后处理(Store-then-process),而流处理则是直接处理(Straight-through processing)。这两种处理模式相辅相成,在企业构建大数据处理框架时都非常重要。


快数据指的就是流处理模式中的活动数据、即时状态数据或者正在进行处理当中的数据。快速数据的价值会随着处理时间的增加而迅速减少。这就要求处理工具要具备接近实时处理和决策的能力。而通过实时分析,企业可以通过实时交互为客户提供很好的服务、更加高效的管理系统资源以及推出新的实时业务。快数据已成为大数据之中的一项重点发展方向。

捕捉输入数据价值的最佳方式就是在信息抵达时立即作出反应及操作。为了处理每秒涌现的数万乃至数百万事件的相关数据,我们需要两类技术作为前提:首先,一套能够在事件抵达的同时立即进行交付的流系统;第二,一套能够在所有条目抵达的同时立即进行处理的数据存储方案。

Oracle OSA(Oracle Stream Analytics)能够非常可靠地处理每秒消息量高达百万级别的数据流。Kafka则是一套具备极高数据吞吐能力的分布式消息处理系统。这两大流系统方案解决了快数据处理任务的前提性难题。虽然去年发布的Kafka也提供流数据处理功能Stream API.但相比OSA还是要弱很多。所以它们更适合结合起来用,发挥各自的长处。

Kafka简介

Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可分区的,冗余备份的持久性的日志服务。它主要用于处理流式数据。

Kafka提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。Kafka有4部分核心的API,分别是:

Ø  ProducerAPI发布流记录(streamof records)到Kafka topics.

Ø  ConsumerAPI 应用订阅Kafka topics,并处理其中的流记录(stream of records)

Ø  Streams API 使应用相当于一个流处理器,从一个或者多个Kafka topics的输入流中消费流记录,进行高效转换,发布到输出流output streams中。

Ø  ConnectorAPI 连接Kafka topics到其他应用或者数据系统,如连接到数据库,并捕获表中数据的变化。

 

与传统消息系统相比,Kafka有以下特点:

Ø  同时为发布和订阅提供高吞吐量。同传统消息系统比,Kafka具有良好的扩展性和性能优势。

Ø  可进行持久化操作,将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。通过将数据持久化到硬盘以及replication防止数据丢失。

Ø  分布式系统,易于向外扩展。所有的producer、broker和consumer都会有多个,均为分布式的。无需停机即可扩展机器。

Ø  消息被处理的状态是在consumer端维护,而不是由server端维护。当失败时能自动平衡。

Ø  Kafka基于拉的消费模型让消费者以自己的速度处理消息。如果处理消息时出现了异常,消费者始终可以选择再消费该消息。

 

值的一提的是,Oracle Cloud 也支持Kafka, 在Oracle Cloud的Event Hub Cloud Service中可以直接创建Kafka实例。

Oracle Stream Analytics简介

Oracle Stream Analytics是一个快数据(流数据)处理平台。对快数据进行实时的关联,聚合和过滤。具有以下特点:

Ø 具有极高的处理性能,普通PC服务器上,每秒百万级事件处理能力。

Ø 领先的CQL- Oracle复杂事件处理器的核心,CQL与SQL-99 兼容。

Ø 同Oracle其他产品如Coherence, SOA, BAM等无缝集成,提供完整的解决方案

Ø  强大的集成能力,可集成AQ, JMS , HTTP Publish/Subscribe, SOA Suite, 数据库,Oracle Spatial,Coherence,BAM,ESB,BPM,MQTT,ApacheKafka,Twitter等。

Ø  满足企业级应用的高性能,高可用,高可扩展

Ø  可运行在Spark上面

Ø OSA更可以同OracleR结合,进行机器学习和训练,使快数据的处理进入人工智能时代。

 

 

 

OSA同Kafka结合

Oracle Stream Analytics支持新的事件流源和目标,例如MQTT,Apache Kafka和Twitter。特别是Kafka在现代大数据架构中变得越来越重要。我们现在可以使用Oracle Golden Gate立即捕获任何数据库表(CDC=更改数据捕获)上的更改,使用GoldenGate for BigData将这些捕获的更改事件发送到Kafka,并从OSA中使用它来对其应用流分析。

 

 

 

另外,OSA也可以直接调用Kafka提供的API,与Kafka集成。接收Kafka发送过来的消息,进行过滤处理,也可以发OSA处理的结果发送给Kafka.

 

总结:

快数据已成为大数据的一项重点发展方向,数据越快得到处理,它的价值也就越大。所以快数据有非常高的经济价值,在越来越多的领域被广泛使用。OSA能够非常可靠高效地处理数据流,在普PC服务器上每秒高达百万级别消息连的处理能力。Kafka则是一套具备极高数据吞吐能力的分布式消息处理系统。Oracle Cloud也提供Kafka服务,并且Kafka和OSA可以非常容易的进行集成。它们结合起来,可以有极高的性能,堪称处理快数据的核武器。OSA更可以同OracleR结合,进行机器学习和训练,使快数据的处理进入人工智能时代。

另外,Kafka, OSA也可以同Oracle 的IoT云结合,快速构建可靠,高效的物联网应用。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Flink 和 Kafka 是一种分布式数据处理架构,可以帮助企业构建实时的、可靠的数据处理流程,为企业应用提供实时的数据服务。Flink 是 Apache 的一项开源项目,提供简单、高效、可靠的数据处理架构,Kafka 是一种分布式消息队列,支持高性能的消息传输。它们可以结合在一起,为企业提供实时数据处理能力。 ### 回答2: Kafka Flink数据处理架构是一种将Apache Kafka与Apache Flink集成的架构设计。Apache Kafka是一种高性能、可持久化、分布式流处理平台,而Apache Flink是一种强大的流处理框架。 在Kafka Flink数据处理架构中,Kafka作为数据源,负责收集、存储和分发数据数据可以以流的形式实时流入Kafka,并被分为多个主题(topics)。每个主题可以有多个分区(partitions),以提高负载均衡和可伸缩性。 Flink作为数据处理引擎,连接到Kafka集群,实时处理Kafka主题中读取的数据。Flink提供了各种功能和API来对数据进行转换、计算和分析,并将结果写回到Kafka主题或其他外部存储系统。 在Kafka Flink数据处理架构中,Flink提供了一些关键概念和机制来处理数据流。例如,窗口功能允许对数据流进行时间或其他属性的分段处理,以便进行聚合操作。流与表之间的无缝转换使得可以方便地进行复杂的流和批处理操作。 此外,Kafka Flink数据处理架构还支持故障处理和容错机制。Flink可以使用检查点机制来定期记录流处理应用程序的状态,并在故障恢复时恢复到最后一个一致的状态。 总而言之,Kafka Flink数据处理架构结合了Kafka和Flink的优势,为实时数据处理提供了可靠,高效和可伸缩的解决方案。它能够处理大量的数据流,并提供丰富的功能和灵活的API来满足不同的数据处理需求。 ### 回答3: Kafka Flink数据处理架构是一种常用的大数据处理架构,它结合了Apache Kafka和Apache Flink这两个开源项目的特性,实现了高效、可扩展的数据处理。 在这个架构中,Apache Kafka充当着数据流引擎的角色。它是一个分布式的流处理平台,用于高吞吐量、低延迟的发布和订阅消息。Kafka以主题(topic)为单位组织数据流,生产者将数据发布到特定的主题,消费者则从主题中订阅和消费数据Kafka保证了消息的持久化存储和高可用性,能够支持大规模的数据处理。 而Apache Flink则是一个分布式流处理框架,用于在数据流中进行实时的、有状态的计算和分析。Flink提供了丰富的流处理操作符和函数,可以进行窗口聚合、数据转换、流量控制等操作。Flink具有低延迟、高吞吐量的特性,并且支持Exactly-once语义,保证了数据的准确性和一致性。 在Kafka Flink数据处理架构中,Kafka作为输入源和输出目的地,将数据流通过主题传输到Flink。Flink通过Kafka的消费者接口实时获取数据流,进行各种计算和处理操作,并将结果写回到Kafka的指定主题。这种架构可以实现大规模数据的实时流处理和分析,具有高度容错性和可伸缩性。 此外,Kafka Flink数据处理架构还支持和其他数据存储和计算系统的集成,可以将计算结果写回到数据库、数据仓库或其他存储系统中,也可以将处理过的数据传输给其他分布式计算框架进行更复杂的计算和分析。 总之,Kafka Flink数据处理架构是一个强大而灵活的大数据处理方案,能够支持实时流处理和分析,实现高效可扩展的数据处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值