Kinesis根据事件ID汇总数据

时间:2019-02-26 16:21:41

标签: amazon-web-services aws-lambda amazon-kinesis amazon-kinesis-firehose

我是Kinesis Data Analytics的新手。有以下问题。 我的输入数据流具有这样的架构,其中每个记录都是可以在视频视图期间发生的事件(该记录是在视频视图期间发出的):

videoViewId,eventName,intPayload,timeStamp,someMetadataField1,someMetadataField2  123,“ pause”,1,2019-02-26T00:23:00,“ Some static field 1”,“ Some static field 2”

123,“恢复”,1,2019-02-26T00:23:01,“某些静态字段1”,“某些静态字段2”

123,“ viewDuration”,230,2019-02-26T00:23:02,“某些静态字段1”,“某些静态字段2”

123,“ skipForward”,1,2019-02-26T00:23:01,“某些静态字段3”,“某些静态字段4”

456,“ viewDuration”,550,2019-02-26T00:23:06,“一些静态字段3”,“一些静态字段4”

456,“静音”,1,2019-02-26T00:23:05,“一些静态字段3”,“一些静态字段4”

我的输出数据应基于videoViewId进行聚合,并具有“反向”模式,其中列名称是通过事件名称定义的(我列出了20-30个可能发生或可能不会发生的事件)。

这是输出数据的架构:

videoViewId,pauseCount,resumeCount,skipForwardCount,muteCount,unmuteCount,viewDuration,someMetadataField1,someMetadataField2

123,1,1,1,0,0,230,“某些静态字段1”,“某些静态字段2”

456,0,0,0,1,0,550,“一些静态字段3”,“一些静态字段4”

这种聚合的最佳选择是什么?

我想到以下方法:

  • Kinesis数据分析。可以使用Kinesis Data Analytics进行这种聚合吗?在这种情况下,滑动窗口聚合是否可以工作,因为我不知道特定视频视图ID的所有事件均已呈现并准备进行聚合的时间。

  • 一些Lambda吗?

  • 将数据输出到S3 Firehose交付流,然后每小时/每天运行一次AWS EMR任务以汇总结果?

0 个答案:

没有答案