yelp通过网站和移动应用每天将数百万消费者与当地优秀企业连接起来。我们致力于通过不断进行基于用户活动的大量实验,为用户提供不断发展的卓越体验。
用户会话封装了单个用户的所有活动,直到用户休眠30分钟。为了创建用户会话,我们需要处理每天发生的数亿个日志事件,并对其进行过滤。由于日志事件数量巨大,创建这些会话给我们带来了多个应用程序级别的挑战,包括处理延迟事件、过滤bot流量等。Flink提供的事件时间和一次性处理功能使得构建我们这样的大规模流式应用程序成为可能。
我们从批处理转向流式处理的主要动机在于,我们对基于用户会话的分析反馈总是晚了一天,而转向流式处理还意味着我们可以与我们最先进的数据管道生态系统进行集成。
在本次讨论中,我们不仅将探讨Yelp为什么从使用批处理作业创建用户会话转向使用Apache Flink进行近实时生成用户会话,还将重点讨论我们遇到的一些问题,如持续bot流量从不关闭会话窗口、为长时间运行的会话添加自定义触发器、在允许处理延迟事件的同时处理重复事件、以及对创建的会话进行审计等。
















































