【问题标题】:Website Click stream flow + customer 360 using AWS Kinesis Firehose使用 AWS Kinesis Firehose 的网站点击流 + 客户 360
【发布时间】:2020-11-03 14:35:23
【问题描述】:

我们正在尝试在 AWS 上实现我们电子商务的点击流。点击流将捕获“匿名”用户所做的所有操作。匿名用户通过 UUID 进行跟踪,该 UUID 在他们第一次访问期间生成,存储在 cookie 中。我们使用 AWS 示例 here 来建议如下图所示的解决方案架构:

现在有 2 个问题:

  1. 电子商务中不同的页面有不同的点击流数据。例如,在 Item view page 上,我们也想发送 Item 相关信息,例如 itemId。或者在结帐页面上,我们希望很少有与点击流数据相关的订单相关信息。我们是否应该为不同的页面设置单独的 Firehose 传输流来支持自定义点击流数据?或者我们应该将通用点击流记录(某些属性可能为空值)发送到 FH 传输流?

  2. 在某些时候,我们的匿名用户会被识别(例如,他们登录以便我们知道他们的 User_ID)所以我们希望链接 {UUID 和 User_ID} 以便能够获得客户 360 度视图。我们是否应该考虑使用单独的流 + 单独的 S3 存储桶来跟踪 UUID+ User_ID 映射?那么我们是否应该使用 Athena 来显示客户 360 的汇总报告?我们是否应该聚合数据并在 Redshift 中创建客户维度?对此有什么好的解决方案?

问候, 丽娜

[更新]: 下图是该问题可接受的解决方案吗?

【问题讨论】:

    标签: amazon-web-services amazon-redshift amazon-kinesis-firehose amazon-kinesis-analytics clickstream


    【解决方案1】:

    您应该根据您打算如何访问数据来做出决定。 鉴于点击流数据的增长速度,如果您想以合理的响应时间和成本对数据产生任何有意义的见解,您将需要使用数据分区。阅读更多关于此here 的信息。

    为了能够可靠地做到这一点,您必须使用多个 Kinesis 流。

    您选择不使用多个流的唯一情况是成本问题。但是考虑到您将在点击流应用程序中使用它,并且如果您在有活跃用户的网站上使用它,则可以轻松地使用传入事件的数量来有效地使用分片。

    免责声明:个人意见:我建议您将其移至 Kinesis Firehose,以便您可以灵活地开始将数据加载到 redhift,在后期进行最小的流程更改,同时还可以备份S3中的数据用于冷存储/备份。考虑到数据量,Athena 可能不是对数据执行分析查询的好选择。 您可以查看使用 Redhift 外部表,其中数据仍位于 S3 上。至于 redshift 实例本身的成本,您现在可以暂停集群。阅读公告here

    要解决您添加的更新架构图,您可以完全跳过 Glue。 Kinesis 可以直接将数据加载到 S3,您可以使用 RedShift 谱定义外部表。

    一般的方法是将数据加载到 Redshift 并备份到 S3。然后在 Redshift 上,您可以定期删除旧数据(比如一年多前)。这平衡了成本与性能,因为查询会在 Redshift 上的数据上获得更高的性能。

    至于转换,您可以直接使用带有 Kinesis Firehose 的 Lambda。阅读更多关于此here 的信息。

    编辑 1:添加了关于使用 Redshift 以及为什么它有用且具有成本效益的观点

    编辑 2:添加了有关简化新提议架构的详细信息。

    【讨论】:

    • 谢谢@Mayank。但是我们没有使用 Kinesis 数据流,我们目前对实时分析不感兴趣。将使用 Kinesis Firehose ......所以那里不会有分片......
    • 同样的理由也适用于此。在成本与性能之间找到最佳平衡点是相同的任务。另外,我建议你试试firehose。我已经更新了我的答案,说明我这么说的原因。
    • 谢谢 Myanak...我刚刚更新了问题...那么第二个图表是该问题的可接受解决方案吗? (假设我们有 s3 分区并且胶水中的文件格式将是镶木地板)胶水将在 Redshift Spectrum 中用于创建外部表,然后我们将能够连接这些表并获得最终的客户 360 度视图表。 ..这行得通吗?
    • @Lina,我已经更新了如何进一步优化架构的答案。如果答案确实解决了您的问题,您是否介意接受它。这样,其他偶然发现此问题的人可以轻松找到解决方案。干杯。
    猜你喜欢
    • 1970-01-01
    • 2021-02-15
    • 2016-12-05
    • 1970-01-01
    • 2021-02-17
    • 2016-08-20
    • 2018-07-02
    • 2020-02-08
    • 2016-11-05
    相关资源
    最近更新 更多