流挖掘算法介绍00:序——背景,流数据模型,近似算法评估,2-Universal 哈希

本文介绍了流数据挖掘的背景,包括处理大量实时数据的挑战,如只允许一次性扫描数据、有限内存使用和需要近似结果。接着,详细阐述了流数据模型的特点,即数据只能读取一次,并且内存限制要求算法高效。文章还讨论了近似算法评估的重要性,特别是2-Universal哈希的概念,它确保了哈希结果的随机性和均匀分布,适用于处理大规模数据集的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

假如(假如。。。)我是Facebook,Twitter,或者是Weibo的工程师(额,,,);
每天有上亿用户在这个平台上发牢骚,晒经历,秀恩爱,炫富什么的,记得有每天有上亿条消息,

我们就想知道,下面这些问题:
  • 最近一天(小时,分钟)大概有多少个不同的人在发牢骚?
  • 最近一天(小时,分钟)秀恩爱次数排名前10(100,1000)的用户大概有哪些?
  • 假设每个人每天的发推的数量是正态分布,找出发推数异常高的用户?
这些问题在数据量小的时候很容易解决,哈希,或者堆什么的记录一下就行了,最后再扫描一遍。
但是当数据量大到100G左右的时候,一台机器都没法放下这么大的哈希表;而且老大也不想加机器去做这么无聊的功能;更不想用Hadoop工具栈的分布式什么的把系统搞得很庞大,工程师人手也不足(话说两百个不到的工程师要支撑几亿用户也很那个啥)。

总的来说现有算法在大数据上有这些缺点
  • 需要扫多次数据;这就需要把数据库库存到硬盘上,又把它读出来,对大数据凡是遇到硬盘都是比较蛋疼的事情;(因为硬盘不够多,读写速度又慢)
  • 处理的时间没有受限;
  • 内存使用通常为数据量相当,或者是平方;(额,,,问题是这里有100G的数据,当然垂直切割是比较好的方法,不过比较暴力,且又把网络给牵连进来了,对于大数据,网络是第二个比较蛋疼的事情)
  • 且一部分算法并不支持分布式或者是垂直切割的合并结果(例如找到最近1小时发推的不同用户数)

不过我们的要求又是:
  • 只扫一遍数据
  • 希望能实时的处理数据
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值