我是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任务以汇总结果?