当前位置: 首页 > 工具软件 > ebay-font > 使用案例 >

Ebay开源 Pulsar:实时大数据分析平台

安奇
2023-12-01

作者: 汪兴朗 汪 明明 王巧玲

eBay 作为全球性的商务平台和支付行业领先者 , 拥有海量的用户行为数据。基于现有的 hadoop 大数据处理,已经不能够满足业务上对实时性的需求。基于 eBay 过去的大数据处理的经验和对最新技术的运用, eBay 探索出一个对海量的数据流进行实时的收集,处理,分发和分析的平台。并于 2015 年 2 月底开源此平台 : Pulsar.

   Pulsar作为一个复杂事件处理平台,具有快速,准确,灵活的特性,保证点到点的低延时和高可靠,从而很好得满足了的eBay秒级实时数据分析的需求。同时每秒百万级流量处理能力,给客户带来更好的个性化体验,帮助客户监控实时业务信息并定制实时营销策路,及时监测网络欺诈行为并减少机器人干预。并且Pulsar是基于标准的分布式云架构部署并跨越多个数据中心,从而保证了在系统升级和拓扑更新时没有集群停机时间。
[/code]
​
```code

Pulsar平台提供了一个完整的实时大数据分析的解决方案:

    ![](https://img-blog.csdn.net/20150302132759537?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWJheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/code]
​
[/code]
​
```code
   该平台能够实时收集Event Stream,并且对Event进行实时的Enrichment和Sessionization, 推送到不同的实时应用,同时能够实时的进行统计和分析,对业务提供 Key insights.
[/code]
​
```code
   在Pulsar平台内部,它把Event Stream看成一种类数据库的表,在上面通过应用申明式的4GL来定义Business logic. 并且同时开源了作为支撑Pulsar 的一个全新的大数据流处理框架: Pulsar Jetstream. 
[/code]
​
```code
   Pulsar.Stream是一个通用的全新的大数据流的处理框架。他实现了一个开放的,自动发现的Topology, 不同的应用可以分布在不同的Data center, 通过网络进行自动的发现并且建立连接,数据主动从Producer推送到Subscriber. 在每个应用内部,通过Pipeline的方式连接各个业务模块,并且支持用4GL的EPL来定义业务逻辑。整个的topology是开放的并且能够动态扩展,相应的EPL也能够进行动态的更新且没有服务中断。
[/code]
​
```code
   典型的部署结构
[/code]
​
[/code]
​
```code
     ![](https://img-blog.csdn.net/20150302132820446?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWJheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/code]
​
```code
    EPL Sample:
[/code]
​
** Event filtering and routing  **
​
```code
    insert into SUBSTREAM select D1, D2, D3, D4
[/code]
​
```code
    from RAWSTREAM where D1 = 2045573 or D2 = 2047936 or D3 = 2051457 or D4 = 2053742; // filtering
[/code]
​
```code
    @PublishOn(topics=“TOPIC1”)   // publish sub stream at TOPIC1
[/code]
​
```code
    @OutputTo(“OutboundMessageChannel”)
[/code]
​
```code
    @ClusterAffinityTag(column = D1);    // partition key based on column D1
[/code]
​
```code
    select * FROM SUBSTREAM;
[/code]
​
** Aggregate computation  **
​
```code
    // create 10-second time window context
[/code]
​
```code
    create context MCContext start @now end pattern [timer:interval(10)];
[/code]
​
```code
    // aggregate event count along dimension D1 and D2 within specified time window
[/code]
​
```code
    context MCContext insert into AGGREGATE select count(*) as METRIC1, D1, D2 FROM RAWSTREAM group by D1,D2 output snapshot when terminated;
[/code]
​
```code
    select * from AGGREGATE;
[/code]
​
** TopN computation  **
​
```code
    // create 60-second time window context
[/code]
​
```code
    create context MCContext start @now end pattern [timer:interval(60)];
[/code]
​
```code
    // sort to find top 10 event counts along dimensions D1, D2, and D3
[/code]
​
```code
    // within specified time window
[/code]
​
```code
    context MCContext insert into TOPITEMS select count(*) as totalCount, D1, D2, D3 from RawEventStream group by D1, D2, D3 order by count(*) limit 10;
[/code]
​
```code
    select * from TOPITEMS;
[/code]
​
```code

关于详细的信息,请看

www.ebaytechblog.com/2015/02/23/announcing-pulsar-real-time-analytics-at- scale

   相关事件:
[/code]
​
1. Pulsar on QCon Shanghai 2014 – 
​
[ http://www.infoq.com/cn/presentations/ebay-user-behavior-data-stream-
processing-system ](http://www.infoq.com/cn/presentations/ebay-user-behavior-
data-stream-processing-system "http://www.infoq.com/cn/presentations/ebay-
user-behavior-data-stream-processing-system")
​
```code
    2.  Pulsar on milibo - <http://www.milibo.com/talent/events.aspx?id=34>
[/code]
​
```code
请访问 <http://gopulsar.io> 获取源代码,文档和更详细信息。
 

 类似资料: