Counting your followers
摘要
Medium为了处理用户关系,使用了用户关系表和用户统计表。用户关系表中的
latest_followed_at
列用于确定用户之间的关系是否存在。该列的值是根据twitter_followed_at
、facebook_followed_at
和medium_followed_at
三个时间戳中的最大值来确定的。用户统计表中的关注数和粉丝数用于在关注页面上显示。在2016年之前,用户可以将Facebook好友和Twitter关注导入到Medium中,导入后会创建用户之间的关系,并更新相关的时间戳和统计数据。在2016年之后,为了更快地跟踪用户关系,引入了latest_followed_at
列作为关系的真实来源。通过这个改进,用户关系的计算和显示更加准确。在开发新界面时,注意到“Latest From Following”页面缺少作者或有不应该出现的作者。通过分析发现,问题出在用户关系表和latest_followed_at
字段上。一些Twitter、Facebook和Medium的关注时间没有正确地转移到latest_followed_at
字段中,而一些取消关注也没有正确地反映。为了解决这个问题,进行了一次数据修复。修复过程中,首先从数据库中查询需要修复的用户关系,然后将数据导入到数据仓库Snowflake中进行查询。随后,运行了两个查询来找出需要修复的数据,并将结果存储为CSV文件。这些文件被发送到Amazon的Simple Queuing Service (SQS),然后由事件处理器处理。处理器根据数据库中的数据进行计算和验证,并根据计算结果更新用户关系。通过这个修复工作流程,问题得到了解决。
欢迎在评论区写下你对这篇文章的看法。